ReactOS 0.4.15-dev-8064-gdaf8068
ksproxy.h
Go to the documentation of this file.
1#ifndef __KSPROXY__
2#define __KSPROXY__
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#undef KSDDKAPI
9#ifdef _KSDDK_
10#define KSDDKAPI
11#else
12#define KSDDKAPI DECLSPEC_IMPORT
13#endif
14
15#define STATIC_IID_IKsObject\
16 0x423c13a2L, 0x2070, 0x11d0, {0x9e, 0xf7, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
17
18#define STATIC_IID_IKsPinEx\
19 0x7bb38260L, 0xd19c, 0x11d2, {0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e}
20
21#define STATIC_IID_IKsPin\
22 0xb61178d1L, 0xa2d9, 0x11cf, {0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
23
24#define STATIC_IID_IKsPinPipe\
25 0xe539cd90L, 0xa8b4, 0x11d1, {0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
26
27#define STATIC_IID_IKsDataTypeHandler\
28 0x5ffbaa02L, 0x49a3, 0x11d0, {0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}
29
30#define STATIC_IID_IKsDataTypeCompletion\
31 0x827D1A0EL, 0x0F73, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
32
33#define STATIC_IID_IKsInterfaceHandler\
34 0xD3ABC7E0L, 0x9A61, 0x11D0, {0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
35
36#define STATIC_IID_IKsClockPropertySet\
37 0x5C5CBD84L, 0xE755, 0x11D0, {0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
38
39#define STATIC_IID_IKsAllocator\
40 0x8da64899L, 0xc0d9, 0x11d0, {0x84, 0x13, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a}
41
42#define STATIC_IID_IKsAllocatorEx\
43 0x091bb63aL, 0x603f, 0x11d1, {0xb0, 0x67, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
44
45
46#ifndef STATIC_IID_IKsPropertySet
47#define STATIC_IID_IKsPropertySet\
48 0x31EFAC30L, 0x515C, 0x11d0, {0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93}
49#endif
50
51#define STATIC_IID_IKsTopology\
52 0x28F54683L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
53
54#ifndef STATIC_IID_IKsControl
55#define STATIC_IID_IKsControl\
56 0x28F54685L, 0x06FD, 0x11D2, {0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
57#endif
58
59#define STATIC_IID_IKsAggregateControl\
60 0x7F40EAC0L, 0x3947, 0x11D2, {0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
61
62#define STATIC_CLSID_Proxy \
63 0x17CCA71BL, 0xECD7, 0x11D0, {0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
64
65#ifdef _KS_
66
67#if !defined(__cplusplus) || _MSC_VER < 1100
68
69#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
70
72DEFINE_GUIDEX(IID_IKsPin);
75DEFINE_GUIDEX(IID_IKsDataTypeHandler);
76DEFINE_GUIDEX(IID_IKsDataTypeCompletion);
77DEFINE_GUIDEX(IID_IKsInterfaceHandler);
81#endif
82
83#define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY
84
85typedef enum
86{
87 KsAllocatorMode_User,
88 KsAllocatorMode_Kernel
89}KSALLOCATORMODE;
90
91
92typedef enum
93{
94 FramingProp_Uninitialized,
95 FramingProp_None,
96 FramingProp_Old,
97 FramingProp_Ex
98}FRAMING_PROP;
99
100typedef FRAMING_PROP *PFRAMING_PROP;
101
102
103typedef enum
104{
105 Framing_Cache_Update,
106 Framing_Cache_ReadLast,
107 Framing_Cache_ReadOrig,
108 Framing_Cache_Write
109}FRAMING_CACHE_OPS;
110
111
112typedef struct
113{
114 LONGLONG MinTotalNominator;
115 LONGLONG MaxTotalNominator;
116 LONGLONG TotalDenominator;
117}OPTIMAL_WEIGHT_TOTALS;
118
119typedef struct IPin IPin;
120typedef struct IKsPin IKsPin;
121typedef struct IKsAllocator IKsAllocator;
122typedef struct IKsAllocatorEx IKsAllocatorEx;
123
124
125#define AllocatorStrategy_DontCare 0
126#define AllocatorStrategy_MinimizeNumberOfFrames 1
127#define AllocatorStrategy_MinimizeFrameSize 2
128#define AllocatorStrategy_MinimizeNumberOfAllocators 4
129#define AllocatorStrategy_MaximizeSpeed 8
130
131#define PipeFactor_None 0x0
132#define PipeFactor_UserModeUpstream 0x1
133#define PipeFactor_UserModeDownstream 0x2
134#define PipeFactor_MemoryTypes 0x4
135#define PipeFactor_Flags 0x8
136#define PipeFactor_PhysicalRanges 0x10
137#define PipeFactor_OptimalRanges 0x20
138#define PipeFactor_FixedCompression 0x40
139#define PipeFactor_UnknownCompression 0x80
140#define PipeFactor_Buffers 0x100
141#define PipeFactor_Align 0x200
142#define PipeFactor_PhysicalEnd 0x400
143#define PipeFactor_LogicalEnd 0x800
144
145typedef enum
146{
147 PipeState_DontCare,
148 PipeState_RangeNotFixed,
149 PipeState_RangeFixed,
150 PipeState_CompressionUnknown,
151 PipeState_Finalized
152}PIPE_STATE;
153
154
155typedef struct _PIPE_DIMENSIONS
156{
157 KS_COMPRESSION AllocatorPin;
158 KS_COMPRESSION MaxExpansionPin;
159 KS_COMPRESSION EndPin;
160}PIPE_DIMENSIONS, *PPIPE_DIMENSIONS;
161
162
163typedef enum
164{
165 Pipe_Allocator_None,
166 Pipe_Allocator_FirstPin,
167 Pipe_Allocator_LastPin,
168 Pipe_Allocator_MiddlePin
169}PIPE_ALLOCATOR_PLACE, *PPIPE_ALLOCATOR_PLACE;
170
171typedef enum
172{
173 KS_MemoryTypeDontCare = 0,
174 KS_MemoryTypeKernelPaged,
175 KS_MemoryTypeKernelNonPaged,
176 KS_MemoryTypeDeviceHostMapped,
177 KS_MemoryTypeDeviceSpecific,
178 KS_MemoryTypeUser,
179 KS_MemoryTypeAnyHost
180}KS_LogicalMemoryType, *PKS_LogicalMemoryType;
181
182typedef 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
192typedef struct _ALLOCATOR_PROPERTIES_EX
193{
194 long cBuffers;
195 long cbBuffer;
196 long cbAlign;
197 long cbPrefix;
198
199 GUID MemoryType;
201 PIPE_STATE State;
202 PIPE_TERMINATION Input;
203 PIPE_TERMINATION Output;
204 ULONG Strategy;
205 ULONG Flags;
206 ULONG Weight;
207 KS_LogicalMemoryType LogicalMemoryType;
208 PIPE_ALLOCATOR_PLACE AllocatorPlace;
209 PIPE_DIMENSIONS Dimensions;
210 KS_FRAMING_RANGE PhysicalRange;
211 IKsAllocatorEx* PrevSegment;
212 ULONG CountNextSegments;
213 IKsAllocatorEx** NextSegments;
214 ULONG InsideFactors;
215 ULONG NumberPins;
216}ALLOCATOR_PROPERTIES_EX;
217
218typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX;
219
220
221#ifdef __STREAMS__
222
223struct DECLSPEC_UUID("5C5CBD84-E755-11D0-AC18-00A0C9223196") IKsClockPropertySet;
224#undef INTERFACE
225#define INTERFACE IKsClockPropertySet
226DECLARE_INTERFACE_(IKsClockPropertySet, IUnknown)
227{
228 STDMETHOD(KsGetTime)(
229 THIS_
231 ) PURE;
232 STDMETHOD(KsSetTime)(
233 THIS_
235 ) PURE;
236 STDMETHOD(KsGetPhysicalTime)(
237 THIS_
239 ) PURE;
240 STDMETHOD(KsSetPhysicalTime)(
241 THIS_
243 ) PURE;
244 STDMETHOD(KsGetCorrelatedTime)(
245 THIS_
246 KSCORRELATED_TIME* CorrelatedTime
247 ) PURE;
248 STDMETHOD(KsSetCorrelatedTime)(
249 THIS_
250 KSCORRELATED_TIME* CorrelatedTime
251 ) PURE;
252 STDMETHOD(KsGetCorrelatedPhysicalTime)(
253 THIS_
254 KSCORRELATED_TIME* CorrelatedTime
255 ) PURE;
256 STDMETHOD(KsSetCorrelatedPhysicalTime)(
257 THIS_
258 KSCORRELATED_TIME* CorrelatedTime
259 ) PURE;
260 STDMETHOD(KsGetResolution)(
261 THIS_
263 ) PURE;
264 STDMETHOD(KsGetState)(
265 THIS_
267 ) PURE;
268};
269
270
271interface DECLSPEC_UUID("8da64899-c0d9-11d0-8413-0000f822fe8a") IKsAllocator;
272#undef INTERFACE
273#define INTERFACE IKsAllocator
274DECLARE_INTERFACE_(IKsAllocator, IUnknown)
275{
276 STDMETHOD_(HANDLE, KsGetAllocatorHandle)(
277 THIS
278 ) PURE;
279 STDMETHOD_(KSALLOCATORMODE, KsGetAllocatorMode)(
280 THIS
281 ) PURE;
282 STDMETHOD(KsGetAllocatorStatus)(
283 THIS_
284 PKSSTREAMALLOCATOR_STATUS AllocatorStatus
285 ) PURE;
286 STDMETHOD_(VOID, KsSetAllocatorMode)(
287 THIS_
288 KSALLOCATORMODE Mode
289 ) PURE;
290};
291
292interface DECLSPEC_UUID("091bb63a-603f-11d1-b067-00a0c9062802") IKsAllocatorEx;
293#undef INTERFACE
294#define INTERFACE IKsAllocatorEx
295DECLARE_INTERFACE_(IKsAllocatorEx, IKsAllocator)
296{
297 STDMETHOD_(PALLOCATOR_PROPERTIES_EX, KsGetProperties)(
298 THIS
299 ) PURE;
300 STDMETHOD_(VOID, KsSetProperties)(
301 THIS_
302 PALLOCATOR_PROPERTIES_EX
303 ) PURE;
304 STDMETHOD_(VOID, KsSetAllocatorHandle)(
305 THIS_
307 ) PURE;
308 STDMETHOD_(HANDLE, KsCreateAllocatorAndGetHandle)(
309 THIS_
310 IKsPin* KsPin
311 ) PURE;
312};
313
314typedef enum {
315 KsPeekOperation_PeekOnly,
316 KsPeekOperation_AddRef
317} KSPEEKOPERATION;
318
319typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;
320
321interface DECLSPEC_UUID("b61178d1-a2d9-11cf-9e53-00aa00a216a1") IKsPin;
322
323#undef INTERFACE
324#define INTERFACE IKsPin
326{
327 STDMETHOD(KsQueryMediums)(
328 THIS_
329 PKSMULTIPLE_ITEM* MediumList
330 ) PURE;
331 STDMETHOD(KsQueryInterfaces)(
332 THIS_
334 ) PURE;
335 STDMETHOD(KsCreateSinkPinHandle)(
336 THIS_
338 KSPIN_MEDIUM& Medium
339 ) PURE;
340 STDMETHOD(KsGetCurrentCommunication)(
341 THIS_
342 KSPIN_COMMUNICATION *Communication,
344 KSPIN_MEDIUM *Medium
345 ) PURE;
346 STDMETHOD(KsPropagateAcquire)(
347 THIS
348 ) PURE;
349 STDMETHOD(KsDeliver)(
350 THIS_
351 IMediaSample* Sample,
353 ) PURE;
354 STDMETHOD(KsMediaSamplesCompleted)(
355 THIS_
356 PKSSTREAM_SEGMENT StreamSegment
357 ) PURE;
358 STDMETHOD_(IMemAllocator *, KsPeekAllocator)(
359 THIS_
360 KSPEEKOPERATION Operation
361 ) PURE;
362 STDMETHOD(KsReceiveAllocator)(
363 THIS_
364 IMemAllocator *MemAllocator
365 ) PURE;
366 STDMETHOD(KsRenegotiateAllocator)(
367 THIS
368 ) PURE;
369 STDMETHOD_(LONG, KsIncrementPendingIoCount)(
370 THIS
371 ) PURE;
372 STDMETHOD_(LONG, KsDecrementPendingIoCount)(
373 THIS
374 ) PURE;
375 STDMETHOD(KsQualityNotify)(
376 THIS_
377 ULONG Proportion,
378 REFERENCE_TIME TimeDelta
379 ) PURE;
380};
381
382interface DECLSPEC_UUID("7bb38260-d19c-11d2-b38a-00a0c95ec22e") IKsPinEx;
383#undef INTERFACE
384#define INTERFACE IKsPinEx
385DECLARE_INTERFACE_(IKsPinEx, IKsPin)
386{
387 STDMETHOD_(VOID, KsNotifyError)(
388 THIS_
389 IMediaSample* Sample,
390 HRESULT hr
391 ) PURE;
392};
393
394interface DECLSPEC_UUID("e539cd90-a8b4-11d1-8189-00a0c9062802") IKsPinPipe;
395#undef INTERFACE
396#define INTERFACE IKsPinPipe
397DECLARE_INTERFACE_(IKsPinPipe, IUnknown)
398{
399 STDMETHOD(KsGetPinFramingCache)(
400 THIS_
401 PKSALLOCATOR_FRAMING_EX *FramingEx,
402 PFRAMING_PROP FramingProp,
403 FRAMING_CACHE_OPS Option
404 ) PURE;
405 STDMETHOD(KsSetPinFramingCache)(
406 THIS_
407 PKSALLOCATOR_FRAMING_EX FramingEx,
408 PFRAMING_PROP FramingProp,
409 FRAMING_CACHE_OPS Option
410 ) PURE;
411 STDMETHOD_(IPin*, KsGetConnectedPin)(
412 THIS
413 ) PURE;
414 STDMETHOD_(IKsAllocatorEx*, KsGetPipe)(
415 THIS_
416 KSPEEKOPERATION Operation
417 ) PURE;
418 STDMETHOD(KsSetPipe)(
419 THIS_
420 IKsAllocatorEx *KsAllocator
421 ) PURE;
422 STDMETHOD_(ULONG, KsGetPipeAllocatorFlag)(
423 THIS
424 ) PURE;
425 STDMETHOD(KsSetPipeAllocatorFlag)(
426 THIS_
427 ULONG Flag
428 ) PURE;
429 STDMETHOD_(GUID, KsGetPinBusCache)(
430 THIS
431 ) PURE;
432 STDMETHOD(KsSetPinBusCache)(
433 THIS_
434 GUID Bus
435 ) PURE;
436
437 STDMETHOD_(PWCHAR, KsGetPinName)(
438 THIS
439 ) PURE;
440 STDMETHOD_(PWCHAR, KsGetFilterName)(
441 THIS
442 ) PURE;
443};
444
445
446interface DECLSPEC_UUID("CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory;
447#undef INTERFACE
448#define INTERFACE IKsPinFactory
449DECLARE_INTERFACE_(IKsPinFactory, IUnknown)
450{
451 STDMETHOD(KsPinFactory)(
452 THIS_
453 ULONG* PinFactory
454 ) PURE;
455};
456
457typedef enum {
458 KsIoOperation_Write,
459 KsIoOperation_Read
460} KSIOOPERATION;
461
462interface DECLSPEC_UUID("5ffbaa02-49a3-11d0-9f36-00aa00a216a1") IKsDataTypeHandler;
463#undef INTERFACE
464#define INTERFACE IKsDataTypeHandler
465DECLARE_INTERFACE_(IKsDataTypeHandler, IUnknown)
466{
467 STDMETHOD(KsCompleteIoOperation)(
468 THIS_
469 IMediaSample *Sample,
470 PVOID StreamHeader,
471 KSIOOPERATION IoOperation,
472 BOOL Cancelled
473 ) PURE;
474 STDMETHOD(KsIsMediaTypeInRanges)(
475 THIS_
476 PVOID DataRanges
477 ) PURE;
478 STDMETHOD(KsPrepareIoOperation)(
479 THIS_
480 IMediaSample *Sample,
481 PVOID StreamHeader,
482 KSIOOPERATION IoOperation
483 ) PURE;
484 STDMETHOD(KsQueryExtendedSize)(
485 THIS_
486 ULONG* ExtendedSize
487 ) PURE;
488 STDMETHOD(KsSetMediaType)(
489 THIS_
490 const AM_MEDIA_TYPE* AmMediaType
491 ) PURE;
492};
493
494interface DECLSPEC_UUID("827D1A0E-0F73-11D2-B27A-00A0C9223196") IKsDataTypeCompletion;
495#undef INTERFACE
496#define INTERFACE IKsDataTypeCompletion
497DECLARE_INTERFACE_(IKsDataTypeCompletion, IUnknown)
498{
499 STDMETHOD(KsCompleteMediaType)(
500 THIS_
501 HANDLE FilterHandle,
502 ULONG PinFactoryId,
503 AM_MEDIA_TYPE* AmMediaType
504 ) PURE;
505};
506
507interface DECLSPEC_UUID("D3ABC7E0-9A61-11d0-A40D-00A0C9223196") IKsInterfaceHandler;
508#undef INTERFACE
509#define INTERFACE IKsInterfaceHandler
510DECLARE_INTERFACE_(IKsInterfaceHandler, IUnknown)
511{
512 STDMETHOD(KsSetPin)(
513 THIS_
514 IKsPin *KsPin
515 ) PURE;
516 STDMETHOD(KsProcessMediaSamples)(
517 THIS_
518 IKsDataTypeHandler *KsDataTypeHandler,
519 IMediaSample** SampleList,
520 PLONG SampleCount,
521 KSIOOPERATION IoOperation,
522 PKSSTREAM_SEGMENT *StreamSegment
523 ) PURE;
524 STDMETHOD(KsCompleteIo)(
525 THIS_
526 PKSSTREAM_SEGMENT StreamSegment
527 ) PURE;
528};
529
530
531typedef struct _KSSTREAM_SEGMENT
532{
533 IKsInterfaceHandler *KsInterfaceHandler;
534 IKsDataTypeHandler *KsDataTypeHandler;
535 KSIOOPERATION IoOperation;
536 HANDLE CompletionEvent;
537
538}KSSTREAM_SEGMENT;
539
540interface DECLSPEC_UUID("423c13a2-2070-11d0-9ef7-00aa00a216a1") IKsObject;
541#undef INTERFACE
542#define INTERFACE IKsObject
544{
545 STDMETHOD_(HANDLE, KsGetObjectHandle)(
546 THIS
547 ) PURE;
548};
549
550interface DECLSPEC_UUID("97ebaacb-95bd-11d0-a3ea-00a0c9223196") IKsQualityForwarder;
551#undef INTERFACE
552#define INTERFACE IKsQualityForwarder
553DECLARE_INTERFACE_(IKsQualityForwarder, IKsObject)
554{
555 STDMETHOD_(VOID, KsFlushClient)(
556 THIS_
557 IKsPin* Pin
558 ) PURE;
559};
560
561#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) ) || (NTDDI_VERSION >= NTDDI_WS03SP1)
562
563interface DECLSPEC_UUID("412bd695-f84b-46c1-ac73-54196dbc8fa7") IKsNotifyEvent;
564#undef INTERFACE
565#define INTERFACE IKsNotifyEvent
566DECLARE_INTERFACE_(IKsNotifyEvent, IUnknown)
567{
568 STDMETHOD(KsNotifyEvent)(
569 THIS_
570 ULONG Event,
571 ULONG_PTR lParam1,
572 ULONG_PTR lParam2
573 ) PURE;
574};
575
576#endif
577
580WINAPI
582 PKSDATARANGE DataRange,
584
587WINAPI
589 REFGUID Category,
590 ACCESS_MASK Access,
592
595WINAPI
598 ULONG IoControl,
599 PVOID InBuffer,
600 ULONG InLength,
602 ULONG OutLength,
604
607WINAPI
609 HANDLE FilterHandle,
610 ULONG PinFactoryId,
612 PVOID* Items);
613
616WINAPI
618 HANDLE FilterHandle,
619 ULONG PinFactoryId,
620 ULONG* MediaTypeCount);
621
624WINAPI
626 int Position,
627 AM_MEDIA_TYPE* AmMediaType,
628 HANDLE FilterHandle,
629 ULONG PinFactoryId);
630
631#endif
632
633#ifndef _IKsPropertySet_
634#if !defined(__cplusplus) || _MSC_VER < 1100
636#endif
637#endif
638
639#ifndef _IKsControl_
640#if !defined(__cplusplus) || _MSC_VER < 1100
642#endif
643#endif
644
645#if !defined(__cplusplus) || _MSC_VER < 1100
647#endif
648
649#ifndef _IKsTopology_
650#if !defined(__cplusplus) || _MSC_VER < 1100
652#endif
653#endif
654
655DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196", CLSID_Proxy);
656#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy)
657
658#else
659
660#ifndef _IKsPropertySet_
661#if !defined(__cplusplus) || _MSC_VER < 1100
663#endif
664#endif
665
666#if !defined(__cplusplus) || _MSC_VER < 1100
668#else
669DECLSPEC_UUID("17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy;
670#endif
671
672#endif
673
674#ifndef _IKsPropertySet_
675#define _IKsPropertySet_
676
677#define KSPROPERTY_SUPPORT_GET 1
678#define KSPROPERTY_SUPPORT_SET 2
679
680interface DECLSPEC_UUID("31EFAC30-515C-11d0-A9AA-00aa0061be93")
681#undef INTERFACE
684{
685 STDMETHOD(Set)(
686 THIS_
687 IN REFGUID PropSet,
688 IN ULONG Id,
689 IN LPVOID InstanceData,
690 IN ULONG InstanceLength,
693 ) PURE;
694
696 THIS_
697 IN REFGUID PropSet,
698 IN ULONG Id,
699 IN LPVOID InstanceData,
700 IN ULONG InstanceLength,
704 ) PURE;
705
707 THIS_
708 IN REFGUID PropSet,
709 IN ULONG Id,
710 OUT ULONG* TypeSupport
711 ) PURE;
712};
713
714#endif
715
716#ifndef _IKsControl_
717#define _IKsControl_
718
719DEFINE_GUID(IID_IKsControl, 28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
720
721
722interface DECLSPEC_UUID("28F54685-06FD-11D2-B27A-00A0C9223196") IKsControl;
723#undef INTERFACE
724#define INTERFACE IKsControl
726{
727 STDMETHOD(KsProperty)(
728 THIS_
730 IN ULONG PropertyLength,
734 ) PURE;
735 STDMETHOD(KsMethod)(
736 THIS_
737 IN PKSMETHOD Method,
738 IN ULONG MethodLength,
739 IN OUT LPVOID MethodData,
742 ) PURE;
743 STDMETHOD(KsEvent)(
744 THIS_
746 IN ULONG EventLength,
747 IN OUT LPVOID EventData,
750 ) PURE;
751};
752
753#endif
754
755
756DEFINE_GUID(IID_IKsAggregateControl, 0x7F40EAC0, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
757
758#undef INTERFACE
759#define INTERFACE IKsAggregateControl
760DECLARE_INTERFACE_(IKsAggregateControl, IUnknown)
761{
762 STDMETHOD(KsAddAggregate)(
763 THIS_
764 IN REFGUID AggregateClass
765 ) PURE;
766 STDMETHOD(KsRemoveAggregate)(
767 THIS_
768 IN REFGUID AggregateClass
769 ) PURE;
770};
771
772#ifndef _IKsTopology_
773#define _IKsTopology_
774
775DEFINE_GUID(IID_IKsTopology, 0x28F54683, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22, 0x31, 0x96);
776
777#undef INTERFACE
778#define INTERFACE IKsTopology
780{
781 STDMETHOD(CreateNodeInstance)(
782 THIS_
783 IN ULONG NodeId,
784 IN ULONG Flags,
786 IN IUnknown* UnkOuter OPTIONAL,
787 IN REFGUID InterfaceId,
789 ) PURE;
790};
791
792#endif
793
794#ifdef __cplusplus
795}
796#endif
797
798#endif
DWORD Id
const GUID IID_IKsAllocatorEx
Definition: allocator.cpp:11
const GUID IID_IKsAllocator
Definition: allocator.cpp:12
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ PSTORAGE_PROPERTY_ID PropertyId
Definition: cdrom.h:932
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
Definition: cdrom.h:1444
const GUID IID_IKsPropertySet
Definition: controlnode.cpp:13
const GUID IID_IKsObject
const GUID IID_IKsAggregateControl
Definition: proxy.cpp:16
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
const GUID IID_IKsControl
Definition: filter.c:44
#define DEFINE_GUIDEX(name)
Definition: dmksctrl.h:28
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:427
unsigned int BOOL
Definition: ntddk_ex.h:94
FP_OP Operation
Definition: fpcontrol.c:150
_In_ WDFDEVICE _In_ PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData
ULONG Handle
Definition: gdb_input.c:15
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
Definition: hubbusif.h:121
_In_ ULONG Mode
Definition: hubbusif.h:303
const GUID IID_IKsPinEx
Definition: input_pin.cpp:12
const GUID IID_IKsPinPipe
Definition: input_pin.cpp:11
Definition: axcore.idl:92
KSSTATE
Definition: ks.h:1214
KSPIN_COMMUNICATION
Definition: ks.h:1253
#define DEFINE_GUIDSTRUCT(guid, name)
Definition: ks.h:98
_In_ PKSALLOCATOR_FRAMING _Out_ PHANDLE AllocatorHandle
Definition: ks.h:4519
KSDDKAPI HRESULT WINAPI KsGetMultiplePinFactoryItems(HANDLE FilterHandle, ULONG PinFactoryId, ULONG PropertyId, PVOID *Items)
Definition: ksproxy.cpp:154
KSDDKAPI HRESULT WINAPI KsGetMediaTypeCount(HANDLE FilterHandle, ULONG PinFactoryId, ULONG *MediaTypeCount)
Definition: ksproxy.cpp:216
KSDDKAPI HRESULT WINAPI KsResolveRequiredAttributes(PKSDATARANGE DataRange, KSMULTIPLE_ITEM *Attributes OPTIONAL)
Definition: ksproxy.cpp:90
KSDDKAPI HRESULT WINAPI KsGetMediaType(int Position, AM_MEDIA_TYPE *AmMediaType, HANDLE FilterHandle, ULONG PinFactoryId)
Definition: ksproxy.cpp:250
KSDDKAPI HRESULT WINAPI KsSynchronousDeviceControl(HANDLE Handle, ULONG IoControl, PVOID InBuffer, ULONG InLength, PVOID OutBuffer, ULONG OutLength, PULONG BytesReturned)
Definition: ksproxy.cpp:34
KSDDKAPI HRESULT WINAPI KsOpenDefaultDevice(REFGUID Category, ACCESS_MASK Access, PHANDLE DeviceHandle)
Definition: ksproxy.cpp:101
#define STATIC_CLSID_Proxy
Definition: ksproxy.h:62
#define KSDDKAPI
Definition: ksproxy.h:12
STDMETHOD() QuerySupported(THIS_ IN REFGUID PropSet, IN ULONG Id, OUT ULONG *TypeSupport) PURE
#define STATIC_IID_IKsPropertySet
Definition: ksproxy.h:47
static PLARGE_INTEGER Time
Definition: time.c:105
static LPINTERNAL_BSTR Get(const BSTR lpszString)
Definition: vartype.c:4895
ULONG ACCESS_MASK
Definition: nt_native.h:40
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
static BOOL Set
Definition: pageheap.c:10
long LONG
Definition: pedump.c:60
const GUID IID_IKsTopology
Definition: proxy.cpp:18
const GUID IID_IKsClockPropertySet
Definition: proxy.cpp:17
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define DECLSPEC_UUID(x)
Definition: rpcndr.h:161
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4071
@ Input
Definition: arc.h:84
@ Output
Definition: arc.h:85
HRESULT hr
Definition: shlfolder.c:183
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: xml2sdb.h:80
Definition: scsiwmi.h:51
static BYTE Resolution
Definition: mouse.c:35
static COORD Position
Definition: mouse.c:34
#define OPTIONAL
Definition: typedefs.h:41
uint32_t * PULONG
Definition: typedefs.h:59
int64_t LONGLONG
Definition: typedefs.h:68
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList
Definition: usbdlib.h:181
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
Definition: wdfiotarget.h:1052
#define WINAPI
Definition: msvc.h:6
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159