Author: janderwald
Date: Fri Feb 12 14:46:53 2010
New Revision: 45586
URL:
http://svn.reactos.org/svn/reactos?rev=45586&view=rev
Log:
[PSDK]
- Work on ksproxy.h, WIP
Added:
trunk/reactos/include/psdk/ksproxy.h (with props)
Added: trunk/reactos/include/psdk/ksproxy.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ksproxy.h?rev…
==============================================================================
--- trunk/reactos/include/psdk/ksproxy.h (added)
+++ trunk/reactos/include/psdk/ksproxy.h [iso-8859-1] Fri Feb 12 14:46:53 2010
@@ -1,0 +1,798 @@
+#ifndef __KSPROXY__
+#define __KSPROXY__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#undef KSDDKAPI
+#ifdef _KSDDK_
+#define KSDDKAPI
+#else
+#define KSDDKAPI DECLSPEC_IMPORT
+#endif
+
+#define STATIC_IID_IKsObject\
+ 0x423c13a2L, 0x2070, 0x11d0, 0x9e, 0xf7, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1
+
+#define STATIC_IID_IKsPinEx\
+ 0x7bb38260L, 0xd19c, 0x11d2, 0xb3, 0x8a, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e
+
+#define STATIC_IID_IKsPin\
+ 0xb61178d1L, 0xa2d9, 0x11cf, 0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1
+
+#define STATIC_IID_IKsPinPipe\
+ 0xe539cd90L, 0xa8b4, 0x11d1, 0x81, 0x89, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02
+
+#define STATIC_IID_IKsDataTypeHandler\
+ 0x5ffbaa02L, 0x49a3, 0x11d0, 0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1
+
+#define STATIC_IID_IKsDataTypeCompletion\
+ 0x827D1A0EL, 0x0F73, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+
+#define STATIC_IID_IKsInterfaceHandler\
+ 0xD3ABC7E0L, 0x9A61, 0x11D0, 0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+
+#define STATIC_IID_IKsClockPropertySet\
+ 0x5C5CBD84L, 0xE755, 0x11D0, 0xAC, 0x18, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+
+#define STATIC_IID_IKsAllocator\
+ 0x8da64899L, 0xc0d9, 0x11d0, 0x84, 0x13, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a
+
+#define STATIC_IID_IKsAllocatorEx\
+ 0x091bb63aL, 0x603f, 0x11d1, 0xb0, 0x67, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02
+
+
+#ifndef STATIC_IID_IKsPropertySet
+#define STATIC_IID_IKsPropertySet\
+ 0x31EFAC30L, 0x515C, 0x11d0, 0xA9, 0xAA, 0x00, 0xAA, 0x00, 0x61, 0xBE, 0x93
+#endif
+
+#define STATIC_IID_IKsTopology\
+ 0x28F54683L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+
+#ifndef STATIC_IID_IKsControl
+#define STATIC_IID_IKsControl\
+ 0x28F54685L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+#endif
+
+#define STATIC_IID_IKsAggregateControl\
+ 0x7F40EAC0L, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+
+#define STATIC_CLSID_Proxy \
+ 0x17CCA71BL, 0xECD7, 0x11D0, 0xB9, 0x08, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
+
+#ifdef _KS_
+
+#if !defined(__cplusplus) || _MSC_VER < 1100
+
+#define IID_IKsQualityForwarder KSCATEGORY_QUALITY
+
+DEFINE_GUIDEX(IID_IKsObject);
+DEFINE_GUIDEX(IID_IKsPin);
+DEFINE_GUIDEX(IID_IKsPinEx);
+DEFINE_GUIDEX(IID_IKsPinPipe);
+DEFINE_GUIDEX(IID_IKsDataTypeHandler);
+DEFINE_GUIDEX(IID_IKsDataTypeCompletion);
+DEFINE_GUIDEX(IID_IKsInterfaceHandler);
+DEFINE_GUIDEX(IID_IKsClockPropertySet);
+DEFINE_GUIDEX(IID_IKsAllocator);
+DEFINE_GUIDEX(IID_IKsAllocatorEx);
+#endif
+
+#define STATIC_IID_IKsQualityForwarder STATIC_KSCATEGORY_QUALITY
+
+typedef enum
+{
+ KsAllocatorMode_User,
+ KsAllocatorMode_Kernel
+}KSALLOCATORMODE;
+
+
+typedef enum
+{
+ FramingProp_Uninitialized,
+ FramingProp_None,
+ FramingProp_Old,
+ FramingProp_Ex
+}FRAMING_PROP;
+
+typedef FRAMING_PROP *PFRAMING_PROP;
+
+
+typedef enum
+{
+ Framing_Cache_Update,
+ Framing_Cache_ReadLast,
+ Framing_Cache_ReadOrig,
+ Framing_Cache_Write
+}FRAMING_CACHE_OPS;
+
+
+typedef struct
+{
+ LONGLONG MinTotalNominator;
+ LONGLONG MaxTotalNominator;
+ LONGLONG TotalDenominator;
+}OPTIMAL_WEIGHT_TOTALS;
+
+typedef struct IPin IPin;
+typedef struct IKsPin IKsPin;
+typedef struct IKsAllocator IKsAllocator;
+typedef struct IKsAllocatorEx IKsAllocatorEx;
+
+
+#define AllocatorStrategy_DontCare 0
+#define AllocatorStrategy_MinimizeNumberOfFrames 1
+#define AllocatorStrategy_MinimizeFrameSize 2
+#define AllocatorStrategy_MinimizeNumberOfAllocators 4
+#define AllocatorStrategy_MaximizeSpeed 8
+
+#define PipeFactor_None 0x0
+#define PipeFactor_UserModeUpstream 0x1
+#define PipeFactor_UserModeDownstream 0x2
+#define PipeFactor_MemoryTypes 0x4
+#define PipeFactor_Flags 0x8
+#define PipeFactor_PhysicalRanges 0x10
+#define PipeFactor_OptimalRanges 0x20
+#define PipeFactor_FixedCompression 0x40
+#define PipeFactor_UnknownCompression 0x80
+#define PipeFactor_Buffers 0x100
+#define PipeFactor_Align 0x200
+#define PipeFactor_PhysicalEnd 0x400
+#define PipeFactor_LogicalEnd 0x800
+
+typedef enum
+{
+ PipeState_DontCare,
+ PipeState_RangeNotFixed,
+ PipeState_RangeFixed,
+ PipeState_CompressionUnknown,
+ PipeState_Finalized
+}PIPE_STATE;
+
+
+typedef struct _PIPE_DIMENSIONS
+{
+ KS_COMPRESSION AllocatorPin;
+ KS_COMPRESSION MaxExpansionPin;
+ KS_COMPRESSION EndPin;
+}PIPE_DIMENSIONS, *PPIPE_DIMENSIONS;
+
+
+typedef enum
+{
+ Pipe_Allocator_None,
+ Pipe_Allocator_FirstPin,
+ Pipe_Allocator_LastPin,
+ Pipe_Allocator_MiddlePin
+}PIPE_ALLOCATOR_PLACE, *PPIPE_ALLOCATOR_PLACE;;
+
+typedef enum
+{
+ KS_MemoryTypeDontCare = 0,
+ KS_MemoryTypeKernelPaged,
+ KS_MemoryTypeKernelNonPaged,
+ KS_MemoryTypeDeviceHostMapped,
+ KS_MemoryTypeDeviceSpecific,
+ KS_MemoryTypeUser,
+ KS_MemoryTypeAnyHost
+}KS_LogicalMemoryType, *PKS_LogicalMemoryType;;
+
+typedef struct _PIPE_TERMINATION {
+ ULONG Flags;
+ ULONG OutsideFactors;
+ ULONG Weigth;
+ KS_FRAMING_RANGE PhysicalRange;
+ KS_FRAMING_RANGE_WEIGHTED OptimalRange;
+ KS_COMPRESSION Compression;
+}PIPE_TERMINATION;
+
+
+typedef struct _ALLOCATOR_PROPERTIES_EX
+{
+ long cBuffers;
+ long cbBuffer;
+ long cbAlign;
+ long cbPrefix;
+
+ GUID MemoryType;
+ GUID BusType;
+ PIPE_STATE State;
+ PIPE_TERMINATION Input;
+ PIPE_TERMINATION Output;
+ ULONG Strategy;
+ ULONG Flags;
+ ULONG Weight;
+ KS_LogicalMemoryType LogicalMemoryType;
+ PIPE_ALLOCATOR_PLACE AllocatorPlace;
+ PIPE_DIMENSIONS Dimensions;
+ KS_FRAMING_RANGE PhysicalRange;
+ IKsAllocatorEx* PrevSegment;
+ ULONG CountNextSegments;
+ IKsAllocatorEx** NextSegments;
+ ULONG InsideFactors;
+ ULONG NumberPins;
+}ALLOCATOR_PROPERTIES_EX;
+
+typedef ALLOCATOR_PROPERTIES_EX *PALLOCATOR_PROPERTIES_EX;
+
+
+#ifdef __STREAMS__
+
+struct DECLSPEC_UUID("5C5CBD84-E755-11D0-AC18-00A0C9223196")
IKsClockPropertySet;
+#undef INTERFACE
+#define INTERFACE IKsClockPropertySet
+DECLARE_INTERFACE_(IKsClockPropertySet, IUnknown)
+{
+ STDMETHOD(KsGetTime)(
+ THIS_
+ LONGLONG* Time
+ ) PURE;
+ STDMETHOD(KsSetTime)(
+ THIS_
+ LONGLONG Time
+ ) PURE;
+ STDMETHOD(KsGetPhysicalTime)(
+ THIS_
+ LONGLONG* Time
+ ) PURE;
+ STDMETHOD(KsSetPhysicalTime)(
+ THIS_
+ LONGLONG Time
+ ) PURE;
+ STDMETHOD(KsGetCorrelatedTime)(
+ THIS_
+ KSCORRELATED_TIME* CorrelatedTime
+ ) PURE;
+ STDMETHOD(KsSetCorrelatedTime)(
+ THIS_
+ KSCORRELATED_TIME* CorrelatedTime
+ ) PURE;
+ STDMETHOD(KsGetCorrelatedPhysicalTime)(
+ THIS_
+ KSCORRELATED_TIME* CorrelatedTime
+ ) PURE;
+ STDMETHOD(KsSetCorrelatedPhysicalTime)(
+ THIS_
+ KSCORRELATED_TIME* CorrelatedTime
+ ) PURE;
+ STDMETHOD(KsGetResolution)(
+ THIS_
+ KSRESOLUTION* Resolution
+ ) PURE;
+ STDMETHOD(KsGetState)(
+ THIS_
+ KSSTATE* State
+ ) PURE;
+};
+
+
+interface DECLSPEC_UUID("8da64899-c0d9-11d0-8413-0000f822fe8a") IKsAllocator;
+#undef INTERFACE
+#define INTERFACE IKsAllocator
+DECLARE_INTERFACE_(IKsAllocator, IUnknown)
+{
+ STDMETHOD_(HANDLE, KsGetAllocatorHandle)(
+ THIS
+ ) PURE;
+ STDMETHOD_(KSALLOCATORMODE, KsGetAllocatorMode)(
+ THIS
+ ) PURE;
+ STDMETHOD(KsGetAllocatorStatus)(
+ THIS_
+ PKSSTREAMALLOCATOR_STATUS AllocatorStatus
+ ) PURE;
+ STDMETHOD_(VOID, KsSetAllocatorMode)(
+ THIS_
+ KSALLOCATORMODE Mode
+ ) PURE;
+};
+
+interface DECLSPEC_UUID("091bb63a-603f-11d1-b067-00a0c9062802")
IKsAllocatorEx;
+#undef INTERFACE
+#define INTERFACE IKsAllocatorEx
+DECLARE_INTERFACE_(IKsAllocatorEx, IKsAllocator)
+{
+ STDMETHOD_(PALLOCATOR_PROPERTIES_EX, KsGetProperties)(
+ THIS
+ ) PURE;
+ STDMETHOD_(VOID, KsSetProperties)(
+ THIS_
+ PALLOCATOR_PROPERTIES_EX
+ ) PURE;
+ STDMETHOD_(VOID, KsSetAllocatorHandle)(
+ THIS_
+ HANDLE AllocatorHandle
+ ) PURE;
+ STDMETHOD_(HANDLE, KsCreateAllocatorAndGetHandle)(
+ THIS_
+ IKsPin* KsPin
+ ) PURE;
+};
+
+typedef enum {
+ KsPeekOperation_PeekOnly,
+ KsPeekOperation_AddRef
+} KSPEEKOPERATION;
+
+typedef struct _KSSTREAM_SEGMENT *PKSSTREAM_SEGMENT;
+
+interface DECLSPEC_UUID("b61178d1-a2d9-11cf-9e53-00aa00a216a1") IKsPin;
+
+#undef INTERFACE
+#define INTERFACE IKsPin
+DECLARE_INTERFACE_(IKsPin, IUnknown)
+{
+ STDMETHOD(KsQueryMediums)(
+ THIS_
+ PKSMULTIPLE_ITEM* MediumList
+ ) PURE;
+ STDMETHOD(KsQueryInterfaces)(
+ THIS_
+ PKSMULTIPLE_ITEM* InterfaceList
+ ) PURE;
+ STDMETHOD(KsCreateSinkPinHandle)(
+ THIS_
+ KSPIN_INTERFACE& Interface,
+ KSPIN_MEDIUM& Medium
+ ) PURE;
+ STDMETHOD(KsGetCurrentCommunication)(
+ THIS_
+ KSPIN_COMMUNICATION *Communication,
+ KSPIN_INTERFACE *Interface,
+ KSPIN_MEDIUM *Medium
+ ) PURE;
+ STDMETHOD(KsPropagateAcquire)(
+ THIS
+ ) PURE;
+ STDMETHOD(KsDeliver)(
+ THIS_
+ IMediaSample* Sample,
+ ULONG Flags
+ ) PURE;
+ STDMETHOD(KsMediaSamplesCompleted)(
+ THIS_
+ PKSSTREAM_SEGMENT StreamSegment
+ ) PURE;
+ STDMETHOD_(IMemAllocator *, KsPeekAllocator)(
+ THIS_
+ KSPEEKOPERATION Operation
+ ) PURE;
+ STDMETHOD(KsReceiveAllocator)(
+ THIS_
+ IMemAllocator *MemAllocator
+ ) PURE;
+ STDMETHOD(KsRenegotiateAllocator)(
+ THIS
+ ) PURE;
+ STDMETHOD_(LONG, KsIncrementPendingIoCount)(
+ THIS
+ ) PURE;
+ STDMETHOD_(LONG, KsDecrementPendingIoCount)(
+ THIS
+ ) PURE;
+ STDMETHOD(KsQualityNotify)(
+ THIS_
+ ULONG Proportion,
+ REFERENCE_TIME TimeDelta
+ ) PURE;
+};
+
+interface DECLSPEC_UUID("7bb38260-d19c-11d2-b38a-00a0c95ec22e") IKsPinEx;
+#undef INTERFACE
+#define INTERFACE IKsPinEx
+DECLARE_INTERFACE_(IKsPinEx, IKsPin)
+{
+ STDMETHOD_(VOID, KsNotifyError)(
+ THIS_
+ IMediaSample* Sample,
+ HRESULT hr
+ ) PURE;
+};
+
+interface DECLSPEC_UUID("e539cd90-a8b4-11d1-8189-00a0c9062802") IKsPinPipe;
+#undef INTERFACE
+#define INTERFACE IKsPinPipe
+DECLARE_INTERFACE_(IKsPinPipe, IUnknown)
+{
+ STDMETHOD(KsGetPinFramingCache)(
+ THIS_
+ PKSALLOCATOR_FRAMING_EX *FramingEx,
+ PFRAMING_PROP FramingProp,
+ FRAMING_CACHE_OPS Option
+ ) PURE;
+ STDMETHOD(KsSetPinFramingCache)(
+ THIS_
+ PKSALLOCATOR_FRAMING_EX FramingEx,
+ PFRAMING_PROP FramingProp,
+ FRAMING_CACHE_OPS Option
+ ) PURE;
+ STDMETHOD_(IPin*, KsGetConnectedPin)(
+ THIS
+ ) PURE;
+ STDMETHOD_(IKsAllocatorEx*, KsGetPipe)(
+ THIS_
+ KSPEEKOPERATION Operation
+ ) PURE;
+ STDMETHOD(KsSetPipe)(
+ THIS_
+ IKsAllocatorEx *KsAllocator
+ ) PURE;
+ STDMETHOD_(ULONG, KsGetPipeAllocatorFlag)(
+ THIS
+ ) PURE;
+ STDMETHOD(KsSetPipeAllocatorFlag)(
+ THIS_
+ ULONG Flag
+ ) PURE;
+ STDMETHOD_(GUID, KsGetPinBusCache)(
+ THIS
+ ) PURE;
+ STDMETHOD(KsSetPinBusCache)(
+ THIS_
+ GUID Bus
+ ) PURE;
+
+ STDMETHOD_(PWCHAR, KsGetPinName)(
+ THIS
+ ) PURE;
+ STDMETHOD_(PWCHAR, KsGetFilterName)(
+ THIS
+ ) PURE;
+};
+
+
+interface DECLSPEC_UUID("CD5EBE6B-8B6E-11D1-8AE0-00A0C9223196") IKsPinFactory;
+#undef INTERFACE
+#define INTERFACE IKsPinFactory
+DECLARE_INTERFACE_(IKsPinFactory, IUnknown)
+{
+ STDMETHOD(KsPinFactory)(
+ THIS_
+ ULONG* PinFactory
+ ) PURE;
+};
+
+typedef enum {
+ KsIoOperation_Write,
+ KsIoOperation_Read
+} KSIOOPERATION;
+
+interface DECLSPEC_UUID("5ffbaa02-49a3-11d0-9f36-00aa00a216a1")
IKsDataTypeHandler;
+#undef INTERFACE
+#define INTERFACE IKsDataTypeHandler
+DECLARE_INTERFACE_(IKsDataTypeHandler, IUnknown)
+{
+ STDMETHOD(KsCompleteIoOperation)(
+ THIS_
+ IMediaSample *Sample,
+ PVOID StreamHeader,
+ KSIOOPERATION IoOperation,
+ BOOL Cancelled
+ ) PURE;
+ STDMETHOD(KsIsMediaTypeInRanges)(
+ THIS_
+ PVOID DataRanges
+ ) PURE;
+ STDMETHOD(KsPrepareIoOperation)(
+ THIS_
+ IMediaSample *Sample,
+ PVOID StreamHeader,
+ KSIOOPERATION IoOperation
+ ) PURE;
+ STDMETHOD(KsQueryExtendedSize)(
+ THIS_
+ ULONG* ExtendedSize
+ ) PURE;
+ STDMETHOD(KsSetMediaType)(
+ THIS_
+ const AM_MEDIA_TYPE* AmMediaType
+ ) PURE;
+};
+
+interface DECLSPEC_UUID("827D1A0E-0F73-11D2-B27A-00A0C9223196")
IKsDataTypeCompletion;
+#undef INTERFACE
+#define INTERFACE IKsDataTypeCompletion
+DECLARE_INTERFACE_(IKsDataTypeCompletion, IUnknown)
+{
+ STDMETHOD(KsCompleteMediaType)(
+ THIS_
+ HANDLE FilterHandle,
+ ULONG PinFactoryId,
+ AM_MEDIA_TYPE* AmMediaType
+ ) PURE;
+};
+
+interface DECLSPEC_UUID("D3ABC7E0-9A61-11d0-A40D-00A0C9223196")
IKsInterfaceHandler;
+#undef INTERFACE
+#define INTERFACE IKsInterfaceHandler
+DECLARE_INTERFACE_(IKsInterfaceHandler, IUnknown)
+{
+ STDMETHOD(KsSetPin)(
+ THIS_
+ IKsPin *KsPin
+ ) PURE;
+ STDMETHOD(KsProcessMediaSamples)(
+ THIS_
+ IKsDataTypeHandler *KsDataTypeHandler,
+ IMediaSample** SampleList,
+ PLONG SampleCount,
+ KSIOOPERATION IoOperation,
+ PKSSTREAM_SEGMENT *StreamSegment
+ ) PURE;
+ STDMETHOD(KsCompleteIo)(
+ THIS_
+ PKSSTREAM_SEGMENT StreamSegment
+ ) PURE;
+};
+
+
+typedef struct _KSSTREAM_SEGMENT
+{
+ IKsInterfaceHandler *KsInterfaceHandler;
+ IKsDataTypeHandler *KsDataTypeHandler;
+ KSIOOPERATION IoOperation;
+ HANDLE CompletionEvent;
+
+}KSSTREAM_SEGMENT;
+
+interface DECLSPEC_UUID("423c13a2-2070-11d0-9ef7-00aa00a216a1") IKsObject;
+#undef INTERFACE
+#define INTERFACE IKsObject
+DECLARE_INTERFACE_(IKsObject, IUnknown)
+{
+ STDMETHOD_(HANDLE, KsGetObjectHandle)(
+ THIS
+ ) PURE;
+};
+
+interface DECLSPEC_UUID("97ebaacb-95bd-11d0-a3ea-00a0c9223196")
IKsQualityForwarder;
+#undef INTERFACE
+#define INTERFACE IKsQualityForwarder
+DECLARE_INTERFACE_(IKsQualityForwarder, IKsObject)
+{
+ STDMETHOD_(VOID, KsFlushClient)(
+ THIS_
+ IKsPin* Pin
+ ) PURE;
+};
+
+#if ( (NTDDI_VERSION >= NTDDI_WINXPSP2) && (NTDDI_VERSION < NTDDI_WS03) )
|| (NTDDI_VERSION >= NTDDI_WS03SP1)
+
+interface DECLSPEC_UUID("412bd695-f84b-46c1-ac73-54196dbc8fa7")
IKsNotifyEvent;
+#undef INTERFACE
+#define INTERFACE IKsNotifyEvent
+DECLARE_INTERFACE_(IKsNotifyEvent, IUnknown)
+{
+ STDMETHOD(KsNotifyEvent)(
+ THIS_
+ ULONG Event,
+ ULONG_PTR lParam1,
+ ULONG_PTR lParam2
+ ) PURE;
+};
+
+#endif
+
+KSDDKAPI
+HRESULT
+WINAPI
+KsResolveRequiredAttributes(
+ PKSDATARANGE DataRange,
+ PKSMULTIPLE_ITEM Attributes OPTIONAL);
+
+KSDDKAPI
+HRESULT
+WINAPI
+KsOpenDefaultDevice(
+ REFGUID Category,
+ ACCESS_MASK Access,
+ PHANDLE DeviceHandle);
+
+KSDDKAPI
+HRESULT
+WINAPI
+KsSynchronousDeviceControl(
+ HANDLE Handle,
+ ULONG IoControl,
+ PVOID InBuffer,
+ ULONG InLength,
+ PVOID OutBuffer,
+ ULONG OutLength,
+ PULONG BytesReturned);
+
+KSDDKAPI
+HRESULT
+WINAPI
+KsGetMultiplePinFactoryItems(
+ HANDLE FilterHandle,
+ ULONG PinFactoryId,
+ ULONG PropertyId,
+ PVOID* Items);
+
+KSDDKAPI
+HRESULT
+WINAPI
+KsGetMediaTypeCount(
+ HANDLE FilterHandle,
+ ULONG PinFactoryId,
+ ULONG* MediaTypeCount);
+
+KSDDKAPI
+HRESULT
+WINAPI
+KsGetMediaType(
+ int Position,
+ AM_MEDIA_TYPE* AmMediaType,
+ HANDLE FilterHandle,
+ ULONG PinFactoryId);
+
+#endif
+
+#ifndef _IKsPropertySet_
+#if !defined(__cplusplus) || _MSC_VER < 1100
+DEFINE_GUIDEX(IID_IKsPropertySet);
+#endif
+#endif
+
+#ifndef _IKsControl_
+#if !defined(__cplusplus) || _MSC_VER < 1100
+DEFINE_GUIDEX(IID_IKsControl);
+#endif
+#endif
+
+#if !defined(__cplusplus) || _MSC_VER < 1100
+DEFINE_GUIDEX(IID_IKsAggregateControl);
+#endif
+
+#ifndef _IKsTopology_
+#if !defined(__cplusplus) || _MSC_VER < 1100
+DEFINE_GUIDEX(IID_IKsTopology);
+#endif
+#endif
+
+DEFINE_GUIDSTRUCT("17CCA71B-ECD7-11D0-B908-00A0C9223196", CLSID_Proxy);
+#define CLSID_Proxy DEFINE_GUIDNAMED(CLSID_Proxy)
+
+#else
+
+#ifndef _IKsPropertySet_
+#if !defined(__cplusplus) || _MSC_VER < 1100
+DEFINE_GUID(IID_IKsPropertySet, STATIC_IID_IKsPropertySet);
+#endif
+#endif
+
+#if !defined(__cplusplus) || _MSC_VER < 1100
+DEFINE_GUID(CLSID_Proxy, STATIC_CLSID_Proxy);
+#else
+DECLSPEC_UUID("17CCA71B-ECD7-11D0-B908-00A0C9223196") CLSID_Proxy;
+#endif
+
+#endif
+
+#ifndef _IKsPropertySet_
+#define _IKsPropertySet_
+
+#define KSPROPERTY_SUPPORT_GET 1
+#define KSPROPERTY_SUPPORT_SET 2
+
+interface DECLSPEC_UUID("31EFAC30-515C-11d0-A9AA-00aa0061be93")
+#undef INTERFACE
+#define INTERFACE IKsPropertySet
+DECLARE_INTERFACE_(IKsPropertySet, IUnknown)
+{
+ STDMETHOD(Set)(
+ THIS_
+ IN REFGUID PropSet,
+ IN ULONG Id,
+ IN LPVOID InstanceData,
+ IN ULONG InstanceLength,
+ IN LPVOID PropertyData,
+ IN ULONG DataLength
+ ) PURE;
+
+ STDMETHOD(Get)(
+ THIS_
+ IN REFGUID PropSet,
+ IN ULONG Id,
+ IN LPVOID InstanceData,
+ IN ULONG InstanceLength,
+ OUT LPVOID PropertyData,
+ IN ULONG DataLength,
+ OUT ULONG* BytesReturned
+ ) PURE;
+
+ STDMETHOD(QuerySupported)(
+ THIS_
+ IN REFGUID PropSet,
+ IN ULONG Id,
+ OUT ULONG* TypeSupport
+ ) PURE;
+};
+
+#endif
+
+#ifndef _IKsControl_
+#define _IKsControl_
+
+DEFINE_GUID(IID_IKsControl, 28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0, 0xC9, 0x22,
0x31, 0x96);
+
+
+interface DECLSPEC_UUID("28F54685-06FD-11D2-B27A-00A0C9223196") IKsControl;
+#undef INTERFACE
+#define INTERFACE IKsControl
+DECLARE_INTERFACE_(IKsControl, IUnknown)
+{
+ STDMETHOD(KsProperty)(
+ THIS_
+ IN PKSPROPERTY Property,
+ IN ULONG PropertyLength,
+ IN OUT LPVOID PropertyData,
+ IN ULONG DataLength,
+ OUT ULONG* BytesReturned
+ ) PURE;
+ STDMETHOD(KsMethod)(
+ THIS_
+ IN PKSMETHOD Method,
+ IN ULONG MethodLength,
+ IN OUT LPVOID MethodData,
+ IN ULONG DataLength,
+ OUT ULONG* BytesReturned
+ ) PURE;
+ STDMETHOD(KsEvent)(
+ THIS_
+ IN PKSEVENT Event OPTIONAL,
+ IN ULONG EventLength,
+ IN OUT LPVOID EventData,
+ IN ULONG DataLength,
+ OUT ULONG* BytesReturned
+ ) PURE;
+};
+
+#endif
+
+
+DEFINE_GUID(IID_IKsAggregateControl, 0x7F40EAC0, 0x3947, 0x11D2, 0x87, 0x4E, 0x00, 0A0,
0xC9, 0x22, 0x31, 0x96);
+
+#undef INTERFACE
+#define INTERFACE IKsAggregateControl
+DECLARE_INTERFACE_(IKsAggregateControl, IUnknown)
+{
+ STDMETHOD(KsAddAggregate)(
+ THIS_
+ IN REFGUID AggregateClass
+ ) PURE;
+ STDMETHOD(KsRemoveAggregate)(
+ THIS_
+ IN REFGUID AggregateClass
+ ) PURE;
+};
+
+#ifndef _IKsTopology_
+#define _IKsTopology_
+
+DEFINE_GUID(IID_IKsAggregateControl, 0x28F54683, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0A0,
0xC9, 0x22, 0x31, 0x96);
+
+#undef INTERFACE
+#define INTERFACE IKsTopology
+DECLARE_INTERFACE_(IKsTopology, IUnknown)
+{
+ STDMETHOD(CreateNodeInstance)(
+ THIS_
+ IN ULONG NodeId,
+ IN ULONG Flags,
+ IN ACCESS_MASK DesiredAccess,
+ IN IUnknown* UnkOuter OPTIONAL,
+ IN REFGUID InterfaceId,
+ OUT LPVOID* Interface
+ ) PURE;
+};
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Propchange: trunk/reactos/include/psdk/ksproxy.h
------------------------------------------------------------------------------
svn:eol-style = native