Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenksproxy.h
Go to the documentation of this file.
00001 #ifndef __KSPROXY__ 00002 #define __KSPROXY__ 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 #endif 00007 00008 #undef KSDDKAPI 00009 #ifdef _KSDDK_ 00010 #define KSDDKAPI 00011 #else 00012 #define KSDDKAPI DECLSPEC_IMPORT 00013 #endif 00014 00015 #define STATIC_IID_IKsObject\ 00016 0x423c13a2L, 0x2070, 0x11d0, 0x9e, 0xf7, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1 00017 00018 #define STATIC_IID_IKsPinEx\ 00019 0x7bb38260L, 0xd19c, 0x11d2, 0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e 00020 00021 #define STATIC_IID_IKsPin\ 00022 0xb61178d1L, 0xa2d9, 0x11cf, 0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1 00023 00024 #define STATIC_IID_IKsPinPipe\ 00025 0xe539cd90L, 0xa8b4, 0x11d1, 0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02 00026 00027 #define STATIC_IID_IKsDataTypeHandler\ 00028 0x5ffbaa02L, 0x49a3, 0x11d0, 0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1 00029 00030 #define STATIC_IID_IKsDataTypeCompletion\ 00031 0x827D1A0EL, 0x0F73, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00032 00033 #define STATIC_IID_IKsInterfaceHandler\ 00034 0xD3ABC7E0L, 0x9A61, 0x11D0, 0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00035 00036 #define STATIC_IID_IKsClockPropertySet\ 00037 0x5C5CBD84L, 0xE755, 0x11D0, 0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00038 00039 #define STATIC_IID_IKsAllocator\ 00040 0x8da64899L, 0xc0d9, 0x11d0, 0x84, 0x13, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a 00041 00042 #define STATIC_IID_IKsAllocatorEx\ 00043 0x091bb63aL, 0x603f, 0x11d1, 0xb0, 0x67, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02 00044 00045 00046 #ifndef STATIC_IID_IKsPropertySet 00047 #define STATIC_IID_IKsPropertySet\ 00048 0x31EFAC30L, 0x515C, 0x11d0, 0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93 00049 #endif 00050 00051 #define STATIC_IID_IKsTopology\ 00052 0x28F54683L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00053 00054 #ifndef STATIC_IID_IKsControl 00055 #define STATIC_IID_IKsControl\ 00056 0x28F54685L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00057 #endif 00058 00059 #define STATIC_IID_IKsAggregateControl\ 00060 0x7F40EAC0L, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00061 00062 #define STATIC_CLSID_Proxy \ 00063 0x17CCA71BL, 0xECD7, 0x11D0, 0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 00064 00065 #ifdef _KS_ 00066 00067 #if !defined(__cplusplus) || _MSC_VER < 1100 00068 00069 #define IID_IKsQualityForwarder KSCATEGORY_QUALITY 00070 00071 DEFINE_GUIDEX(IID_IKsObject); 00072 DEFINE_GUIDEX(IID_IKsPin); 00073 DEFINE_GUIDEX(IID_IKsPinEx); 00074 DEFINE_GUIDEX(IID_IKsPinPipe); 00075 DEFINE_GUIDEX(IID_IKsDataTypeHandler); 00076 DEFINE_GUIDEX(IID_IKsDataTypeCompletion); 00077 DEFINE_GUIDEX(IID_IKsInterfaceHandler); 00078 DEFINE_GUIDEX(IID_IKsClockPropertySet); 00079 DEFINE_GUIDEX(IID_IKsAllocator); 00080 DEFINE_GUIDEX(IID_IKsAllocatorEx); 00081 #endif 00082 00083 #define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY 00084 00085 typedef enum 00086 { 00087 KsAllocatorMode_User, 00088 KsAllocatorMode_Kernel 00089 }KSALLOCATORMODE; 00090 00091 00092 typedef enum 00093 { 00094 FramingProp_Uninitialized, 00095 FramingProp_None, 00096 FramingProp_Old, 00097 FramingProp_Ex 00098 }FRAMING_PROP; 00099 00100 typedef FRAMING_PROP *PFRAMING_PROP; 00101 00102 00103 typedef enum 00104 { 00105 Framing_Cache_Update, 00106 Framing_Cache_ReadLast, 00107 Framing_Cache_ReadOrig, 00108 Framing_Cache_Write 00109 }FRAMING_CACHE_OPS; 00110 00111 00112 typedef struct 00113 { 00114 LONGLONG MinTotalNominator; 00115 LONGLONG MaxTotalNominator; 00116 LONGLONG TotalDenominator; 00117 }OPTIMAL_WEIGHT_TOTALS; 00118 00119 typedef struct IPin IPin; 00120 typedef struct IKsPin IKsPin; 00121 typedef struct IKsAllocator IKsAllocator; 00122 typedef struct IKsAllocatorEx IKsAllocatorEx; 00123 00124 00125 #define AllocatorStrategy_DontCare 0 00126 #define AllocatorStrategy_MinimizeNumberOfFrames 1 00127 #define AllocatorStrategy_MinimizeFrameSize 2 00128 #define AllocatorStrategy_MinimizeNumberOfAllocators 4 00129 #define AllocatorStrategy_MaximizeSpeed 8 00130 00131 #define PipeFactor_None 0x0 00132 #define PipeFactor_UserModeUpstream 0x1 00133 #define PipeFactor_UserModeDownstream 0x2 00134 #define PipeFactor_MemoryTypes 0x4 00135 #define PipeFactor_Flags 0x8 00136 #define PipeFactor_PhysicalRanges 0x10 00137 #define PipeFactor_OptimalRanges 0x20 00138 #define PipeFactor_FixedCompression 0x40 00139 #define PipeFactor_UnknownCompression 0x80 00140 #define PipeFactor_Buffers 0x100 00141 #define PipeFactor_Align 0x200 00142 #define PipeFactor_PhysicalEnd 0x400 00143 #define PipeFactor_LogicalEnd 0x800 00144 00145 typedef enum 00146 { 00147 PipeState_DontCare, 00148 PipeState_RangeNotFixed, 00149 PipeState_RangeFixed, 00150 PipeState_CompressionUnknown, 00151 PipeState_Finalized 00152 }PIPE_STATE; 00153 00154 00155 typedef struct _PIPE_DIMENSIONS 00156 { 00157 KS_COMPRESSION AllocatorPin; 00158 KS_COMPRESSION MaxExpansionPin; 00159 KS_COMPRESSION EndPin; 00160 }PIPE_DIMENSIONS, *PPIPE_DIMENSIONS; 00161 00162 00163 typedef enum 00164 { 00165 Pipe_Allocator_None, 00166 Pipe_Allocator_FirstPin, 00167 Pipe_Allocator_LastPin, 00168 Pipe_Allocator_MiddlePin 00169 }PIPE_ALLOCATOR_PLACE, *PPIPE_ALLOCATOR_PLACE;; 00170 00171 typedef enum 00172 { 00173 KS_MemoryTypeDontCare = 0, 00174 KS_MemoryTypeKernelPaged, 00175 KS_MemoryTypeKernelNonPaged, 00176 KS_MemoryTypeDeviceHostMapped, 00177 KS_MemoryTypeDeviceSpecific, 00178 KS_MemoryTypeUser, 00179 KS_MemoryTypeAnyHost 00180 }KS_LogicalMemoryType, *PKS_LogicalMemoryType;; 00181 00182 typedef struct _PIPE_TERMINATION { 00183 ULONG Flags; 00184 ULONG OutsideFactors; 00185 ULONG Weigth; 00186 KS_FRAMING_RANGE PhysicalRange; 00187 KS_FRAMING_RANGE_WEIGHTED OptimalRange; 00188 KS_COMPRESSION Compression; 00189 }PIPE_TERMINATION; 00190 00191 00192 typedef struct _ALLOCATOR_PROPERTIES_EX 00193 { 00194 long cBuffers; 00195 long cbBuffer; 00196 long cbAlign; 00197 long cbPrefix; 00198 00199 GUID MemoryType; 00200 GUID BusType; 00201 PIPE_STATE State; 00202 PIPE_TERMINATION Input; 00203 PIPE_TERMINATION Output; 00204 ULONG Strategy; 00205 ULONG Flags; 00206 ULONG Weight; 00207 KS_LogicalMemoryType LogicalMemoryType; 00208 PIPE_ALLOCATOR_PLACE AllocatorPlace; 00209 PIPE_DIMENSIONS Dimensions; 00210 KS_FRAMING_RANGE PhysicalRange; 00211 IKsAllocatorEx* PrevSegment; 00212 ULONG CountNextSegments; 00213 IKsAllocatorEx** NextSegments; 00214 ULONG InsideFactors; 00215 ULONG NumberPins; 00216 }ALLOCATOR_PROPERTIES_EX; 00217 00218 typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX; 00219 00220 00221 #ifdef __STREAMS__ 00222 00223 struct DECLSPEC_UUID("5C5CBD84-E755-11D0-AC18-00A0C9223196") IKsClockPropertySet; 00224 #undef INTERFACE 00225 #define INTERFACE IKsClockPropertySet 00226 DECLARE_INTERFACE_(IKsClockPropertySet, IUnknown) 00227 { 00228 STDMETHOD(KsGetTime)( 00229 THIS_ 00230 LONGLONG* Time 00231 ) PURE; 00232 STDMETHOD(KsSetTime)( 00233 THIS_ 00234 LONGLONG Time 00235 ) PURE; 00236 STDMETHOD(KsGetPhysicalTime)( 00237 THIS_ 00238 LONGLONG* Time 00239 ) PURE; 00240 STDMETHOD(KsSetPhysicalTime)( 00241 THIS_ 00242 LONGLONG Time 00243 ) PURE; 00244 STDMETHOD(KsGetCorrelatedTime)( 00245 THIS_ 00246 KSCORRELATED_TIME* CorrelatedTime 00247 ) PURE; 00248 STDMETHOD(KsSetCorrelatedTime)( 00249 THIS_ 00250 KSCORRELATED_TIME* CorrelatedTime 00251 ) PURE; 00252 STDMETHOD(KsGetCorrelatedPhysicalTime)( 00253 THIS_ 00254 KSCORRELATED_TIME* CorrelatedTime 00255 ) PURE; 00256 STDMETHOD(KsSetCorrelatedPhysicalTime)( 00257 THIS_ 00258 KSCORRELATED_TIME* CorrelatedTime 00259 ) PURE; 00260 STDMETHOD(KsGetResolution)( 00261 THIS_ 00262 KSRESOLUTION* Resolution 00263 ) PURE; 00264 STDMETHOD(KsGetState)( 00265 THIS_ 00266 KSSTATE* State 00267 ) PURE; 00268 }; 00269 00270 00271 interface DECLSPEC_UUID("8da64899-c0d9-11d0-8413-0000f822fe8a") IKsAllocator; 00272 #undef INTERFACE 00273 #define INTERFACE IKsAllocator 00274 DECLARE_INTERFACE_(IKsAllocator, IUnknown) 00275 { 00276 STDMETHOD_(HANDLE, KsGetAllocatorHandle)( 00277 THIS 00278 ) PURE; 00279 STDMETHOD_(KSALLOCATORMODE, KsGetAllocatorMode)( 00280 THIS 00281 ) PURE; 00282 STDMETHOD(KsGetAllocatorStatus)( 00283 THIS_ 00284 PKSSTREAMALLOCATOR_STATUS AllocatorStatus 00285 ) PURE; 00286 STDMETHOD_(VOID, KsSetAllocatorMode)( 00287 THIS_ 00288 KSALLOCATORMODE Mode 00289 ) PURE; 00290 }; 00291 00292 interface DECLSPEC_UUID("091bb63a-603f-11d1-b067-00a0c9062802") IKsAllocatorEx; 00293 #undef INTERFACE 00294 #define INTERFACE IKsAllocatorEx 00295 DECLARE_INTERFACE_(IKsAllocatorEx, IKsAllocator) 00296 { 00297 STDMETHOD_(PALLOCATOR_PROPERTIES_EX, KsGetProperties)( 00298 THIS 00299 ) PURE; 00300 STDMETHOD_(VOID, KsSetProperties)( 00301 THIS_ 00302 PALLOCATOR_PROPERTIES_EX 00303 ) PURE; 00304 STDMETHOD_(VOID, KsSetAllocatorHandle)( 00305 THIS_ 00306 HANDLE AllocatorHandle 00307 ) PURE; 00308 STDMETHOD_(HANDLE, KsCreateAllocatorAndGetHandle)( 00309 THIS_ 00310 IKsPin* KsPin 00311 ) PURE; 00312 }; 00313 00314 typedef enum { 00315 KsPeekOperation_PeekOnly, 00316 KsPeekOperation_AddRef 00317 } KSPEEKOPERATION; 00318 00319 typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT; 00320 00321 interface DECLSPEC_UUID("b61178d1-a2d9-11cf-9e53-00aa00a216a1") IKsPin; 00322 00323 #undef INTERFACE 00324 #define INTERFACE IKsPin 00325 DECLARE_INTERFACE_(IKsPin, IUnknown) 00326 { 00327 STDMETHOD(KsQueryMediums)( 00328 THIS_ 00329 PKSMULTIPLE_ITEM* MediumList 00330 ) PURE; 00331 STDMETHOD(KsQueryInterfaces)( 00332 THIS_ 00333 PKSMULTIPLE_ITEM* InterfaceList 00334 ) PURE; 00335 STDMETHOD(KsCreateSinkPinHandle)( 00336 THIS_ 00337 KSPIN_INTERFACE& Interface, 00338 KSPIN_MEDIUM& Medium 00339 ) PURE; 00340 STDMETHOD(KsGetCurrentCommunication)( 00341 THIS_ 00342 KSPIN_COMMUNICATION *Communication, 00343 KSPIN_INTERFACE *Interface, 00344 KSPIN_MEDIUM *Medium 00345 ) PURE; 00346 STDMETHOD(KsPropagateAcquire)( 00347 THIS 00348 ) PURE; 00349 STDMETHOD(KsDeliver)( 00350 THIS_ 00351 IMediaSample* Sample, 00352 ULONG Flags 00353 ) PURE; 00354 STDMETHOD(KsMediaSamplesCompleted)( 00355 THIS_ 00356 PKSSTREAM_SEGMENT StreamSegment 00357 ) PURE; 00358 STDMETHOD_(IMemAllocator *, KsPeekAllocator)( 00359 THIS_ 00360 KSPEEKOPERATION Operation 00361 ) PURE; 00362 STDMETHOD(KsReceiveAllocator)( 00363 THIS_ 00364 IMemAllocator *MemAllocator 00365 ) PURE; 00366 STDMETHOD(KsRenegotiateAllocator)( 00367 THIS 00368 ) PURE; 00369 STDMETHOD_(LONG, KsIncrementPendingIoCount)( 00370 THIS 00371 ) PURE; 00372 STDMETHOD_(LONG, KsDecrementPendingIoCount)( 00373 THIS 00374 ) PURE; 00375 STDMETHOD(KsQualityNotify)( 00376 THIS_ 00377 ULONG Proportion, 00378 REFERENCE_TIME TimeDelta 00379 ) PURE; 00380 }; 00381 00382 interface DECLSPEC_UUID("7bb38260-d19c-11d2-b38a-00a0c95ec22e") IKsPinEx; 00383 #undef INTERFACE 00384 #define INTERFACE IKsPinEx 00385 DECLARE_INTERFACE_(IKsPinEx, IKsPin) 00386 { 00387 STDMETHOD_(VOID, KsNotifyError)( 00388 THIS_ 00389 IMediaSample* Sample, 00390 HRESULT hr 00391 ) PURE; 00392 }; 00393 00394 interface DECLSPEC_UUID("e539cd90-a8b4-11d1-8189-00a0c9062802") IKsPinPipe; 00395 #undef INTERFACE 00396 #define INTERFACE IKsPinPipe 00397 DECLARE_INTERFACE_(IKsPinPipe, IUnknown) 00398 { 00399 STDMETHOD(KsGetPinFramingCache)( 00400 THIS_ 00401 PKSALLOCATOR_FRAMING_EX *FramingEx, 00402 PFRAMING_PROP FramingProp, 00403 FRAMING_CACHE_OPS Option 00404 ) PURE; 00405 STDMETHOD(KsSetPinFramingCache)( 00406 THIS_ 00407 PKSALLOCATOR_FRAMING_EX FramingEx, 00408 PFRAMING_PROP FramingProp, 00409 FRAMING_CACHE_OPS Option 00410 ) PURE; 00411 STDMETHOD_(IPin*, KsGetConnectedPin)( 00412 THIS 00413 ) PURE; 00414 STDMETHOD_(IKsAllocatorEx*, KsGetPipe)( 00415 THIS_ 00416 KSPEEKOPERATION Operation 00417 ) PURE; 00418 STDMETHOD(KsSetPipe)( 00419 THIS_ 00420 IKsAllocatorEx *KsAllocator 00421 ) PURE; 00422 STDMETHOD_(ULONG, KsGetPipeAllocatorFlag)( 00423 THIS 00424 ) PURE; 00425 STDMETHOD(KsSetPipeAllocatorFlag)( 00426 THIS_ 00427 ULONG Flag 00428 ) PURE; 00429 STDMETHOD_(GUID, KsGetPinBusCache)( 00430 THIS 00431 ) PURE; 00432 STDMETHOD(KsSetPinBusCache)( 00433 THIS_ 00434 GUID Bus 00435 ) PURE; 00436 00437 STDMETHOD_(PWCHAR, KsGetPinName)( 00438 THIS 00439 ) PURE; 00440 STDMETHOD_(PWCHAR, KsGetFilterName)( 00441 THIS 00442 ) PURE; 00443 }; 00444 00445 00446 interface DECLSPEC_UUID("CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory; 00447 #undef INTERFACE 00448 #define INTERFACE IKsPinFactory 00449 DECLARE_INTERFACE_(IKsPinFactory, IUnknown) 00450 { 00451 STDMETHOD(KsPinFactory)( 00452 THIS_ 00453 ULONG* PinFactory 00454 ) PURE; 00455 }; 00456 00457 typedef enum { 00458 KsIoOperation_Write, 00459 KsIoOperation_Read 00460 } KSIOOPERATION; 00461 00462 interface DECLSPEC_UUID("5ffbaa02-49a3-11d0-9f36-00aa00a216a1") IKsDataTypeHandler; 00463 #undef INTERFACE 00464 #define INTERFACE IKsDataTypeHandler 00465 DECLARE_INTERFACE_(IKsDataTypeHandler, IUnknown) 00466 { 00467 STDMETHOD(KsCompleteIoOperation)( 00468 THIS_ 00469 IMediaSample *Sample, 00470 PVOID StreamHeader, 00471 KSIOOPERATION IoOperation, 00472 BOOL Cancelled 00473 ) PURE; 00474 STDMETHOD(KsIsMediaTypeInRanges)( 00475 THIS_ 00476 PVOID DataRanges 00477 ) PURE; 00478 STDMETHOD(KsPrepareIoOperation)( 00479 THIS_ 00480 IMediaSample *Sample, 00481 PVOID StreamHeader, 00482 KSIOOPERATION IoOperation 00483 ) PURE; 00484 STDMETHOD(KsQueryExtendedSize)( 00485 THIS_ 00486 ULONG* ExtendedSize 00487 ) PURE; 00488 STDMETHOD(KsSetMediaType)( 00489 THIS_ 00490 const AM_MEDIA_TYPE* AmMediaType 00491 ) PURE; 00492 }; 00493 00494 interface DECLSPEC_UUID("827D1A0E-0F73-11D2-B27A-00A0C9223196") IKsDataTypeCompletion; 00495 #undef INTERFACE 00496 #define INTERFACE IKsDataTypeCompletion 00497 DECLARE_INTERFACE_(IKsDataTypeCompletion, IUnknown) 00498 { 00499 STDMETHOD(KsCompleteMediaType)( 00500 THIS_ 00501 HANDLE FilterHandle, 00502 ULONG PinFactoryId, 00503 AM_MEDIA_TYPE* AmMediaType 00504 ) PURE; 00505 }; 00506 00507 interface DECLSPEC_UUID("D3ABC7E0-9A61-11d0-A40D-00A0C9223196") IKsInterfaceHandler; 00508 #undef INTERFACE 00509 #define INTERFACE IKsInterfaceHandler 00510 DECLARE_INTERFACE_(IKsInterfaceHandler, IUnknown) 00511 { 00512 STDMETHOD(KsSetPin)( 00513 THIS_ 00514 IKsPin *KsPin 00515 ) PURE; 00516 STDMETHOD(KsProcessMediaSamples)( 00517 THIS_ 00518 IKsDataTypeHandler *KsDataTypeHandler, 00519 IMediaSample** SampleList, 00520 PLONG SampleCount, 00521 KSIOOPERATION IoOperation, 00522 PKSSTREAM_SEGMENT *StreamSegment 00523 ) PURE; 00524 STDMETHOD(KsCompleteIo)( 00525 THIS_ 00526 PKSSTREAM_SEGMENT StreamSegment 00527 ) PURE; 00528 }; 00529 00530 00531 typedef struct _KSSTREAM_SEGMENT 00532 { 00533 IKsInterfaceHandler *KsInterfaceHandler; 00534 IKsDataTypeHandler *KsDataTypeHandler; 00535 KSIOOPERATION IoOperation; 00536 HANDLE CompletionEvent; 00537 00538 }KSSTREAM_SEGMENT; 00539 00540 interface DECLSPEC_UUID("423c13a2-2070-11d0-9ef7-00aa00a216a1") IKsObject; 00541 #undef INTERFACE 00542 #define INTERFACE IKsObject 00543 DECLARE_INTERFACE_(IKsObject, IUnknown) 00544 { 00545 STDMETHOD_(HANDLE, KsGetObjectHandle)( 00546 THIS 00547 ) PURE; 00548 }; 00549 00550 interface DECLSPEC_UUID("97ebaacb-95bd-11d0-a3ea-00a0c9223196") IKsQualityForwarder; 00551 #undef INTERFACE 00552 #define INTERFACE IKsQualityForwarder 00553 DECLARE_INTERFACE_(IKsQualityForwarder, IKsObject) 00554 { 00555 STDMETHOD_(VOID, KsFlushClient)( 00556 THIS_ 00557 IKsPin* Pin 00558 ) PURE; 00559 }; 00560 00561 #if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1) 00562 00563 interface DECLSPEC_UUID("412bd695-f84b-46c1-ac73-54196dbc8fa7") IKsNotifyEvent; 00564 #undef INTERFACE 00565 #define INTERFACE IKsNotifyEvent 00566 DECLARE_INTERFACE_(IKsNotifyEvent, IUnknown) 00567 { 00568 STDMETHOD(KsNotifyEvent)( 00569 THIS_ 00570 ULONG Event, 00571 ULONG_PTR lParam1, 00572 ULONG_PTR lParam2 00573 ) PURE; 00574 }; 00575 00576 #endif 00577 00578 KSDDKAPI 00579 HRESULT 00580 WINAPI 00581 KsResolveRequiredAttributes( 00582 PKSDATARANGE DataRange, 00583 PKSMULTIPLE_ITEM Attributes OPTIONAL); 00584 00585 KSDDKAPI 00586 HRESULT 00587 WINAPI 00588 KsOpenDefaultDevice( 00589 REFGUID Category, 00590 ACCESS_MASK Access, 00591 PHANDLE DeviceHandle); 00592 00593 KSDDKAPI 00594 HRESULT 00595 WINAPI 00596 KsSynchronousDeviceControl( 00597 HANDLE Handle, 00598 ULONG IoControl, 00599 PVOID InBuffer, 00600 ULONG InLength, 00601 PVOID OutBuffer, 00602 ULONG OutLength, 00603 PULONG BytesReturned); 00604 00605 KSDDKAPI 00606 HRESULT 00607 WINAPI 00608 KsGetMultiplePinFactoryItems( 00609 HANDLE FilterHandle, 00610 ULONG PinFactoryId, 00611 ULONG PropertyId, 00612 PVOID* Items); 00613 00614 KSDDKAPI 00615 HRESULT 00616 WINAPI 00617 KsGetMediaTypeCount( 00618 HANDLE FilterHandle, 00619 ULONG PinFactoryId, 00620 ULONG* MediaTypeCount); 00621 00622 KSDDKAPI 00623 HRESULT 00624 WINAPI 00625 KsGetMediaType( 00626 int Position, 00627 AM_MEDIA_TYPE* AmMediaType, 00628 HANDLE FilterHandle, 00629 ULONG PinFactoryId); 00630 00631 #endif 00632 00633 #ifndef _IKsPropertySet_ 00634 #if !defined(__cplusplus) || _MSC_VER < 1100 00635 DEFINE_GUIDEX(IID_IKsPropertySet); 00636 #endif 00637 #endif 00638 00639 #ifndef _IKsControl_ 00640 #if !defined(__cplusplus) || _MSC_VER < 1100 00641 DEFINE_GUIDEX(IID_IKsControl); 00642 #endif 00643 #endif 00644 00645 #if !defined(__cplusplus) || _MSC_VER < 1100 00646 DEFINE_GUIDEX(IID_IKsAggregateControl); 00647 #endif 00648 00649 #ifndef _IKsTopology_ 00650 #if !defined(__cplusplus) || _MSC_VER < 1100 00651 DEFINE_GUIDEX(IID_IKsTopology); 00652 #endif 00653 #endif 00654 00655 DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196", CLSID_Proxy); 00656 #define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy) 00657 00658 #else 00659 00660 #ifndef _IKsPropertySet_ 00661 #if !defined(__cplusplus) || _MSC_VER < 1100 00662 DEFINE_GUID(IID_IKsPropertySet, STATIC_IID_IKsPropertySet); 00663 #endif 00664 #endif 00665 00666 #if !defined(__cplusplus) || _MSC_VER < 1100 00667 DEFINE_GUID(CLSID_Proxy, STATIC_CLSID_Proxy); 00668 #else 00669 DECLSPEC_UUID("17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy; 00670 #endif 00671 00672 #endif 00673 00674 #ifndef _IKsPropertySet_ 00675 #define _IKsPropertySet_ 00676 00677 #define KSPROPERTY_SUPPORT_GET 1 00678 #define KSPROPERTY_SUPPORT_SET 2 00679 00680 interface DECLSPEC_UUID("31EFAC30-515C-11d0-A9AA-00aa0061be93") 00681 #undef INTERFACE 00682 #define INTERFACE IKsPropertySet 00683 DECLARE_INTERFACE_(IKsPropertySet, IUnknown) 00684 { 00685 STDMETHOD(Set)( 00686 THIS_ 00687 IN REFGUID PropSet, 00688 IN ULONG Id, 00689 IN LPVOID InstanceData, 00690 IN ULONG InstanceLength, 00691 IN LPVOID PropertyData, 00692 IN ULONG DataLength 00693 ) PURE; 00694 00695 STDMETHOD(Get)( 00696 THIS_ 00697 IN REFGUID PropSet, 00698 IN ULONG Id, 00699 IN LPVOID InstanceData, 00700 IN ULONG InstanceLength, 00701 OUT LPVOID PropertyData, 00702 IN ULONG DataLength, 00703 OUT ULONG* BytesReturned 00704 ) PURE; 00705 00706 STDMETHOD(QuerySupported)( 00707 THIS_ 00708 IN REFGUID PropSet, 00709 IN ULONG Id, 00710 OUT ULONG* TypeSupport 00711 ) PURE; 00712 }; 00713 00714 #endif 00715 00716 #ifndef _IKsControl_ 00717 #define _IKsControl_ 00718 00719 DEFINE_GUID(IID_IKsControl, 28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96); 00720 00721 00722 interface DECLSPEC_UUID("28F54685-06FD-11D2-B27A-00A0C9223196") IKsControl; 00723 #undef INTERFACE 00724 #define INTERFACE IKsControl 00725 DECLARE_INTERFACE_(IKsControl, IUnknown) 00726 { 00727 STDMETHOD(KsProperty)( 00728 THIS_ 00729 IN PKSPROPERTY Property, 00730 IN ULONG PropertyLength, 00731 IN OUT LPVOID PropertyData, 00732 IN ULONG DataLength, 00733 OUT ULONG* BytesReturned 00734 ) PURE; 00735 STDMETHOD(KsMethod)( 00736 THIS_ 00737 IN PKSMETHOD Method, 00738 IN ULONG MethodLength, 00739 IN OUT LPVOID MethodData, 00740 IN ULONG DataLength, 00741 OUT ULONG* BytesReturned 00742 ) PURE; 00743 STDMETHOD(KsEvent)( 00744 THIS_ 00745 IN PKSEVENT Event OPTIONAL, 00746 IN ULONG EventLength, 00747 IN OUT LPVOID EventData, 00748 IN ULONG DataLength, 00749 OUT ULONG* BytesReturned 00750 ) PURE; 00751 }; 00752 00753 #endif 00754 00755 00756 DEFINE_GUID(IID_IKsAggregateControl, 0x7F40EAC0, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96); 00757 00758 #undef INTERFACE 00759 #define INTERFACE IKsAggregateControl 00760 DECLARE_INTERFACE_(IKsAggregateControl, IUnknown) 00761 { 00762 STDMETHOD(KsAddAggregate)( 00763 THIS_ 00764 IN REFGUID AggregateClass 00765 ) PURE; 00766 STDMETHOD(KsRemoveAggregate)( 00767 THIS_ 00768 IN REFGUID AggregateClass 00769 ) PURE; 00770 }; 00771 00772 #ifndef _IKsTopology_ 00773 #define _IKsTopology_ 00774 00775 DEFINE_GUID(IID_IKsTopology, 0x28F54683, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96); 00776 00777 #undef INTERFACE 00778 #define INTERFACE IKsTopology 00779 DECLARE_INTERFACE_(IKsTopology, IUnknown) 00780 { 00781 STDMETHOD(CreateNodeInstance)( 00782 THIS_ 00783 IN ULONG NodeId, 00784 IN ULONG Flags, 00785 IN ACCESS_MASK DesiredAccess, 00786 IN IUnknown* UnkOuter OPTIONAL, 00787 IN REFGUID InterfaceId, 00788 OUT LPVOID* Interface 00789 ) PURE; 00790 }; 00791 00792 #endif 00793 00794 #ifdef __cplusplus 00795 } 00796 #endif 00797 00798 #endif Generated on Fri May 25 2012 04:30:10 for ReactOS by
1.7.6.1
|