winsafe\mf/
vts.rs

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}