2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
|
2013-01-24 23:00:42 +00:00
|
|
|
#define WIN32_NO_STATUS
|
|
|
|
#define WIN32_LEAN_AND_MEAN
|
|
|
|
|
2010-03-02 16:27:50 +00:00
|
|
|
#define _FORCENAMELESSUNION
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
#define BUILDING_KS
|
|
|
|
#define _KSDDK_
|
2010-04-02 16:25:18 +00:00
|
|
|
#define KSPROXY_TRACE
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
#include <dshow.h>
|
|
|
|
//#include <streams.h>
|
|
|
|
#include <ks.h>
|
|
|
|
#define __STREAMS__
|
|
|
|
#include <ksproxy.h>
|
2013-01-24 23:00:42 +00:00
|
|
|
#include <devioctl.h>
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
#include <stdio.h>
|
2013-01-24 23:00:42 +00:00
|
|
|
//#include <wchar.h>
|
|
|
|
//#include <tchar.h>
|
|
|
|
//#include <uuids.h>
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
#include <dvp.h>
|
|
|
|
#include <vptype.h>
|
|
|
|
#include <vpconfig.h>
|
|
|
|
#include <setupapi.h>
|
2010-03-02 16:27:50 +00:00
|
|
|
#include <vector>
|
2010-03-22 05:03:50 +00:00
|
|
|
#include <stack>
|
2010-03-22 21:40:29 +00:00
|
|
|
#include <list>
|
[KSPROXY]
- Recreate resource file with visual studio
- Fix compilation with msvc
- Copy extra format buffer in IEnumMediaTypes::Next
- Create the pin handle in IPin::ReceiveConnection
- Implement IPin::Disconnect for the input pin
- Enumerate media formats and pass it to constructor of CEnumMediaTypes
- Check if the passed format is null in CInputPin::CheckFormat
- Copy extra format buffer after KSDATAFORMAT in the pin connection request
- Implement KsGetMediaType function
- Implement ISpecifyPropertyPages, IKsPropertySet, IKsControl, IStreamBuilder, IKsPinFactory for the output pin
- Implement IPin::ReceiveConnection, IPin::EnumMediaTypes for output pin
- Stub interfaces for IReferenceClock, IMediaSeeking, IKsTopology, IKsAggregateControl, IKsClockPropertySet, ISpecifyPropertyPages, IPersistStream for proxy filter
- Implement IAMDeviceRemoval, IKsControl, IAMFilterMiscFlags, IKsPropertySet interface for proxy filter
svn path=/trunk/; revision=46116
2010-03-11 21:38:13 +00:00
|
|
|
#include <assert.h>
|
2010-03-15 16:22:41 +00:00
|
|
|
#include <ksmedia.h>
|
2010-02-23 15:25:59 +00:00
|
|
|
//#include <debug.h>
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
|
2010-03-13 17:36:30 +00:00
|
|
|
interface DECLSPEC_UUID("877E4351-6FEA-11D0-B863-00AA00A216A1") IKsClock;
|
|
|
|
|
|
|
|
#undef INTERFACE
|
|
|
|
#define INTERFACE IKsClock
|
|
|
|
|
|
|
|
DECLARE_INTERFACE_(IKsClock, IUnknown)
|
|
|
|
{
|
|
|
|
STDMETHOD_(HANDLE, KsGetClockHandle)(
|
|
|
|
THIS
|
|
|
|
) PURE;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
const GUID* riid;
|
|
|
|
LPFNCREATEINSTANCE lpfnCI;
|
|
|
|
} INTERFACE_TABLE;
|
|
|
|
|
|
|
|
/* classfactory.cpp */
|
|
|
|
|
|
|
|
IClassFactory *
|
|
|
|
CClassFactory_fnConstructor(
|
2021-09-13 01:33:14 +00:00
|
|
|
LPFNCREATEINSTANCE lpfnCI,
|
[KSPROXY]
- Stub interfaces for CBasicAudio, CKsClockForwarder, CVPConfig, CVPVBIConfig, CKsDataTypeHandler, CKsInterfaceHandler, CKsProxy, CKsQualityForwarder
- Implement KsSynchronousDeviceControl, KsOpenDefaultDevice, KsGetMultiplePinFactoryItems, KsGetMediaTypeCount, DllGetClassObject
svn path=/trunk/; revision=45608
2010-02-18 15:24:29 +00:00
|
|
|
PLONG pcRefDll,
|
|
|
|
IID * riidInst);
|
|
|
|
|
|
|
|
/* datatype.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsDataTypeHandler_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* interface.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsInterfaceHandler_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* clockforward.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsClockForwarder_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* qualityforward.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsQualityForwarder_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* cvpconfig.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CVPConfig_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* cvpvbiconfig.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CVPVBIConfig_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* basicaudio.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsBasicAudio_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* proxy.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsProxy_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
2010-03-02 20:18:29 +00:00
|
|
|
|
|
|
|
/* input_pin.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CInputPin_Constructor(
|
|
|
|
IBaseFilter * ParentFilter,
|
|
|
|
LPCWSTR PinName,
|
2010-03-03 03:27:25 +00:00
|
|
|
HANDLE hFilter,
|
|
|
|
ULONG PinId,
|
2010-03-04 17:34:22 +00:00
|
|
|
KSPIN_COMMUNICATION Communication,
|
2010-03-02 20:18:29 +00:00
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* output_pin.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
COutputPin_Constructor(
|
|
|
|
IBaseFilter * ParentFilter,
|
|
|
|
LPCWSTR PinName,
|
[KSPROXY]
- Recreate resource file with visual studio
- Fix compilation with msvc
- Copy extra format buffer in IEnumMediaTypes::Next
- Create the pin handle in IPin::ReceiveConnection
- Implement IPin::Disconnect for the input pin
- Enumerate media formats and pass it to constructor of CEnumMediaTypes
- Check if the passed format is null in CInputPin::CheckFormat
- Copy extra format buffer after KSDATAFORMAT in the pin connection request
- Implement KsGetMediaType function
- Implement ISpecifyPropertyPages, IKsPropertySet, IKsControl, IStreamBuilder, IKsPinFactory for the output pin
- Implement IPin::ReceiveConnection, IPin::EnumMediaTypes for output pin
- Stub interfaces for IReferenceClock, IMediaSeeking, IKsTopology, IKsAggregateControl, IKsClockPropertySet, ISpecifyPropertyPages, IPersistStream for proxy filter
- Implement IAMDeviceRemoval, IKsControl, IAMFilterMiscFlags, IKsPropertySet interface for proxy filter
svn path=/trunk/; revision=46116
2010-03-11 21:38:13 +00:00
|
|
|
ULONG PinId,
|
2010-03-19 15:39:08 +00:00
|
|
|
KSPIN_COMMUNICATION Communication,
|
2010-03-02 20:18:29 +00:00
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
2010-03-22 05:03:50 +00:00
|
|
|
HRESULT
|
|
|
|
STDMETHODCALLTYPE
|
|
|
|
COutputPin_SetState(
|
|
|
|
IPin * Pin,
|
|
|
|
KSSTATE State);
|
|
|
|
|
2010-03-02 20:18:29 +00:00
|
|
|
/* enumpins.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CEnumPins_fnConstructor(
|
|
|
|
std::vector<IPin*> Pins,
|
|
|
|
REFIID riid,
|
2010-03-03 03:27:25 +00:00
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* enum_mediatypes.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CEnumMediaTypes_fnConstructor(
|
|
|
|
ULONG MediaTypeCount,
|
|
|
|
AM_MEDIA_TYPE * MediaTypes,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
2010-03-13 17:36:30 +00:00
|
|
|
/* node.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsNode_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
HANDLE ParentHandle,
|
|
|
|
ULONG NodeId,
|
|
|
|
ACCESS_MASK DesiredAccess,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
2010-03-22 05:03:50 +00:00
|
|
|
/* allocator.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CKsAllocator_Constructor(
|
|
|
|
IUnknown * pUnkOuter,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
/* mediasample.cpp */
|
|
|
|
HRESULT
|
|
|
|
WINAPI
|
|
|
|
CMediaSample_Constructor(
|
2021-09-13 01:33:14 +00:00
|
|
|
IMemAllocator* Allocator,
|
2010-03-22 05:03:50 +00:00
|
|
|
BYTE* pBuffer,
|
|
|
|
ULONG BufferSize,
|
|
|
|
REFIID riid,
|
|
|
|
LPVOID * ppv);
|
|
|
|
|
|
|
|
|
[KSPROXY]
- Recreate resource file with visual studio
- Fix compilation with msvc
- Copy extra format buffer in IEnumMediaTypes::Next
- Create the pin handle in IPin::ReceiveConnection
- Implement IPin::Disconnect for the input pin
- Enumerate media formats and pass it to constructor of CEnumMediaTypes
- Check if the passed format is null in CInputPin::CheckFormat
- Copy extra format buffer after KSDATAFORMAT in the pin connection request
- Implement KsGetMediaType function
- Implement ISpecifyPropertyPages, IKsPropertySet, IKsControl, IStreamBuilder, IKsPinFactory for the output pin
- Implement IPin::ReceiveConnection, IPin::EnumMediaTypes for output pin
- Stub interfaces for IReferenceClock, IMediaSeeking, IKsTopology, IKsAggregateControl, IKsClockPropertySet, ISpecifyPropertyPages, IPersistStream for proxy filter
- Implement IAMDeviceRemoval, IKsControl, IAMFilterMiscFlags, IKsPropertySet interface for proxy filter
svn path=/trunk/; revision=46116
2010-03-11 21:38:13 +00:00
|
|
|
extern const GUID IID_IKsObject;
|
2010-03-15 13:11:31 +00:00
|
|
|
extern const GUID IID_IKsPinEx;
|
2010-03-16 11:12:19 +00:00
|
|
|
extern const GUID IID_IKsAggregateControl;
|
|
|
|
extern const GUID IID_IKsPinPipe;
|
|
|
|
extern const GUID IID_IKsPinFactory;
|
2010-03-22 05:03:50 +00:00
|
|
|
extern const GUID IID_IKsAllocatorEx;
|
2010-03-19 15:39:08 +00:00
|
|
|
extern KSPIN_INTERFACE StandardPinInterface;
|
|
|
|
extern KSPIN_MEDIUM StandardPinMedium;
|