1#![allow(non_snake_case)]
2
3use crate::kernel::ffi_types::*;
4use crate::ole::vts::*;
5
6#[repr(C)]
7pub struct IMFAsyncCallbackVT {
8 pub IUnknownVT: IUnknownVT,
9 pub GetParameters: fn(COMPTR, *mut u32, *mut u32) -> HRES,
10 pub Invoke: fn(COMPTR, COMPTR) -> HRES,
11}
12
13#[repr(C)]
14pub struct IMFAsyncResultVT {
15 pub IUnknownVT: IUnknownVT,
16 pub GetState: fn(COMPTR, *mut COMPTR) -> HRES,
17 pub GetStatus: fn(COMPTR) -> HRES,
18 pub SetStatus: fn(COMPTR, HRES) -> HRES,
19 pub GetObject: fn(COMPTR, *mut COMPTR) -> HRES,
20 pub GetStateNoAddRef: fn(COMPTR) -> COMPTR,
21}
22
23#[repr(C)]
24pub struct IMFAttributesVT {
25 pub IUnknownVT: IUnknownVT,
26 pub GetItem: fn(COMPTR, PCVOID, PVOID) -> HRES,
27 pub GetItemType: fn(COMPTR, PCVOID, *mut u32) -> HRES,
28 pub CompareItem: fn(COMPTR, PCVOID, PCVOID, *mut BOOL) -> HRES,
29 pub Compare: fn(COMPTR, COMPTR, u32, *mut BOOL) -> HRES,
30 pub GetUINT32: fn(COMPTR, PCVOID, *mut u32) -> HRES,
31 pub GetUINT64: fn(COMPTR, PCVOID, *mut u64) -> HRES,
32 pub GetDouble: fn(COMPTR, PCVOID, *mut f64) -> HRES,
33 pub GetGUID: fn(COMPTR, PCVOID, PVOID) -> HRES,
34 pub GetStringLength: fn(COMPTR, PCVOID, *mut u32) -> HRES,
35 pub GetString: fn(COMPTR, PCVOID, PSTR, u32, *mut u32) -> HRES,
36 pub GetAllocatedString: fn(COMPTR, PCVOID, *mut PSTR, *mut u32) -> HRES,
37 pub GetBlobSize: fn(COMPTR, PCVOID, *mut u32) -> HRES,
38 pub GetBlob: fn(COMPTR, PCVOID, *mut u8, u32, *mut u32) -> HRES,
39 pub GetAllocatedBlob: fn(COMPTR, PCVOID, *mut *mut u8, *mut u32) -> HRES,
40 pub GetUnknown: fn(COMPTR, PCVOID, PCVOID, *mut COMPTR) -> HRES,
41 pub SetItem: fn(COMPTR, PCVOID, PCVOID) -> HRES,
42 pub DeleteItem: fn(COMPTR, PCVOID) -> HRES,
43 pub DeleteAllItems: fn(COMPTR) -> HRES,
44 pub SetUINT32: fn(COMPTR, PCVOID, u32) -> HRES,
45 pub SetUINT64: fn(COMPTR, PCVOID, u64) -> HRES,
46 pub SetDouble: fn(COMPTR, PCVOID, f64) -> HRES,
47 pub SetGUID: fn(COMPTR, PCVOID, PCVOID) -> HRES,
48 pub SetString: fn(COMPTR, PCVOID, PCSTR) -> HRES,
49 pub SetBlob: fn(COMPTR, PCVOID, *const u8, u32) -> HRES,
50 pub SetUnknown: fn(COMPTR, PCVOID, COMPTR) -> HRES,
51 pub LockStore: fn(COMPTR) -> HRES,
52 pub UnlockStore: fn(COMPTR) -> HRES,
53 pub GetCount: fn(COMPTR, *mut u32) -> HRES,
54 pub GetItemByIndex: fn(COMPTR, u32, PVOID, PVOID) -> HRES,
55 pub CopyAllItems: fn(COMPTR, COMPTR) -> HRES,
56}
57
58#[repr(C)]
59pub struct IMFByteStreamVT {
60 pub IUnknownVT: IUnknownVT,
61 pub GetCapabilities: fn(COMPTR, *mut u32) -> HRES,
62 pub GetLength: fn(COMPTR, *mut u64) -> HRES,
63 pub SetLength: fn(COMPTR, u64) -> HRES,
64 pub GetCurrentPosition: fn(COMPTR, *mut u64) -> HRES,
65 pub SetCurrentPosition: fn(COMPTR, u64) -> HRES,
66 pub IsEndOfStream: fn(COMPTR, *mut BOOL) -> HRES,
67 pub Read: fn(COMPTR, *mut u8, u32, *mut u32) -> HRES,
68 pub BeginRead: fn(COMPTR, *mut u8, u32, COMPTR, COMPTR) -> HRES,
69 pub EndRead: fn(COMPTR, COMPTR, *mut u32) -> HRES,
70 pub Write: fn(COMPTR, *const u8, u32, *mut u32) -> HRES,
71 pub BeginWrite: fn(COMPTR, *const u8, u32, COMPTR, COMPTR) -> HRES,
72 pub EndWrite: fn(COMPTR, COMPTR, *mut u32) -> HRES,
73 pub Seek: fn(COMPTR, u32, i64, u32, *mut u64) -> HRES,
74 pub Flush: fn(COMPTR) -> HRES,
75 pub Close: fn(COMPTR) -> HRES,
76}
77
78#[repr(C)]
79pub struct IMFClockVT {
80 pub IUnknownVT: IUnknownVT,
81 pub GetClockCharacteristics: fn(COMPTR, *mut u32) -> HRES,
82 pub GetCorrelatedTime: fn(COMPTR, u32, *mut i64, *mut i64) -> HRES,
83 pub GetContinuityKey: fn(COMPTR, *mut u32) -> HRES,
84 pub GetState: fn(COMPTR, u32, *mut u32) -> HRES,
85 pub GetProperties: fn(COMPTR, PVOID) -> HRES,
86}
87
88#[repr(C)]
89pub struct IMFCollectionVT {
90 pub IUnknownVT: IUnknownVT,
91 pub GetElementCount: fn(COMPTR, *mut u32) -> HRES,
92 pub GetElement: fn(COMPTR, u32, *mut COMPTR) -> HRES,
93 pub AddElement: fn(COMPTR, COMPTR) -> HRES,
94 pub RemoveElement: fn(COMPTR, u32, *mut COMPTR) -> HRES,
95 pub InsertElementAt: fn(COMPTR, u32, COMPTR) -> HRES,
96 pub RemoveAllElements: fn(COMPTR) -> HRES,
97}
98
99#[repr(C)]
100pub struct IMFGetServiceVT {
101 pub IUnknownVT: IUnknownVT,
102 pub GetService: fn(COMPTR, PCVOID, PCVOID, *mut COMPTR) -> HRES,
103}
104
105#[repr(C)]
106pub struct IMFMediaEventVT {
107 pub IMFAttributesVT: IMFAttributesVT,
108 pub GetType: fn(COMPTR, *mut u32) -> HRES,
109 pub GetExtendedType: fn(COMPTR, PVOID) -> HRES,
110 pub GetStatus: fn(COMPTR, *mut HRES) -> HRES,
111 pub GetValue: fn(COMPTR, PVOID) -> HRES,
112}
113
114#[repr(C)]
115pub struct IMFMediaEventGeneratorVT {
116 pub IUnknownVT: IUnknownVT,
117 pub GetEvent: fn(COMPTR, u32, *mut COMPTR) -> HRES,
118 pub BeginGetEvent: fn(COMPTR, COMPTR, COMPTR) -> HRES,
119 pub EndGetEvent: fn(COMPTR, COMPTR, *mut COMPTR) -> HRES,
120 pub QueueEvent: fn(COMPTR, u32, PCVOID, HRES, PCVOID) -> HRES,
121}
122
123#[repr(C)]
124pub struct IMFMediaSessionVT {
125 pub IMFMediaEventGeneratorVT: IMFMediaEventGeneratorVT,
126 pub SetTopology: fn(COMPTR, u32, COMPTR) -> HRES,
127 pub ClearTopologies: fn(COMPTR) -> HRES,
128 pub Start: fn(COMPTR, PCVOID, PCVOID) -> HRES,
129 pub Pause: fn(COMPTR) -> HRES,
130 pub Stop: fn(COMPTR) -> HRES,
131 pub Close: fn(COMPTR) -> HRES,
132 pub Shutdown: fn(COMPTR) -> HRES,
133 pub GetClock: fn(COMPTR, *mut COMPTR) -> HRES,
134 pub GetSessionCapabilities: fn(COMPTR, *mut u32) -> HRES,
135 pub GetFullTopology: fn(COMPTR, u32, u64, *mut COMPTR) -> HRES,
136}
137
138#[repr(C)]
139pub struct IMFMediaSourceVT {
140 pub IMFMediaEventGeneratorVT: IMFMediaEventGeneratorVT,
141 pub GetCharacteristics: fn(COMPTR, *mut u32) -> HRES,
142 pub CreatePresentationDescriptor: fn(COMPTR, *mut COMPTR) -> HRES,
143 pub Start: fn(COMPTR, COMPTR, PCVOID, PCVOID) -> HRES,
144 pub Stop: fn(COMPTR) -> HRES,
145 pub Pause: fn(COMPTR) -> HRES,
146 pub Shutdown: fn(COMPTR) -> HRES,
147}
148
149#[repr(C)]
150pub struct IMFMediaTypeHandlerVT {
151 pub IUnknownVT: IUnknownVT,
152 pub IsMediaTypeSupported: fn(COMPTR, COMPTR, *mut COMPTR) -> HRES,
153 pub GetMediaTypeCount: fn(COMPTR, *mut u32) -> HRES,
154 pub GetMediaTypeByIndex: fn(COMPTR, u32, *mut COMPTR) -> HRES,
155 pub SetCurrentMediaType: fn(COMPTR, COMPTR) -> HRES,
156 pub GetCurrentMediaType: fn(COMPTR, *mut COMPTR) -> HRES,
157 pub GetMajorType: fn(COMPTR, PVOID) -> HRES,
158}
159
160#[repr(C)]
161pub struct IMFPresentationDescriptorVT {
162 pub IMFAttributesVT: IMFAttributesVT,
163 pub GetStreamDescriptorCount: fn(COMPTR, *mut u32) -> HRES,
164 pub GetStreamDescriptorByIndex: fn(COMPTR, u32, *mut BOOL, *mut COMPTR) -> HRES,
165 pub SelectStream: fn(COMPTR, u32) -> HRES,
166 pub DeselectStream: fn(COMPTR, u32) -> HRES,
167 pub Clone: fn(COMPTR, *mut COMPTR) -> HRES,
168}
169
170#[repr(C)]
171pub struct IMFSourceResolverVT {
172 pub IUnknownVT: IUnknownVT,
173 pub CreateObjectFromURL: fn(COMPTR, PCSTR, u32, COMPTR, *mut u32, *mut COMPTR) -> HRES,
174 pub CreateObjectFromByteStream:
175 fn(COMPTR, COMPTR, PCSTR, u32, COMPTR, *mut u32, *mut COMPTR) -> HRES,
176 pub BeginCreateObjectFromURL:
177 fn(COMPTR, PCSTR, u32, COMPTR, *mut COMPTR, COMPTR, COMPTR) -> HRES,
178 pub EndCreateObjectFromURL: fn(COMPTR, COMPTR, *mut u32, *mut COMPTR) -> HRES,
179 pub BeginCreateObjectFromByteStream:
180 fn(COMPTR, COMPTR, PCSTR, u32, COMPTR, *mut COMPTR, COMPTR, COMPTR) -> HRES,
181 pub EndCreateObjectFromByteStream: fn(COMPTR, COMPTR, *mut u32, *mut COMPTR) -> HRES,
182 pub CancelObjectCreation: fn(COMPTR, COMPTR) -> HRES,
183}
184
185#[repr(C)]
186pub struct IMFStreamDescriptorVT {
187 pub IMFAttributesVT: IMFAttributesVT,
188 pub GetStreamIdentifier: fn(COMPTR, *mut u32) -> HRES,
189 pub GetMediaTypeHandler: fn(COMPTR, *mut COMPTR) -> HRES,
190}
191
192#[repr(C)]
193pub struct IMFTopologyVT {
194 pub IMFAttributesVT: IMFAttributesVT,
195 pub GetTopologyID: fn(COMPTR, *mut u64) -> HRES,
196 pub AddNode: fn(COMPTR, COMPTR) -> HRES,
197 pub RemoveNode: fn(COMPTR, COMPTR) -> HRES,
198 pub GetNodeCount: fn(COMPTR, *mut u16) -> HRES,
199 pub GetNode: fn(COMPTR, u16, *mut COMPTR) -> HRES,
200 pub Clear: fn(COMPTR) -> HRES,
201 pub CloneFrom: fn(COMPTR, COMPTR) -> HRES,
202 pub GetNodeByID: fn(COMPTR, u64, *mut COMPTR) -> HRES,
203 pub GetSourceNodeCollection: fn(COMPTR, *mut COMPTR) -> HRES,
204 pub GetOutputNodeCollection: fn(COMPTR, *mut COMPTR) -> HRES,
205}
206
207#[repr(C)]
208pub struct IMFTopologyNodeVT {
209 pub IMFAttributesVT: IMFAttributesVT,
210 pub SetObject: fn(COMPTR, COMPTR) -> HRES,
211 pub GetObject: fn(COMPTR, *mut COMPTR) -> HRES,
212 pub GetNodeType: fn(COMPTR, *mut u32) -> HRES,
213 pub GetTopoNodeID: fn(COMPTR, *mut u64) -> HRES,
214 pub SetTopoNodeID: fn(COMPTR, u64) -> HRES,
215 pub GetInputCount: fn(COMPTR, *mut u32) -> HRES,
216 pub GetOutputCount: fn(COMPTR, *mut u32) -> HRES,
217 pub ConnectOutput: fn(COMPTR, u32, COMPTR, u32) -> HRES,
218 pub DisconnectOutput: fn(COMPTR, u32) -> HRES,
219 pub GetInput: fn(COMPTR, u32, *mut COMPTR, *mut u32) -> HRES,
220 pub GetOutput: fn(COMPTR, u32, *mut COMPTR, *mut u32) -> HRES,
221 pub SetOutputPrefType: fn(COMPTR, u32, COMPTR) -> HRES,
222 pub GetOutputPrefType: fn(COMPTR, u32, *mut COMPTR) -> HRES,
223 pub SetInputPrefType: fn(COMPTR, u32, COMPTR) -> HRES,
224 pub GetInputPrefType: fn(COMPTR, u32, *mut COMPTR) -> HRES,
225 pub CloneFrom: fn(COMPTR, COMPTR) -> HRES,
226}
227
228#[repr(C)]
229pub struct IMFVideoDisplayControlVT {
230 pub IUnknownVT: IUnknownVT,
231 pub GetNativeVideoSize: fn(COMPTR, PVOID, PVOID) -> HRES,
232 pub GetIdealVideoSize: fn(COMPTR, PVOID, PVOID) -> HRES,
233 pub SetVideoPosition: fn(COMPTR, PCVOID, PCVOID) -> HRES,
234 pub GetVideoPosition: fn(COMPTR, PVOID, PCVOID) -> HRES,
235 pub SetAspectRatioMode: fn(COMPTR, u32) -> HRES,
236 pub GetAspectRatioMode: fn(COMPTR, *mut u32) -> HRES,
237 pub SetVideoWindow: fn(COMPTR, HANDLE) -> HRES,
238 pub GetVideoWindow: fn(COMPTR, *mut HANDLE) -> HRES,
239 pub RepaintVideo: fn(COMPTR) -> HRES,
240 pub GetCurrentImage: fn(COMPTR, PVOID, *mut *mut u8, *mut u32, *mut i64) -> HRES,
241 pub SetBorderColor: fn(COMPTR, u32) -> HRES,
242 pub GetBorderColor: fn(COMPTR, *mut u32) -> HRES,
243 pub SetRenderingPrefs: fn(COMPTR, u32) -> HRES,
244 pub GetRenderingPrefs: fn(COMPTR, *mut u32) -> HRES,
245 pub SetFullscreen: fn(COMPTR, BOOL) -> HRES,
246 pub GetFullscreen: fn(COMPTR, *mut BOOL) -> HRES,
247}