To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.
root / src / portaudio_20161030_catalina_patch / src / hostapi / wasapi / mingw-include / ksproxy.h @ 164:9fa11135915a
History | View | Annotate | Download (16 KB)
| 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.PD 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 \
|
| 21 |
0x423c13a2L,0x2070,0x11d0,0x9e,0xf7,0x00,0xaa,0x00,0xa2,0x16,0xa1 |
| 22 |
|
| 23 |
#define STATIC_IID_IKsPinEx \
|
| 24 |
0x7bb38260L,0xd19c,0x11d2,0xb3,0x8a,0x00,0xa0,0xc9,0x5e,0xc2,0x2e |
| 25 |
|
| 26 |
#define STATIC_IID_IKsPin \
|
| 27 |
0xb61178d1L,0xa2d9,0x11cf,0x9e,0x53,0x00,0xaa,0x00,0xa2,0x16,0xa1 |
| 28 |
|
| 29 |
#define STATIC_IID_IKsPinPipe \
|
| 30 |
0xe539cd90L,0xa8b4,0x11d1,0x81,0x89,0x00,0xa0,0xc9,0x06,0x28,0x02 |
| 31 |
|
| 32 |
#define STATIC_IID_IKsDataTypeHandler \
|
| 33 |
0x5ffbaa02L,0x49a3,0x11d0,0x9f,0x36,0x00,0xaa,0x00,0xa2,0x16,0xa1 |
| 34 |
|
| 35 |
#define STATIC_IID_IKsDataTypeCompletion \
|
| 36 |
0x827D1A0EL,0x0F73,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 37 |
|
| 38 |
#define STATIC_IID_IKsInterfaceHandler \
|
| 39 |
0xD3ABC7E0L,0x9A61,0x11D0,0xA4,0x0D,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 40 |
|
| 41 |
#define STATIC_IID_IKsClockPropertySet \
|
| 42 |
0x5C5CBD84L,0xE755,0x11D0,0xAC,0x18,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 43 |
|
| 44 |
#define STATIC_IID_IKsAllocator \
|
| 45 |
0x8da64899L,0xc0d9,0x11d0,0x84,0x13,0x00,0x00,0xf8,0x22,0xfe,0x8a |
| 46 |
|
| 47 |
#define STATIC_IID_IKsAllocatorEx \
|
| 48 |
0x091bb63aL,0x603f,0x11d1,0xb0,0x67,0x00,0xa0,0xc9,0x06,0x28,0x02 |
| 49 |
|
| 50 |
#ifndef STATIC_IID_IKsPropertySet
|
| 51 |
#define STATIC_IID_IKsPropertySet \
|
| 52 |
0x31EFAC30L,0x515C,0x11d0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93 |
| 53 |
#endif
|
| 54 |
|
| 55 |
#define STATIC_IID_IKsTopology \
|
| 56 |
0x28F54683L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 57 |
|
| 58 |
#ifndef STATIC_IID_IKsControl
|
| 59 |
#define STATIC_IID_IKsControl \
|
| 60 |
0x28F54685L,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 61 |
#endif
|
| 62 |
|
| 63 |
#define STATIC_IID_IKsAggregateControl \
|
| 64 |
0x7F40EAC0L,0x3947,0x11D2,0x87,0x4E,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 65 |
|
| 66 |
#define STATIC_CLSID_Proxy \
|
| 67 |
0x17CCA71BL,0xECD7,0x11D0,0xB9,0x08,0x00,0xA0,0xC9,0x22,0x31,0x96 |
| 68 |
|
| 69 |
#ifdef _KS_
|
| 70 |
|
| 71 |
DEFINE_GUIDEX(IID_IKsObject); |
| 72 |
|
| 73 |
DEFINE_GUIDEX(IID_IKsPin); |
| 74 |
|
| 75 |
DEFINE_GUIDEX(IID_IKsPinEx); |
| 76 |
|
| 77 |
DEFINE_GUIDEX(IID_IKsPinPipe); |
| 78 |
|
| 79 |
DEFINE_GUIDEX(IID_IKsDataTypeHandler); |
| 80 |
|
| 81 |
DEFINE_GUIDEX(IID_IKsDataTypeCompletion); |
| 82 |
|
| 83 |
DEFINE_GUIDEX(IID_IKsInterfaceHandler); |
| 84 |
|
| 85 |
DEFINE_GUIDEX(IID_IKsClockPropertySet); |
| 86 |
|
| 87 |
DEFINE_GUIDEX(IID_IKsAllocator); |
| 88 |
|
| 89 |
DEFINE_GUIDEX(IID_IKsAllocatorEx); |
| 90 |
|
| 91 |
#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
|
| 92 |
#define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY
|
| 93 |
|
| 94 |
typedef enum { |
| 95 |
KsAllocatorMode_User, |
| 96 |
KsAllocatorMode_Kernel |
| 97 |
} KSALLOCATORMODE; |
| 98 |
|
| 99 |
typedef enum { |
| 100 |
FramingProp_Uninitialized, |
| 101 |
FramingProp_None, |
| 102 |
FramingProp_Old, |
| 103 |
FramingProp_Ex |
| 104 |
} FRAMING_PROP; |
| 105 |
|
| 106 |
typedef FRAMING_PROP *PFRAMING_PROP;
|
| 107 |
|
| 108 |
typedef enum { |
| 109 |
Framing_Cache_Update, |
| 110 |
Framing_Cache_ReadLast, |
| 111 |
Framing_Cache_ReadOrig, |
| 112 |
Framing_Cache_Write |
| 113 |
} FRAMING_CACHE_OPS; |
| 114 |
|
| 115 |
typedef struct { |
| 116 |
LONGLONG MinTotalNominator; |
| 117 |
LONGLONG MaxTotalNominator; |
| 118 |
LONGLONG TotalDenominator; |
| 119 |
} OPTIMAL_WEIGHT_TOTALS; |
| 120 |
|
| 121 |
typedef struct IPin IPin; |
| 122 |
typedef struct IKsPin IKsPin; |
| 123 |
typedef struct IKsAllocator IKsAllocator; |
| 124 |
typedef struct IKsAllocatorEx IKsAllocatorEx; |
| 125 |
|
| 126 |
#define AllocatorStrategy_DontCare 0 |
| 127 |
#define AllocatorStrategy_MinimizeNumberOfFrames 0x00000001 |
| 128 |
#define AllocatorStrategy_MinimizeFrameSize 0x00000002 |
| 129 |
#define AllocatorStrategy_MinimizeNumberOfAllocators 0x00000004 |
| 130 |
#define AllocatorStrategy_MaximizeSpeed 0x00000008 |
| 131 |
|
| 132 |
#define PipeFactor_None 0 |
| 133 |
#define PipeFactor_UserModeUpstream 0x00000001 |
| 134 |
#define PipeFactor_UserModeDownstream 0x00000002 |
| 135 |
#define PipeFactor_MemoryTypes 0x00000004 |
| 136 |
#define PipeFactor_Flags 0x00000008 |
| 137 |
#define PipeFactor_PhysicalRanges 0x00000010 |
| 138 |
#define PipeFactor_OptimalRanges 0x00000020 |
| 139 |
#define PipeFactor_FixedCompression 0x00000040 |
| 140 |
#define PipeFactor_UnknownCompression 0x00000080 |
| 141 |
|
| 142 |
#define PipeFactor_Buffers 0x00000100 |
| 143 |
#define PipeFactor_Align 0x00000200 |
| 144 |
#define PipeFactor_PhysicalEnd 0x00000400 |
| 145 |
#define PipeFactor_LogicalEnd 0x00000800 |
| 146 |
|
| 147 |
typedef enum { |
| 148 |
PipeState_DontCare, |
| 149 |
PipeState_RangeNotFixed, |
| 150 |
PipeState_RangeFixed, |
| 151 |
PipeState_CompressionUnknown, |
| 152 |
PipeState_Finalized |
| 153 |
} PIPE_STATE; |
| 154 |
|
| 155 |
typedef struct _PIPE_DIMENSIONS { |
| 156 |
KS_COMPRESSION AllocatorPin; |
| 157 |
KS_COMPRESSION MaxExpansionPin; |
| 158 |
KS_COMPRESSION EndPin; |
| 159 |
} PIPE_DIMENSIONS,*PPIPE_DIMENSIONS; |
| 160 |
|
| 161 |
typedef enum { |
| 162 |
Pipe_Allocator_None, |
| 163 |
Pipe_Allocator_FirstPin, |
| 164 |
Pipe_Allocator_LastPin, |
| 165 |
Pipe_Allocator_MiddlePin |
| 166 |
} PIPE_ALLOCATOR_PLACE; |
| 167 |
|
| 168 |
typedef PIPE_ALLOCATOR_PLACE *PPIPE_ALLOCATOR_PLACE;
|
| 169 |
|
| 170 |
typedef enum { |
| 171 |
KS_MemoryTypeDontCare = 0,
|
| 172 |
KS_MemoryTypeKernelPaged, |
| 173 |
KS_MemoryTypeKernelNonPaged, |
| 174 |
KS_MemoryTypeDeviceHostMapped, |
| 175 |
KS_MemoryTypeDeviceSpecific, |
| 176 |
KS_MemoryTypeUser, |
| 177 |
KS_MemoryTypeAnyHost |
| 178 |
} KS_LogicalMemoryType; |
| 179 |
|
| 180 |
typedef KS_LogicalMemoryType *PKS_LogicalMemoryType;
|
| 181 |
|
| 182 |
typedef struct _PIPE_TERMINATION { |
| 183 |
ULONG Flags; |
| 184 |
ULONG OutsideFactors; |
| 185 |
ULONG Weigth; |
| 186 |
KS_FRAMING_RANGE PhysicalRange; |
| 187 |
KS_FRAMING_RANGE_WEIGHTED OptimalRange; |
| 188 |
KS_COMPRESSION Compression; |
| 189 |
} PIPE_TERMINATION; |
| 190 |
|
| 191 |
typedef struct _ALLOCATOR_PROPERTIES_EX |
| 192 |
{
|
| 193 |
long cBuffers;
|
| 194 |
long cbBuffer;
|
| 195 |
long cbAlign;
|
| 196 |
long cbPrefix;
|
| 197 |
|
| 198 |
GUID MemoryType; |
| 199 |
GUID BusType; |
| 200 |
PIPE_STATE State; |
| 201 |
PIPE_TERMINATION Input; |
| 202 |
PIPE_TERMINATION Output; |
| 203 |
ULONG Strategy; |
| 204 |
ULONG Flags; |
| 205 |
ULONG Weight; |
| 206 |
KS_LogicalMemoryType LogicalMemoryType; |
| 207 |
PIPE_ALLOCATOR_PLACE AllocatorPlace; |
| 208 |
PIPE_DIMENSIONS Dimensions; |
| 209 |
KS_FRAMING_RANGE PhysicalRange; |
| 210 |
IKsAllocatorEx *PrevSegment; |
| 211 |
ULONG CountNextSegments; |
| 212 |
IKsAllocatorEx **NextSegments; |
| 213 |
ULONG InsideFactors; |
| 214 |
ULONG NumberPins; |
| 215 |
} ALLOCATOR_PROPERTIES_EX; |
| 216 |
|
| 217 |
typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX;
|
| 218 |
|
| 219 |
#ifdef __STREAMS__
|
| 220 |
|
| 221 |
struct IKsClockPropertySet;
|
| 222 |
#undef INTERFACE
|
| 223 |
#define INTERFACE IKsClockPropertySet
|
| 224 |
DECLARE_INTERFACE_(IKsClockPropertySet,IUnknown) |
| 225 |
{
|
| 226 |
STDMETHOD(KsGetTime) (THIS_ |
| 227 |
LONGLONG *Time |
| 228 |
) PURE; |
| 229 |
STDMETHOD(KsSetTime) (THIS_ |
| 230 |
LONGLONG Time |
| 231 |
) PURE; |
| 232 |
STDMETHOD(KsGetPhysicalTime) (THIS_ |
| 233 |
LONGLONG *Time |
| 234 |
) PURE; |
| 235 |
STDMETHOD(KsSetPhysicalTime) (THIS_ |
| 236 |
LONGLONG Time |
| 237 |
) PURE; |
| 238 |
STDMETHOD(KsGetCorrelatedTime) (THIS_ |
| 239 |
KSCORRELATED_TIME *CorrelatedTime |
| 240 |
) PURE; |
| 241 |
STDMETHOD(KsSetCorrelatedTime) (THIS_ |
| 242 |
KSCORRELATED_TIME *CorrelatedTime |
| 243 |
) PURE; |
| 244 |
STDMETHOD(KsGetCorrelatedPhysicalTime)(THIS_ |
| 245 |
KSCORRELATED_TIME *CorrelatedTime |
| 246 |
) PURE; |
| 247 |
STDMETHOD(KsSetCorrelatedPhysicalTime)(THIS_ |
| 248 |
KSCORRELATED_TIME *CorrelatedTime |
| 249 |
) PURE; |
| 250 |
STDMETHOD(KsGetResolution) (THIS_ |
| 251 |
KSRESOLUTION *Resolution |
| 252 |
) PURE; |
| 253 |
STDMETHOD(KsGetState) (THIS_ |
| 254 |
KSSTATE *State |
| 255 |
) PURE; |
| 256 |
}; |
| 257 |
|
| 258 |
struct IKsAllocator;
|
| 259 |
#undef INTERFACE
|
| 260 |
#define INTERFACE IKsAllocator
|
| 261 |
DECLARE_INTERFACE_(IKsAllocator,IUnknown) |
| 262 |
{
|
| 263 |
STDMETHOD_(HANDLE,KsGetAllocatorHandle)(THIS) PURE; |
| 264 |
STDMETHOD_(KSALLOCATORMODE,KsGetAllocatorMode)(THIS) PURE; |
| 265 |
STDMETHOD(KsGetAllocatorStatus) (THIS_ |
| 266 |
PKSSTREAMALLOCATOR_STATUS AllocatorStatus |
| 267 |
) PURE; |
| 268 |
STDMETHOD_(VOID,KsSetAllocatorMode) (THIS_ |
| 269 |
KSALLOCATORMODE Mode |
| 270 |
) PURE; |
| 271 |
}; |
| 272 |
|
| 273 |
struct IKsAllocatorEx;
|
| 274 |
#undef INTERFACE
|
| 275 |
#define INTERFACE IKsAllocatorEx
|
| 276 |
DECLARE_INTERFACE_(IKsAllocatorEx,IKsAllocator) |
| 277 |
{
|
| 278 |
STDMETHOD_(PALLOCATOR_PROPERTIES_EX,KsGetProperties)(THIS) PURE; |
| 279 |
STDMETHOD_(VOID,KsSetProperties) (THIS_ |
| 280 |
PALLOCATOR_PROPERTIES_EX |
| 281 |
) PURE; |
| 282 |
STDMETHOD_(VOID,KsSetAllocatorHandle) (THIS_ |
| 283 |
HANDLE AllocatorHandle |
| 284 |
) PURE; |
| 285 |
STDMETHOD_(HANDLE,KsCreateAllocatorAndGetHandle)(THIS_ |
| 286 |
IKsPin *KsPin |
| 287 |
) PURE; |
| 288 |
}; |
| 289 |
|
| 290 |
typedef enum { |
| 291 |
KsPeekOperation_PeekOnly, |
| 292 |
KsPeekOperation_AddRef |
| 293 |
} KSPEEKOPERATION; |
| 294 |
|
| 295 |
typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT; |
| 296 |
struct IKsPin;
|
| 297 |
|
| 298 |
#undef INTERFACE
|
| 299 |
#define INTERFACE IKsPin
|
| 300 |
DECLARE_INTERFACE_(IKsPin,IUnknown) |
| 301 |
{
|
| 302 |
STDMETHOD(KsQueryMediums) (THIS_ |
| 303 |
PKSMULTIPLE_ITEM *MediumList |
| 304 |
) PURE; |
| 305 |
STDMETHOD(KsQueryInterfaces) (THIS_ |
| 306 |
PKSMULTIPLE_ITEM *InterfaceList |
| 307 |
) PURE; |
| 308 |
STDMETHOD(KsCreateSinkPinHandle) (THIS_ |
| 309 |
KSPIN_INTERFACE& Interface, |
| 310 |
KSPIN_MEDIUM& Medium |
| 311 |
) PURE; |
| 312 |
STDMETHOD(KsGetCurrentCommunication) (THIS_ |
| 313 |
KSPIN_COMMUNICATION *Communication, |
| 314 |
KSPIN_INTERFACE *Interface, |
| 315 |
KSPIN_MEDIUM *Medium |
| 316 |
) PURE; |
| 317 |
STDMETHOD(KsPropagateAcquire) (THIS) PURE; |
| 318 |
STDMETHOD(KsDeliver) (THIS_ |
| 319 |
IMediaSample *Sample, |
| 320 |
ULONG Flags |
| 321 |
) PURE; |
| 322 |
STDMETHOD(KsMediaSamplesCompleted) (THIS_ |
| 323 |
PKSSTREAM_SEGMENT StreamSegment |
| 324 |
) PURE; |
| 325 |
STDMETHOD_(IMemAllocator *,KsPeekAllocator)(THIS_ |
| 326 |
KSPEEKOPERATION Operation |
| 327 |
) PURE; |
| 328 |
STDMETHOD(KsReceiveAllocator) (THIS_ |
| 329 |
IMemAllocator *MemAllocator |
| 330 |
) PURE; |
| 331 |
STDMETHOD(KsRenegotiateAllocator) (THIS) PURE; |
| 332 |
STDMETHOD_(LONG,KsIncrementPendingIoCount)(THIS) PURE; |
| 333 |
STDMETHOD_(LONG,KsDecrementPendingIoCount)(THIS) PURE; |
| 334 |
STDMETHOD(KsQualityNotify) (THIS_ |
| 335 |
ULONG Proportion, |
| 336 |
REFERENCE_TIME TimeDelta |
| 337 |
) PURE; |
| 338 |
}; |
| 339 |
|
| 340 |
struct IKsPinEx;
|
| 341 |
#undef INTERFACE
|
| 342 |
#define INTERFACE IKsPinEx
|
| 343 |
DECLARE_INTERFACE_(IKsPinEx,IKsPin) |
| 344 |
{
|
| 345 |
STDMETHOD_(VOID,KsNotifyError) (THIS_ |
| 346 |
IMediaSample *Sample, |
| 347 |
HRESULT hr |
| 348 |
) PURE; |
| 349 |
}; |
| 350 |
|
| 351 |
struct IKsPinPipe;
|
| 352 |
#undef INTERFACE
|
| 353 |
#define INTERFACE IKsPinPipe
|
| 354 |
DECLARE_INTERFACE_(IKsPinPipe,IUnknown) |
| 355 |
{
|
| 356 |
STDMETHOD(KsGetPinFramingCache) (THIS_ |
| 357 |
PKSALLOCATOR_FRAMING_EX *FramingEx, |
| 358 |
PFRAMING_PROP FramingProp, |
| 359 |
FRAMING_CACHE_OPS Option |
| 360 |
) PURE; |
| 361 |
STDMETHOD(KsSetPinFramingCache) (THIS_ |
| 362 |
PKSALLOCATOR_FRAMING_EX FramingEx, |
| 363 |
PFRAMING_PROP FramingProp, |
| 364 |
FRAMING_CACHE_OPS Option |
| 365 |
) PURE; |
| 366 |
STDMETHOD_(IPin*,KsGetConnectedPin) (THIS) PURE; |
| 367 |
STDMETHOD_(IKsAllocatorEx*,KsGetPipe) (THIS_ |
| 368 |
KSPEEKOPERATION Operation |
| 369 |
) PURE; |
| 370 |
STDMETHOD(KsSetPipe) (THIS_ |
| 371 |
IKsAllocatorEx *KsAllocator |
| 372 |
) PURE; |
| 373 |
STDMETHOD_(ULONG,KsGetPipeAllocatorFlag)(THIS) PURE; |
| 374 |
STDMETHOD(KsSetPipeAllocatorFlag) (THIS_ |
| 375 |
ULONG Flag |
| 376 |
) PURE; |
| 377 |
STDMETHOD_(GUID,KsGetPinBusCache) (THIS) PURE; |
| 378 |
STDMETHOD(KsSetPinBusCache) (THIS_ |
| 379 |
GUID Bus |
| 380 |
) PURE; |
| 381 |
STDMETHOD_(PWCHAR,KsGetPinName) (THIS) PURE; |
| 382 |
STDMETHOD_(PWCHAR,KsGetFilterName) (THIS) PURE; |
| 383 |
}; |
| 384 |
|
| 385 |
struct IKsPinFactory;
|
| 386 |
#undef INTERFACE
|
| 387 |
#define INTERFACE IKsPinFactory
|
| 388 |
DECLARE_INTERFACE_(IKsPinFactory,IUnknown) |
| 389 |
{
|
| 390 |
STDMETHOD(KsPinFactory) (THIS_ |
| 391 |
ULONG *PinFactory |
| 392 |
) PURE; |
| 393 |
}; |
| 394 |
|
| 395 |
typedef enum { |
| 396 |
KsIoOperation_Write, |
| 397 |
KsIoOperation_Read |
| 398 |
} KSIOOPERATION; |
| 399 |
|
| 400 |
struct IKsDataTypeHandler;
|
| 401 |
#undef INTERFACE
|
| 402 |
#define INTERFACE IKsDataTypeHandler
|
| 403 |
DECLARE_INTERFACE_(IKsDataTypeHandler,IUnknown) |
| 404 |
{
|
| 405 |
STDMETHOD(KsCompleteIoOperation) (THIS_ |
| 406 |
IMediaSample *Sample, |
| 407 |
PVOID StreamHeader, |
| 408 |
KSIOOPERATION IoOperation, |
| 409 |
WINBOOL Cancelled |
| 410 |
) PURE; |
| 411 |
STDMETHOD(KsIsMediaTypeInRanges) (THIS_ |
| 412 |
PVOID DataRanges |
| 413 |
) PURE; |
| 414 |
STDMETHOD(KsPrepareIoOperation) (THIS_ |
| 415 |
IMediaSample *Sample, |
| 416 |
PVOID StreamHeader, |
| 417 |
KSIOOPERATION IoOperation |
| 418 |
) PURE; |
| 419 |
STDMETHOD(KsQueryExtendedSize) (THIS_ |
| 420 |
ULONG *ExtendedSize |
| 421 |
) PURE; |
| 422 |
STDMETHOD(KsSetMediaType) (THIS_ |
| 423 |
const AM_MEDIA_TYPE *AmMediaType
|
| 424 |
) PURE; |
| 425 |
}; |
| 426 |
|
| 427 |
struct IKsDataTypeCompletion;
|
| 428 |
#undef INTERFACE
|
| 429 |
#define INTERFACE IKsDataTypeCompletion
|
| 430 |
DECLARE_INTERFACE_(IKsDataTypeCompletion,IUnknown) |
| 431 |
{
|
| 432 |
STDMETHOD(KsCompleteMediaType) (THIS_ |
| 433 |
HANDLE FilterHandle, |
| 434 |
ULONG PinFactoryId, |
| 435 |
AM_MEDIA_TYPE *AmMediaType |
| 436 |
) PURE; |
| 437 |
}; |
| 438 |
|
| 439 |
struct IKsInterfaceHandler;
|
| 440 |
#undef INTERFACE
|
| 441 |
#define INTERFACE IKsInterfaceHandler
|
| 442 |
DECLARE_INTERFACE_(IKsInterfaceHandler,IUnknown) |
| 443 |
{
|
| 444 |
STDMETHOD(KsSetPin) (THIS_ |
| 445 |
IKsPin *KsPin |
| 446 |
) PURE; |
| 447 |
STDMETHOD(KsProcessMediaSamples) (THIS_ |
| 448 |
IKsDataTypeHandler *KsDataTypeHandler, |
| 449 |
IMediaSample **SampleList, |
| 450 |
PLONG SampleCount, |
| 451 |
KSIOOPERATION IoOperation, |
| 452 |
PKSSTREAM_SEGMENT *StreamSegment |
| 453 |
) PURE; |
| 454 |
STDMETHOD(KsCompleteIo) (THIS_ |
| 455 |
PKSSTREAM_SEGMENT StreamSegment |
| 456 |
) PURE; |
| 457 |
}; |
| 458 |
|
| 459 |
typedef struct _KSSTREAM_SEGMENT { |
| 460 |
IKsInterfaceHandler *KsInterfaceHandler; |
| 461 |
IKsDataTypeHandler *KsDataTypeHandler; |
| 462 |
KSIOOPERATION IoOperation; |
| 463 |
HANDLE CompletionEvent; |
| 464 |
} KSSTREAM_SEGMENT; |
| 465 |
|
| 466 |
struct IKsObject;
|
| 467 |
#undef INTERFACE
|
| 468 |
#define INTERFACE IKsObject
|
| 469 |
DECLARE_INTERFACE_(IKsObject,IUnknown) |
| 470 |
{
|
| 471 |
STDMETHOD_(HANDLE,KsGetObjectHandle) (THIS) PURE; |
| 472 |
}; |
| 473 |
|
| 474 |
struct IKsQualityForwarder;
|
| 475 |
#undef INTERFACE
|
| 476 |
#define INTERFACE IKsQualityForwarder
|
| 477 |
DECLARE_INTERFACE_(IKsQualityForwarder,IKsObject) |
| 478 |
{
|
| 479 |
STDMETHOD_(VOID,KsFlushClient) (THIS_ |
| 480 |
IKsPin *Pin |
| 481 |
) PURE; |
| 482 |
}; |
| 483 |
|
| 484 |
struct IKsNotifyEvent;
|
| 485 |
#undef INTERFACE
|
| 486 |
#define INTERFACE IKsNotifyEvent
|
| 487 |
DECLARE_INTERFACE_(IKsNotifyEvent,IUnknown) |
| 488 |
{
|
| 489 |
STDMETHOD(KsNotifyEvent) (THIS_ |
| 490 |
ULONG Event, |
| 491 |
ULONG_PTR lParam1, |
| 492 |
ULONG_PTR lParam2 |
| 493 |
) PURE; |
| 494 |
}; |
| 495 |
|
| 496 |
KSDDKAPI HRESULT WINAPI KsResolveRequiredAttributes(PKSDATARANGE DataRange,PKSMULTIPLE_ITEM Attributes); |
| 497 |
KSDDKAPI HRESULT WINAPI KsOpenDefaultDevice(REFGUID Category,ACCESS_MASK Access,PHANDLE DeviceHandle); |
| 498 |
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle,ULONG IoControl,PVOID InBuffer,ULONG InLength,PVOID OutBuffer,ULONG OutLength,PULONG BytesReturned); |
| 499 |
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle,ULONG PinFactoryId,ULONG PropertyId,PVOID *Items); |
| 500 |
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle,ULONG PinFactoryId,ULONG *MediaTypeCount); |
| 501 |
KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position,AM_MEDIA_TYPE *AmMediaType,HANDLE FilterHandle,ULONG PinFactoryId);
|
| 502 |
#endif /* __STREAMS__ */ |
| 503 |
|
| 504 |
#ifndef _IKsPropertySet_
|
| 505 |
DEFINE_GUIDEX(IID_IKsPropertySet); |
| 506 |
#endif
|
| 507 |
|
| 508 |
#ifndef _IKsControl_
|
| 509 |
DEFINE_GUIDEX(IID_IKsControl); |
| 510 |
#endif
|
| 511 |
|
| 512 |
DEFINE_GUIDEX(IID_IKsAggregateControl); |
| 513 |
#ifndef _IKsTopology_
|
| 514 |
DEFINE_GUIDEX(IID_IKsTopology); |
| 515 |
#endif
|
| 516 |
DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196",CLSID_Proxy);
|
| 517 |
#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy)
|
| 518 |
|
| 519 |
#else /* _KS_ */ |
| 520 |
|
| 521 |
#ifndef _IKsPropertySet_
|
| 522 |
DEFINE_GUID(IID_IKsPropertySet,STATIC_IID_IKsPropertySet); |
| 523 |
#endif
|
| 524 |
|
| 525 |
DEFINE_GUID(CLSID_Proxy,STATIC_CLSID_Proxy); |
| 526 |
|
| 527 |
#endif /* _KS_ */ |
| 528 |
|
| 529 |
#ifndef _IKsPropertySet_
|
| 530 |
#define _IKsPropertySet_
|
| 531 |
#define KSPROPERTY_SUPPORT_GET 1 |
| 532 |
#define KSPROPERTY_SUPPORT_SET 2 |
| 533 |
|
| 534 |
#ifdef DECLARE_INTERFACE_
|
| 535 |
struct IKsPropertySet;
|
| 536 |
#undef INTERFACE
|
| 537 |
#define INTERFACE IKsPropertySet
|
| 538 |
DECLARE_INTERFACE_(IKsPropertySet,IUnknown) |
| 539 |
{
|
| 540 |
STDMETHOD(Set) (THIS_ |
| 541 |
REFGUID PropSet, |
| 542 |
ULONG Id, |
| 543 |
LPVOID InstanceData, |
| 544 |
ULONG InstanceLength, |
| 545 |
LPVOID PropertyData, |
| 546 |
ULONG DataLength |
| 547 |
) PURE; |
| 548 |
STDMETHOD(Get) (THIS_ |
| 549 |
REFGUID PropSet, |
| 550 |
ULONG Id, |
| 551 |
LPVOID InstanceData, |
| 552 |
ULONG InstanceLength, |
| 553 |
LPVOID PropertyData, |
| 554 |
ULONG DataLength, |
| 555 |
ULONG *BytesReturned |
| 556 |
) PURE; |
| 557 |
STDMETHOD(QuerySupported) (THIS_ |
| 558 |
REFGUID PropSet, |
| 559 |
ULONG Id, |
| 560 |
ULONG *TypeSupport |
| 561 |
) PURE; |
| 562 |
}; |
| 563 |
#endif /* DECLARE_INTERFACE_ */ |
| 564 |
#endif /* _IKsPropertySet_ */ |
| 565 |
|
| 566 |
#ifndef _IKsControl_
|
| 567 |
#define _IKsControl_
|
| 568 |
#ifdef DECLARE_INTERFACE_
|
| 569 |
struct IKsControl;
|
| 570 |
#undef INTERFACE
|
| 571 |
#define INTERFACE IKsControl
|
| 572 |
DECLARE_INTERFACE_(IKsControl,IUnknown) |
| 573 |
{
|
| 574 |
STDMETHOD(KsProperty) (THIS_ |
| 575 |
PKSPROPERTY Property, |
| 576 |
ULONG PropertyLength, |
| 577 |
LPVOID PropertyData, |
| 578 |
ULONG DataLength, |
| 579 |
ULONG *BytesReturned |
| 580 |
) PURE; |
| 581 |
STDMETHOD(KsMethod) (THIS_ |
| 582 |
PKSMETHOD Method, |
| 583 |
ULONG MethodLength, |
| 584 |
LPVOID MethodData, |
| 585 |
ULONG DataLength, |
| 586 |
ULONG *BytesReturned |
| 587 |
) PURE; |
| 588 |
STDMETHOD(KsEvent) (THIS_ |
| 589 |
PKSEVENT Event, |
| 590 |
ULONG EventLength, |
| 591 |
LPVOID EventData, |
| 592 |
ULONG DataLength, |
| 593 |
ULONG *BytesReturned |
| 594 |
) PURE; |
| 595 |
}; |
| 596 |
#endif /* DECLARE_INTERFACE_ */ |
| 597 |
#endif /* _IKsControl_ */ |
| 598 |
|
| 599 |
#ifdef DECLARE_INTERFACE_
|
| 600 |
struct IKsAggregateControl;
|
| 601 |
#undef INTERFACE
|
| 602 |
#define INTERFACE IKsAggregateControl
|
| 603 |
DECLARE_INTERFACE_(IKsAggregateControl,IUnknown) |
| 604 |
{
|
| 605 |
STDMETHOD(KsAddAggregate) (THIS_ |
| 606 |
REFGUID AggregateClass |
| 607 |
) PURE; |
| 608 |
STDMETHOD(KsRemoveAggregate) (THIS_ |
| 609 |
REFGUID AggregateClass |
| 610 |
) PURE; |
| 611 |
}; |
| 612 |
#endif /* DECLARE_INTERFACE_ */ |
| 613 |
|
| 614 |
#ifndef _IKsTopology_
|
| 615 |
#define _IKsTopology_
|
| 616 |
#ifdef DECLARE_INTERFACE_
|
| 617 |
struct IKsTopology;
|
| 618 |
#undef INTERFACE
|
| 619 |
#define INTERFACE IKsTopology
|
| 620 |
DECLARE_INTERFACE_(IKsTopology,IUnknown) |
| 621 |
{
|
| 622 |
STDMETHOD(CreateNodeInstance) (THIS_ |
| 623 |
ULONG NodeId, |
| 624 |
ULONG Flags, |
| 625 |
ACCESS_MASK DesiredAccess, |
| 626 |
IUnknown *UnkOuter, |
| 627 |
REFGUID InterfaceId, |
| 628 |
LPVOID *Interface |
| 629 |
) PURE; |
| 630 |
}; |
| 631 |
#endif /* DECLARE_INTERFACE_ */ |
| 632 |
#endif /* _IKsTopology_ */ |
| 633 |
|
| 634 |
#ifdef __cplusplus
|
| 635 |
} |
| 636 |
#endif
|
| 637 |
|
| 638 |
#endif /* __KSPROXY__ */ |
| 639 |
|