diff options
Diffstat (limited to '')
-rw-r--r-- | sdk/dx8sdk/Include/ksproxy.h | 858 |
1 files changed, 0 insertions, 858 deletions
diff --git a/sdk/dx8sdk/Include/ksproxy.h b/sdk/dx8sdk/Include/ksproxy.h deleted file mode 100644 index 62be50ec..00000000 --- a/sdk/dx8sdk/Include/ksproxy.h +++ /dev/null @@ -1,858 +0,0 @@ -/*++ - -Copyright (c) Microsoft Corporation. All rights reserved. - -Module Name: - - ksproxy.h - -Abstract: - - Interface definitions for WDM-CSA proxy filters. - ---*/ - -#ifndef __KSPROXY__ -#define __KSPROXY__ - -#ifdef __cplusplus -extern "C" { -#endif - -#undef KSDDKAPI -#ifdef _KSDDK_ -#define KSDDKAPI -#else // !_KSDDK_ -#define KSDDKAPI DECLSPEC_IMPORT -#endif // _KSDDK_ - -#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 // STATIC_IID_IKsPropertySet - -#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 // STATIC_IID_IKsControl - -#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_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); - -#define IID_IKsQualityForwarder KSCATEGORY_QUALITY -#endif // !defined(__cplusplus) || _MSC_VER < 1100 - -#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, // request to bypass cache when read/write - Framing_Cache_ReadLast, - Framing_Cache_ReadOrig, - Framing_Cache_Write -} FRAMING_CACHE_OPS; - - -typedef struct { - LONGLONG MinTotalNominator; - LONGLONG MaxTotalNominator; - LONGLONG TotalDenominator; -} OPTIMAL_WEIGHT_TOTALS; - -// forward declaration -typedef struct IPin IPin; -typedef struct IKsPin IKsPin; -typedef struct IKsAllocator IKsAllocator; -typedef struct IKsAllocatorEx IKsAllocatorEx; - - -// -// allocators strategy is defined by graph manager -// -#define AllocatorStrategy_DontCare 0 - -// -// what to optimize -// -#define AllocatorStrategy_MinimizeNumberOfFrames 0x00000001 -#define AllocatorStrategy_MinimizeFrameSize 0x00000002 -#define AllocatorStrategy_MinimizeNumberOfAllocators 0x00000004 -#define AllocatorStrategy_MaximizeSpeed 0x00000008 - -// -// factors (flags) defining the Pipes properties -// -#define PipeFactor_None 0 -#define PipeFactor_UserModeUpstream 0x00000001 -#define PipeFactor_UserModeDownstream 0x00000002 -#define PipeFactor_MemoryTypes 0x00000004 -#define PipeFactor_Flags 0x00000008 -#define PipeFactor_PhysicalRanges 0x00000010 -#define PipeFactor_OptimalRanges 0x00000020 -#define PipeFactor_FixedCompression 0x00000040 -#define PipeFactor_UnknownCompression 0x00000080 - -#define PipeFactor_Buffers 0x00000100 -#define PipeFactor_Align 0x00000200 - -#define PipeFactor_PhysicalEnd 0x00000400 -#define PipeFactor_LogicalEnd 0x00000800 - - - -typedef enum { - PipeState_DontCare, - PipeState_RangeNotFixed, - PipeState_RangeFixed, - PipeState_CompressionUnknown, - PipeState_Finalized -} PIPE_STATE; - - -// -// pipe dimensions relative to BeginPin. -// - -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; - -typedef 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; - -typedef KS_LogicalMemoryType *PKS_LogicalMemoryType; - - - -typedef struct _PIPE_TERMINATION { - ULONG Flags; - ULONG OutsideFactors; - ULONG Weigth; // outside weight - KS_FRAMING_RANGE PhysicalRange; - KS_FRAMING_RANGE_WEIGHTED OptimalRange; - KS_COMPRESSION Compression; // relative to the connected pin on a neighboring filter. -} PIPE_TERMINATION; - - -// -// extended allocator properties -// -typedef struct _ALLOCATOR_PROPERTIES_EX - { - long cBuffers; - long cbBuffer; - long cbAlign; - long cbPrefix; -// new part - GUID MemoryType; - GUID BusType; // one of the buses this pipe is using - 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; // on allocator pin - IKsAllocatorEx* PrevSegment; // doubly-linked list of KS allocators - ULONG CountNextSegments; // possible multiple dependent pipes - IKsAllocatorEx** NextSegments; - ULONG InsideFactors; // existing factors (different from "don't care") - 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 IKsClockPropertySet -DECLARE_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 IKsAllocator -DECLARE_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 IKsAllocatorEx -DECLARE_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 IKsPin -DECLARE_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 IKsPinEx -DECLARE_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 IKsPinPipe -DECLARE_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; -// -// very useful methods for tracing. -// - STDMETHOD_(PWCHAR, KsGetPinName)( - THIS - ) PURE; - STDMETHOD_(PWCHAR, KsGetFilterName)( - THIS - ) PURE; -}; - - -interface DECLSPEC_UUID("CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory; -#undef INTERFACE -#define INTERFACE IKsPinFactory -DECLARE_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 IKsDataTypeHandler -DECLARE_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 IKsDataTypeCompletion -DECLARE_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 IKsInterfaceHandler -DECLARE_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; -}; - - -// -// This structure definition is the common header required by the proxy to -// dispatch the stream segment to the interface handler. Interface handlers -// will create extended structures to include other information such as -// media samples, extended header size and so on. -// - -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 IKsObject -DECLARE_INTERFACE_(IKsObject, IUnknown) -{ - STDMETHOD_(HANDLE, KsGetObjectHandle)( - THIS - ) PURE; -}; - -interface DECLSPEC_UUID("97ebaacb-95bd-11d0-a3ea-00a0c9223196") IKsQualityForwarder; -#undef INTERFACE -#define INTERFACE IKsQualityForwarder -DECLARE_INTERFACE_(IKsQualityForwarder, IKsObject) -{ - STDMETHOD_(VOID, KsFlushClient)( - THIS_ - IKsPin* Pin - ) PURE; -}; - -interface DECLSPEC_UUID("412bd695-f84b-46c1-ac73-54196dbc8fa7") IKsNotifyEvent; -#undef INTERFACE -#define INTERFACE IKsNotifyEvent -DECLARE_INTERFACE_(IKsNotifyEvent, IUnknown) -{ - STDMETHOD(KsNotifyEvent)( - THIS_ - ULONG Event, - ULONG_PTR lParam1, - ULONG_PTR lParam2 - ) PURE; -}; - -KSDDKAPI -HRESULT -WINAPI -KsResolveRequiredAttributes( - PKSDATARANGE DataRange, - PKSMULTIPLE_ITEM Attributes OPTIONAL - ); - -KSDDKAPI -HRESULT -WINAPI -KsOpenDefaultDevice( - REFGUID Category, - ACCESS_MASK Access, - PHANDLE DeviceHandle - ); -KSDDKAPI -HRESULT -WINAPI -KsSynchronousDeviceControl( - HANDLE Handle, - ULONG IoControl, - PVOID InBuffer, - ULONG InLength, - PVOID OutBuffer, - ULONG OutLength, - PULONG BytesReturned - ); -KSDDKAPI -HRESULT -WINAPI -KsGetMultiplePinFactoryItems( - HANDLE FilterHandle, - ULONG PinFactoryId, - ULONG PropertyId, - PVOID* Items - ); -KSDDKAPI -HRESULT -WINAPI -KsGetMediaTypeCount( - HANDLE FilterHandle, - ULONG PinFactoryId, - ULONG* MediaTypeCount - ); -KSDDKAPI -HRESULT -WINAPI -KsGetMediaType( - int Position, - AM_MEDIA_TYPE* AmMediaType, - HANDLE FilterHandle, - ULONG PinFactoryId - ); - -#endif // __STREAMS__ - -#ifndef _IKsPropertySet_ -#if !defined(__cplusplus) || _MSC_VER < 1100 -DEFINE_GUIDEX(IID_IKsPropertySet); -#endif // !defined(__cplusplus) || _MSC_VER < 1100 -#endif // _IKsPropertySet_ - -#ifndef _IKsControl_ -#if !defined(__cplusplus) || _MSC_VER < 1100 -DEFINE_GUIDEX(IID_IKsControl); -#endif // !defined(__cplusplus) || _MSC_VER < 1100 -#endif // _IKsControl_ - -#if !defined(__cplusplus) || _MSC_VER < 1100 -DEFINE_GUIDEX(IID_IKsAggregateControl); -#endif // !defined(__cplusplus) || _MSC_VER < 1100 - -#ifndef _IKsTopology_ -#if !defined(__cplusplus) || _MSC_VER < 1100 -DEFINE_GUIDEX(IID_IKsTopology); -#endif // !defined(__cplusplus) || _MSC_VER < 1100 -#endif // _IKsTopology_ - -DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196", CLSID_Proxy); -#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy) - -#else // !_KS_ - -#ifndef _IKsPropertySet_ -#if !defined(__cplusplus) || _MSC_VER < 1100 -DEFINE_GUID(IID_IKsPropertySet, STATIC_IID_IKsPropertySet); -#endif // !defined(__cplusplus) || _MSC_VER < 1100 -#endif // _IKsPropertySet_ - -#if !defined(__cplusplus) || _MSC_VER < 1100 -DEFINE_GUID(CLSID_Proxy, STATIC_CLSID_Proxy); -#else // defined(__cplusplus) && _MSC_VER >= 1100 -DECLSPEC_UUID("17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy; -#endif // defined(__cplusplus) && _MSC_VER >= 1100 - -#endif // !_KS_ - -#ifndef _IKsPropertySet_ -#define _IKsPropertySet_ - -#define KSPROPERTY_SUPPORT_GET 1 -#define KSPROPERTY_SUPPORT_SET 2 - -#ifdef DECLARE_INTERFACE_ - -interface DECLSPEC_UUID("31EFAC30-515C-11d0-A9AA-00aa0061be93") IKsPropertySet; -#undef INTERFACE -#define INTERFACE IKsPropertySet -DECLARE_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 // DECLARE_INTERFACE_ - -#endif // _IKsPropertySet_ - -#ifndef _IKsControl_ -#define _IKsControl_ - -#ifdef DECLARE_INTERFACE_ - -interface DECLSPEC_UUID("28F54685-06FD-11D2-B27A-00A0C9223196") IKsControl; -#undef INTERFACE -#define INTERFACE IKsControl -DECLARE_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 // DECLARE_INTERFACE_ - -#endif // _IKsControl_ - - -#ifdef DECLARE_INTERFACE_ - -interface DECLSPEC_UUID("7F40EAC0-3947-11D2-874E-00A0C9223196") IKsAggregateControl; -#undef INTERFACE -#define INTERFACE IKsAggregateControl -DECLARE_INTERFACE_(IKsAggregateControl, IUnknown) -{ - STDMETHOD(KsAddAggregate)( - THIS_ - IN REFGUID AggregateClass - ) PURE; - STDMETHOD(KsRemoveAggregate)( - THIS_ - IN REFGUID AggregateClass - ) PURE; -}; - -#endif // DECLARE_INTERFACE_ - -#ifndef _IKsTopology_ -#define _IKsTopology_ - -#ifdef DECLARE_INTERFACE_ - -interface DECLSPEC_UUID("28F54683-06FD-11D2-B27A-00A0C9223196") IKsTopology; -#undef INTERFACE -#define INTERFACE IKsTopology -DECLARE_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 // DECLARE_INTERFACE_ - -#endif // _IKsTopology_ - -#ifdef __cplusplus -} -#endif // __cplusplus - -#endif // __KSPROXY__ |