Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799#ifndef __KSPROXY__#define __KSPROXY__
#ifdef __cplusplusextern "C" {#endif
#undef KSDDKAPI#ifdef _KSDDK_#define KSDDKAPI#else#define KSDDKAPI DECLSPEC_IMPORT#endif
#define STATIC_IID_IKsObject\ 0x423c13a2L, 0x2070, 0x11d0, {0x9e, 0xf7, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
#define STATIC_IID_IKsPinEx\ 0x7bb38260L, 0xd19c, 0x11d2, {0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e}
#define STATIC_IID_IKsPin\ 0xb61178d1L, 0xa2d9, 0x11cf, {0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
#define STATIC_IID_IKsPinPipe\ 0xe539cd90L, 0xa8b4, 0x11d1, {0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
#define STATIC_IID_IKsDataTypeHandler\ 0x5ffbaa02L, 0x49a3, 0x11d0, {0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
#define STATIC_IID_IKsDataTypeCompletion\ 0x827D1A0EL, 0x0F73, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
#define STATIC_IID_IKsInterfaceHandler\ 0xD3ABC7E0L, 0x9A61, 0x11D0, {0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
#define STATIC_IID_IKsClockPropertySet\ 0x5C5CBD84L, 0xE755, 0x11D0, {0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
#define STATIC_IID_IKsAllocator\ 0x8da64899L, 0xc0d9, 0x11d0, {0x84, 0x13, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a}
#define STATIC_IID_IKsAllocatorEx\ 0x091bb63aL, 0x603f, 0x11d1, {0xb0, 0x67, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
#ifndef STATIC_IID_IKsPropertySet#define STATIC_IID_IKsPropertySet\ 0x31EFAC30L, 0x515C, 0x11d0, {0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93}#endif
#define STATIC_IID_IKsTopology\ 0x28F54683L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
#ifndef STATIC_IID_IKsControl#define STATIC_IID_IKsControl\ 0x28F54685L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}#endif
#define STATIC_IID_IKsAggregateControl\ 0x7F40EAC0L, 0x3947, 0x11D2, {0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
#define STATIC_CLSID_Proxy \ 0x17CCA71BL, 0xECD7, 0x11D0, {0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
#ifdef _KS_
#if !defined(__cplusplus) || _MSC_VER < 1100
#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
DEFINE_GUIDEX(IID_IKsObject);DEFINE_GUIDEX(IID_IKsPin);DEFINE_GUIDEX(IID_IKsPinEx);DEFINE_GUIDEX(IID_IKsPinPipe);DEFINE_GUIDEX(IID_IKsDataTypeHandler);DEFINE_GUIDEX(IID_IKsDataTypeCompletion);DEFINE_GUIDEX(IID_IKsInterfaceHandler);DEFINE_GUIDEX(IID_IKsClockPropertySet);DEFINE_GUIDEX(IID_IKsAllocator);DEFINE_GUIDEX(IID_IKsAllocatorEx);#endif
#define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY
typedef enum{ KsAllocatorMode_User, KsAllocatorMode_Kernel}KSALLOCATORMODE;
typedef enum{ FramingProp_Uninitialized, FramingProp_None, FramingProp_Old, FramingProp_Ex}FRAMING_PROP;
typedef FRAMING_PROP *PFRAMING_PROP;
typedef enum{ Framing_Cache_Update, Framing_Cache_ReadLast, Framing_Cache_ReadOrig, Framing_Cache_Write}FRAMING_CACHE_OPS;
typedef struct{ LONGLONG MinTotalNominator; LONGLONG MaxTotalNominator; LONGLONG TotalDenominator;}OPTIMAL_WEIGHT_TOTALS;
typedef struct IPin IPin;typedef struct IKsPin IKsPin;typedef struct IKsAllocator IKsAllocator;typedef struct IKsAllocatorEx IKsAllocatorEx;
#define AllocatorStrategy_DontCare 0#define AllocatorStrategy_MinimizeNumberOfFrames 1#define AllocatorStrategy_MinimizeFrameSize 2#define AllocatorStrategy_MinimizeNumberOfAllocators 4#define AllocatorStrategy_MaximizeSpeed 8
#define PipeFactor_None 0x0#define PipeFactor_UserModeUpstream 0x1#define PipeFactor_UserModeDownstream 0x2#define PipeFactor_MemoryTypes 0x4#define PipeFactor_Flags 0x8#define PipeFactor_PhysicalRanges 0x10#define PipeFactor_OptimalRanges 0x20#define PipeFactor_FixedCompression 0x40#define PipeFactor_UnknownCompression 0x80#define PipeFactor_Buffers 0x100#define PipeFactor_Align 0x200#define PipeFactor_PhysicalEnd 0x400#define PipeFactor_LogicalEnd 0x800
typedef enum{ PipeState_DontCare, PipeState_RangeNotFixed, PipeState_RangeFixed, PipeState_CompressionUnknown, PipeState_Finalized}PIPE_STATE;
typedef struct _PIPE_DIMENSIONS{ KS_COMPRESSION AllocatorPin; KS_COMPRESSION MaxExpansionPin; KS_COMPRESSION EndPin;}PIPE_DIMENSIONS, *PPIPE_DIMENSIONS;
typedef enum{ Pipe_Allocator_None, Pipe_Allocator_FirstPin, Pipe_Allocator_LastPin, Pipe_Allocator_MiddlePin}PIPE_ALLOCATOR_PLACE, *PPIPE_ALLOCATOR_PLACE;
typedef enum{ KS_MemoryTypeDontCare = 0, KS_MemoryTypeKernelPaged, KS_MemoryTypeKernelNonPaged, KS_MemoryTypeDeviceHostMapped, KS_MemoryTypeDeviceSpecific, KS_MemoryTypeUser, KS_MemoryTypeAnyHost}KS_LogicalMemoryType, *PKS_LogicalMemoryType;
typedef struct _PIPE_TERMINATION { ULONG Flags; ULONG OutsideFactors; ULONG Weigth; KS_FRAMING_RANGE PhysicalRange; KS_FRAMING_RANGE_WEIGHTED OptimalRange; KS_COMPRESSION Compression;}PIPE_TERMINATION;
typedef struct _ALLOCATOR_PROPERTIES_EX{ long cBuffers; long cbBuffer; long cbAlign; long cbPrefix;
GUID MemoryType; GUID BusType; PIPE_STATE State; PIPE_TERMINATION Input; PIPE_TERMINATION Output; ULONG Strategy; ULONG Flags; ULONG Weight; KS_LogicalMemoryType LogicalMemoryType; PIPE_ALLOCATOR_PLACE AllocatorPlace; PIPE_DIMENSIONS Dimensions; KS_FRAMING_RANGE PhysicalRange; IKsAllocatorEx* PrevSegment; ULONG CountNextSegments; IKsAllocatorEx** NextSegments; ULONG InsideFactors; ULONG NumberPins;}ALLOCATOR_PROPERTIES_EX;
typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX;
#ifdef __STREAMS__
struct DECLSPEC_UUID("5C5CBD84-E755-11D0-AC18-00A0C9223196") IKsClockPropertySet;#undef INTERFACE#define INTERFACE IKsClockPropertySetDECLARE_INTERFACE_(IKsClockPropertySet, IUnknown){ STDMETHOD(KsGetTime)( THIS_ LONGLONG* Time ) PURE; STDMETHOD(KsSetTime)( THIS_ LONGLONG Time ) PURE; STDMETHOD(KsGetPhysicalTime)( THIS_ LONGLONG* Time ) PURE; STDMETHOD(KsSetPhysicalTime)( THIS_ LONGLONG Time ) PURE; STDMETHOD(KsGetCorrelatedTime)( THIS_ KSCORRELATED_TIME* CorrelatedTime ) PURE; STDMETHOD(KsSetCorrelatedTime)( THIS_ KSCORRELATED_TIME* CorrelatedTime ) PURE; STDMETHOD(KsGetCorrelatedPhysicalTime)( THIS_ KSCORRELATED_TIME* CorrelatedTime ) PURE; STDMETHOD(KsSetCorrelatedPhysicalTime)( THIS_ KSCORRELATED_TIME* CorrelatedTime ) PURE; STDMETHOD(KsGetResolution)( THIS_ KSRESOLUTION* Resolution ) PURE; STDMETHOD(KsGetState)( THIS_ KSSTATE* State ) PURE;};
interface DECLSPEC_UUID("8da64899-c0d9-11d0-8413-0000f822fe8a") IKsAllocator;#undef INTERFACE#define INTERFACE IKsAllocatorDECLARE_INTERFACE_(IKsAllocator, IUnknown){ STDMETHOD_(HANDLE, KsGetAllocatorHandle)( THIS ) PURE; STDMETHOD_(KSALLOCATORMODE, KsGetAllocatorMode)( THIS ) PURE; STDMETHOD(KsGetAllocatorStatus)( THIS_ PKSSTREAMALLOCATOR_STATUS AllocatorStatus ) PURE; STDMETHOD_(VOID, KsSetAllocatorMode)( THIS_ KSALLOCATORMODE Mode ) PURE;};
interface DECLSPEC_UUID("091bb63a-603f-11d1-b067-00a0c9062802") IKsAllocatorEx;#undef INTERFACE#define INTERFACE IKsAllocatorExDECLARE_INTERFACE_(IKsAllocatorEx, IKsAllocator){ STDMETHOD_(PALLOCATOR_PROPERTIES_EX, KsGetProperties)( THIS ) PURE; STDMETHOD_(VOID, KsSetProperties)( THIS_ PALLOCATOR_PROPERTIES_EX ) PURE; STDMETHOD_(VOID, KsSetAllocatorHandle)( THIS_ HANDLE AllocatorHandle ) PURE; STDMETHOD_(HANDLE, KsCreateAllocatorAndGetHandle)( THIS_ IKsPin* KsPin ) PURE;};
typedef enum { KsPeekOperation_PeekOnly, KsPeekOperation_AddRef} KSPEEKOPERATION;
typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;
interface DECLSPEC_UUID("b61178d1-a2d9-11cf-9e53-00aa00a216a1") IKsPin;
#undef INTERFACE#define INTERFACE IKsPinDECLARE_INTERFACE_(IKsPin, IUnknown){ STDMETHOD(KsQueryMediums)( THIS_ PKSMULTIPLE_ITEM* MediumList ) PURE; STDMETHOD(KsQueryInterfaces)( THIS_ PKSMULTIPLE_ITEM* InterfaceList ) PURE; STDMETHOD(KsCreateSinkPinHandle)( THIS_ KSPIN_INTERFACE& Interface, KSPIN_MEDIUM& Medium ) PURE; STDMETHOD(KsGetCurrentCommunication)( THIS_ KSPIN_COMMUNICATION *Communication, KSPIN_INTERFACE *Interface, KSPIN_MEDIUM *Medium ) PURE; STDMETHOD(KsPropagateAcquire)( THIS ) PURE; STDMETHOD(KsDeliver)( THIS_ IMediaSample* Sample, ULONG Flags ) PURE; STDMETHOD(KsMediaSamplesCompleted)( THIS_ PKSSTREAM_SEGMENT StreamSegment ) PURE; STDMETHOD_(IMemAllocator *, KsPeekAllocator)( THIS_ KSPEEKOPERATION Operation ) PURE; STDMETHOD(KsReceiveAllocator)( THIS_ IMemAllocator *MemAllocator ) PURE; STDMETHOD(KsRenegotiateAllocator)( THIS ) PURE; STDMETHOD_(LONG, KsIncrementPendingIoCount)( THIS ) PURE; STDMETHOD_(LONG, KsDecrementPendingIoCount)( THIS ) PURE; STDMETHOD(KsQualityNotify)( THIS_ ULONG Proportion, REFERENCE_TIME TimeDelta ) PURE;};
interface DECLSPEC_UUID("7bb38260-d19c-11d2-b38a-00a0c95ec22e") IKsPinEx;#undef INTERFACE#define INTERFACE IKsPinExDECLARE_INTERFACE_(IKsPinEx, IKsPin){ STDMETHOD_(VOID, KsNotifyError)( THIS_ IMediaSample* Sample, HRESULT hr ) PURE;};
interface DECLSPEC_UUID("e539cd90-a8b4-11d1-8189-00a0c9062802") IKsPinPipe;#undef INTERFACE#define INTERFACE IKsPinPipeDECLARE_INTERFACE_(IKsPinPipe, IUnknown){ STDMETHOD(KsGetPinFramingCache)( THIS_ PKSALLOCATOR_FRAMING_EX *FramingEx, PFRAMING_PROP FramingProp, FRAMING_CACHE_OPS Option ) PURE; STDMETHOD(KsSetPinFramingCache)( THIS_ PKSALLOCATOR_FRAMING_EX FramingEx, PFRAMING_PROP FramingProp, FRAMING_CACHE_OPS Option ) PURE; STDMETHOD_(IPin*, KsGetConnectedPin)( THIS ) PURE; STDMETHOD_(IKsAllocatorEx*, KsGetPipe)( THIS_ KSPEEKOPERATION Operation ) PURE; STDMETHOD(KsSetPipe)( THIS_ IKsAllocatorEx *KsAllocator ) PURE; STDMETHOD_(ULONG, KsGetPipeAllocatorFlag)( THIS ) PURE; STDMETHOD(KsSetPipeAllocatorFlag)( THIS_ ULONG Flag ) PURE; STDMETHOD_(GUID, KsGetPinBusCache)( THIS ) PURE; STDMETHOD(KsSetPinBusCache)( THIS_ GUID Bus ) PURE;
STDMETHOD_(PWCHAR, KsGetPinName)( THIS ) PURE; STDMETHOD_(PWCHAR, KsGetFilterName)( THIS ) PURE;};
interface DECLSPEC_UUID("CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory;#undef INTERFACE#define INTERFACE IKsPinFactoryDECLARE_INTERFACE_(IKsPinFactory, IUnknown){ STDMETHOD(KsPinFactory)( THIS_ ULONG* PinFactory ) PURE;};
typedef enum { KsIoOperation_Write, KsIoOperation_Read} KSIOOPERATION;
interface DECLSPEC_UUID("5ffbaa02-49a3-11d0-9f36-00aa00a216a1") IKsDataTypeHandler;#undef INTERFACE#define INTERFACE IKsDataTypeHandlerDECLARE_INTERFACE_(IKsDataTypeHandler, IUnknown){ STDMETHOD(KsCompleteIoOperation)( THIS_ IMediaSample *Sample, PVOID StreamHeader, KSIOOPERATION IoOperation, BOOL Cancelled ) PURE; STDMETHOD(KsIsMediaTypeInRanges)( THIS_ PVOID DataRanges ) PURE; STDMETHOD(KsPrepareIoOperation)( THIS_ IMediaSample *Sample, PVOID StreamHeader, KSIOOPERATION IoOperation ) PURE; STDMETHOD(KsQueryExtendedSize)( THIS_ ULONG* ExtendedSize ) PURE; STDMETHOD(KsSetMediaType)( THIS_ const AM_MEDIA_TYPE* AmMediaType ) PURE;};
interface DECLSPEC_UUID("827D1A0E-0F73-11D2-B27A-00A0C9223196") IKsDataTypeCompletion;#undef INTERFACE#define INTERFACE IKsDataTypeCompletionDECLARE_INTERFACE_(IKsDataTypeCompletion, IUnknown){ STDMETHOD(KsCompleteMediaType)( THIS_ HANDLE FilterHandle, ULONG PinFactoryId, AM_MEDIA_TYPE* AmMediaType ) PURE;};
interface DECLSPEC_UUID("D3ABC7E0-9A61-11d0-A40D-00A0C9223196") IKsInterfaceHandler;#undef INTERFACE#define INTERFACE IKsInterfaceHandlerDECLARE_INTERFACE_(IKsInterfaceHandler, IUnknown){ STDMETHOD(KsSetPin)( THIS_ IKsPin *KsPin ) PURE; STDMETHOD(KsProcessMediaSamples)( THIS_ IKsDataTypeHandler *KsDataTypeHandler, IMediaSample** SampleList, PLONG SampleCount, KSIOOPERATION IoOperation, PKSSTREAM_SEGMENT *StreamSegment ) PURE; STDMETHOD(KsCompleteIo)( THIS_ PKSSTREAM_SEGMENT StreamSegment ) PURE;};
typedef struct _KSSTREAM_SEGMENT{ IKsInterfaceHandler *KsInterfaceHandler; IKsDataTypeHandler *KsDataTypeHandler; KSIOOPERATION IoOperation; HANDLE CompletionEvent;
}KSSTREAM_SEGMENT;
interface DECLSPEC_UUID("423c13a2-2070-11d0-9ef7-00aa00a216a1") IKsObject;#undef INTERFACE#define INTERFACE IKsObjectDECLARE_INTERFACE_(IKsObject, IUnknown){ STDMETHOD_(HANDLE, KsGetObjectHandle)( THIS ) PURE;};
interface DECLSPEC_UUID("97ebaacb-95bd-11d0-a3ea-00a0c9223196") IKsQualityForwarder;#undef INTERFACE#define INTERFACE IKsQualityForwarderDECLARE_INTERFACE_(IKsQualityForwarder, IKsObject){ STDMETHOD_(VOID, KsFlushClient)( THIS_ IKsPin* Pin ) PURE;};
#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
interface DECLSPEC_UUID("412bd695-f84b-46c1-ac73-54196dbc8fa7") IKsNotifyEvent;#undef INTERFACE#define INTERFACE IKsNotifyEventDECLARE_INTERFACE_(IKsNotifyEvent, IUnknown){ STDMETHOD(KsNotifyEvent)( THIS_ ULONG Event, ULONG_PTR lParam1, ULONG_PTR lParam2 ) PURE;};
#endif
KSDDKAPIHRESULTWINAPIKsResolveRequiredAttributes( PKSDATARANGE DataRange, PKSMULTIPLE_ITEM Attributes OPTIONAL);
KSDDKAPIHRESULTWINAPIKsOpenDefaultDevice( REFGUID Category, ACCESS_MASK Access, PHANDLE DeviceHandle);
KSDDKAPIHRESULTWINAPIKsSynchronousDeviceControl( HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned);
KSDDKAPIHRESULTWINAPIKsGetMultiplePinFactoryItems( HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID* Items);
KSDDKAPIHRESULTWINAPIKsGetMediaTypeCount( HANDLE FilterHandle, ULONG PinFactoryId, ULONG* MediaTypeCount);
KSDDKAPIHRESULTWINAPIKsGetMediaType( int Position, AM_MEDIA_TYPE* AmMediaType, HANDLE FilterHandle, ULONG PinFactoryId);
#endif
#ifndef _IKsPropertySet_#if !defined(__cplusplus) || _MSC_VER < 1100DEFINE_GUIDEX(IID_IKsPropertySet);#endif#endif
#ifndef _IKsControl_#if !defined(__cplusplus) || _MSC_VER < 1100DEFINE_GUIDEX(IID_IKsControl);#endif#endif
#if !defined(__cplusplus) || _MSC_VER < 1100DEFINE_GUIDEX(IID_IKsAggregateControl);#endif
#ifndef _IKsTopology_#if !defined(__cplusplus) || _MSC_VER < 1100DEFINE_GUIDEX(IID_IKsTopology);#endif#endif
DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196", CLSID_Proxy);#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy)
#else
#ifndef _IKsPropertySet_#if !defined(__cplusplus) || _MSC_VER < 1100DEFINE_GUID(IID_IKsPropertySet, STATIC_IID_IKsPropertySet);#endif#endif
#if !defined(__cplusplus) || _MSC_VER < 1100DEFINE_GUID(CLSID_Proxy, STATIC_CLSID_Proxy);#elseDECLSPEC_UUID("17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy;#endif
#endif
#ifndef _IKsPropertySet_#define _IKsPropertySet_
#define KSPROPERTY_SUPPORT_GET 1#define KSPROPERTY_SUPPORT_SET 2
interface DECLSPEC_UUID("31EFAC30-515C-11d0-A9AA-00aa0061be93")#undef INTERFACE#define INTERFACE IKsPropertySetDECLARE_INTERFACE_(IKsPropertySet, IUnknown){ STDMETHOD(Set)( THIS_ IN REFGUID PropSet, IN ULONG Id, IN LPVOID InstanceData, IN ULONG InstanceLength, IN LPVOID PropertyData, IN ULONG DataLength ) PURE;
STDMETHOD(Get)( THIS_ IN REFGUID PropSet, IN ULONG Id, IN LPVOID InstanceData, IN ULONG InstanceLength, OUT LPVOID PropertyData, IN ULONG DataLength, OUT ULONG* BytesReturned ) PURE;
STDMETHOD(QuerySupported)( THIS_ IN REFGUID PropSet, IN ULONG Id, OUT ULONG* TypeSupport ) PURE;};
#endif
#ifndef _IKsControl_#define _IKsControl_
DEFINE_GUID(IID_IKsControl, 28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
interface DECLSPEC_UUID("28F54685-06FD-11D2-B27A-00A0C9223196") IKsControl;#undef INTERFACE#define INTERFACE IKsControlDECLARE_INTERFACE_(IKsControl, IUnknown){ STDMETHOD(KsProperty)( THIS_ IN PKSPROPERTY Property, IN ULONG PropertyLength, IN OUT LPVOID PropertyData, IN ULONG DataLength, OUT ULONG* BytesReturned ) PURE; STDMETHOD(KsMethod)( THIS_ IN PKSMETHOD Method, IN ULONG MethodLength, IN OUT LPVOID MethodData, IN ULONG DataLength, OUT ULONG* BytesReturned ) PURE; STDMETHOD(KsEvent)( THIS_ IN PKSEVENT Event OPTIONAL, IN ULONG EventLength, IN OUT LPVOID EventData, IN ULONG DataLength, OUT ULONG* BytesReturned ) PURE;};
#endif
DEFINE_GUID(IID_IKsAggregateControl, 0x7F40EAC0, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
#undef INTERFACE#define INTERFACE IKsAggregateControlDECLARE_INTERFACE_(IKsAggregateControl, IUnknown){ STDMETHOD(KsAddAggregate)( THIS_ IN REFGUID AggregateClass ) PURE; STDMETHOD(KsRemoveAggregate)( THIS_ IN REFGUID AggregateClass ) PURE;};
#ifndef _IKsTopology_#define _IKsTopology_
DEFINE_GUID(IID_IKsTopology, 0x28F54683, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
#undef INTERFACE#define INTERFACE IKsTopologyDECLARE_INTERFACE_(IKsTopology, IUnknown){ STDMETHOD(CreateNodeInstance)( THIS_ IN ULONG NodeId, IN ULONG Flags, IN ACCESS_MASK DesiredAccess, IN IUnknown* UnkOuter OPTIONAL, IN REFGUID InterfaceId, OUT LPVOID* Interface ) PURE;};
#endif
#ifdef __cplusplus}#endif
#endif