ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ksproxy.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.