~steve-sk2/mingw-w64/oneiric

« back to all changes in this revision

Viewing changes to mingw-w64-headers/include/ksproxy.h

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Kitt
  • Date: 2010-11-18 00:04:46 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101118000446-xe24b423su55onyl
Tags: 1.0+20101003-1
* New maintainer. (Closes: #594371.)
* New upstream snapshot:
  - Includes getopt.h. (Closes: #569914.)
* Build g++ for Win64. (Closes: #600451.)
* Standards-Version 3.9.1 (new packaging).
* Include patch from
  http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64?view=revision&revision=3715
  as suggested by Rafaël Carré.

Show diffs side-by-side

added added

removed removed

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