Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/ksproxy.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef __KSPROXY__ | |
| 7 #define __KSPROXY__ | |
| 8 | |
| 9 #ifdef __cplusplus | |
| 10 extern "C" { | |
| 11 #endif | |
| 12 | |
| 13 #undef KSDDKAPI | |
| 14 #ifdef _KSDDK_ | |
| 15 #define KSDDKAPI | |
| 16 #else | |
| 17 #define KSDDKAPI DECLSPEC_IMPORT | |
| 18 #endif | |
| 19 | |
| 20 #define STATIC_IID_IKsObject 0x423c13a2L,0x2070,0x11d0,0x9e,0xf7,0x00,0xaa,0x00,0xa2,0x16,0xa1 | |
| 21 #define STATIC_IID_IKsPinEx 0x7bb38260L,0xd19c,0x11d2,0xb3,0x8a,0x00,0xa0,0xc9,0x5e,0xc2,0x2e | |
| 22 #define STATIC_IID_IKsPin 0xb61178d1L,0xa2d9,0x11cf,0x9e,0x53,0x00,0xaa,0x00,0xa2,0x16,0xa1 | |
| 23 #define STATIC_IID_IKsPinPipe 0xe539cd90L,0xa8b4,0x11d1,0x81,0x89,0x00,0xa0,0xc9,0x06,0x28,0x02 | |
| 24 #define STATIC_IID_IKsDataTypeHandler 0x5ffbaa02L,0x49a3,0x11d0,0x9f,0x36,0x00,0xaa,0x00,0xa2,0x16,0xa1 | |
| 25 #define STATIC_IID_IKsDataTypeCompletion 0x827D1A0EL,0x0F73,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 26 #define STATIC_IID_IKsInterfaceHandler 0xD3ABC7E0L,0x9A61,0x11D0,0xA4,0x0D,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 27 #define STATIC_IID_IKsClockPropertySet 0x5C5CBD84L,0xE755,0x11D0,0xAC,0x18,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 28 #define STATIC_IID_IKsAllocator 0x8da64899L,0xc0d9,0x11d0,0x84,0x13,0x00,0x00,0xf8,0x22,0xfe,0x8a | |
| 29 #define STATIC_IID_IKsAllocatorEx 0x091bb63aL,0x603f,0x11d1,0xb0,0x67,0x00,0xa0,0xc9,0x06,0x28,0x02 | |
| 30 #ifndef STATIC_IID_IKsPropertySet | |
| 31 #define STATIC_IID_IKsPropertySet 0x31EFAC30L,0x515C,0x11d0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93 | |
| 32 #endif | |
| 33 #define STATIC_IID_IKsTopology 0x28F54683L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 34 #ifndef STATIC_IID_IKsControl | |
| 35 #define STATIC_IID_IKsControl 0x28F54685L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 36 #endif | |
| 37 #define STATIC_IID_IKsAggregateControl 0x7F40EAC0L,0x3947,0x11D2,0x87,0x4E,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 38 #define STATIC_CLSID_Proxy 0x17CCA71BL,0xECD7,0x11D0,0xB9,0x08,0x00,0xA0,0xC9,0x22,0x31,0x96 | |
| 39 #ifdef _KS_ | |
| 40 DEFINE_GUIDEX(IID_IKsObject); | |
| 41 DEFINE_GUIDEX(IID_IKsPin); | |
| 42 DEFINE_GUIDEX(IID_IKsPinEx); | |
| 43 DEFINE_GUIDEX(IID_IKsPinPipe); | |
| 44 DEFINE_GUIDEX(IID_IKsDataTypeHandler); | |
| 45 DEFINE_GUIDEX(IID_IKsDataTypeCompletion); | |
| 46 DEFINE_GUIDEX(IID_IKsInterfaceHandler); | |
| 47 DEFINE_GUIDEX(IID_IKsClockPropertySet); | |
| 48 DEFINE_GUIDEX(IID_IKsAllocator); | |
| 49 DEFINE_GUIDEX(IID_IKsAllocatorEx); | |
| 50 #define IID_IKsQualityForwarder KSCATEGORY_QUALITY | |
| 51 #define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY | |
| 52 | |
| 53 typedef enum { | |
| 54 KsAllocatorMode_User,KsAllocatorMode_Kernel | |
| 55 } KSALLOCATORMODE; | |
| 56 | |
| 57 typedef enum { | |
| 58 FramingProp_Uninitialized,FramingProp_None,FramingProp_Old,FramingProp_Ex | |
| 59 } FRAMING_PROP; | |
| 60 | |
| 61 typedef FRAMING_PROP *PFRAMING_PROP; | |
| 62 | |
| 63 typedef enum { | |
| 64 Framing_Cache_Update,Framing_Cache_ReadLast,Framing_Cache_ReadOrig,Framing_Cache_Write | |
| 65 } FRAMING_CACHE_OPS; | |
| 66 | |
| 67 typedef struct { | |
| 68 LONGLONG MinTotalNominator; | |
| 69 LONGLONG MaxTotalNominator; | |
| 70 LONGLONG TotalDenominator; | |
| 71 } OPTIMAL_WEIGHT_TOTALS; | |
| 72 | |
| 73 typedef struct IPin IPin; | |
| 74 typedef struct IKsPin IKsPin; | |
| 75 typedef struct IKsAllocator IKsAllocator; | |
| 76 typedef struct IKsAllocatorEx IKsAllocatorEx; | |
| 77 | |
| 78 #define AllocatorStrategy_DontCare 0 | |
| 79 #define AllocatorStrategy_MinimizeNumberOfFrames 0x00000001 | |
| 80 #define AllocatorStrategy_MinimizeFrameSize 0x00000002 | |
| 81 #define AllocatorStrategy_MinimizeNumberOfAllocators 0x00000004 | |
| 82 #define AllocatorStrategy_MaximizeSpeed 0x00000008 | |
| 83 | |
| 84 #define PipeFactor_None 0 | |
| 85 #define PipeFactor_UserModeUpstream 0x00000001 | |
| 86 #define PipeFactor_UserModeDownstream 0x00000002 | |
| 87 #define PipeFactor_MemoryTypes 0x00000004 | |
| 88 #define PipeFactor_Flags 0x00000008 | |
| 89 #define PipeFactor_PhysicalRanges 0x00000010 | |
| 90 #define PipeFactor_OptimalRanges 0x00000020 | |
| 91 #define PipeFactor_FixedCompression 0x00000040 | |
| 92 #define PipeFactor_UnknownCompression 0x00000080 | |
| 93 | |
| 94 #define PipeFactor_Buffers 0x00000100 | |
| 95 #define PipeFactor_Align 0x00000200 | |
| 96 #define PipeFactor_PhysicalEnd 0x00000400 | |
| 97 #define PipeFactor_LogicalEnd 0x00000800 | |
| 98 | |
| 99 typedef enum { | |
| 100 PipeState_DontCare,PipeState_RangeNotFixed,PipeState_RangeFixed,PipeState_CompressionUnknown,PipeState_Finalized | |
| 101 } PIPE_STATE; | |
| 102 | |
| 103 typedef struct _PIPE_DIMENSIONS { | |
| 104 KS_COMPRESSION AllocatorPin; | |
| 105 KS_COMPRESSION MaxExpansionPin; | |
| 106 KS_COMPRESSION EndPin; | |
| 107 } PIPE_DIMENSIONS,*PPIPE_DIMENSIONS; | |
| 108 | |
| 109 typedef enum { | |
| 110 Pipe_Allocator_None,Pipe_Allocator_FirstPin,Pipe_Allocator_LastPin,Pipe_Allocator_MiddlePin | |
| 111 } PIPE_ALLOCATOR_PLACE; | |
| 112 | |
| 113 typedef PIPE_ALLOCATOR_PLACE *PPIPE_ALLOCATOR_PLACE; | |
| 114 | |
| 115 typedef enum { | |
| 116 KS_MemoryTypeDontCare = 0,KS_MemoryTypeKernelPaged,KS_MemoryTypeKernelNonPaged,KS_MemoryTypeDeviceHostMapped,KS_MemoryTypeDeviceSpecific, | |
| 117 KS_MemoryTypeUser,KS_MemoryTypeAnyHost | |
| 118 } KS_LogicalMemoryType; | |
| 119 | |
| 120 typedef KS_LogicalMemoryType *PKS_LogicalMemoryType; | |
| 121 | |
| 122 typedef struct _PIPE_TERMINATION { | |
| 123 ULONG Flags; | |
| 124 ULONG OutsideFactors; | |
| 125 ULONG Weigth; | |
| 126 KS_FRAMING_RANGE PhysicalRange; | |
| 127 KS_FRAMING_RANGE_WEIGHTED OptimalRange; | |
| 128 KS_COMPRESSION Compression; | |
| 129 } PIPE_TERMINATION; | |
| 130 | |
| 131 typedef struct _ALLOCATOR_PROPERTIES_EX { | |
| 132 long cBuffers; | |
| 133 long cbBuffer; | |
| 134 long cbAlign; | |
| 135 long cbPrefix; | |
| 136 | |
| 137 GUID MemoryType; | |
| 138 GUID BusType; | |
| 139 PIPE_STATE State; | |
| 140 PIPE_TERMINATION Input; | |
| 141 PIPE_TERMINATION Output; | |
| 142 ULONG Strategy; | |
| 143 ULONG Flags; | |
| 144 ULONG Weight; | |
| 145 KS_LogicalMemoryType LogicalMemoryType; | |
| 146 PIPE_ALLOCATOR_PLACE AllocatorPlace; | |
| 147 PIPE_DIMENSIONS Dimensions; | |
| 148 KS_FRAMING_RANGE PhysicalRange; | |
| 149 IKsAllocatorEx *PrevSegment; | |
| 150 ULONG CountNextSegments; | |
| 151 IKsAllocatorEx **NextSegments; | |
| 152 ULONG InsideFactors; | |
| 153 ULONG NumberPins; | |
| 154 } ALLOCATOR_PROPERTIES_EX; | |
| 155 | |
| 156 typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX; | |
| 157 | |
| 158 #ifdef __STREAMS__ | |
| 159 struct IKsClockPropertySet; | |
| 160 #undef INTERFACE | |
| 161 #define INTERFACE IKsClockPropertySet | |
| 162 DECLARE_INTERFACE_(IKsClockPropertySet,IUnknown) { | |
| 163 STDMETHOD(KsGetTime)(THIS_ LONGLONG *Time) PURE; | |
| 164 STDMETHOD(KsSetTime)(THIS_ LONGLONG Time) PURE; | |
| 165 STDMETHOD(KsGetPhysicalTime)(THIS_ LONGLONG *Time) PURE; | |
| 166 STDMETHOD(KsSetPhysicalTime)(THIS_ LONGLONG Time) PURE; | |
| 167 STDMETHOD(KsGetCorrelatedTime)(THIS_ KSCORRELATED_TIME *CorrelatedTime) PURE; | |
| 168 STDMETHOD(KsSetCorrelatedTime)(THIS_ KSCORRELATED_TIME *CorrelatedTime) PURE; | |
| 169 STDMETHOD(KsGetCorrelatedPhysicalTime)(THIS_ KSCORRELATED_TIME *CorrelatedTime) PURE; | |
| 170 STDMETHOD(KsSetCorrelatedPhysicalTime)(THIS_ KSCORRELATED_TIME *CorrelatedTime) PURE; | |
| 171 STDMETHOD(KsGetResolution)(THIS_ KSRESOLUTION *Resolution) PURE; | |
| 172 STDMETHOD(KsGetState)(THIS_ KSSTATE *State) PURE; | |
| 173 }; | |
| 174 | |
| 175 struct IKsAllocator; | |
| 176 #undef INTERFACE | |
| 177 #define INTERFACE IKsAllocator | |
| 178 DECLARE_INTERFACE_(IKsAllocator,IUnknown) { | |
| 179 STDMETHOD_(HANDLE,KsGetAllocatorHandle)(THIS) PURE; | |
| 180 STDMETHOD_(KSALLOCATORMODE,KsGetAllocatorMode)(THIS) PURE; | |
| 181 STDMETHOD(KsGetAllocatorStatus)(THIS_ PKSSTREAMALLOCATOR_STATUS AllocatorStatus) PURE; | |
| 182 STDMETHOD_(VOID,KsSetAllocatorMode)(THIS_ KSALLOCATORMODE Mode) PURE; | |
| 183 }; | |
| 184 | |
| 185 struct IKsAllocatorEx; | |
| 186 #undef INTERFACE | |
| 187 #define INTERFACE IKsAllocatorEx | |
| 188 DECLARE_INTERFACE_(IKsAllocatorEx,IKsAllocator) { | |
| 189 STDMETHOD_(PALLOCATOR_PROPERTIES_EX,KsGetProperties)(THIS) PURE; | |
| 190 STDMETHOD_(VOID,KsSetProperties)(THIS_ PALLOCATOR_PROPERTIES_EX) PURE; | |
| 191 STDMETHOD_(VOID,KsSetAllocatorHandle)(THIS_ HANDLE AllocatorHandle) PURE; | |
| 192 STDMETHOD_(HANDLE,KsCreateAllocatorAndGetHandle)(THIS_ IKsPin *KsPin) PURE; | |
| 193 }; | |
| 194 | |
| 195 typedef enum { | |
| 196 KsPeekOperation_PeekOnly,KsPeekOperation_AddRef | |
| 197 } KSPEEKOPERATION; | |
| 198 | |
| 199 typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT; | |
| 200 struct IKsPin; | |
| 201 | |
| 202 #undef INTERFACE | |
| 203 #define INTERFACE IKsPin | |
| 204 DECLARE_INTERFACE_(IKsPin,IUnknown) { | |
| 205 STDMETHOD(KsQueryMediums)(THIS_ PKSMULTIPLE_ITEM *MediumList) PURE; | |
| 206 STDMETHOD(KsQueryInterfaces)(THIS_ PKSMULTIPLE_ITEM *InterfaceList) PURE; | |
| 207 STDMETHOD(KsCreateSinkPinHandle)(THIS_ KSPIN_INTERFACE& Interface,KSPIN_MEDIUM& Medium) PURE; | |
| 208 STDMETHOD(KsGetCurrentCommunication)(THIS_ KSPIN_COMMUNICATION *Communication,KSPIN_INTERFACE *Interface,KSPIN_MEDIUM *Medium) PURE; | |
| 209 STDMETHOD(KsPropagateAcquire)(THIS) PURE; | |
| 210 STDMETHOD(KsDeliver)(THIS_ IMediaSample *Sample,ULONG Flags) PURE; | |
| 211 STDMETHOD(KsMediaSamplesCompleted)(THIS_ PKSSTREAM_SEGMENT StreamSegment) PURE; | |
| 212 STDMETHOD_(IMemAllocator *,KsPeekAllocator)(THIS_ KSPEEKOPERATION Operation) PURE; | |
| 213 STDMETHOD(KsReceiveAllocator)(THIS_ IMemAllocator *MemAllocator) PURE; | |
| 214 STDMETHOD(KsRenegotiateAllocator)(THIS) PURE; | |
| 215 STDMETHOD_(LONG,KsIncrementPendingIoCount)(THIS) PURE; | |
| 216 STDMETHOD_(LONG,KsDecrementPendingIoCount)(THIS) PURE; | |
| 217 STDMETHOD(KsQualityNotify)(THIS_ ULONG Proportion,REFERENCE_TIME TimeDelta) PURE; | |
| 218 }; | |
| 219 | |
| 220 struct IKsPinEx; | |
| 221 #undef INTERFACE | |
| 222 #define INTERFACE IKsPinEx | |
| 223 DECLARE_INTERFACE_(IKsPinEx,IKsPin) { | |
| 224 STDMETHOD_(VOID,KsNotifyError)(THIS_ IMediaSample *Sample,HRESULT hr) PURE; | |
| 225 }; | |
| 226 | |
| 227 struct IKsPinPipe; | |
| 228 #undef INTERFACE | |
| 229 #define INTERFACE IKsPinPipe | |
| 230 DECLARE_INTERFACE_(IKsPinPipe,IUnknown) { | |
| 231 STDMETHOD(KsGetPinFramingCache)(THIS_ PKSALLOCATOR_FRAMING_EX *FramingEx,PFRAMING_PROP FramingProp,FRAMING_CACHE_OPS Option) PURE; | |
| 232 STDMETHOD(KsSetPinFramingCache)(THIS_ PKSALLOCATOR_FRAMING_EX FramingEx,PFRAMING_PROP FramingProp,FRAMING_CACHE_OPS Option) PURE; | |
| 233 STDMETHOD_(IPin*,KsGetConnectedPin)(THIS) PURE; | |
| 234 STDMETHOD_(IKsAllocatorEx*,KsGetPipe)(THIS_ KSPEEKOPERATION Operation) PURE; | |
| 235 STDMETHOD(KsSetPipe)(THIS_ IKsAllocatorEx *KsAllocator) PURE; | |
| 236 STDMETHOD_(ULONG,KsGetPipeAllocatorFlag)(THIS) PURE; | |
| 237 STDMETHOD(KsSetPipeAllocatorFlag)(THIS_ ULONG Flag) PURE; | |
| 238 STDMETHOD_(GUID,KsGetPinBusCache)(THIS) PURE; | |
| 239 STDMETHOD(KsSetPinBusCache)(THIS_ GUID Bus) PURE; | |
| 240 STDMETHOD_(PWCHAR,KsGetPinName)(THIS) PURE; | |
| 241 STDMETHOD_(PWCHAR,KsGetFilterName)(THIS) PURE; | |
| 242 }; | |
| 243 | |
| 244 struct IKsPinFactory; | |
| 245 #undef INTERFACE | |
| 246 #define INTERFACE IKsPinFactory | |
| 247 DECLARE_INTERFACE_(IKsPinFactory,IUnknown) { | |
| 248 STDMETHOD(KsPinFactory)(THIS_ ULONG *PinFactory) PURE; | |
| 249 }; | |
| 250 | |
| 251 typedef enum { | |
| 252 KsIoOperation_Write,KsIoOperation_Read | |
| 253 } KSIOOPERATION; | |
| 254 | |
| 255 struct IKsDataTypeHandler; | |
| 256 #undef INTERFACE | |
| 257 #define INTERFACE IKsDataTypeHandler | |
| 258 DECLARE_INTERFACE_(IKsDataTypeHandler,IUnknown) { | |
| 259 STDMETHOD(KsCompleteIoOperation)(THIS_ IMediaSample *Sample,PVOID StreamHeader,KSIOOPERATION IoOperation,WINBOOL Cancelled) PURE; | |
| 260 STDMETHOD(KsIsMediaTypeInRanges)(THIS_ PVOID DataRanges) PURE; | |
| 261 STDMETHOD(KsPrepareIoOperation)(THIS_ IMediaSample *Sample,PVOID StreamHeader,KSIOOPERATION IoOperation) PURE; | |
| 262 STDMETHOD(KsQueryExtendedSize)(THIS_ ULONG *ExtendedSize) PURE; | |
| 263 STDMETHOD(KsSetMediaType)(THIS_ const AM_MEDIA_TYPE *AmMediaType) PURE; | |
| 264 }; | |
| 265 | |
| 266 struct IKsDataTypeCompletion; | |
| 267 #undef INTERFACE | |
| 268 #define INTERFACE IKsDataTypeCompletion | |
| 269 DECLARE_INTERFACE_(IKsDataTypeCompletion,IUnknown) { | |
| 270 STDMETHOD(KsCompleteMediaType)(THIS_ HANDLE FilterHandle,ULONG PinFactoryId,AM_MEDIA_TYPE *AmMediaType) PURE; | |
| 271 }; | |
| 272 | |
| 273 struct IKsInterfaceHandler; | |
| 274 #undef INTERFACE | |
| 275 #define INTERFACE IKsInterfaceHandler | |
| 276 DECLARE_INTERFACE_(IKsInterfaceHandler,IUnknown) { | |
| 277 STDMETHOD(KsSetPin)(THIS_ IKsPin *KsPin) PURE; | |
| 278 STDMETHOD(KsProcessMediaSamples)(THIS_ IKsDataTypeHandler *KsDataTypeHandler,IMediaSample **SampleList,PLONG SampleCount,KSIOOPERATION IoOperation,PKSSTREAM_SEGMENT *StreamSegment) PURE; | |
| 279 STDMETHOD(KsCompleteIo)(THIS_ PKSSTREAM_SEGMENT StreamSegment) PURE; | |
| 280 }; | |
| 281 | |
| 282 typedef struct _KSSTREAM_SEGMENT { | |
| 283 IKsInterfaceHandler *KsInterfaceHandler; | |
| 284 IKsDataTypeHandler *KsDataTypeHandler; | |
| 285 KSIOOPERATION IoOperation; | |
| 286 HANDLE CompletionEvent; | |
| 287 } KSSTREAM_SEGMENT; | |
| 288 | |
| 289 struct IKsObject; | |
| 290 #undef INTERFACE | |
| 291 #define INTERFACE IKsObject | |
| 292 DECLARE_INTERFACE_(IKsObject,IUnknown) { | |
| 293 STDMETHOD_(HANDLE,KsGetObjectHandle)(THIS) PURE; | |
| 294 }; | |
| 295 | |
| 296 struct IKsQualityForwarder; | |
| 297 #undef INTERFACE | |
| 298 #define INTERFACE IKsQualityForwarder | |
| 299 DECLARE_INTERFACE_(IKsQualityForwarder,IKsObject) { | |
| 300 STDMETHOD_(VOID,KsFlushClient)(THIS_ IKsPin *Pin) PURE; | |
| 301 }; | |
| 302 | |
| 303 struct IKsNotifyEvent; | |
| 304 #undef INTERFACE | |
| 305 #define INTERFACE IKsNotifyEvent | |
| 306 DECLARE_INTERFACE_(IKsNotifyEvent,IUnknown) { | |
| 307 STDMETHOD(KsNotifyEvent)(THIS_ ULONG Event,ULONG_PTR lParam1,ULONG_PTR lParam2) PURE; | |
| 308 }; | |
| 309 | |
| 310 KSDDKAPI HRESULT WINAPI KsResolveRequiredAttributes(PKSDATARANGE DataRange,PKSMULTIPLE_ITEM Attributes); | |
| 311 KSDDKAPI HRESULT WINAPI KsOpenDefaultDevice(REFGUID Category,ACCESS_MASK Access,PHANDLE DeviceHandle); | |
| 312 KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle,ULONG IoControl,PVOID InBuffer,ULONG InLength,PVOID OutBuffer,ULONG OutLength,PULONG BytesReturned); | |
| 313 KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle,ULONG PinFactoryId,ULONG PropertyId,PVOID *Items); | |
| 314 KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle,ULONG PinFactoryId,ULONG *MediaTypeCount); | |
| 315 KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position,AM_MEDIA_TYPE *AmMediaType,HANDLE FilterHandle,ULONG PinFactoryId); | |
| 316 #endif | |
| 317 | |
| 318 #ifndef _IKsPropertySet_ | |
| 319 DEFINE_GUIDEX(IID_IKsPropertySet); | |
| 320 #endif | |
| 321 | |
| 322 #ifndef _IKsControl_ | |
| 323 DEFINE_GUIDEX(IID_IKsControl); | |
| 324 #endif | |
| 325 | |
| 326 DEFINE_GUIDEX(IID_IKsAggregateControl); | |
| 327 #ifndef _IKsTopology_ | |
| 328 DEFINE_GUIDEX(IID_IKsTopology); | |
| 329 #endif | |
| 330 DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196",CLSID_Proxy); | |
| 331 #define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy) | |
| 332 #else | |
| 333 | |
| 334 #ifndef _IKsPropertySet_ | |
| 335 DEFINE_GUID(IID_IKsPropertySet,STATIC_IID_IKsPropertySet); | |
| 336 #endif | |
| 337 DEFINE_GUID(CLSID_Proxy,STATIC_CLSID_Proxy); | |
| 338 #endif | |
| 339 | |
| 340 #ifndef _IKsPropertySet_ | |
| 341 #define _IKsPropertySet_ | |
| 342 #define KSPROPERTY_SUPPORT_GET 1 | |
| 343 #define KSPROPERTY_SUPPORT_SET 2 | |
| 344 | |
| 345 #ifdef DECLARE_INTERFACE_ | |
| 346 struct IKsPropertySet; | |
| 347 #undef INTERFACE | |
| 348 #define INTERFACE IKsPropertySet | |
| 349 DECLARE_INTERFACE_(IKsPropertySet,IUnknown) { | |
| 350 STDMETHOD(Set)(THIS_ REFGUID PropSet,ULONG Id,LPVOID InstanceData,ULONG InstanceLength,LPVOID PropertyData,ULONG DataLength) PURE; | |
| 351 STDMETHOD(Get)(THIS_ REFGUID PropSet,ULONG Id,LPVOID InstanceData,ULONG InstanceLength,LPVOID PropertyData,ULONG DataLength,ULONG *BytesReturned) PURE; | |
| 352 STDMETHOD(QuerySupported)(THIS_ REFGUID PropSet,ULONG Id,ULONG *TypeSupport) PURE; | |
| 353 }; | |
| 354 #endif | |
| 355 #endif | |
| 356 | |
| 357 #ifndef _IKsControl_ | |
| 358 #define _IKsControl_ | |
| 359 #ifdef DECLARE_INTERFACE_ | |
| 360 struct IKsControl; | |
| 361 #undef INTERFACE | |
| 362 #define INTERFACE IKsControl | |
| 363 DECLARE_INTERFACE_(IKsControl,IUnknown) { | |
| 364 STDMETHOD(KsProperty)(THIS_ PKSPROPERTY Property,ULONG PropertyLength,LPVOID PropertyData,ULONG DataLength,ULONG *BytesReturned) PURE; | |
| 365 STDMETHOD(KsMethod)(THIS_ PKSMETHOD Method,ULONG MethodLength,LPVOID MethodData,ULONG DataLength,ULONG *BytesReturned) PURE; | |
| 366 STDMETHOD(KsEvent)(THIS_ PKSEVENT Event,ULONG EventLength,LPVOID EventData,ULONG DataLength,ULONG *BytesReturned) PURE; | |
| 367 }; | |
| 368 #endif | |
| 369 #endif | |
| 370 | |
| 371 #ifdef DECLARE_INTERFACE_ | |
| 372 struct IKsAggregateControl; | |
| 373 #undef INTERFACE | |
| 374 #define INTERFACE IKsAggregateControl | |
| 375 DECLARE_INTERFACE_(IKsAggregateControl,IUnknown) { | |
| 376 STDMETHOD(KsAddAggregate)(THIS_ REFGUID AggregateClass) PURE; | |
| 377 STDMETHOD(KsRemoveAggregate)(THIS_ REFGUID AggregateClass) PURE; | |
| 378 }; | |
| 379 #endif | |
| 380 | |
| 381 #ifndef _IKsTopology_ | |
| 382 #define _IKsTopology_ | |
| 383 #ifdef DECLARE_INTERFACE_ | |
| 384 struct IKsTopology; | |
| 385 #undef INTERFACE | |
| 386 #define INTERFACE IKsTopology | |
| 387 DECLARE_INTERFACE_(IKsTopology,IUnknown) { | |
| 388 STDMETHOD(CreateNodeInstance)(THIS_ ULONG NodeId,ULONG Flags,ACCESS_MASK DesiredAccess,IUnknown *UnkOuter,REFGUID InterfaceId,LPVOID *Interface) PURE; | |
| 389 }; | |
| 390 #endif | |
| 391 #endif | |
| 392 | |
| 393 #ifdef __cplusplus | |
| 394 } | |
| 395 #endif | |
| 396 #endif |
