]> git.sesse.net Git - casparcg/blob - modules/decklink/interop/DeckLinkAPI_h.h
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / modules / decklink / interop / DeckLinkAPI_h.h
1 \r
2 \r
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */\r
4 \r
5 \r
6  /* File created by MIDL compiler version 7.00.0555 */\r
7 /* at Thu Nov 10 16:28:32 2011\r
8  */\r
9 /* Compiler settings for interop\DeckLinkAPI.idl:\r
10     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
11     protocol : dce , ms_ext, c_ext, robust\r
12     error checks: allocation ref bounds_check enum stub_data \r
13     VC __declspec() decoration level: \r
14          __declspec(uuid()), __declspec(selectany), __declspec(novtable)\r
15          DECLSPEC_UUID(), MIDL_INTERFACE()\r
16 */\r
17 /* @@MIDL_FILE_HEADING(  ) */\r
18 \r
19 #pragma warning( disable: 4049 )  /* more than 64k source lines */\r
20 \r
21 \r
22 /* verify that the <rpcndr.h> version is high enough to compile this file*/\r
23 #ifndef __REQUIRED_RPCNDR_H_VERSION__\r
24 #define __REQUIRED_RPCNDR_H_VERSION__ 475\r
25 #endif\r
26 \r
27 #include "rpc.h"\r
28 #include "rpcndr.h"\r
29 \r
30 #ifndef __RPCNDR_H_VERSION__\r
31 #error this stub requires an updated version of <rpcndr.h>\r
32 #endif // __RPCNDR_H_VERSION__\r
33 \r
34 \r
35 #ifndef __DeckLinkAPI_h_h__\r
36 #define __DeckLinkAPI_h_h__\r
37 \r
38 #if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
39 #pragma once\r
40 #endif\r
41 \r
42 /* Forward Declarations */ \r
43 \r
44 #ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__\r
45 #define __IDeckLinkVideoOutputCallback_FWD_DEFINED__\r
46 typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback;\r
47 #endif  /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */\r
48 \r
49 \r
50 #ifndef __IDeckLinkInputCallback_FWD_DEFINED__\r
51 #define __IDeckLinkInputCallback_FWD_DEFINED__\r
52 typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;\r
53 #endif  /* __IDeckLinkInputCallback_FWD_DEFINED__ */\r
54 \r
55 \r
56 #ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__\r
57 #define __IDeckLinkMemoryAllocator_FWD_DEFINED__\r
58 typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;\r
59 #endif  /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */\r
60 \r
61 \r
62 #ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__\r
63 #define __IDeckLinkAudioOutputCallback_FWD_DEFINED__\r
64 typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback;\r
65 #endif  /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */\r
66 \r
67 \r
68 #ifndef __IDeckLinkIterator_FWD_DEFINED__\r
69 #define __IDeckLinkIterator_FWD_DEFINED__\r
70 typedef interface IDeckLinkIterator IDeckLinkIterator;\r
71 #endif  /* __IDeckLinkIterator_FWD_DEFINED__ */\r
72 \r
73 \r
74 #ifndef __IDeckLinkAPIInformation_FWD_DEFINED__\r
75 #define __IDeckLinkAPIInformation_FWD_DEFINED__\r
76 typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation;\r
77 #endif  /* __IDeckLinkAPIInformation_FWD_DEFINED__ */\r
78 \r
79 \r
80 #ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__\r
81 #define __IDeckLinkDisplayModeIterator_FWD_DEFINED__\r
82 typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator;\r
83 #endif  /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */\r
84 \r
85 \r
86 #ifndef __IDeckLinkDisplayMode_FWD_DEFINED__\r
87 #define __IDeckLinkDisplayMode_FWD_DEFINED__\r
88 typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode;\r
89 #endif  /* __IDeckLinkDisplayMode_FWD_DEFINED__ */\r
90 \r
91 \r
92 #ifndef __IDeckLink_FWD_DEFINED__\r
93 #define __IDeckLink_FWD_DEFINED__\r
94 typedef interface IDeckLink IDeckLink;\r
95 #endif  /* __IDeckLink_FWD_DEFINED__ */\r
96 \r
97 \r
98 #ifndef __IDeckLinkOutput_FWD_DEFINED__\r
99 #define __IDeckLinkOutput_FWD_DEFINED__\r
100 typedef interface IDeckLinkOutput IDeckLinkOutput;\r
101 #endif  /* __IDeckLinkOutput_FWD_DEFINED__ */\r
102 \r
103 \r
104 #ifndef __IDeckLinkInput_FWD_DEFINED__\r
105 #define __IDeckLinkInput_FWD_DEFINED__\r
106 typedef interface IDeckLinkInput IDeckLinkInput;\r
107 #endif  /* __IDeckLinkInput_FWD_DEFINED__ */\r
108 \r
109 \r
110 #ifndef __IDeckLinkTimecode_FWD_DEFINED__\r
111 #define __IDeckLinkTimecode_FWD_DEFINED__\r
112 typedef interface IDeckLinkTimecode IDeckLinkTimecode;\r
113 #endif  /* __IDeckLinkTimecode_FWD_DEFINED__ */\r
114 \r
115 \r
116 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__\r
117 #define __IDeckLinkVideoFrame_FWD_DEFINED__\r
118 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;\r
119 #endif  /* __IDeckLinkVideoFrame_FWD_DEFINED__ */\r
120 \r
121 \r
122 #ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__\r
123 #define __IDeckLinkMutableVideoFrame_FWD_DEFINED__\r
124 typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;\r
125 #endif  /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */\r
126 \r
127 \r
128 #ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__\r
129 #define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__\r
130 typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;\r
131 #endif  /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */\r
132 \r
133 \r
134 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
135 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
136 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;\r
137 #endif  /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */\r
138 \r
139 \r
140 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__\r
141 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__\r
142 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;\r
143 #endif  /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */\r
144 \r
145 \r
146 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
147 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
148 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;\r
149 #endif  /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */\r
150 \r
151 \r
152 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__\r
153 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__\r
154 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;\r
155 #endif  /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */\r
156 \r
157 \r
158 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
159 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
160 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;\r
161 #endif  /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */\r
162 \r
163 \r
164 #ifndef __IDeckLinkConfiguration_FWD_DEFINED__\r
165 #define __IDeckLinkConfiguration_FWD_DEFINED__\r
166 typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;\r
167 #endif  /* __IDeckLinkConfiguration_FWD_DEFINED__ */\r
168 \r
169 \r
170 #ifndef __IDeckLinkAttributes_FWD_DEFINED__\r
171 #define __IDeckLinkAttributes_FWD_DEFINED__\r
172 typedef interface IDeckLinkAttributes IDeckLinkAttributes;\r
173 #endif  /* __IDeckLinkAttributes_FWD_DEFINED__ */\r
174 \r
175 \r
176 #ifndef __IDeckLinkKeyer_FWD_DEFINED__\r
177 #define __IDeckLinkKeyer_FWD_DEFINED__\r
178 typedef interface IDeckLinkKeyer IDeckLinkKeyer;\r
179 #endif  /* __IDeckLinkKeyer_FWD_DEFINED__ */\r
180 \r
181 \r
182 #ifndef __IDeckLinkVideoConversion_FWD_DEFINED__\r
183 #define __IDeckLinkVideoConversion_FWD_DEFINED__\r
184 typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;\r
185 #endif  /* __IDeckLinkVideoConversion_FWD_DEFINED__ */\r
186 \r
187 \r
188 #ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__\r
189 #define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__\r
190 typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;\r
191 #endif  /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */\r
192 \r
193 \r
194 #ifndef __IDeckLinkDeckControl_FWD_DEFINED__\r
195 #define __IDeckLinkDeckControl_FWD_DEFINED__\r
196 typedef interface IDeckLinkDeckControl IDeckLinkDeckControl;\r
197 #endif  /* __IDeckLinkDeckControl_FWD_DEFINED__ */\r
198 \r
199 \r
200 #ifndef __CDeckLinkIterator_FWD_DEFINED__\r
201 #define __CDeckLinkIterator_FWD_DEFINED__\r
202 \r
203 #ifdef __cplusplus\r
204 typedef class CDeckLinkIterator CDeckLinkIterator;\r
205 #else\r
206 typedef struct CDeckLinkIterator CDeckLinkIterator;\r
207 #endif /* __cplusplus */\r
208 \r
209 #endif  /* __CDeckLinkIterator_FWD_DEFINED__ */\r
210 \r
211 \r
212 #ifndef __CDeckLinkAPIInformation_FWD_DEFINED__\r
213 #define __CDeckLinkAPIInformation_FWD_DEFINED__\r
214 \r
215 #ifdef __cplusplus\r
216 typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;\r
217 #else\r
218 typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;\r
219 #endif /* __cplusplus */\r
220 \r
221 #endif  /* __CDeckLinkAPIInformation_FWD_DEFINED__ */\r
222 \r
223 \r
224 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
225 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
226 \r
227 #ifdef __cplusplus\r
228 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;\r
229 #else\r
230 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;\r
231 #endif /* __cplusplus */\r
232 \r
233 #endif  /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */\r
234 \r
235 \r
236 #ifndef __CDeckLinkVideoConversion_FWD_DEFINED__\r
237 #define __CDeckLinkVideoConversion_FWD_DEFINED__\r
238 \r
239 #ifdef __cplusplus\r
240 typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;\r
241 #else\r
242 typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;\r
243 #endif /* __cplusplus */\r
244 \r
245 #endif  /* __CDeckLinkVideoConversion_FWD_DEFINED__ */\r
246 \r
247 \r
248 #ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__\r
249 #define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__\r
250 typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;\r
251 #endif  /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */\r
252 \r
253 \r
254 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__\r
255 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__\r
256 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;\r
257 #endif  /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */\r
258 \r
259 \r
260 #ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__\r
261 #define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__\r
262 typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;\r
263 #endif  /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */\r
264 \r
265 \r
266 #ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__\r
267 #define __IDeckLinkOutput_v7_6_FWD_DEFINED__\r
268 typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;\r
269 #endif  /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */\r
270 \r
271 \r
272 #ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__\r
273 #define __IDeckLinkInput_v7_6_FWD_DEFINED__\r
274 typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;\r
275 #endif  /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */\r
276 \r
277 \r
278 #ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__\r
279 #define __IDeckLinkTimecode_v7_6_FWD_DEFINED__\r
280 typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;\r
281 #endif  /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */\r
282 \r
283 \r
284 #ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__\r
285 #define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__\r
286 typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;\r
287 #endif  /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */\r
288 \r
289 \r
290 #ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__\r
291 #define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__\r
292 typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;\r
293 #endif  /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */\r
294 \r
295 \r
296 #ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__\r
297 #define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__\r
298 typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;\r
299 #endif  /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */\r
300 \r
301 \r
302 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__\r
303 #define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__\r
304 typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;\r
305 #endif  /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */\r
306 \r
307 \r
308 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
309 #define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
310 typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;\r
311 #endif  /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */\r
312 \r
313 \r
314 #ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
315 #define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
316 typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;\r
317 #endif  /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */\r
318 \r
319 \r
320 #ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__\r
321 #define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__\r
322 typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;\r
323 #endif  /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */\r
324 \r
325 \r
326 #ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__\r
327 #define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__\r
328 typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;\r
329 #endif  /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */\r
330 \r
331 \r
332 #ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__\r
333 #define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__\r
334 typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;\r
335 #endif  /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */\r
336 \r
337 \r
338 #ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
339 #define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
340 \r
341 #ifdef __cplusplus\r
342 typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;\r
343 #else\r
344 typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;\r
345 #endif /* __cplusplus */\r
346 \r
347 #endif  /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */\r
348 \r
349 \r
350 #ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
351 #define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
352 \r
353 #ifdef __cplusplus\r
354 typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;\r
355 #else\r
356 typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;\r
357 #endif /* __cplusplus */\r
358 \r
359 #endif  /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */\r
360 \r
361 \r
362 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__\r
363 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__\r
364 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;\r
365 #endif  /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */\r
366 \r
367 \r
368 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__\r
369 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__\r
370 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;\r
371 #endif  /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */\r
372 \r
373 \r
374 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__\r
375 #define __IDeckLinkInput_v7_3_FWD_DEFINED__\r
376 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;\r
377 #endif  /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */\r
378 \r
379 \r
380 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__\r
381 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__\r
382 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;\r
383 #endif  /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */\r
384 \r
385 \r
386 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__\r
387 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__\r
388 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;\r
389 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */\r
390 \r
391 \r
392 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__\r
393 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__\r
394 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;\r
395 #endif  /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */\r
396 \r
397 \r
398 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__\r
399 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__\r
400 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;\r
401 #endif  /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */\r
402 \r
403 \r
404 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__\r
405 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__\r
406 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;\r
407 #endif  /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */\r
408 \r
409 \r
410 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__\r
411 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__\r
412 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;\r
413 #endif  /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */\r
414 \r
415 \r
416 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__\r
417 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__\r
418 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;\r
419 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */\r
420 \r
421 \r
422 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__\r
423 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__\r
424 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;\r
425 #endif  /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */\r
426 \r
427 \r
428 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__\r
429 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__\r
430 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;\r
431 #endif  /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */\r
432 \r
433 \r
434 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__\r
435 #define __IDeckLinkInput_v7_1_FWD_DEFINED__\r
436 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;\r
437 #endif  /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */\r
438 \r
439 \r
440 /* header files for imported files */\r
441 #include "unknwn.h"\r
442 \r
443 #ifdef __cplusplus\r
444 extern "C"{\r
445 #endif \r
446 \r
447 \r
448 \r
449 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__\r
450 #define __DeckLinkAPI_LIBRARY_DEFINED__\r
451 \r
452 /* library DeckLinkAPI */\r
453 /* [helpstring][version][uuid] */ \r
454 \r
455 typedef LONGLONG BMDTimeValue;\r
456 \r
457 typedef LONGLONG BMDTimeScale;\r
458 \r
459 typedef unsigned long BMDTimecodeBCD;\r
460 \r
461 typedef unsigned long BMDTimecodeUserBits;\r
462 \r
463 typedef unsigned long BMDDisplayModeFlags;\r
464 typedef unsigned long BMDFrameFlags;\r
465 typedef unsigned long BMDVideoInputFlags;\r
466 typedef unsigned long BMDVideoInputFormatChangedEvents;\r
467 typedef unsigned long BMDDetectedVideoInputFormatFlags;\r
468 typedef unsigned long BMDTimecodeFlags;\r
469 typedef unsigned long BMDAnalogVideoFlags;\r
470 typedef unsigned long BMDDeckControlStatusFlags;\r
471 typedef unsigned long BMDDeckControlExportModeOpsFlags;\r
472 #if 0\r
473 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;\r
474 \r
475 typedef enum _BMDFrameFlags BMDFrameFlags;\r
476 \r
477 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;\r
478 \r
479 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;\r
480 \r
481 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;\r
482 \r
483 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;\r
484 \r
485 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;\r
486 \r
487 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;\r
488 \r
489 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;\r
490 \r
491 #endif\r
492 typedef /* [v1_enum] */ \r
493 enum _BMDDisplayMode\r
494     {   bmdModeNTSC     = 0x6e747363,\r
495         bmdModeNTSC2398 = 0x6e743233,\r
496         bmdModePAL      = 0x70616c20,\r
497         bmdModeNTSCp    = 0x6e747370,\r
498         bmdModePALp     = 0x70616c70,\r
499         bmdModeHD1080p2398      = 0x32337073,\r
500         bmdModeHD1080p24        = 0x32347073,\r
501         bmdModeHD1080p25        = 0x48703235,\r
502         bmdModeHD1080p2997      = 0x48703239,\r
503         bmdModeHD1080p30        = 0x48703330,\r
504         bmdModeHD1080i50        = 0x48693530,\r
505         bmdModeHD1080i5994      = 0x48693539,\r
506         bmdModeHD1080i6000      = 0x48693630,\r
507         bmdModeHD1080p50        = 0x48703530,\r
508         bmdModeHD1080p5994      = 0x48703539,\r
509         bmdModeHD1080p6000      = 0x48703630,\r
510         bmdModeHD720p50 = 0x68703530,\r
511         bmdModeHD720p5994       = 0x68703539,\r
512         bmdModeHD720p60 = 0x68703630,\r
513         bmdMode2k2398   = 0x326b3233,\r
514         bmdMode2k24     = 0x326b3234,\r
515         bmdMode2k25     = 0x326b3235\r
516     }   BMDDisplayMode;\r
517 \r
518 typedef /* [v1_enum] */ \r
519 enum _BMDFieldDominance\r
520     {   bmdUnknownFieldDominance        = 0,\r
521         bmdLowerFieldFirst      = 0x6c6f7772,\r
522         bmdUpperFieldFirst      = 0x75707072,\r
523         bmdProgressiveFrame     = 0x70726f67,\r
524         bmdProgressiveSegmentedFrame    = 0x70736620\r
525     }   BMDFieldDominance;\r
526 \r
527 typedef /* [v1_enum] */ \r
528 enum _BMDPixelFormat\r
529     {   bmdFormat8BitYUV        = 0x32767579,\r
530         bmdFormat10BitYUV       = 0x76323130,\r
531         bmdFormat8BitARGB       = 32,\r
532         bmdFormat8BitBGRA       = 0x42475241,\r
533         bmdFormat10BitRGB       = 0x72323130\r
534     }   BMDPixelFormat;\r
535 \r
536 /* [v1_enum] */ \r
537 enum _BMDDisplayModeFlags\r
538     {   bmdDisplayModeSupports3D        = ( 1 << 0 ) ,\r
539         bmdDisplayModeColorspaceRec601  = ( 1 << 1 ) ,\r
540         bmdDisplayModeColorspaceRec709  = ( 1 << 2 ) \r
541     } ;\r
542 typedef /* [v1_enum] */ \r
543 enum _BMDVideoOutputFlags\r
544     {   bmdVideoOutputFlagDefault       = 0,\r
545         bmdVideoOutputVANC      = ( 1 << 0 ) ,\r
546         bmdVideoOutputVITC      = ( 1 << 1 ) ,\r
547         bmdVideoOutputRP188     = ( 1 << 2 ) ,\r
548         bmdVideoOutputDualStream3D      = ( 1 << 4 ) \r
549     }   BMDVideoOutputFlags;\r
550 \r
551 /* [v1_enum] */ \r
552 enum _BMDFrameFlags\r
553     {   bmdFrameFlagDefault     = 0,\r
554         bmdFrameFlagFlipVertical        = ( 1 << 0 ) ,\r
555         bmdFrameHasNoInputSource        = ( 1 << 31 ) \r
556     } ;\r
557 /* [v1_enum] */ \r
558 enum _BMDVideoInputFlags\r
559     {   bmdVideoInputFlagDefault        = 0,\r
560         bmdVideoInputEnableFormatDetection      = ( 1 << 0 ) ,\r
561         bmdVideoInputDualStream3D       = ( 1 << 1 ) \r
562     } ;\r
563 /* [v1_enum] */ \r
564 enum _BMDVideoInputFormatChangedEvents\r
565     {   bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,\r
566         bmdVideoInputFieldDominanceChanged      = ( 1 << 1 ) ,\r
567         bmdVideoInputColorspaceChanged  = ( 1 << 2 ) \r
568     } ;\r
569 /* [v1_enum] */ \r
570 enum _BMDDetectedVideoInputFormatFlags\r
571     {   bmdDetectedVideoInputYCbCr422   = ( 1 << 0 ) ,\r
572         bmdDetectedVideoInputRGB444     = ( 1 << 1 ) \r
573     } ;\r
574 typedef /* [v1_enum] */ \r
575 enum _BMDOutputFrameCompletionResult\r
576     {   bmdOutputFrameCompleted = 0,\r
577         bmdOutputFrameDisplayedLate     = ( bmdOutputFrameCompleted + 1 ) ,\r
578         bmdOutputFrameDropped   = ( bmdOutputFrameDisplayedLate + 1 ) ,\r
579         bmdOutputFrameFlushed   = ( bmdOutputFrameDropped + 1 ) \r
580     }   BMDOutputFrameCompletionResult;\r
581 \r
582 typedef /* [v1_enum] */ \r
583 enum _BMDReferenceStatus\r
584     {   bmdReferenceNotSupportedByHardware      = ( 1 << 0 ) ,\r
585         bmdReferenceLocked      = ( 1 << 1 ) \r
586     }   BMDReferenceStatus;\r
587 \r
588 typedef /* [v1_enum] */ \r
589 enum _BMDAudioSampleRate\r
590     {   bmdAudioSampleRate48kHz = 48000\r
591     }   BMDAudioSampleRate;\r
592 \r
593 typedef /* [v1_enum] */ \r
594 enum _BMDAudioSampleType\r
595     {   bmdAudioSampleType16bitInteger  = 16,\r
596         bmdAudioSampleType32bitInteger  = 32\r
597     }   BMDAudioSampleType;\r
598 \r
599 typedef /* [v1_enum] */ \r
600 enum _BMDAudioOutputStreamType\r
601     {   bmdAudioOutputStreamContinuous  = 0,\r
602         bmdAudioOutputStreamContinuousDontResample      = ( bmdAudioOutputStreamContinuous + 1 ) ,\r
603         bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 ) \r
604     }   BMDAudioOutputStreamType;\r
605 \r
606 typedef /* [v1_enum] */ \r
607 enum _BMDDisplayModeSupport\r
608     {   bmdDisplayModeNotSupported      = 0,\r
609         bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,\r
610         bmdDisplayModeSupportedWithConversion   = ( bmdDisplayModeSupported + 1 ) \r
611     }   BMDDisplayModeSupport;\r
612 \r
613 typedef /* [v1_enum] */ \r
614 enum _BMDTimecodeFormat\r
615     {   bmdTimecodeRP188        = 0x72703138,\r
616         bmdTimecodeRP188Field2  = 0x72703132,\r
617         bmdTimecodeVITC = 0x76697463,\r
618         bmdTimecodeVITCField2   = 0x76697432,\r
619         bmdTimecodeSerial       = 0x73657269\r
620     }   BMDTimecodeFormat;\r
621 \r
622 /* [v1_enum] */ \r
623 enum _BMDTimecodeFlags\r
624     {   bmdTimecodeFlagDefault  = 0,\r
625         bmdTimecodeIsDropFrame  = ( 1 << 0 ) \r
626     } ;\r
627 typedef /* [v1_enum] */ \r
628 enum _BMDVideoConnection\r
629     {   bmdVideoConnectionSDI   = ( 1 << 0 ) ,\r
630         bmdVideoConnectionHDMI  = ( 1 << 1 ) ,\r
631         bmdVideoConnectionOpticalSDI    = ( 1 << 2 ) ,\r
632         bmdVideoConnectionComponent     = ( 1 << 3 ) ,\r
633         bmdVideoConnectionComposite     = ( 1 << 4 ) ,\r
634         bmdVideoConnectionSVideo        = ( 1 << 5 ) \r
635     }   BMDVideoConnection;\r
636 \r
637 /* [v1_enum] */ \r
638 enum _BMDAnalogVideoFlags\r
639     {   bmdAnalogVideoFlagCompositeSetup75      = ( 1 << 0 ) ,\r
640         bmdAnalogVideoFlagComponentBetacamLevels        = ( 1 << 1 ) \r
641     } ;\r
642 typedef /* [v1_enum] */ \r
643 enum _BMDAudioConnection\r
644     {   bmdAudioConnectionEmbedded      = 0x656d6264,\r
645         bmdAudioConnectionAESEBU        = 0x61657320,\r
646         bmdAudioConnectionAnalog        = 0x616e6c67\r
647     }   BMDAudioConnection;\r
648 \r
649 typedef /* [v1_enum] */ \r
650 enum _BMDAudioOutputAnalogAESSwitch\r
651     {   bmdAudioOutputSwitchAESEBU      = 0x61657320,\r
652         bmdAudioOutputSwitchAnalog      = 0x616e6c67\r
653     }   BMDAudioOutputAnalogAESSwitch;\r
654 \r
655 typedef /* [v1_enum] */ \r
656 enum _BMDVideoOutputConversionMode\r
657     {   bmdNoVideoOutputConversion      = 0x6e6f6e65,\r
658         bmdVideoOutputLetterboxDownconversion   = 0x6c746278,\r
659         bmdVideoOutputAnamorphicDownconversion  = 0x616d7068,\r
660         bmdVideoOutputHD720toHD1080Conversion   = 0x37323063,\r
661         bmdVideoOutputHardwareLetterboxDownconversion   = 0x48576c62,\r
662         bmdVideoOutputHardwareAnamorphicDownconversion  = 0x4857616d,\r
663         bmdVideoOutputHardwareCenterCutDownconversion   = 0x48576363,\r
664         bmdVideoOutputHardware720p1080pCrossconversion  = 0x78636170,\r
665         bmdVideoOutputHardwareAnamorphic720pUpconversion        = 0x75613770,\r
666         bmdVideoOutputHardwareAnamorphic1080iUpconversion       = 0x75613169,\r
667         bmdVideoOutputHardwareAnamorphic149To720pUpconversion   = 0x75343770,\r
668         bmdVideoOutputHardwareAnamorphic149To1080iUpconversion  = 0x75343169,\r
669         bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770,\r
670         bmdVideoOutputHardwarePillarbox1080iUpconversion        = 0x75703169\r
671     }   BMDVideoOutputConversionMode;\r
672 \r
673 typedef /* [v1_enum] */ \r
674 enum _BMDVideoInputConversionMode\r
675     {   bmdNoVideoInputConversion       = 0x6e6f6e65,\r
676         bmdVideoInputLetterboxDownconversionFromHD1080  = 0x31306c62,\r
677         bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,\r
678         bmdVideoInputLetterboxDownconversionFromHD720   = 0x37326c62,\r
679         bmdVideoInputAnamorphicDownconversionFromHD720  = 0x3732616d,\r
680         bmdVideoInputLetterboxUpconversion      = 0x6c627570,\r
681         bmdVideoInputAnamorphicUpconversion     = 0x616d7570\r
682     }   BMDVideoInputConversionMode;\r
683 \r
684 typedef /* [v1_enum] */ \r
685 enum _BMDVideo3DPackingFormat\r
686     {   bmdVideo3DPackingSidebySideHalf = 0x73627368,\r
687         bmdVideo3DPackingLinebyLine     = 0x6c62796c,\r
688         bmdVideo3DPackingTopAndBottom   = 0x7461626f,\r
689         bmdVideo3DPackingFramePacking   = 0x6672706b,\r
690         bmdVideo3DPackingLeftOnly       = 0x6c656674,\r
691         bmdVideo3DPackingRightOnly      = 0x72696768\r
692     }   BMDVideo3DPackingFormat;\r
693 \r
694 typedef /* [v1_enum] */ \r
695 enum _BMDIdleVideoOutputOperation\r
696     {   bmdIdleVideoOutputBlack = 0x626c6163,\r
697         bmdIdleVideoOutputLastFrame     = 0x6c616661\r
698     }   BMDIdleVideoOutputOperation;\r
699 \r
700 typedef /* [v1_enum] */ \r
701 enum _BMDDeckLinkConfigurationID\r
702     {   bmdDeckLinkConfigSwapSerialRxTx = 0x73737274,\r
703         bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,\r
704         bmdDeckLinkConfigHDMI3DPackingFormat    = 0x33647066,\r
705         bmdDeckLinkConfigBypass = 0x62797073,\r
706         bmdDeckLinkConfigAnalogAudioConsumerLevels      = 0x6161636c,\r
707         bmdDeckLinkConfigFieldFlickerRemoval    = 0x66646672,\r
708         bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion       = 0x746f3539,\r
709         bmdDeckLinkConfig444SDIVideoOutput      = 0x3434346f,\r
710         bmdDeckLinkConfig3GBpsVideoOutput       = 0x33676273,\r
711         bmdDeckLinkConfigBlackVideoOutputDuringCapture  = 0x62766f63,\r
712         bmdDeckLinkConfigLowLatencyVideoOutput  = 0x6c6c766f,\r
713         bmdDeckLinkConfigVideoOutputConnection  = 0x766f636e,\r
714         bmdDeckLinkConfigVideoOutputConversionMode      = 0x766f636d,\r
715         bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,\r
716         bmdDeckLinkConfigReferenceInputTimingOffset     = 0x676c6f74,\r
717         bmdDeckLinkConfigVideoOutputIdleOperation       = 0x766f696f,\r
718         bmdDeckLinkConfigVideoOutputComponentLumaGain   = 0x6f636c67,\r
719         bmdDeckLinkConfigVideoOutputComponentChromaBlueGain     = 0x6f636362,\r
720         bmdDeckLinkConfigVideoOutputComponentChromaRedGain      = 0x6f636372,\r
721         bmdDeckLinkConfigVideoOutputCompositeLumaGain   = 0x6f696c67,\r
722         bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367,\r
723         bmdDeckLinkConfigVideoOutputSVideoLumaGain      = 0x6f736c67,\r
724         bmdDeckLinkConfigVideoOutputSVideoChromaGain    = 0x6f736367,\r
725         bmdDeckLinkConfigVideoInputConnection   = 0x7669636e,\r
726         bmdDeckLinkConfigAnalogVideoInputFlags  = 0x61766966,\r
727         bmdDeckLinkConfigVideoInputConversionMode       = 0x7669636d,\r
728         bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966,\r
729         bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,\r
730         bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,\r
731         bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,\r
732         bmdDeckLinkConfigVideoInputComponentLumaGain    = 0x69636c67,\r
733         bmdDeckLinkConfigVideoInputComponentChromaBlueGain      = 0x69636362,\r
734         bmdDeckLinkConfigVideoInputComponentChromaRedGain       = 0x69636372,\r
735         bmdDeckLinkConfigVideoInputCompositeLumaGain    = 0x69696c67,\r
736         bmdDeckLinkConfigVideoInputCompositeChromaGain  = 0x69696367,\r
737         bmdDeckLinkConfigVideoInputSVideoLumaGain       = 0x69736c67,\r
738         bmdDeckLinkConfigVideoInputSVideoChromaGain     = 0x69736367,\r
739         bmdDeckLinkConfigAudioInputConnection   = 0x6169636e,\r
740         bmdDeckLinkConfigAnalogAudioInputScaleChannel1  = 0x61697331,\r
741         bmdDeckLinkConfigAnalogAudioInputScaleChannel2  = 0x61697332,\r
742         bmdDeckLinkConfigAnalogAudioInputScaleChannel3  = 0x61697333,\r
743         bmdDeckLinkConfigAnalogAudioInputScaleChannel4  = 0x61697334,\r
744         bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973,\r
745         bmdDeckLinkConfigAudioOutputAESAnalogSwitch     = 0x616f6161,\r
746         bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331,\r
747         bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332,\r
748         bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333,\r
749         bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334,\r
750         bmdDeckLinkConfigDigitalAudioOutputScale        = 0x64616f73\r
751     }   BMDDeckLinkConfigurationID;\r
752 \r
753 typedef /* [v1_enum] */ \r
754 enum _BMDDeckLinkAttributeID\r
755     {   BMDDeckLinkSupportsInternalKeying       = 0x6b657969,\r
756         BMDDeckLinkSupportsExternalKeying       = 0x6b657965,\r
757         BMDDeckLinkSupportsHDKeying     = 0x6b657968,\r
758         BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,\r
759         BMDDeckLinkHasReferenceInput    = 0x6872696e,\r
760         BMDDeckLinkHasSerialPort        = 0x68737074,\r
761         BMDDeckLinkHasAnalogVideoOutputGain     = 0x61766f67,\r
762         BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain  = 0x6f766f67,\r
763         BMDDeckLinkHasVideoInputAntiAliasingFilter      = 0x6161666c,\r
764         BMDDeckLinkHasBypass    = 0x62797073,\r
765         BMDDeckLinkMaximumAudioChannels = 0x6d616368,\r
766         BMDDeckLinkNumberOfSubDevices   = 0x6e736264,\r
767         BMDDeckLinkSubDeviceIndex       = 0x73756269,\r
768         BMDDeckLinkVideoOutputConnections       = 0x766f636e,\r
769         BMDDeckLinkVideoInputConnections        = 0x7669636e,\r
770         BMDDeckLinkVideoInputGainMinimum        = 0x7669676d,\r
771         BMDDeckLinkVideoInputGainMaximum        = 0x76696778,\r
772         BMDDeckLinkVideoOutputGainMinimum       = 0x766f676d,\r
773         BMDDeckLinkVideoOutputGainMaximum       = 0x766f6778,\r
774         BMDDeckLinkSerialPortDeviceName = 0x736c706e\r
775     }   BMDDeckLinkAttributeID;\r
776 \r
777 typedef /* [v1_enum] */ \r
778 enum _BMDDeckLinkAPIInformationID\r
779     {   BMDDeckLinkAPIVersion   = 0x76657273\r
780     }   BMDDeckLinkAPIInformationID;\r
781 \r
782 typedef /* [v1_enum] */ \r
783 enum _BMDDeckControlMode\r
784     {   bmdDeckControlNotOpened = 0x6e746f70,\r
785         bmdDeckControlVTRControlMode    = 0x76747263,\r
786         bmdDeckControlExportMode        = 0x6578706d,\r
787         bmdDeckControlCaptureMode       = 0x6361706d\r
788     }   BMDDeckControlMode;\r
789 \r
790 typedef /* [v1_enum] */ \r
791 enum _BMDDeckControlEvent\r
792     {   bmdDeckControlAbortedEvent      = 0x61627465,\r
793         bmdDeckControlPrepareForExportEvent     = 0x70666565,\r
794         bmdDeckControlExportCompleteEvent       = 0x65786365,\r
795         bmdDeckControlPrepareForCaptureEvent    = 0x70666365,\r
796         bmdDeckControlCaptureCompleteEvent      = 0x63636576\r
797     }   BMDDeckControlEvent;\r
798 \r
799 typedef /* [v1_enum] */ \r
800 enum _BMDDeckControlVTRControlState\r
801     {   bmdDeckControlNotInVTRControlMode       = 0x6e76636d,\r
802         bmdDeckControlVTRControlPlaying = 0x76747270,\r
803         bmdDeckControlVTRControlRecording       = 0x76747272,\r
804         bmdDeckControlVTRControlStill   = 0x76747261,\r
805         bmdDeckControlVTRControlSeeking = 0x76747273,\r
806         bmdDeckControlVTRControlStopped = 0x7674726f\r
807     }   BMDDeckControlVTRControlState;\r
808 \r
809 /* [v1_enum] */ \r
810 enum _BMDDeckControlStatusFlags\r
811     {   bmdDeckControlStatusDeckConnected       = ( 1 << 0 ) ,\r
812         bmdDeckControlStatusRemoteMode  = ( 1 << 1 ) ,\r
813         bmdDeckControlStatusRecordInhibited     = ( 1 << 2 ) ,\r
814         bmdDeckControlStatusCassetteOut = ( 1 << 3 ) \r
815     } ;\r
816 /* [v1_enum] */ \r
817 enum _BMDDeckControlExportModeOpsFlags\r
818     {   bmdDeckControlExportModeInsertVideo     = ( 1 << 0 ) ,\r
819         bmdDeckControlExportModeInsertAudio1    = ( 1 << 1 ) ,\r
820         bmdDeckControlExportModeInsertAudio2    = ( 1 << 2 ) ,\r
821         bmdDeckControlExportModeInsertAudio3    = ( 1 << 3 ) ,\r
822         bmdDeckControlExportModeInsertAudio4    = ( 1 << 4 ) ,\r
823         bmdDeckControlExportModeInsertAudio5    = ( 1 << 5 ) ,\r
824         bmdDeckControlExportModeInsertAudio6    = ( 1 << 6 ) ,\r
825         bmdDeckControlExportModeInsertAudio7    = ( 1 << 7 ) ,\r
826         bmdDeckControlExportModeInsertAudio8    = ( 1 << 8 ) ,\r
827         bmdDeckControlExportModeInsertAudio9    = ( 1 << 9 ) ,\r
828         bmdDeckControlExportModeInsertAudio10   = ( 1 << 10 ) ,\r
829         bmdDeckControlExportModeInsertAudio11   = ( 1 << 11 ) ,\r
830         bmdDeckControlExportModeInsertAudio12   = ( 1 << 12 ) ,\r
831         bmdDeckControlExportModeInsertTimeCode  = ( 1 << 13 ) ,\r
832         bmdDeckControlExportModeInsertAssemble  = ( 1 << 14 ) ,\r
833         bmdDeckControlExportModeInsertPreview   = ( 1 << 15 ) ,\r
834         bmdDeckControlUseManualExport   = ( 1 << 16 ) \r
835     } ;\r
836 typedef /* [v1_enum] */ \r
837 enum _BMDDeckControlError\r
838     {   bmdDeckControlNoError   = 0x6e6f6572,\r
839         bmdDeckControlModeError = 0x6d6f6572,\r
840         bmdDeckControlMissedInPointError        = 0x6d696572,\r
841         bmdDeckControlDeckTimeoutError  = 0x64746572,\r
842         bmdDeckControlCommandFailedError        = 0x63666572,\r
843         bmdDeckControlDeviceAlreadyOpenedError  = 0x64616c6f,\r
844         bmdDeckControlFailedToOpenDeviceError   = 0x66646572,\r
845         bmdDeckControlInLocalModeError  = 0x6c6d6572,\r
846         bmdDeckControlEndOfTapeError    = 0x65746572,\r
847         bmdDeckControlUserAbortError    = 0x75616572,\r
848         bmdDeckControlNoTapeInDeckError = 0x6e746572,\r
849         bmdDeckControlNoVideoFromCardError      = 0x6e766663,\r
850         bmdDeckControlNoCommunicationError      = 0x6e636f6d,\r
851         bmdDeckControlBufferTooSmallError       = 0x6274736d,\r
852         bmdDeckControlBadChecksumError  = 0x63686b73,\r
853         bmdDeckControlUnknownError      = 0x756e6572\r
854     }   BMDDeckControlError;\r
855 \r
856 typedef /* [v1_enum] */ \r
857 enum _BMD3DPreviewFormat\r
858     {   bmd3DPreviewFormatDefault       = 0x64656661,\r
859         bmd3DPreviewFormatLeftOnly      = 0x6c656674,\r
860         bmd3DPreviewFormatRightOnly     = 0x72696768,\r
861         bmd3DPreviewFormatSideBySide    = 0x73696465,\r
862         bmd3DPreviewFormatTopBottom     = 0x746f7062\r
863     }   BMD3DPreviewFormat;\r
864 \r
865 \r
866 \r
867 \r
868 \r
869 \r
870 \r
871 \r
872 \r
873 \r
874 \r
875 \r
876 \r
877 \r
878 \r
879 \r
880 \r
881 \r
882 \r
883 \r
884 \r
885 \r
886 \r
887 \r
888 \r
889 \r
890 \r
891 typedef /* [v1_enum] */ \r
892 enum _BMDVideoConnection_v7_6\r
893     {   bmdVideoConnectionSDI_v7_6      = 0x73646920,\r
894         bmdVideoConnectionHDMI_v7_6     = 0x68646d69,\r
895         bmdVideoConnectionOpticalSDI_v7_6       = 0x6f707469,\r
896         bmdVideoConnectionComponent_v7_6        = 0x63706e74,\r
897         bmdVideoConnectionComposite_v7_6        = 0x636d7374,\r
898         bmdVideoConnectionSVideo_v7_6   = 0x73766964\r
899     }   BMDVideoConnection_v7_6;\r
900 \r
901 \r
902 \r
903 \r
904 \r
905 \r
906 \r
907 \r
908 \r
909 \r
910 \r
911 \r
912 \r
913 \r
914 \r
915 \r
916 \r
917 \r
918 \r
919 \r
920 \r
921 \r
922 \r
923 EXTERN_C const IID LIBID_DeckLinkAPI;\r
924 \r
925 #ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
926 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
927 \r
928 /* interface IDeckLinkVideoOutputCallback */\r
929 /* [helpstring][uuid][object] */ \r
930 \r
931 \r
932 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;\r
933 \r
934 #if defined(__cplusplus) && !defined(CINTERFACE)\r
935     \r
936     MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")\r
937     IDeckLinkVideoOutputCallback : public IUnknown\r
938     {\r
939     public:\r
940         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
941             /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
942             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
943         \r
944         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
945         \r
946     };\r
947     \r
948 #else   /* C style interface */\r
949 \r
950     typedef struct IDeckLinkVideoOutputCallbackVtbl\r
951     {\r
952         BEGIN_INTERFACE\r
953         \r
954         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
955             IDeckLinkVideoOutputCallback * This,\r
956             /* [in] */ REFIID riid,\r
957             /* [annotation][iid_is][out] */ \r
958             __RPC__deref_out  void **ppvObject);\r
959         \r
960         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
961             IDeckLinkVideoOutputCallback * This);\r
962         \r
963         ULONG ( STDMETHODCALLTYPE *Release )( \r
964             IDeckLinkVideoOutputCallback * This);\r
965         \r
966         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
967             IDeckLinkVideoOutputCallback * This,\r
968             /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
969             /* [in] */ BMDOutputFrameCompletionResult result);\r
970         \r
971         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
972             IDeckLinkVideoOutputCallback * This);\r
973         \r
974         END_INTERFACE\r
975     } IDeckLinkVideoOutputCallbackVtbl;\r
976 \r
977     interface IDeckLinkVideoOutputCallback\r
978     {\r
979         CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;\r
980     };\r
981 \r
982     \r
983 \r
984 #ifdef COBJMACROS\r
985 \r
986 \r
987 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject)        \\r
988     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
989 \r
990 #define IDeckLinkVideoOutputCallback_AddRef(This)       \\r
991     ( (This)->lpVtbl -> AddRef(This) ) \r
992 \r
993 #define IDeckLinkVideoOutputCallback_Release(This)      \\r
994     ( (This)->lpVtbl -> Release(This) ) \r
995 \r
996 \r
997 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result)        \\r
998     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
999 \r
1000 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This)  \\r
1001     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
1002 \r
1003 #endif /* COBJMACROS */\r
1004 \r
1005 \r
1006 #endif  /* C style interface */\r
1007 \r
1008 \r
1009 \r
1010 \r
1011 #endif  /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */\r
1012 \r
1013 \r
1014 #ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
1015 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
1016 \r
1017 /* interface IDeckLinkInputCallback */\r
1018 /* [helpstring][uuid][object] */ \r
1019 \r
1020 \r
1021 EXTERN_C const IID IID_IDeckLinkInputCallback;\r
1022 \r
1023 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1024     \r
1025     MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")\r
1026     IDeckLinkInputCallback : public IUnknown\r
1027     {\r
1028     public:\r
1029         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
1030             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
1031             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
1032             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
1033         \r
1034         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
1035             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
1036             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
1037         \r
1038     };\r
1039     \r
1040 #else   /* C style interface */\r
1041 \r
1042     typedef struct IDeckLinkInputCallbackVtbl\r
1043     {\r
1044         BEGIN_INTERFACE\r
1045         \r
1046         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1047             IDeckLinkInputCallback * This,\r
1048             /* [in] */ REFIID riid,\r
1049             /* [annotation][iid_is][out] */ \r
1050             __RPC__deref_out  void **ppvObject);\r
1051         \r
1052         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1053             IDeckLinkInputCallback * This);\r
1054         \r
1055         ULONG ( STDMETHODCALLTYPE *Release )( \r
1056             IDeckLinkInputCallback * This);\r
1057         \r
1058         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
1059             IDeckLinkInputCallback * This,\r
1060             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
1061             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
1062             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
1063         \r
1064         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
1065             IDeckLinkInputCallback * This,\r
1066             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
1067             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
1068         \r
1069         END_INTERFACE\r
1070     } IDeckLinkInputCallbackVtbl;\r
1071 \r
1072     interface IDeckLinkInputCallback\r
1073     {\r
1074         CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;\r
1075     };\r
1076 \r
1077     \r
1078 \r
1079 #ifdef COBJMACROS\r
1080 \r
1081 \r
1082 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject)      \\r
1083     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1084 \r
1085 #define IDeckLinkInputCallback_AddRef(This)     \\r
1086     ( (This)->lpVtbl -> AddRef(This) ) \r
1087 \r
1088 #define IDeckLinkInputCallback_Release(This)    \\r
1089     ( (This)->lpVtbl -> Release(This) ) \r
1090 \r
1091 \r
1092 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)      \\r
1093     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
1094 \r
1095 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket)      \\r
1096     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
1097 \r
1098 #endif /* COBJMACROS */\r
1099 \r
1100 \r
1101 #endif  /* C style interface */\r
1102 \r
1103 \r
1104 \r
1105 \r
1106 #endif  /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */\r
1107 \r
1108 \r
1109 #ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
1110 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
1111 \r
1112 /* interface IDeckLinkMemoryAllocator */\r
1113 /* [helpstring][local][uuid][object] */ \r
1114 \r
1115 \r
1116 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;\r
1117 \r
1118 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1119     \r
1120     MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")\r
1121     IDeckLinkMemoryAllocator : public IUnknown\r
1122     {\r
1123     public:\r
1124         virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( \r
1125             /* [in] */ unsigned long bufferSize,\r
1126             /* [out] */ void **allocatedBuffer) = 0;\r
1127         \r
1128         virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( \r
1129             /* [in] */ void *buffer) = 0;\r
1130         \r
1131         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;\r
1132         \r
1133         virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;\r
1134         \r
1135     };\r
1136     \r
1137 #else   /* C style interface */\r
1138 \r
1139     typedef struct IDeckLinkMemoryAllocatorVtbl\r
1140     {\r
1141         BEGIN_INTERFACE\r
1142         \r
1143         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1144             IDeckLinkMemoryAllocator * This,\r
1145             /* [in] */ REFIID riid,\r
1146             /* [annotation][iid_is][out] */ \r
1147             __RPC__deref_out  void **ppvObject);\r
1148         \r
1149         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1150             IDeckLinkMemoryAllocator * This);\r
1151         \r
1152         ULONG ( STDMETHODCALLTYPE *Release )( \r
1153             IDeckLinkMemoryAllocator * This);\r
1154         \r
1155         HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )( \r
1156             IDeckLinkMemoryAllocator * This,\r
1157             /* [in] */ unsigned long bufferSize,\r
1158             /* [out] */ void **allocatedBuffer);\r
1159         \r
1160         HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( \r
1161             IDeckLinkMemoryAllocator * This,\r
1162             /* [in] */ void *buffer);\r
1163         \r
1164         HRESULT ( STDMETHODCALLTYPE *Commit )( \r
1165             IDeckLinkMemoryAllocator * This);\r
1166         \r
1167         HRESULT ( STDMETHODCALLTYPE *Decommit )( \r
1168             IDeckLinkMemoryAllocator * This);\r
1169         \r
1170         END_INTERFACE\r
1171     } IDeckLinkMemoryAllocatorVtbl;\r
1172 \r
1173     interface IDeckLinkMemoryAllocator\r
1174     {\r
1175         CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;\r
1176     };\r
1177 \r
1178     \r
1179 \r
1180 #ifdef COBJMACROS\r
1181 \r
1182 \r
1183 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)    \\r
1184     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1185 \r
1186 #define IDeckLinkMemoryAllocator_AddRef(This)   \\r
1187     ( (This)->lpVtbl -> AddRef(This) ) \r
1188 \r
1189 #define IDeckLinkMemoryAllocator_Release(This)  \\r
1190     ( (This)->lpVtbl -> Release(This) ) \r
1191 \r
1192 \r
1193 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer)        \\r
1194     ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) ) \r
1195 \r
1196 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer)     \\r
1197     ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) ) \r
1198 \r
1199 #define IDeckLinkMemoryAllocator_Commit(This)   \\r
1200     ( (This)->lpVtbl -> Commit(This) ) \r
1201 \r
1202 #define IDeckLinkMemoryAllocator_Decommit(This) \\r
1203     ( (This)->lpVtbl -> Decommit(This) ) \r
1204 \r
1205 #endif /* COBJMACROS */\r
1206 \r
1207 \r
1208 #endif  /* C style interface */\r
1209 \r
1210 \r
1211 \r
1212 \r
1213 #endif  /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */\r
1214 \r
1215 \r
1216 #ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
1217 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
1218 \r
1219 /* interface IDeckLinkAudioOutputCallback */\r
1220 /* [helpstring][local][uuid][object] */ \r
1221 \r
1222 \r
1223 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;\r
1224 \r
1225 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1226     \r
1227     MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")\r
1228     IDeckLinkAudioOutputCallback : public IUnknown\r
1229     {\r
1230     public:\r
1231         virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( \r
1232             /* [in] */ BOOL preroll) = 0;\r
1233         \r
1234     };\r
1235     \r
1236 #else   /* C style interface */\r
1237 \r
1238     typedef struct IDeckLinkAudioOutputCallbackVtbl\r
1239     {\r
1240         BEGIN_INTERFACE\r
1241         \r
1242         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1243             IDeckLinkAudioOutputCallback * This,\r
1244             /* [in] */ REFIID riid,\r
1245             /* [annotation][iid_is][out] */ \r
1246             __RPC__deref_out  void **ppvObject);\r
1247         \r
1248         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1249             IDeckLinkAudioOutputCallback * This);\r
1250         \r
1251         ULONG ( STDMETHODCALLTYPE *Release )( \r
1252             IDeckLinkAudioOutputCallback * This);\r
1253         \r
1254         HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )( \r
1255             IDeckLinkAudioOutputCallback * This,\r
1256             /* [in] */ BOOL preroll);\r
1257         \r
1258         END_INTERFACE\r
1259     } IDeckLinkAudioOutputCallbackVtbl;\r
1260 \r
1261     interface IDeckLinkAudioOutputCallback\r
1262     {\r
1263         CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;\r
1264     };\r
1265 \r
1266     \r
1267 \r
1268 #ifdef COBJMACROS\r
1269 \r
1270 \r
1271 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject)        \\r
1272     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1273 \r
1274 #define IDeckLinkAudioOutputCallback_AddRef(This)       \\r
1275     ( (This)->lpVtbl -> AddRef(This) ) \r
1276 \r
1277 #define IDeckLinkAudioOutputCallback_Release(This)      \\r
1278     ( (This)->lpVtbl -> Release(This) ) \r
1279 \r
1280 \r
1281 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll)   \\r
1282     ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) ) \r
1283 \r
1284 #endif /* COBJMACROS */\r
1285 \r
1286 \r
1287 #endif  /* C style interface */\r
1288 \r
1289 \r
1290 \r
1291 \r
1292 #endif  /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */\r
1293 \r
1294 \r
1295 #ifndef __IDeckLinkIterator_INTERFACE_DEFINED__\r
1296 #define __IDeckLinkIterator_INTERFACE_DEFINED__\r
1297 \r
1298 /* interface IDeckLinkIterator */\r
1299 /* [helpstring][uuid][object] */ \r
1300 \r
1301 \r
1302 EXTERN_C const IID IID_IDeckLinkIterator;\r
1303 \r
1304 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1305     \r
1306     MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")\r
1307     IDeckLinkIterator : public IUnknown\r
1308     {\r
1309     public:\r
1310         virtual HRESULT STDMETHODCALLTYPE Next( \r
1311             /* [out] */ IDeckLink **deckLinkInstance) = 0;\r
1312         \r
1313     };\r
1314     \r
1315 #else   /* C style interface */\r
1316 \r
1317     typedef struct IDeckLinkIteratorVtbl\r
1318     {\r
1319         BEGIN_INTERFACE\r
1320         \r
1321         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1322             IDeckLinkIterator * This,\r
1323             /* [in] */ REFIID riid,\r
1324             /* [annotation][iid_is][out] */ \r
1325             __RPC__deref_out  void **ppvObject);\r
1326         \r
1327         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1328             IDeckLinkIterator * This);\r
1329         \r
1330         ULONG ( STDMETHODCALLTYPE *Release )( \r
1331             IDeckLinkIterator * This);\r
1332         \r
1333         HRESULT ( STDMETHODCALLTYPE *Next )( \r
1334             IDeckLinkIterator * This,\r
1335             /* [out] */ IDeckLink **deckLinkInstance);\r
1336         \r
1337         END_INTERFACE\r
1338     } IDeckLinkIteratorVtbl;\r
1339 \r
1340     interface IDeckLinkIterator\r
1341     {\r
1342         CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;\r
1343     };\r
1344 \r
1345     \r
1346 \r
1347 #ifdef COBJMACROS\r
1348 \r
1349 \r
1350 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject)   \\r
1351     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1352 \r
1353 #define IDeckLinkIterator_AddRef(This)  \\r
1354     ( (This)->lpVtbl -> AddRef(This) ) \r
1355 \r
1356 #define IDeckLinkIterator_Release(This) \\r
1357     ( (This)->lpVtbl -> Release(This) ) \r
1358 \r
1359 \r
1360 #define IDeckLinkIterator_Next(This,deckLinkInstance)   \\r
1361     ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) \r
1362 \r
1363 #endif /* COBJMACROS */\r
1364 \r
1365 \r
1366 #endif  /* C style interface */\r
1367 \r
1368 \r
1369 \r
1370 \r
1371 #endif  /* __IDeckLinkIterator_INTERFACE_DEFINED__ */\r
1372 \r
1373 \r
1374 #ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
1375 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
1376 \r
1377 /* interface IDeckLinkAPIInformation */\r
1378 /* [helpstring][uuid][object] */ \r
1379 \r
1380 \r
1381 EXTERN_C const IID IID_IDeckLinkAPIInformation;\r
1382 \r
1383 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1384     \r
1385     MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")\r
1386     IDeckLinkAPIInformation : public IUnknown\r
1387     {\r
1388     public:\r
1389         virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
1390             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1391             /* [out] */ BOOL *value) = 0;\r
1392         \r
1393         virtual HRESULT STDMETHODCALLTYPE GetInt( \r
1394             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1395             /* [out] */ LONGLONG *value) = 0;\r
1396         \r
1397         virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
1398             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1399             /* [out] */ double *value) = 0;\r
1400         \r
1401         virtual HRESULT STDMETHODCALLTYPE GetString( \r
1402             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1403             /* [out] */ BSTR *value) = 0;\r
1404         \r
1405     };\r
1406     \r
1407 #else   /* C style interface */\r
1408 \r
1409     typedef struct IDeckLinkAPIInformationVtbl\r
1410     {\r
1411         BEGIN_INTERFACE\r
1412         \r
1413         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1414             IDeckLinkAPIInformation * This,\r
1415             /* [in] */ REFIID riid,\r
1416             /* [annotation][iid_is][out] */ \r
1417             __RPC__deref_out  void **ppvObject);\r
1418         \r
1419         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1420             IDeckLinkAPIInformation * This);\r
1421         \r
1422         ULONG ( STDMETHODCALLTYPE *Release )( \r
1423             IDeckLinkAPIInformation * This);\r
1424         \r
1425         HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
1426             IDeckLinkAPIInformation * This,\r
1427             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1428             /* [out] */ BOOL *value);\r
1429         \r
1430         HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
1431             IDeckLinkAPIInformation * This,\r
1432             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1433             /* [out] */ LONGLONG *value);\r
1434         \r
1435         HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
1436             IDeckLinkAPIInformation * This,\r
1437             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1438             /* [out] */ double *value);\r
1439         \r
1440         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
1441             IDeckLinkAPIInformation * This,\r
1442             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1443             /* [out] */ BSTR *value);\r
1444         \r
1445         END_INTERFACE\r
1446     } IDeckLinkAPIInformationVtbl;\r
1447 \r
1448     interface IDeckLinkAPIInformation\r
1449     {\r
1450         CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;\r
1451     };\r
1452 \r
1453     \r
1454 \r
1455 #ifdef COBJMACROS\r
1456 \r
1457 \r
1458 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject)     \\r
1459     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1460 \r
1461 #define IDeckLinkAPIInformation_AddRef(This)    \\r
1462     ( (This)->lpVtbl -> AddRef(This) ) \r
1463 \r
1464 #define IDeckLinkAPIInformation_Release(This)   \\r
1465     ( (This)->lpVtbl -> Release(This) ) \r
1466 \r
1467 \r
1468 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value)       \\r
1469     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
1470 \r
1471 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value)        \\r
1472     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
1473 \r
1474 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value)      \\r
1475     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
1476 \r
1477 #define IDeckLinkAPIInformation_GetString(This,cfgID,value)     \\r
1478     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
1479 \r
1480 #endif /* COBJMACROS */\r
1481 \r
1482 \r
1483 #endif  /* C style interface */\r
1484 \r
1485 \r
1486 \r
1487 \r
1488 #endif  /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */\r
1489 \r
1490 \r
1491 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
1492 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
1493 \r
1494 /* interface IDeckLinkDisplayModeIterator */\r
1495 /* [helpstring][uuid][object] */ \r
1496 \r
1497 \r
1498 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;\r
1499 \r
1500 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1501     \r
1502     MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")\r
1503     IDeckLinkDisplayModeIterator : public IUnknown\r
1504     {\r
1505     public:\r
1506         virtual HRESULT STDMETHODCALLTYPE Next( \r
1507             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;\r
1508         \r
1509     };\r
1510     \r
1511 #else   /* C style interface */\r
1512 \r
1513     typedef struct IDeckLinkDisplayModeIteratorVtbl\r
1514     {\r
1515         BEGIN_INTERFACE\r
1516         \r
1517         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1518             IDeckLinkDisplayModeIterator * This,\r
1519             /* [in] */ REFIID riid,\r
1520             /* [annotation][iid_is][out] */ \r
1521             __RPC__deref_out  void **ppvObject);\r
1522         \r
1523         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1524             IDeckLinkDisplayModeIterator * This);\r
1525         \r
1526         ULONG ( STDMETHODCALLTYPE *Release )( \r
1527             IDeckLinkDisplayModeIterator * This);\r
1528         \r
1529         HRESULT ( STDMETHODCALLTYPE *Next )( \r
1530             IDeckLinkDisplayModeIterator * This,\r
1531             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);\r
1532         \r
1533         END_INTERFACE\r
1534     } IDeckLinkDisplayModeIteratorVtbl;\r
1535 \r
1536     interface IDeckLinkDisplayModeIterator\r
1537     {\r
1538         CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;\r
1539     };\r
1540 \r
1541     \r
1542 \r
1543 #ifdef COBJMACROS\r
1544 \r
1545 \r
1546 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)        \\r
1547     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1548 \r
1549 #define IDeckLinkDisplayModeIterator_AddRef(This)       \\r
1550     ( (This)->lpVtbl -> AddRef(This) ) \r
1551 \r
1552 #define IDeckLinkDisplayModeIterator_Release(This)      \\r
1553     ( (This)->lpVtbl -> Release(This) ) \r
1554 \r
1555 \r
1556 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)     \\r
1557     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
1558 \r
1559 #endif /* COBJMACROS */\r
1560 \r
1561 \r
1562 #endif  /* C style interface */\r
1563 \r
1564 \r
1565 \r
1566 \r
1567 #endif  /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */\r
1568 \r
1569 \r
1570 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
1571 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
1572 \r
1573 /* interface IDeckLinkDisplayMode */\r
1574 /* [helpstring][uuid][object] */ \r
1575 \r
1576 \r
1577 EXTERN_C const IID IID_IDeckLinkDisplayMode;\r
1578 \r
1579 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1580     \r
1581     MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")\r
1582     IDeckLinkDisplayMode : public IUnknown\r
1583     {\r
1584     public:\r
1585         virtual HRESULT STDMETHODCALLTYPE GetName( \r
1586             /* [out] */ BSTR *name) = 0;\r
1587         \r
1588         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
1589         \r
1590         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
1591         \r
1592         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
1593         \r
1594         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
1595             /* [out] */ BMDTimeValue *frameDuration,\r
1596             /* [out] */ BMDTimeScale *timeScale) = 0;\r
1597         \r
1598         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
1599         \r
1600         virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
1601         \r
1602     };\r
1603     \r
1604 #else   /* C style interface */\r
1605 \r
1606     typedef struct IDeckLinkDisplayModeVtbl\r
1607     {\r
1608         BEGIN_INTERFACE\r
1609         \r
1610         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1611             IDeckLinkDisplayMode * This,\r
1612             /* [in] */ REFIID riid,\r
1613             /* [annotation][iid_is][out] */ \r
1614             __RPC__deref_out  void **ppvObject);\r
1615         \r
1616         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1617             IDeckLinkDisplayMode * This);\r
1618         \r
1619         ULONG ( STDMETHODCALLTYPE *Release )( \r
1620             IDeckLinkDisplayMode * This);\r
1621         \r
1622         HRESULT ( STDMETHODCALLTYPE *GetName )( \r
1623             IDeckLinkDisplayMode * This,\r
1624             /* [out] */ BSTR *name);\r
1625         \r
1626         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
1627             IDeckLinkDisplayMode * This);\r
1628         \r
1629         long ( STDMETHODCALLTYPE *GetWidth )( \r
1630             IDeckLinkDisplayMode * This);\r
1631         \r
1632         long ( STDMETHODCALLTYPE *GetHeight )( \r
1633             IDeckLinkDisplayMode * This);\r
1634         \r
1635         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
1636             IDeckLinkDisplayMode * This,\r
1637             /* [out] */ BMDTimeValue *frameDuration,\r
1638             /* [out] */ BMDTimeScale *timeScale);\r
1639         \r
1640         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
1641             IDeckLinkDisplayMode * This);\r
1642         \r
1643         BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
1644             IDeckLinkDisplayMode * This);\r
1645         \r
1646         END_INTERFACE\r
1647     } IDeckLinkDisplayModeVtbl;\r
1648 \r
1649     interface IDeckLinkDisplayMode\r
1650     {\r
1651         CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;\r
1652     };\r
1653 \r
1654     \r
1655 \r
1656 #ifdef COBJMACROS\r
1657 \r
1658 \r
1659 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)        \\r
1660     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1661 \r
1662 #define IDeckLinkDisplayMode_AddRef(This)       \\r
1663     ( (This)->lpVtbl -> AddRef(This) ) \r
1664 \r
1665 #define IDeckLinkDisplayMode_Release(This)      \\r
1666     ( (This)->lpVtbl -> Release(This) ) \r
1667 \r
1668 \r
1669 #define IDeckLinkDisplayMode_GetName(This,name) \\r
1670     ( (This)->lpVtbl -> GetName(This,name) ) \r
1671 \r
1672 #define IDeckLinkDisplayMode_GetDisplayMode(This)       \\r
1673     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
1674 \r
1675 #define IDeckLinkDisplayMode_GetWidth(This)     \\r
1676     ( (This)->lpVtbl -> GetWidth(This) ) \r
1677 \r
1678 #define IDeckLinkDisplayMode_GetHeight(This)    \\r
1679     ( (This)->lpVtbl -> GetHeight(This) ) \r
1680 \r
1681 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \\r
1682     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
1683 \r
1684 #define IDeckLinkDisplayMode_GetFieldDominance(This)    \\r
1685     ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
1686 \r
1687 #define IDeckLinkDisplayMode_GetFlags(This)     \\r
1688     ( (This)->lpVtbl -> GetFlags(This) ) \r
1689 \r
1690 #endif /* COBJMACROS */\r
1691 \r
1692 \r
1693 #endif  /* C style interface */\r
1694 \r
1695 \r
1696 \r
1697 \r
1698 #endif  /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */\r
1699 \r
1700 \r
1701 #ifndef __IDeckLink_INTERFACE_DEFINED__\r
1702 #define __IDeckLink_INTERFACE_DEFINED__\r
1703 \r
1704 /* interface IDeckLink */\r
1705 /* [helpstring][uuid][object] */ \r
1706 \r
1707 \r
1708 EXTERN_C const IID IID_IDeckLink;\r
1709 \r
1710 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1711     \r
1712     MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")\r
1713     IDeckLink : public IUnknown\r
1714     {\r
1715     public:\r
1716         virtual HRESULT STDMETHODCALLTYPE GetModelName( \r
1717             /* [out] */ BSTR *modelName) = 0;\r
1718         \r
1719     };\r
1720     \r
1721 #else   /* C style interface */\r
1722 \r
1723     typedef struct IDeckLinkVtbl\r
1724     {\r
1725         BEGIN_INTERFACE\r
1726         \r
1727         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1728             IDeckLink * This,\r
1729             /* [in] */ REFIID riid,\r
1730             /* [annotation][iid_is][out] */ \r
1731             __RPC__deref_out  void **ppvObject);\r
1732         \r
1733         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1734             IDeckLink * This);\r
1735         \r
1736         ULONG ( STDMETHODCALLTYPE *Release )( \r
1737             IDeckLink * This);\r
1738         \r
1739         HRESULT ( STDMETHODCALLTYPE *GetModelName )( \r
1740             IDeckLink * This,\r
1741             /* [out] */ BSTR *modelName);\r
1742         \r
1743         END_INTERFACE\r
1744     } IDeckLinkVtbl;\r
1745 \r
1746     interface IDeckLink\r
1747     {\r
1748         CONST_VTBL struct IDeckLinkVtbl *lpVtbl;\r
1749     };\r
1750 \r
1751     \r
1752 \r
1753 #ifdef COBJMACROS\r
1754 \r
1755 \r
1756 #define IDeckLink_QueryInterface(This,riid,ppvObject)   \\r
1757     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1758 \r
1759 #define IDeckLink_AddRef(This)  \\r
1760     ( (This)->lpVtbl -> AddRef(This) ) \r
1761 \r
1762 #define IDeckLink_Release(This) \\r
1763     ( (This)->lpVtbl -> Release(This) ) \r
1764 \r
1765 \r
1766 #define IDeckLink_GetModelName(This,modelName)  \\r
1767     ( (This)->lpVtbl -> GetModelName(This,modelName) ) \r
1768 \r
1769 #endif /* COBJMACROS */\r
1770 \r
1771 \r
1772 #endif  /* C style interface */\r
1773 \r
1774 \r
1775 \r
1776 \r
1777 #endif  /* __IDeckLink_INTERFACE_DEFINED__ */\r
1778 \r
1779 \r
1780 #ifndef __IDeckLinkOutput_INTERFACE_DEFINED__\r
1781 #define __IDeckLinkOutput_INTERFACE_DEFINED__\r
1782 \r
1783 /* interface IDeckLinkOutput */\r
1784 /* [helpstring][local][uuid][object] */ \r
1785 \r
1786 \r
1787 EXTERN_C const IID IID_IDeckLinkOutput;\r
1788 \r
1789 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1790     \r
1791     MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")\r
1792     IDeckLinkOutput : public IUnknown\r
1793     {\r
1794     public:\r
1795         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
1796             /* [in] */ BMDDisplayMode displayMode,\r
1797             /* [in] */ BMDPixelFormat pixelFormat,\r
1798             /* [in] */ BMDVideoOutputFlags flags,\r
1799             /* [out] */ BMDDisplayModeSupport *result,\r
1800             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
1801         \r
1802         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
1803             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
1804         \r
1805         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
1806             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
1807         \r
1808         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
1809             /* [in] */ BMDDisplayMode displayMode,\r
1810             /* [in] */ BMDVideoOutputFlags flags) = 0;\r
1811         \r
1812         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
1813         \r
1814         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
1815             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
1816         \r
1817         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
1818             /* [in] */ long width,\r
1819             /* [in] */ long height,\r
1820             /* [in] */ long rowBytes,\r
1821             /* [in] */ BMDPixelFormat pixelFormat,\r
1822             /* [in] */ BMDFrameFlags flags,\r
1823             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
1824         \r
1825         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
1826             /* [in] */ BMDPixelFormat pixelFormat,\r
1827             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
1828         \r
1829         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
1830             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
1831         \r
1832         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
1833             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
1834             /* [in] */ BMDTimeValue displayTime,\r
1835             /* [in] */ BMDTimeValue displayDuration,\r
1836             /* [in] */ BMDTimeScale timeScale) = 0;\r
1837         \r
1838         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
1839             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
1840         \r
1841         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
1842             /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
1843         \r
1844         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
1845             /* [in] */ BMDAudioSampleRate sampleRate,\r
1846             /* [in] */ BMDAudioSampleType sampleType,\r
1847             /* [in] */ unsigned long channelCount,\r
1848             /* [in] */ BMDAudioOutputStreamType streamType) = 0;\r
1849         \r
1850         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
1851         \r
1852         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
1853             /* [in] */ void *buffer,\r
1854             /* [in] */ unsigned long sampleFrameCount,\r
1855             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
1856         \r
1857         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
1858         \r
1859         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
1860         \r
1861         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
1862             /* [in] */ void *buffer,\r
1863             /* [in] */ unsigned long sampleFrameCount,\r
1864             /* [in] */ BMDTimeValue streamTime,\r
1865             /* [in] */ BMDTimeScale timeScale,\r
1866             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
1867         \r
1868         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
1869             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
1870         \r
1871         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
1872         \r
1873         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
1874             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
1875         \r
1876         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
1877             /* [in] */ BMDTimeValue playbackStartTime,\r
1878             /* [in] */ BMDTimeScale timeScale,\r
1879             /* [in] */ double playbackSpeed) = 0;\r
1880         \r
1881         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
1882             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
1883             /* [out] */ BMDTimeValue *actualStopTime,\r
1884             /* [in] */ BMDTimeScale timeScale) = 0;\r
1885         \r
1886         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
1887             /* [out] */ BOOL *active) = 0;\r
1888         \r
1889         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
1890             /* [in] */ BMDTimeScale desiredTimeScale,\r
1891             /* [out] */ BMDTimeValue *streamTime,\r
1892             /* [out] */ double *playbackSpeed) = 0;\r
1893         \r
1894         virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( \r
1895             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;\r
1896         \r
1897         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
1898             /* [in] */ BMDTimeScale desiredTimeScale,\r
1899             /* [out] */ BMDTimeValue *hardwareTime,\r
1900             /* [out] */ BMDTimeValue *timeInFrame,\r
1901             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
1902         \r
1903     };\r
1904     \r
1905 #else   /* C style interface */\r
1906 \r
1907     typedef struct IDeckLinkOutputVtbl\r
1908     {\r
1909         BEGIN_INTERFACE\r
1910         \r
1911         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1912             IDeckLinkOutput * This,\r
1913             /* [in] */ REFIID riid,\r
1914             /* [annotation][iid_is][out] */ \r
1915             __RPC__deref_out  void **ppvObject);\r
1916         \r
1917         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1918             IDeckLinkOutput * This);\r
1919         \r
1920         ULONG ( STDMETHODCALLTYPE *Release )( \r
1921             IDeckLinkOutput * This);\r
1922         \r
1923         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
1924             IDeckLinkOutput * This,\r
1925             /* [in] */ BMDDisplayMode displayMode,\r
1926             /* [in] */ BMDPixelFormat pixelFormat,\r
1927             /* [in] */ BMDVideoOutputFlags flags,\r
1928             /* [out] */ BMDDisplayModeSupport *result,\r
1929             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
1930         \r
1931         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
1932             IDeckLinkOutput * This,\r
1933             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
1934         \r
1935         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
1936             IDeckLinkOutput * This,\r
1937             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
1938         \r
1939         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
1940             IDeckLinkOutput * This,\r
1941             /* [in] */ BMDDisplayMode displayMode,\r
1942             /* [in] */ BMDVideoOutputFlags flags);\r
1943         \r
1944         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
1945             IDeckLinkOutput * This);\r
1946         \r
1947         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
1948             IDeckLinkOutput * This,\r
1949             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
1950         \r
1951         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
1952             IDeckLinkOutput * This,\r
1953             /* [in] */ long width,\r
1954             /* [in] */ long height,\r
1955             /* [in] */ long rowBytes,\r
1956             /* [in] */ BMDPixelFormat pixelFormat,\r
1957             /* [in] */ BMDFrameFlags flags,\r
1958             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
1959         \r
1960         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
1961             IDeckLinkOutput * This,\r
1962             /* [in] */ BMDPixelFormat pixelFormat,\r
1963             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
1964         \r
1965         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
1966             IDeckLinkOutput * This,\r
1967             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
1968         \r
1969         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
1970             IDeckLinkOutput * This,\r
1971             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
1972             /* [in] */ BMDTimeValue displayTime,\r
1973             /* [in] */ BMDTimeValue displayDuration,\r
1974             /* [in] */ BMDTimeScale timeScale);\r
1975         \r
1976         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
1977             IDeckLinkOutput * This,\r
1978             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
1979         \r
1980         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
1981             IDeckLinkOutput * This,\r
1982             /* [out] */ unsigned long *bufferedFrameCount);\r
1983         \r
1984         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
1985             IDeckLinkOutput * This,\r
1986             /* [in] */ BMDAudioSampleRate sampleRate,\r
1987             /* [in] */ BMDAudioSampleType sampleType,\r
1988             /* [in] */ unsigned long channelCount,\r
1989             /* [in] */ BMDAudioOutputStreamType streamType);\r
1990         \r
1991         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
1992             IDeckLinkOutput * This);\r
1993         \r
1994         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
1995             IDeckLinkOutput * This,\r
1996             /* [in] */ void *buffer,\r
1997             /* [in] */ unsigned long sampleFrameCount,\r
1998             /* [out] */ unsigned long *sampleFramesWritten);\r
1999         \r
2000         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
2001             IDeckLinkOutput * This);\r
2002         \r
2003         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
2004             IDeckLinkOutput * This);\r
2005         \r
2006         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
2007             IDeckLinkOutput * This,\r
2008             /* [in] */ void *buffer,\r
2009             /* [in] */ unsigned long sampleFrameCount,\r
2010             /* [in] */ BMDTimeValue streamTime,\r
2011             /* [in] */ BMDTimeScale timeScale,\r
2012             /* [out] */ unsigned long *sampleFramesWritten);\r
2013         \r
2014         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
2015             IDeckLinkOutput * This,\r
2016             /* [out] */ unsigned long *bufferedSampleFrameCount);\r
2017         \r
2018         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
2019             IDeckLinkOutput * This);\r
2020         \r
2021         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
2022             IDeckLinkOutput * This,\r
2023             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
2024         \r
2025         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
2026             IDeckLinkOutput * This,\r
2027             /* [in] */ BMDTimeValue playbackStartTime,\r
2028             /* [in] */ BMDTimeScale timeScale,\r
2029             /* [in] */ double playbackSpeed);\r
2030         \r
2031         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
2032             IDeckLinkOutput * This,\r
2033             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
2034             /* [out] */ BMDTimeValue *actualStopTime,\r
2035             /* [in] */ BMDTimeScale timeScale);\r
2036         \r
2037         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
2038             IDeckLinkOutput * This,\r
2039             /* [out] */ BOOL *active);\r
2040         \r
2041         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
2042             IDeckLinkOutput * This,\r
2043             /* [in] */ BMDTimeScale desiredTimeScale,\r
2044             /* [out] */ BMDTimeValue *streamTime,\r
2045             /* [out] */ double *playbackSpeed);\r
2046         \r
2047         HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( \r
2048             IDeckLinkOutput * This,\r
2049             /* [out] */ BMDReferenceStatus *referenceStatus);\r
2050         \r
2051         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
2052             IDeckLinkOutput * This,\r
2053             /* [in] */ BMDTimeScale desiredTimeScale,\r
2054             /* [out] */ BMDTimeValue *hardwareTime,\r
2055             /* [out] */ BMDTimeValue *timeInFrame,\r
2056             /* [out] */ BMDTimeValue *ticksPerFrame);\r
2057         \r
2058         END_INTERFACE\r
2059     } IDeckLinkOutputVtbl;\r
2060 \r
2061     interface IDeckLinkOutput\r
2062     {\r
2063         CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;\r
2064     };\r
2065 \r
2066     \r
2067 \r
2068 #ifdef COBJMACROS\r
2069 \r
2070 \r
2071 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject)     \\r
2072     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2073 \r
2074 #define IDeckLinkOutput_AddRef(This)    \\r
2075     ( (This)->lpVtbl -> AddRef(This) ) \r
2076 \r
2077 #define IDeckLinkOutput_Release(This)   \\r
2078     ( (This)->lpVtbl -> Release(This) ) \r
2079 \r
2080 \r
2081 #define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)       \\r
2082     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
2083 \r
2084 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator)   \\r
2085     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
2086 \r
2087 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback)  \\r
2088     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
2089 \r
2090 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags)       \\r
2091     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
2092 \r
2093 #define IDeckLinkOutput_DisableVideoOutput(This)        \\r
2094     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
2095 \r
2096 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator)   \\r
2097     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
2098 \r
2099 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \\r
2100     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
2101 \r
2102 #define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer) \\r
2103     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
2104 \r
2105 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame)    \\r
2106     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
2107 \r
2108 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \\r
2109     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
2110 \r
2111 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback)   \\r
2112     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
2113 \r
2114 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount)     \\r
2115     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
2116 \r
2117 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)   \\r
2118     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
2119 \r
2120 #define IDeckLinkOutput_DisableAudioOutput(This)        \\r
2121     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
2122 \r
2123 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \\r
2124     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
2125 \r
2126 #define IDeckLinkOutput_BeginAudioPreroll(This) \\r
2127     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
2128 \r
2129 #define IDeckLinkOutput_EndAudioPreroll(This)   \\r
2130     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
2131 \r
2132 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)     \\r
2133     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
2134 \r
2135 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \\r
2136     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
2137 \r
2138 #define IDeckLinkOutput_FlushBufferedAudioSamples(This) \\r
2139     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
2140 \r
2141 #define IDeckLinkOutput_SetAudioCallback(This,theCallback)      \\r
2142     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
2143 \r
2144 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)  \\r
2145     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
2146 \r
2147 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \\r
2148     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
2149 \r
2150 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) \\r
2151     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
2152 \r
2153 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)  \\r
2154     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
2155 \r
2156 #define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus)        \\r
2157     ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) \r
2158 \r
2159 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \\r
2160     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
2161 \r
2162 #endif /* COBJMACROS */\r
2163 \r
2164 \r
2165 #endif  /* C style interface */\r
2166 \r
2167 \r
2168 \r
2169 \r
2170 #endif  /* __IDeckLinkOutput_INTERFACE_DEFINED__ */\r
2171 \r
2172 \r
2173 #ifndef __IDeckLinkInput_INTERFACE_DEFINED__\r
2174 #define __IDeckLinkInput_INTERFACE_DEFINED__\r
2175 \r
2176 /* interface IDeckLinkInput */\r
2177 /* [helpstring][uuid][object] */ \r
2178 \r
2179 \r
2180 EXTERN_C const IID IID_IDeckLinkInput;\r
2181 \r
2182 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2183     \r
2184     MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")\r
2185     IDeckLinkInput : public IUnknown\r
2186     {\r
2187     public:\r
2188         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
2189             /* [in] */ BMDDisplayMode displayMode,\r
2190             /* [in] */ BMDPixelFormat pixelFormat,\r
2191             /* [in] */ BMDVideoInputFlags flags,\r
2192             /* [out] */ BMDDisplayModeSupport *result,\r
2193             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
2194         \r
2195         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
2196             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
2197         \r
2198         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
2199             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
2200         \r
2201         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
2202             /* [in] */ BMDDisplayMode displayMode,\r
2203             /* [in] */ BMDPixelFormat pixelFormat,\r
2204             /* [in] */ BMDVideoInputFlags flags) = 0;\r
2205         \r
2206         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
2207         \r
2208         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
2209             /* [out] */ unsigned long *availableFrameCount) = 0;\r
2210         \r
2211         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
2212             /* [in] */ BMDAudioSampleRate sampleRate,\r
2213             /* [in] */ BMDAudioSampleType sampleType,\r
2214             /* [in] */ unsigned long channelCount) = 0;\r
2215         \r
2216         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
2217         \r
2218         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
2219             /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
2220         \r
2221         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
2222         \r
2223         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
2224         \r
2225         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
2226         \r
2227         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
2228         \r
2229         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
2230             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;\r
2231         \r
2232         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
2233             /* [in] */ BMDTimeScale desiredTimeScale,\r
2234             /* [out] */ BMDTimeValue *hardwareTime,\r
2235             /* [out] */ BMDTimeValue *timeInFrame,\r
2236             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
2237         \r
2238     };\r
2239     \r
2240 #else   /* C style interface */\r
2241 \r
2242     typedef struct IDeckLinkInputVtbl\r
2243     {\r
2244         BEGIN_INTERFACE\r
2245         \r
2246         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2247             IDeckLinkInput * This,\r
2248             /* [in] */ REFIID riid,\r
2249             /* [annotation][iid_is][out] */ \r
2250             __RPC__deref_out  void **ppvObject);\r
2251         \r
2252         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2253             IDeckLinkInput * This);\r
2254         \r
2255         ULONG ( STDMETHODCALLTYPE *Release )( \r
2256             IDeckLinkInput * This);\r
2257         \r
2258         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
2259             IDeckLinkInput * This,\r
2260             /* [in] */ BMDDisplayMode displayMode,\r
2261             /* [in] */ BMDPixelFormat pixelFormat,\r
2262             /* [in] */ BMDVideoInputFlags flags,\r
2263             /* [out] */ BMDDisplayModeSupport *result,\r
2264             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
2265         \r
2266         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
2267             IDeckLinkInput * This,\r
2268             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
2269         \r
2270         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
2271             IDeckLinkInput * This,\r
2272             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
2273         \r
2274         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
2275             IDeckLinkInput * This,\r
2276             /* [in] */ BMDDisplayMode displayMode,\r
2277             /* [in] */ BMDPixelFormat pixelFormat,\r
2278             /* [in] */ BMDVideoInputFlags flags);\r
2279         \r
2280         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
2281             IDeckLinkInput * This);\r
2282         \r
2283         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
2284             IDeckLinkInput * This,\r
2285             /* [out] */ unsigned long *availableFrameCount);\r
2286         \r
2287         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
2288             IDeckLinkInput * This,\r
2289             /* [in] */ BMDAudioSampleRate sampleRate,\r
2290             /* [in] */ BMDAudioSampleType sampleType,\r
2291             /* [in] */ unsigned long channelCount);\r
2292         \r
2293         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
2294             IDeckLinkInput * This);\r
2295         \r
2296         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
2297             IDeckLinkInput * This,\r
2298             /* [out] */ unsigned long *availableSampleFrameCount);\r
2299         \r
2300         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
2301             IDeckLinkInput * This);\r
2302         \r
2303         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
2304             IDeckLinkInput * This);\r
2305         \r
2306         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
2307             IDeckLinkInput * This);\r
2308         \r
2309         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
2310             IDeckLinkInput * This);\r
2311         \r
2312         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
2313             IDeckLinkInput * This,\r
2314             /* [in] */ IDeckLinkInputCallback *theCallback);\r
2315         \r
2316         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
2317             IDeckLinkInput * This,\r
2318             /* [in] */ BMDTimeScale desiredTimeScale,\r
2319             /* [out] */ BMDTimeValue *hardwareTime,\r
2320             /* [out] */ BMDTimeValue *timeInFrame,\r
2321             /* [out] */ BMDTimeValue *ticksPerFrame);\r
2322         \r
2323         END_INTERFACE\r
2324     } IDeckLinkInputVtbl;\r
2325 \r
2326     interface IDeckLinkInput\r
2327     {\r
2328         CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;\r
2329     };\r
2330 \r
2331     \r
2332 \r
2333 #ifdef COBJMACROS\r
2334 \r
2335 \r
2336 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject)      \\r
2337     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2338 \r
2339 #define IDeckLinkInput_AddRef(This)     \\r
2340     ( (This)->lpVtbl -> AddRef(This) ) \r
2341 \r
2342 #define IDeckLinkInput_Release(This)    \\r
2343     ( (This)->lpVtbl -> Release(This) ) \r
2344 \r
2345 \r
2346 #define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)        \\r
2347     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
2348 \r
2349 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator)    \\r
2350     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
2351 \r
2352 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback)   \\r
2353     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
2354 \r
2355 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags)     \\r
2356     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
2357 \r
2358 #define IDeckLinkInput_DisableVideoInput(This)  \\r
2359     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
2360 \r
2361 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount)    \\r
2362     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
2363 \r
2364 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount)        \\r
2365     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
2366 \r
2367 #define IDeckLinkInput_DisableAudioInput(This)  \\r
2368     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
2369 \r
2370 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)        \\r
2371     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
2372 \r
2373 #define IDeckLinkInput_StartStreams(This)       \\r
2374     ( (This)->lpVtbl -> StartStreams(This) ) \r
2375 \r
2376 #define IDeckLinkInput_StopStreams(This)        \\r
2377     ( (This)->lpVtbl -> StopStreams(This) ) \r
2378 \r
2379 #define IDeckLinkInput_PauseStreams(This)       \\r
2380     ( (This)->lpVtbl -> PauseStreams(This) ) \r
2381 \r
2382 #define IDeckLinkInput_FlushStreams(This)       \\r
2383     ( (This)->lpVtbl -> FlushStreams(This) ) \r
2384 \r
2385 #define IDeckLinkInput_SetCallback(This,theCallback)    \\r
2386     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
2387 \r
2388 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \\r
2389     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
2390 \r
2391 #endif /* COBJMACROS */\r
2392 \r
2393 \r
2394 #endif  /* C style interface */\r
2395 \r
2396 \r
2397 \r
2398 \r
2399 #endif  /* __IDeckLinkInput_INTERFACE_DEFINED__ */\r
2400 \r
2401 \r
2402 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__\r
2403 #define __IDeckLinkTimecode_INTERFACE_DEFINED__\r
2404 \r
2405 /* interface IDeckLinkTimecode */\r
2406 /* [helpstring][uuid][object] */ \r
2407 \r
2408 \r
2409 EXTERN_C const IID IID_IDeckLinkTimecode;\r
2410 \r
2411 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2412     \r
2413     MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")\r
2414     IDeckLinkTimecode : public IUnknown\r
2415     {\r
2416     public:\r
2417         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
2418         \r
2419         virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
2420             /* [out] */ unsigned char *hours,\r
2421             /* [out] */ unsigned char *minutes,\r
2422             /* [out] */ unsigned char *seconds,\r
2423             /* [out] */ unsigned char *frames) = 0;\r
2424         \r
2425         virtual HRESULT STDMETHODCALLTYPE GetString( \r
2426             /* [out] */ BSTR *timecode) = 0;\r
2427         \r
2428         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
2429         \r
2430         virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( \r
2431             /* [out] */ BMDTimecodeUserBits *userBits) = 0;\r
2432         \r
2433     };\r
2434     \r
2435 #else   /* C style interface */\r
2436 \r
2437     typedef struct IDeckLinkTimecodeVtbl\r
2438     {\r
2439         BEGIN_INTERFACE\r
2440         \r
2441         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2442             IDeckLinkTimecode * This,\r
2443             /* [in] */ REFIID riid,\r
2444             /* [annotation][iid_is][out] */ \r
2445             __RPC__deref_out  void **ppvObject);\r
2446         \r
2447         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2448             IDeckLinkTimecode * This);\r
2449         \r
2450         ULONG ( STDMETHODCALLTYPE *Release )( \r
2451             IDeckLinkTimecode * This);\r
2452         \r
2453         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
2454             IDeckLinkTimecode * This);\r
2455         \r
2456         HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
2457             IDeckLinkTimecode * This,\r
2458             /* [out] */ unsigned char *hours,\r
2459             /* [out] */ unsigned char *minutes,\r
2460             /* [out] */ unsigned char *seconds,\r
2461             /* [out] */ unsigned char *frames);\r
2462         \r
2463         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
2464             IDeckLinkTimecode * This,\r
2465             /* [out] */ BSTR *timecode);\r
2466         \r
2467         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2468             IDeckLinkTimecode * This);\r
2469         \r
2470         HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )( \r
2471             IDeckLinkTimecode * This,\r
2472             /* [out] */ BMDTimecodeUserBits *userBits);\r
2473         \r
2474         END_INTERFACE\r
2475     } IDeckLinkTimecodeVtbl;\r
2476 \r
2477     interface IDeckLinkTimecode\r
2478     {\r
2479         CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;\r
2480     };\r
2481 \r
2482     \r
2483 \r
2484 #ifdef COBJMACROS\r
2485 \r
2486 \r
2487 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)   \\r
2488     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2489 \r
2490 #define IDeckLinkTimecode_AddRef(This)  \\r
2491     ( (This)->lpVtbl -> AddRef(This) ) \r
2492 \r
2493 #define IDeckLinkTimecode_Release(This) \\r
2494     ( (This)->lpVtbl -> Release(This) ) \r
2495 \r
2496 \r
2497 #define IDeckLinkTimecode_GetBCD(This)  \\r
2498     ( (This)->lpVtbl -> GetBCD(This) ) \r
2499 \r
2500 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)      \\r
2501     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
2502 \r
2503 #define IDeckLinkTimecode_GetString(This,timecode)      \\r
2504     ( (This)->lpVtbl -> GetString(This,timecode) ) \r
2505 \r
2506 #define IDeckLinkTimecode_GetFlags(This)        \\r
2507     ( (This)->lpVtbl -> GetFlags(This) ) \r
2508 \r
2509 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits)    \\r
2510     ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) ) \r
2511 \r
2512 #endif /* COBJMACROS */\r
2513 \r
2514 \r
2515 #endif  /* C style interface */\r
2516 \r
2517 \r
2518 \r
2519 \r
2520 #endif  /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */\r
2521 \r
2522 \r
2523 #ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
2524 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
2525 \r
2526 /* interface IDeckLinkVideoFrame */\r
2527 /* [helpstring][local][uuid][object] */ \r
2528 \r
2529 \r
2530 EXTERN_C const IID IID_IDeckLinkVideoFrame;\r
2531 \r
2532 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2533     \r
2534     MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")\r
2535     IDeckLinkVideoFrame : public IUnknown\r
2536     {\r
2537     public:\r
2538         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
2539         \r
2540         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
2541         \r
2542         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
2543         \r
2544         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
2545         \r
2546         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
2547         \r
2548         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
2549             /* [out] */ void **buffer) = 0;\r
2550         \r
2551         virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
2552             /* [in] */ BMDTimecodeFormat format,\r
2553             /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
2554         \r
2555         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
2556             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
2557         \r
2558     };\r
2559     \r
2560 #else   /* C style interface */\r
2561 \r
2562     typedef struct IDeckLinkVideoFrameVtbl\r
2563     {\r
2564         BEGIN_INTERFACE\r
2565         \r
2566         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2567             IDeckLinkVideoFrame * This,\r
2568             /* [in] */ REFIID riid,\r
2569             /* [annotation][iid_is][out] */ \r
2570             __RPC__deref_out  void **ppvObject);\r
2571         \r
2572         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2573             IDeckLinkVideoFrame * This);\r
2574         \r
2575         ULONG ( STDMETHODCALLTYPE *Release )( \r
2576             IDeckLinkVideoFrame * This);\r
2577         \r
2578         long ( STDMETHODCALLTYPE *GetWidth )( \r
2579             IDeckLinkVideoFrame * This);\r
2580         \r
2581         long ( STDMETHODCALLTYPE *GetHeight )( \r
2582             IDeckLinkVideoFrame * This);\r
2583         \r
2584         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
2585             IDeckLinkVideoFrame * This);\r
2586         \r
2587         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2588             IDeckLinkVideoFrame * This);\r
2589         \r
2590         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2591             IDeckLinkVideoFrame * This);\r
2592         \r
2593         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2594             IDeckLinkVideoFrame * This,\r
2595             /* [out] */ void **buffer);\r
2596         \r
2597         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
2598             IDeckLinkVideoFrame * This,\r
2599             /* [in] */ BMDTimecodeFormat format,\r
2600             /* [out] */ IDeckLinkTimecode **timecode);\r
2601         \r
2602         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
2603             IDeckLinkVideoFrame * This,\r
2604             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
2605         \r
2606         END_INTERFACE\r
2607     } IDeckLinkVideoFrameVtbl;\r
2608 \r
2609     interface IDeckLinkVideoFrame\r
2610     {\r
2611         CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;\r
2612     };\r
2613 \r
2614     \r
2615 \r
2616 #ifdef COBJMACROS\r
2617 \r
2618 \r
2619 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) \\r
2620     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2621 \r
2622 #define IDeckLinkVideoFrame_AddRef(This)        \\r
2623     ( (This)->lpVtbl -> AddRef(This) ) \r
2624 \r
2625 #define IDeckLinkVideoFrame_Release(This)       \\r
2626     ( (This)->lpVtbl -> Release(This) ) \r
2627 \r
2628 \r
2629 #define IDeckLinkVideoFrame_GetWidth(This)      \\r
2630     ( (This)->lpVtbl -> GetWidth(This) ) \r
2631 \r
2632 #define IDeckLinkVideoFrame_GetHeight(This)     \\r
2633     ( (This)->lpVtbl -> GetHeight(This) ) \r
2634 \r
2635 #define IDeckLinkVideoFrame_GetRowBytes(This)   \\r
2636     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
2637 \r
2638 #define IDeckLinkVideoFrame_GetPixelFormat(This)        \\r
2639     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
2640 \r
2641 #define IDeckLinkVideoFrame_GetFlags(This)      \\r
2642     ( (This)->lpVtbl -> GetFlags(This) ) \r
2643 \r
2644 #define IDeckLinkVideoFrame_GetBytes(This,buffer)       \\r
2645     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
2646 \r
2647 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)   \\r
2648     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
2649 \r
2650 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)    \\r
2651     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
2652 \r
2653 #endif /* COBJMACROS */\r
2654 \r
2655 \r
2656 #endif  /* C style interface */\r
2657 \r
2658 \r
2659 \r
2660 \r
2661 #endif  /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */\r
2662 \r
2663 \r
2664 #ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
2665 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
2666 \r
2667 /* interface IDeckLinkMutableVideoFrame */\r
2668 /* [helpstring][local][uuid][object] */ \r
2669 \r
2670 \r
2671 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;\r
2672 \r
2673 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2674     \r
2675     MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")\r
2676     IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame\r
2677     {\r
2678     public:\r
2679         virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
2680             /* [in] */ BMDFrameFlags newFlags) = 0;\r
2681         \r
2682         virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
2683             /* [in] */ BMDTimecodeFormat format,\r
2684             /* [in] */ IDeckLinkTimecode *timecode) = 0;\r
2685         \r
2686         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
2687             /* [in] */ BMDTimecodeFormat format,\r
2688             /* [in] */ unsigned char hours,\r
2689             /* [in] */ unsigned char minutes,\r
2690             /* [in] */ unsigned char seconds,\r
2691             /* [in] */ unsigned char frames,\r
2692             /* [in] */ BMDTimecodeFlags flags) = 0;\r
2693         \r
2694         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
2695             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
2696         \r
2697         virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits( \r
2698             /* [in] */ BMDTimecodeFormat format,\r
2699             /* [in] */ BMDTimecodeUserBits userBits) = 0;\r
2700         \r
2701     };\r
2702     \r
2703 #else   /* C style interface */\r
2704 \r
2705     typedef struct IDeckLinkMutableVideoFrameVtbl\r
2706     {\r
2707         BEGIN_INTERFACE\r
2708         \r
2709         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2710             IDeckLinkMutableVideoFrame * This,\r
2711             /* [in] */ REFIID riid,\r
2712             /* [annotation][iid_is][out] */ \r
2713             __RPC__deref_out  void **ppvObject);\r
2714         \r
2715         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2716             IDeckLinkMutableVideoFrame * This);\r
2717         \r
2718         ULONG ( STDMETHODCALLTYPE *Release )( \r
2719             IDeckLinkMutableVideoFrame * This);\r
2720         \r
2721         long ( STDMETHODCALLTYPE *GetWidth )( \r
2722             IDeckLinkMutableVideoFrame * This);\r
2723         \r
2724         long ( STDMETHODCALLTYPE *GetHeight )( \r
2725             IDeckLinkMutableVideoFrame * This);\r
2726         \r
2727         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
2728             IDeckLinkMutableVideoFrame * This);\r
2729         \r
2730         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2731             IDeckLinkMutableVideoFrame * This);\r
2732         \r
2733         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2734             IDeckLinkMutableVideoFrame * This);\r
2735         \r
2736         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2737             IDeckLinkMutableVideoFrame * This,\r
2738             /* [out] */ void **buffer);\r
2739         \r
2740         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
2741             IDeckLinkMutableVideoFrame * This,\r
2742             /* [in] */ BMDTimecodeFormat format,\r
2743             /* [out] */ IDeckLinkTimecode **timecode);\r
2744         \r
2745         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
2746             IDeckLinkMutableVideoFrame * This,\r
2747             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
2748         \r
2749         HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
2750             IDeckLinkMutableVideoFrame * This,\r
2751             /* [in] */ BMDFrameFlags newFlags);\r
2752         \r
2753         HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
2754             IDeckLinkMutableVideoFrame * This,\r
2755             /* [in] */ BMDTimecodeFormat format,\r
2756             /* [in] */ IDeckLinkTimecode *timecode);\r
2757         \r
2758         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
2759             IDeckLinkMutableVideoFrame * This,\r
2760             /* [in] */ BMDTimecodeFormat format,\r
2761             /* [in] */ unsigned char hours,\r
2762             /* [in] */ unsigned char minutes,\r
2763             /* [in] */ unsigned char seconds,\r
2764             /* [in] */ unsigned char frames,\r
2765             /* [in] */ BMDTimecodeFlags flags);\r
2766         \r
2767         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
2768             IDeckLinkMutableVideoFrame * This,\r
2769             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
2770         \r
2771         HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )( \r
2772             IDeckLinkMutableVideoFrame * This,\r
2773             /* [in] */ BMDTimecodeFormat format,\r
2774             /* [in] */ BMDTimecodeUserBits userBits);\r
2775         \r
2776         END_INTERFACE\r
2777     } IDeckLinkMutableVideoFrameVtbl;\r
2778 \r
2779     interface IDeckLinkMutableVideoFrame\r
2780     {\r
2781         CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;\r
2782     };\r
2783 \r
2784     \r
2785 \r
2786 #ifdef COBJMACROS\r
2787 \r
2788 \r
2789 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject)  \\r
2790     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2791 \r
2792 #define IDeckLinkMutableVideoFrame_AddRef(This) \\r
2793     ( (This)->lpVtbl -> AddRef(This) ) \r
2794 \r
2795 #define IDeckLinkMutableVideoFrame_Release(This)        \\r
2796     ( (This)->lpVtbl -> Release(This) ) \r
2797 \r
2798 \r
2799 #define IDeckLinkMutableVideoFrame_GetWidth(This)       \\r
2800     ( (This)->lpVtbl -> GetWidth(This) ) \r
2801 \r
2802 #define IDeckLinkMutableVideoFrame_GetHeight(This)      \\r
2803     ( (This)->lpVtbl -> GetHeight(This) ) \r
2804 \r
2805 #define IDeckLinkMutableVideoFrame_GetRowBytes(This)    \\r
2806     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
2807 \r
2808 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This) \\r
2809     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
2810 \r
2811 #define IDeckLinkMutableVideoFrame_GetFlags(This)       \\r
2812     ( (This)->lpVtbl -> GetFlags(This) ) \r
2813 \r
2814 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer)        \\r
2815     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
2816 \r
2817 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode)    \\r
2818     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
2819 \r
2820 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary)     \\r
2821     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
2822 \r
2823 \r
2824 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags)      \\r
2825     ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
2826 \r
2827 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode)    \\r
2828     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
2829 \r
2830 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)    \\r
2831     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
2832 \r
2833 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary)     \\r
2834     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
2835 \r
2836 #define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits)    \\r
2837     ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) ) \r
2838 \r
2839 #endif /* COBJMACROS */\r
2840 \r
2841 \r
2842 #endif  /* C style interface */\r
2843 \r
2844 \r
2845 \r
2846 \r
2847 #endif  /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */\r
2848 \r
2849 \r
2850 #ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__\r
2851 #define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__\r
2852 \r
2853 /* interface IDeckLinkVideoFrame3DExtensions */\r
2854 /* [helpstring][local][uuid][object] */ \r
2855 \r
2856 \r
2857 EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;\r
2858 \r
2859 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2860     \r
2861     MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")\r
2862     IDeckLinkVideoFrame3DExtensions : public IUnknown\r
2863     {\r
2864     public:\r
2865         virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;\r
2866         \r
2867         virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( \r
2868             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;\r
2869         \r
2870     };\r
2871     \r
2872 #else   /* C style interface */\r
2873 \r
2874     typedef struct IDeckLinkVideoFrame3DExtensionsVtbl\r
2875     {\r
2876         BEGIN_INTERFACE\r
2877         \r
2878         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2879             IDeckLinkVideoFrame3DExtensions * This,\r
2880             /* [in] */ REFIID riid,\r
2881             /* [annotation][iid_is][out] */ \r
2882             __RPC__deref_out  void **ppvObject);\r
2883         \r
2884         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2885             IDeckLinkVideoFrame3DExtensions * This);\r
2886         \r
2887         ULONG ( STDMETHODCALLTYPE *Release )( \r
2888             IDeckLinkVideoFrame3DExtensions * This);\r
2889         \r
2890         BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )( \r
2891             IDeckLinkVideoFrame3DExtensions * This);\r
2892         \r
2893         HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )( \r
2894             IDeckLinkVideoFrame3DExtensions * This,\r
2895             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);\r
2896         \r
2897         END_INTERFACE\r
2898     } IDeckLinkVideoFrame3DExtensionsVtbl;\r
2899 \r
2900     interface IDeckLinkVideoFrame3DExtensions\r
2901     {\r
2902         CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;\r
2903     };\r
2904 \r
2905     \r
2906 \r
2907 #ifdef COBJMACROS\r
2908 \r
2909 \r
2910 #define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject)     \\r
2911     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2912 \r
2913 #define IDeckLinkVideoFrame3DExtensions_AddRef(This)    \\r
2914     ( (This)->lpVtbl -> AddRef(This) ) \r
2915 \r
2916 #define IDeckLinkVideoFrame3DExtensions_Release(This)   \\r
2917     ( (This)->lpVtbl -> Release(This) ) \r
2918 \r
2919 \r
2920 #define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This)        \\r
2921     ( (This)->lpVtbl -> Get3DPackingFormat(This) ) \r
2922 \r
2923 #define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame) \\r
2924     ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) ) \r
2925 \r
2926 #endif /* COBJMACROS */\r
2927 \r
2928 \r
2929 #endif  /* C style interface */\r
2930 \r
2931 \r
2932 \r
2933 \r
2934 #endif  /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */\r
2935 \r
2936 \r
2937 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
2938 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
2939 \r
2940 /* interface IDeckLinkVideoInputFrame */\r
2941 /* [helpstring][local][uuid][object] */ \r
2942 \r
2943 \r
2944 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;\r
2945 \r
2946 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2947     \r
2948     MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")\r
2949     IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame\r
2950     {\r
2951     public:\r
2952         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
2953             /* [out] */ BMDTimeValue *frameTime,\r
2954             /* [out] */ BMDTimeValue *frameDuration,\r
2955             /* [in] */ BMDTimeScale timeScale) = 0;\r
2956         \r
2957         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
2958             /* [in] */ BMDTimeScale timeScale,\r
2959             /* [out] */ BMDTimeValue *frameTime,\r
2960             /* [out] */ BMDTimeValue *frameDuration) = 0;\r
2961         \r
2962     };\r
2963     \r
2964 #else   /* C style interface */\r
2965 \r
2966     typedef struct IDeckLinkVideoInputFrameVtbl\r
2967     {\r
2968         BEGIN_INTERFACE\r
2969         \r
2970         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2971             IDeckLinkVideoInputFrame * This,\r
2972             /* [in] */ REFIID riid,\r
2973             /* [annotation][iid_is][out] */ \r
2974             __RPC__deref_out  void **ppvObject);\r
2975         \r
2976         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2977             IDeckLinkVideoInputFrame * This);\r
2978         \r
2979         ULONG ( STDMETHODCALLTYPE *Release )( \r
2980             IDeckLinkVideoInputFrame * This);\r
2981         \r
2982         long ( STDMETHODCALLTYPE *GetWidth )( \r
2983             IDeckLinkVideoInputFrame * This);\r
2984         \r
2985         long ( STDMETHODCALLTYPE *GetHeight )( \r
2986             IDeckLinkVideoInputFrame * This);\r
2987         \r
2988         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
2989             IDeckLinkVideoInputFrame * This);\r
2990         \r
2991         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2992             IDeckLinkVideoInputFrame * This);\r
2993         \r
2994         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2995             IDeckLinkVideoInputFrame * This);\r
2996         \r
2997         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2998             IDeckLinkVideoInputFrame * This,\r
2999             /* [out] */ void **buffer);\r
3000         \r
3001         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
3002             IDeckLinkVideoInputFrame * This,\r
3003             /* [in] */ BMDTimecodeFormat format,\r
3004             /* [out] */ IDeckLinkTimecode **timecode);\r
3005         \r
3006         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
3007             IDeckLinkVideoInputFrame * This,\r
3008             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
3009         \r
3010         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
3011             IDeckLinkVideoInputFrame * This,\r
3012             /* [out] */ BMDTimeValue *frameTime,\r
3013             /* [out] */ BMDTimeValue *frameDuration,\r
3014             /* [in] */ BMDTimeScale timeScale);\r
3015         \r
3016         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
3017             IDeckLinkVideoInputFrame * This,\r
3018             /* [in] */ BMDTimeScale timeScale,\r
3019             /* [out] */ BMDTimeValue *frameTime,\r
3020             /* [out] */ BMDTimeValue *frameDuration);\r
3021         \r
3022         END_INTERFACE\r
3023     } IDeckLinkVideoInputFrameVtbl;\r
3024 \r
3025     interface IDeckLinkVideoInputFrame\r
3026     {\r
3027         CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;\r
3028     };\r
3029 \r
3030     \r
3031 \r
3032 #ifdef COBJMACROS\r
3033 \r
3034 \r
3035 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject)    \\r
3036     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3037 \r
3038 #define IDeckLinkVideoInputFrame_AddRef(This)   \\r
3039     ( (This)->lpVtbl -> AddRef(This) ) \r
3040 \r
3041 #define IDeckLinkVideoInputFrame_Release(This)  \\r
3042     ( (This)->lpVtbl -> Release(This) ) \r
3043 \r
3044 \r
3045 #define IDeckLinkVideoInputFrame_GetWidth(This) \\r
3046     ( (This)->lpVtbl -> GetWidth(This) ) \r
3047 \r
3048 #define IDeckLinkVideoInputFrame_GetHeight(This)        \\r
3049     ( (This)->lpVtbl -> GetHeight(This) ) \r
3050 \r
3051 #define IDeckLinkVideoInputFrame_GetRowBytes(This)      \\r
3052     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
3053 \r
3054 #define IDeckLinkVideoInputFrame_GetPixelFormat(This)   \\r
3055     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
3056 \r
3057 #define IDeckLinkVideoInputFrame_GetFlags(This) \\r
3058     ( (This)->lpVtbl -> GetFlags(This) ) \r
3059 \r
3060 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer)  \\r
3061     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
3062 \r
3063 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode)      \\r
3064     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
3065 \r
3066 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary)       \\r
3067     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
3068 \r
3069 \r
3070 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale)  \\r
3071     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
3072 \r
3073 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)  \\r
3074     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
3075 \r
3076 #endif /* COBJMACROS */\r
3077 \r
3078 \r
3079 #endif  /* C style interface */\r
3080 \r
3081 \r
3082 \r
3083 \r
3084 #endif  /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */\r
3085 \r
3086 \r
3087 #ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
3088 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
3089 \r
3090 /* interface IDeckLinkVideoFrameAncillary */\r
3091 /* [helpstring][local][uuid][object] */ \r
3092 \r
3093 \r
3094 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;\r
3095 \r
3096 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3097     \r
3098     MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")\r
3099     IDeckLinkVideoFrameAncillary : public IUnknown\r
3100     {\r
3101     public:\r
3102         virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( \r
3103             /* [in] */ unsigned long lineNumber,\r
3104             /* [out] */ void **buffer) = 0;\r
3105         \r
3106         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
3107         \r
3108         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
3109         \r
3110     };\r
3111     \r
3112 #else   /* C style interface */\r
3113 \r
3114     typedef struct IDeckLinkVideoFrameAncillaryVtbl\r
3115     {\r
3116         BEGIN_INTERFACE\r
3117         \r
3118         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3119             IDeckLinkVideoFrameAncillary * This,\r
3120             /* [in] */ REFIID riid,\r
3121             /* [annotation][iid_is][out] */ \r
3122             __RPC__deref_out  void **ppvObject);\r
3123         \r
3124         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3125             IDeckLinkVideoFrameAncillary * This);\r
3126         \r
3127         ULONG ( STDMETHODCALLTYPE *Release )( \r
3128             IDeckLinkVideoFrameAncillary * This);\r
3129         \r
3130         HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( \r
3131             IDeckLinkVideoFrameAncillary * This,\r
3132             /* [in] */ unsigned long lineNumber,\r
3133             /* [out] */ void **buffer);\r
3134         \r
3135         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
3136             IDeckLinkVideoFrameAncillary * This);\r
3137         \r
3138         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
3139             IDeckLinkVideoFrameAncillary * This);\r
3140         \r
3141         END_INTERFACE\r
3142     } IDeckLinkVideoFrameAncillaryVtbl;\r
3143 \r
3144     interface IDeckLinkVideoFrameAncillary\r
3145     {\r
3146         CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;\r
3147     };\r
3148 \r
3149     \r
3150 \r
3151 #ifdef COBJMACROS\r
3152 \r
3153 \r
3154 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject)        \\r
3155     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3156 \r
3157 #define IDeckLinkVideoFrameAncillary_AddRef(This)       \\r
3158     ( (This)->lpVtbl -> AddRef(This) ) \r
3159 \r
3160 #define IDeckLinkVideoFrameAncillary_Release(This)      \\r
3161     ( (This)->lpVtbl -> Release(This) ) \r
3162 \r
3163 \r
3164 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer)   \\r
3165     ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) ) \r
3166 \r
3167 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This)       \\r
3168     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
3169 \r
3170 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This)       \\r
3171     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
3172 \r
3173 #endif /* COBJMACROS */\r
3174 \r
3175 \r
3176 #endif  /* C style interface */\r
3177 \r
3178 \r
3179 \r
3180 \r
3181 #endif  /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */\r
3182 \r
3183 \r
3184 #ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
3185 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
3186 \r
3187 /* interface IDeckLinkAudioInputPacket */\r
3188 /* [helpstring][local][uuid][object] */ \r
3189 \r
3190 \r
3191 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;\r
3192 \r
3193 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3194     \r
3195     MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")\r
3196     IDeckLinkAudioInputPacket : public IUnknown\r
3197     {\r
3198     public:\r
3199         virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;\r
3200         \r
3201         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
3202             /* [out] */ void **buffer) = 0;\r
3203         \r
3204         virtual HRESULT STDMETHODCALLTYPE GetPacketTime( \r
3205             /* [out] */ BMDTimeValue *packetTime,\r
3206             /* [in] */ BMDTimeScale timeScale) = 0;\r
3207         \r
3208     };\r
3209     \r
3210 #else   /* C style interface */\r
3211 \r
3212     typedef struct IDeckLinkAudioInputPacketVtbl\r
3213     {\r
3214         BEGIN_INTERFACE\r
3215         \r
3216         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3217             IDeckLinkAudioInputPacket * This,\r
3218             /* [in] */ REFIID riid,\r
3219             /* [annotation][iid_is][out] */ \r
3220             __RPC__deref_out  void **ppvObject);\r
3221         \r
3222         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3223             IDeckLinkAudioInputPacket * This);\r
3224         \r
3225         ULONG ( STDMETHODCALLTYPE *Release )( \r
3226             IDeckLinkAudioInputPacket * This);\r
3227         \r
3228         long ( STDMETHODCALLTYPE *GetSampleFrameCount )( \r
3229             IDeckLinkAudioInputPacket * This);\r
3230         \r
3231         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
3232             IDeckLinkAudioInputPacket * This,\r
3233             /* [out] */ void **buffer);\r
3234         \r
3235         HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( \r
3236             IDeckLinkAudioInputPacket * This,\r
3237             /* [out] */ BMDTimeValue *packetTime,\r
3238             /* [in] */ BMDTimeScale timeScale);\r
3239         \r
3240         END_INTERFACE\r
3241     } IDeckLinkAudioInputPacketVtbl;\r
3242 \r
3243     interface IDeckLinkAudioInputPacket\r
3244     {\r
3245         CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;\r
3246     };\r
3247 \r
3248     \r
3249 \r
3250 #ifdef COBJMACROS\r
3251 \r
3252 \r
3253 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)   \\r
3254     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3255 \r
3256 #define IDeckLinkAudioInputPacket_AddRef(This)  \\r
3257     ( (This)->lpVtbl -> AddRef(This) ) \r
3258 \r
3259 #define IDeckLinkAudioInputPacket_Release(This) \\r
3260     ( (This)->lpVtbl -> Release(This) ) \r
3261 \r
3262 \r
3263 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This)     \\r
3264     ( (This)->lpVtbl -> GetSampleFrameCount(This) ) \r
3265 \r
3266 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer) \\r
3267     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
3268 \r
3269 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale)      \\r
3270     ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) ) \r
3271 \r
3272 #endif /* COBJMACROS */\r
3273 \r
3274 \r
3275 #endif  /* C style interface */\r
3276 \r
3277 \r
3278 \r
3279 \r
3280 #endif  /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */\r
3281 \r
3282 \r
3283 #ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
3284 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
3285 \r
3286 /* interface IDeckLinkScreenPreviewCallback */\r
3287 /* [helpstring][local][uuid][object] */ \r
3288 \r
3289 \r
3290 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;\r
3291 \r
3292 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3293     \r
3294     MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")\r
3295     IDeckLinkScreenPreviewCallback : public IUnknown\r
3296     {\r
3297     public:\r
3298         virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
3299             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
3300         \r
3301     };\r
3302     \r
3303 #else   /* C style interface */\r
3304 \r
3305     typedef struct IDeckLinkScreenPreviewCallbackVtbl\r
3306     {\r
3307         BEGIN_INTERFACE\r
3308         \r
3309         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3310             IDeckLinkScreenPreviewCallback * This,\r
3311             /* [in] */ REFIID riid,\r
3312             /* [annotation][iid_is][out] */ \r
3313             __RPC__deref_out  void **ppvObject);\r
3314         \r
3315         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3316             IDeckLinkScreenPreviewCallback * This);\r
3317         \r
3318         ULONG ( STDMETHODCALLTYPE *Release )( \r
3319             IDeckLinkScreenPreviewCallback * This);\r
3320         \r
3321         HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
3322             IDeckLinkScreenPreviewCallback * This,\r
3323             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
3324         \r
3325         END_INTERFACE\r
3326     } IDeckLinkScreenPreviewCallbackVtbl;\r
3327 \r
3328     interface IDeckLinkScreenPreviewCallback\r
3329     {\r
3330         CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;\r
3331     };\r
3332 \r
3333     \r
3334 \r
3335 #ifdef COBJMACROS\r
3336 \r
3337 \r
3338 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)      \\r
3339     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3340 \r
3341 #define IDeckLinkScreenPreviewCallback_AddRef(This)     \\r
3342     ( (This)->lpVtbl -> AddRef(This) ) \r
3343 \r
3344 #define IDeckLinkScreenPreviewCallback_Release(This)    \\r
3345     ( (This)->lpVtbl -> Release(This) ) \r
3346 \r
3347 \r
3348 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) \\r
3349     ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
3350 \r
3351 #endif /* COBJMACROS */\r
3352 \r
3353 \r
3354 #endif  /* C style interface */\r
3355 \r
3356 \r
3357 \r
3358 \r
3359 #endif  /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */\r
3360 \r
3361 \r
3362 #ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
3363 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
3364 \r
3365 /* interface IDeckLinkGLScreenPreviewHelper */\r
3366 /* [helpstring][local][uuid][object] */ \r
3367 \r
3368 \r
3369 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;\r
3370 \r
3371 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3372     \r
3373     MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")\r
3374     IDeckLinkGLScreenPreviewHelper : public IUnknown\r
3375     {\r
3376     public:\r
3377         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
3378         \r
3379         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
3380         \r
3381         virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
3382             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
3383         \r
3384         virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
3385             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
3386         \r
3387     };\r
3388     \r
3389 #else   /* C style interface */\r
3390 \r
3391     typedef struct IDeckLinkGLScreenPreviewHelperVtbl\r
3392     {\r
3393         BEGIN_INTERFACE\r
3394         \r
3395         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3396             IDeckLinkGLScreenPreviewHelper * This,\r
3397             /* [in] */ REFIID riid,\r
3398             /* [annotation][iid_is][out] */ \r
3399             __RPC__deref_out  void **ppvObject);\r
3400         \r
3401         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3402             IDeckLinkGLScreenPreviewHelper * This);\r
3403         \r
3404         ULONG ( STDMETHODCALLTYPE *Release )( \r
3405             IDeckLinkGLScreenPreviewHelper * This);\r
3406         \r
3407         HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
3408             IDeckLinkGLScreenPreviewHelper * This);\r
3409         \r
3410         HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
3411             IDeckLinkGLScreenPreviewHelper * This);\r
3412         \r
3413         HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
3414             IDeckLinkGLScreenPreviewHelper * This,\r
3415             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
3416         \r
3417         HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
3418             IDeckLinkGLScreenPreviewHelper * This,\r
3419             /* [in] */ BMD3DPreviewFormat previewFormat);\r
3420         \r
3421         END_INTERFACE\r
3422     } IDeckLinkGLScreenPreviewHelperVtbl;\r
3423 \r
3424     interface IDeckLinkGLScreenPreviewHelper\r
3425     {\r
3426         CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;\r
3427     };\r
3428 \r
3429     \r
3430 \r
3431 #ifdef COBJMACROS\r
3432 \r
3433 \r
3434 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)      \\r
3435     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3436 \r
3437 #define IDeckLinkGLScreenPreviewHelper_AddRef(This)     \\r
3438     ( (This)->lpVtbl -> AddRef(This) ) \r
3439 \r
3440 #define IDeckLinkGLScreenPreviewHelper_Release(This)    \\r
3441     ( (This)->lpVtbl -> Release(This) ) \r
3442 \r
3443 \r
3444 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)       \\r
3445     ( (This)->lpVtbl -> InitializeGL(This) ) \r
3446 \r
3447 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This)    \\r
3448     ( (This)->lpVtbl -> PaintGL(This) ) \r
3449 \r
3450 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame)  \\r
3451     ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
3452 \r
3453 #define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)   \\r
3454     ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
3455 \r
3456 #endif /* COBJMACROS */\r
3457 \r
3458 \r
3459 #endif  /* C style interface */\r
3460 \r
3461 \r
3462 \r
3463 \r
3464 #endif  /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */\r
3465 \r
3466 \r
3467 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
3468 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
3469 \r
3470 /* interface IDeckLinkConfiguration */\r
3471 /* [helpstring][local][uuid][object] */ \r
3472 \r
3473 \r
3474 EXTERN_C const IID IID_IDeckLinkConfiguration;\r
3475 \r
3476 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3477     \r
3478     MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")\r
3479     IDeckLinkConfiguration : public IUnknown\r
3480     {\r
3481     public:\r
3482         virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
3483             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3484             /* [in] */ BOOL value) = 0;\r
3485         \r
3486         virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
3487             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3488             /* [out] */ BOOL *value) = 0;\r
3489         \r
3490         virtual HRESULT STDMETHODCALLTYPE SetInt( \r
3491             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3492             /* [in] */ LONGLONG value) = 0;\r
3493         \r
3494         virtual HRESULT STDMETHODCALLTYPE GetInt( \r
3495             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3496             /* [out] */ LONGLONG *value) = 0;\r
3497         \r
3498         virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
3499             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3500             /* [in] */ double value) = 0;\r
3501         \r
3502         virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
3503             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3504             /* [out] */ double *value) = 0;\r
3505         \r
3506         virtual HRESULT STDMETHODCALLTYPE SetString( \r
3507             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3508             /* [in] */ BSTR value) = 0;\r
3509         \r
3510         virtual HRESULT STDMETHODCALLTYPE GetString( \r
3511             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3512             /* [out] */ BSTR *value) = 0;\r
3513         \r
3514         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
3515         \r
3516     };\r
3517     \r
3518 #else   /* C style interface */\r
3519 \r
3520     typedef struct IDeckLinkConfigurationVtbl\r
3521     {\r
3522         BEGIN_INTERFACE\r
3523         \r
3524         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3525             IDeckLinkConfiguration * This,\r
3526             /* [in] */ REFIID riid,\r
3527             /* [annotation][iid_is][out] */ \r
3528             __RPC__deref_out  void **ppvObject);\r
3529         \r
3530         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3531             IDeckLinkConfiguration * This);\r
3532         \r
3533         ULONG ( STDMETHODCALLTYPE *Release )( \r
3534             IDeckLinkConfiguration * This);\r
3535         \r
3536         HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
3537             IDeckLinkConfiguration * This,\r
3538             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3539             /* [in] */ BOOL value);\r
3540         \r
3541         HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
3542             IDeckLinkConfiguration * This,\r
3543             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3544             /* [out] */ BOOL *value);\r
3545         \r
3546         HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
3547             IDeckLinkConfiguration * This,\r
3548             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3549             /* [in] */ LONGLONG value);\r
3550         \r
3551         HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
3552             IDeckLinkConfiguration * This,\r
3553             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3554             /* [out] */ LONGLONG *value);\r
3555         \r
3556         HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
3557             IDeckLinkConfiguration * This,\r
3558             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3559             /* [in] */ double value);\r
3560         \r
3561         HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
3562             IDeckLinkConfiguration * This,\r
3563             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3564             /* [out] */ double *value);\r
3565         \r
3566         HRESULT ( STDMETHODCALLTYPE *SetString )( \r
3567             IDeckLinkConfiguration * This,\r
3568             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3569             /* [in] */ BSTR value);\r
3570         \r
3571         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
3572             IDeckLinkConfiguration * This,\r
3573             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
3574             /* [out] */ BSTR *value);\r
3575         \r
3576         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
3577             IDeckLinkConfiguration * This);\r
3578         \r
3579         END_INTERFACE\r
3580     } IDeckLinkConfigurationVtbl;\r
3581 \r
3582     interface IDeckLinkConfiguration\r
3583     {\r
3584         CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;\r
3585     };\r
3586 \r
3587     \r
3588 \r
3589 #ifdef COBJMACROS\r
3590 \r
3591 \r
3592 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)      \\r
3593     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3594 \r
3595 #define IDeckLinkConfiguration_AddRef(This)     \\r
3596     ( (This)->lpVtbl -> AddRef(This) ) \r
3597 \r
3598 #define IDeckLinkConfiguration_Release(This)    \\r
3599     ( (This)->lpVtbl -> Release(This) ) \r
3600 \r
3601 \r
3602 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value)        \\r
3603     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
3604 \r
3605 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value)        \\r
3606     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
3607 \r
3608 #define IDeckLinkConfiguration_SetInt(This,cfgID,value) \\r
3609     ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
3610 \r
3611 #define IDeckLinkConfiguration_GetInt(This,cfgID,value) \\r
3612     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
3613 \r
3614 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value)       \\r
3615     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
3616 \r
3617 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value)       \\r
3618     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
3619 \r
3620 #define IDeckLinkConfiguration_SetString(This,cfgID,value)      \\r
3621     ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
3622 \r
3623 #define IDeckLinkConfiguration_GetString(This,cfgID,value)      \\r
3624     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
3625 \r
3626 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)    \\r
3627     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
3628 \r
3629 #endif /* COBJMACROS */\r
3630 \r
3631 \r
3632 #endif  /* C style interface */\r
3633 \r
3634 \r
3635 \r
3636 \r
3637 #endif  /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */\r
3638 \r
3639 \r
3640 #ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__\r
3641 #define __IDeckLinkAttributes_INTERFACE_DEFINED__\r
3642 \r
3643 /* interface IDeckLinkAttributes */\r
3644 /* [helpstring][local][uuid][object] */ \r
3645 \r
3646 \r
3647 EXTERN_C const IID IID_IDeckLinkAttributes;\r
3648 \r
3649 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3650     \r
3651     MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")\r
3652     IDeckLinkAttributes : public IUnknown\r
3653     {\r
3654     public:\r
3655         virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
3656             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3657             /* [out] */ BOOL *value) = 0;\r
3658         \r
3659         virtual HRESULT STDMETHODCALLTYPE GetInt( \r
3660             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3661             /* [out] */ LONGLONG *value) = 0;\r
3662         \r
3663         virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
3664             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3665             /* [out] */ double *value) = 0;\r
3666         \r
3667         virtual HRESULT STDMETHODCALLTYPE GetString( \r
3668             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3669             /* [out] */ BSTR *value) = 0;\r
3670         \r
3671     };\r
3672     \r
3673 #else   /* C style interface */\r
3674 \r
3675     typedef struct IDeckLinkAttributesVtbl\r
3676     {\r
3677         BEGIN_INTERFACE\r
3678         \r
3679         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3680             IDeckLinkAttributes * This,\r
3681             /* [in] */ REFIID riid,\r
3682             /* [annotation][iid_is][out] */ \r
3683             __RPC__deref_out  void **ppvObject);\r
3684         \r
3685         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3686             IDeckLinkAttributes * This);\r
3687         \r
3688         ULONG ( STDMETHODCALLTYPE *Release )( \r
3689             IDeckLinkAttributes * This);\r
3690         \r
3691         HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
3692             IDeckLinkAttributes * This,\r
3693             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3694             /* [out] */ BOOL *value);\r
3695         \r
3696         HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
3697             IDeckLinkAttributes * This,\r
3698             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3699             /* [out] */ LONGLONG *value);\r
3700         \r
3701         HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
3702             IDeckLinkAttributes * This,\r
3703             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3704             /* [out] */ double *value);\r
3705         \r
3706         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
3707             IDeckLinkAttributes * This,\r
3708             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3709             /* [out] */ BSTR *value);\r
3710         \r
3711         END_INTERFACE\r
3712     } IDeckLinkAttributesVtbl;\r
3713 \r
3714     interface IDeckLinkAttributes\r
3715     {\r
3716         CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;\r
3717     };\r
3718 \r
3719     \r
3720 \r
3721 #ifdef COBJMACROS\r
3722 \r
3723 \r
3724 #define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) \\r
3725     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3726 \r
3727 #define IDeckLinkAttributes_AddRef(This)        \\r
3728     ( (This)->lpVtbl -> AddRef(This) ) \r
3729 \r
3730 #define IDeckLinkAttributes_Release(This)       \\r
3731     ( (This)->lpVtbl -> Release(This) ) \r
3732 \r
3733 \r
3734 #define IDeckLinkAttributes_GetFlag(This,cfgID,value)   \\r
3735     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
3736 \r
3737 #define IDeckLinkAttributes_GetInt(This,cfgID,value)    \\r
3738     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
3739 \r
3740 #define IDeckLinkAttributes_GetFloat(This,cfgID,value)  \\r
3741     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
3742 \r
3743 #define IDeckLinkAttributes_GetString(This,cfgID,value) \\r
3744     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
3745 \r
3746 #endif /* COBJMACROS */\r
3747 \r
3748 \r
3749 #endif  /* C style interface */\r
3750 \r
3751 \r
3752 \r
3753 \r
3754 #endif  /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */\r
3755 \r
3756 \r
3757 #ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__\r
3758 #define __IDeckLinkKeyer_INTERFACE_DEFINED__\r
3759 \r
3760 /* interface IDeckLinkKeyer */\r
3761 /* [helpstring][local][uuid][object] */ \r
3762 \r
3763 \r
3764 EXTERN_C const IID IID_IDeckLinkKeyer;\r
3765 \r
3766 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3767     \r
3768     MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")\r
3769     IDeckLinkKeyer : public IUnknown\r
3770     {\r
3771     public:\r
3772         virtual HRESULT STDMETHODCALLTYPE Enable( \r
3773             /* [in] */ BOOL isExternal) = 0;\r
3774         \r
3775         virtual HRESULT STDMETHODCALLTYPE SetLevel( \r
3776             /* [in] */ unsigned char level) = 0;\r
3777         \r
3778         virtual HRESULT STDMETHODCALLTYPE RampUp( \r
3779             /* [in] */ unsigned long numberOfFrames) = 0;\r
3780         \r
3781         virtual HRESULT STDMETHODCALLTYPE RampDown( \r
3782             /* [in] */ unsigned long numberOfFrames) = 0;\r
3783         \r
3784         virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;\r
3785         \r
3786     };\r
3787     \r
3788 #else   /* C style interface */\r
3789 \r
3790     typedef struct IDeckLinkKeyerVtbl\r
3791     {\r
3792         BEGIN_INTERFACE\r
3793         \r
3794         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3795             IDeckLinkKeyer * This,\r
3796             /* [in] */ REFIID riid,\r
3797             /* [annotation][iid_is][out] */ \r
3798             __RPC__deref_out  void **ppvObject);\r
3799         \r
3800         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3801             IDeckLinkKeyer * This);\r
3802         \r
3803         ULONG ( STDMETHODCALLTYPE *Release )( \r
3804             IDeckLinkKeyer * This);\r
3805         \r
3806         HRESULT ( STDMETHODCALLTYPE *Enable )( \r
3807             IDeckLinkKeyer * This,\r
3808             /* [in] */ BOOL isExternal);\r
3809         \r
3810         HRESULT ( STDMETHODCALLTYPE *SetLevel )( \r
3811             IDeckLinkKeyer * This,\r
3812             /* [in] */ unsigned char level);\r
3813         \r
3814         HRESULT ( STDMETHODCALLTYPE *RampUp )( \r
3815             IDeckLinkKeyer * This,\r
3816             /* [in] */ unsigned long numberOfFrames);\r
3817         \r
3818         HRESULT ( STDMETHODCALLTYPE *RampDown )( \r
3819             IDeckLinkKeyer * This,\r
3820             /* [in] */ unsigned long numberOfFrames);\r
3821         \r
3822         HRESULT ( STDMETHODCALLTYPE *Disable )( \r
3823             IDeckLinkKeyer * This);\r
3824         \r
3825         END_INTERFACE\r
3826     } IDeckLinkKeyerVtbl;\r
3827 \r
3828     interface IDeckLinkKeyer\r
3829     {\r
3830         CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;\r
3831     };\r
3832 \r
3833     \r
3834 \r
3835 #ifdef COBJMACROS\r
3836 \r
3837 \r
3838 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)      \\r
3839     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3840 \r
3841 #define IDeckLinkKeyer_AddRef(This)     \\r
3842     ( (This)->lpVtbl -> AddRef(This) ) \r
3843 \r
3844 #define IDeckLinkKeyer_Release(This)    \\r
3845     ( (This)->lpVtbl -> Release(This) ) \r
3846 \r
3847 \r
3848 #define IDeckLinkKeyer_Enable(This,isExternal)  \\r
3849     ( (This)->lpVtbl -> Enable(This,isExternal) ) \r
3850 \r
3851 #define IDeckLinkKeyer_SetLevel(This,level)     \\r
3852     ( (This)->lpVtbl -> SetLevel(This,level) ) \r
3853 \r
3854 #define IDeckLinkKeyer_RampUp(This,numberOfFrames)      \\r
3855     ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) \r
3856 \r
3857 #define IDeckLinkKeyer_RampDown(This,numberOfFrames)    \\r
3858     ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) \r
3859 \r
3860 #define IDeckLinkKeyer_Disable(This)    \\r
3861     ( (This)->lpVtbl -> Disable(This) ) \r
3862 \r
3863 #endif /* COBJMACROS */\r
3864 \r
3865 \r
3866 #endif  /* C style interface */\r
3867 \r
3868 \r
3869 \r
3870 \r
3871 #endif  /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */\r
3872 \r
3873 \r
3874 #ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
3875 #define __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
3876 \r
3877 /* interface IDeckLinkVideoConversion */\r
3878 /* [helpstring][local][uuid][object] */ \r
3879 \r
3880 \r
3881 EXTERN_C const IID IID_IDeckLinkVideoConversion;\r
3882 \r
3883 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3884     \r
3885     MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")\r
3886     IDeckLinkVideoConversion : public IUnknown\r
3887     {\r
3888     public:\r
3889         virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
3890             /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
3891             /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;\r
3892         \r
3893     };\r
3894     \r
3895 #else   /* C style interface */\r
3896 \r
3897     typedef struct IDeckLinkVideoConversionVtbl\r
3898     {\r
3899         BEGIN_INTERFACE\r
3900         \r
3901         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3902             IDeckLinkVideoConversion * This,\r
3903             /* [in] */ REFIID riid,\r
3904             /* [annotation][iid_is][out] */ \r
3905             __RPC__deref_out  void **ppvObject);\r
3906         \r
3907         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3908             IDeckLinkVideoConversion * This);\r
3909         \r
3910         ULONG ( STDMETHODCALLTYPE *Release )( \r
3911             IDeckLinkVideoConversion * This);\r
3912         \r
3913         HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
3914             IDeckLinkVideoConversion * This,\r
3915             /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
3916             /* [in] */ IDeckLinkVideoFrame *dstFrame);\r
3917         \r
3918         END_INTERFACE\r
3919     } IDeckLinkVideoConversionVtbl;\r
3920 \r
3921     interface IDeckLinkVideoConversion\r
3922     {\r
3923         CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;\r
3924     };\r
3925 \r
3926     \r
3927 \r
3928 #ifdef COBJMACROS\r
3929 \r
3930 \r
3931 #define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject)    \\r
3932     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3933 \r
3934 #define IDeckLinkVideoConversion_AddRef(This)   \\r
3935     ( (This)->lpVtbl -> AddRef(This) ) \r
3936 \r
3937 #define IDeckLinkVideoConversion_Release(This)  \\r
3938     ( (This)->lpVtbl -> Release(This) ) \r
3939 \r
3940 \r
3941 #define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame)   \\r
3942     ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
3943 \r
3944 #endif /* COBJMACROS */\r
3945 \r
3946 \r
3947 #endif  /* C style interface */\r
3948 \r
3949 \r
3950 \r
3951 \r
3952 #endif  /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */\r
3953 \r
3954 \r
3955 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
3956 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
3957 \r
3958 /* interface IDeckLinkDeckControlStatusCallback */\r
3959 /* [helpstring][uuid][object] */ \r
3960 \r
3961 \r
3962 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;\r
3963 \r
3964 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3965     \r
3966     MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")\r
3967     IDeckLinkDeckControlStatusCallback : public IUnknown\r
3968     {\r
3969     public:\r
3970         virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( \r
3971             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;\r
3972         \r
3973         virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( \r
3974             /* [in] */ BMDDeckControlVTRControlState newState,\r
3975             /* [in] */ BMDDeckControlError error) = 0;\r
3976         \r
3977         virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( \r
3978             /* [in] */ BMDDeckControlEvent event,\r
3979             /* [in] */ BMDDeckControlError error) = 0;\r
3980         \r
3981         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( \r
3982             /* [in] */ BMDDeckControlStatusFlags flags,\r
3983             /* [in] */ unsigned long mask) = 0;\r
3984         \r
3985     };\r
3986     \r
3987 #else   /* C style interface */\r
3988 \r
3989     typedef struct IDeckLinkDeckControlStatusCallbackVtbl\r
3990     {\r
3991         BEGIN_INTERFACE\r
3992         \r
3993         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3994             IDeckLinkDeckControlStatusCallback * This,\r
3995             /* [in] */ REFIID riid,\r
3996             /* [annotation][iid_is][out] */ \r
3997             __RPC__deref_out  void **ppvObject);\r
3998         \r
3999         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4000             IDeckLinkDeckControlStatusCallback * This);\r
4001         \r
4002         ULONG ( STDMETHODCALLTYPE *Release )( \r
4003             IDeckLinkDeckControlStatusCallback * This);\r
4004         \r
4005         HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( \r
4006             IDeckLinkDeckControlStatusCallback * This,\r
4007             /* [in] */ BMDTimecodeBCD currentTimecode);\r
4008         \r
4009         HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( \r
4010             IDeckLinkDeckControlStatusCallback * This,\r
4011             /* [in] */ BMDDeckControlVTRControlState newState,\r
4012             /* [in] */ BMDDeckControlError error);\r
4013         \r
4014         HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( \r
4015             IDeckLinkDeckControlStatusCallback * This,\r
4016             /* [in] */ BMDDeckControlEvent event,\r
4017             /* [in] */ BMDDeckControlError error);\r
4018         \r
4019         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( \r
4020             IDeckLinkDeckControlStatusCallback * This,\r
4021             /* [in] */ BMDDeckControlStatusFlags flags,\r
4022             /* [in] */ unsigned long mask);\r
4023         \r
4024         END_INTERFACE\r
4025     } IDeckLinkDeckControlStatusCallbackVtbl;\r
4026 \r
4027     interface IDeckLinkDeckControlStatusCallback\r
4028     {\r
4029         CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;\r
4030     };\r
4031 \r
4032     \r
4033 \r
4034 #ifdef COBJMACROS\r
4035 \r
4036 \r
4037 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject)  \\r
4038     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4039 \r
4040 #define IDeckLinkDeckControlStatusCallback_AddRef(This) \\r
4041     ( (This)->lpVtbl -> AddRef(This) ) \r
4042 \r
4043 #define IDeckLinkDeckControlStatusCallback_Release(This)        \\r
4044     ( (This)->lpVtbl -> Release(This) ) \r
4045 \r
4046 \r
4047 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) \\r
4048     ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) \r
4049 \r
4050 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error)  \\r
4051     ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) \r
4052 \r
4053 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error)   \\r
4054     ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) \r
4055 \r
4056 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask)    \\r
4057     ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) \r
4058 \r
4059 #endif /* COBJMACROS */\r
4060 \r
4061 \r
4062 #endif  /* C style interface */\r
4063 \r
4064 \r
4065 \r
4066 \r
4067 #endif  /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */\r
4068 \r
4069 \r
4070 #ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__\r
4071 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__\r
4072 \r
4073 /* interface IDeckLinkDeckControl */\r
4074 /* [helpstring][uuid][object] */ \r
4075 \r
4076 \r
4077 EXTERN_C const IID IID_IDeckLinkDeckControl;\r
4078 \r
4079 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4080     \r
4081     MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")\r
4082     IDeckLinkDeckControl : public IUnknown\r
4083     {\r
4084     public:\r
4085         virtual HRESULT STDMETHODCALLTYPE Open( \r
4086             /* [in] */ BMDTimeScale timeScale,\r
4087             /* [in] */ BMDTimeValue timeValue,\r
4088             /* [in] */ BOOL timecodeIsDropFrame,\r
4089             /* [out] */ BMDDeckControlError *error) = 0;\r
4090         \r
4091         virtual HRESULT STDMETHODCALLTYPE Close( \r
4092             /* [in] */ BOOL standbyOn) = 0;\r
4093         \r
4094         virtual HRESULT STDMETHODCALLTYPE GetCurrentState( \r
4095             /* [out] */ BMDDeckControlMode *mode,\r
4096             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
4097             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;\r
4098         \r
4099         virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
4100             /* [in] */ BOOL standbyOn) = 0;\r
4101         \r
4102         virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
4103             /* [in] */ unsigned char *inBuffer,\r
4104             /* [in] */ unsigned long inBufferSize,\r
4105             /* [out] */ unsigned char *outBuffer,\r
4106             /* [out] */ unsigned long *outDataSize,\r
4107             /* [in] */ unsigned long outBufferSize,\r
4108             /* [out] */ BMDDeckControlError *error) = 0;\r
4109         \r
4110         virtual HRESULT STDMETHODCALLTYPE Play( \r
4111             /* [out] */ BMDDeckControlError *error) = 0;\r
4112         \r
4113         virtual HRESULT STDMETHODCALLTYPE Stop( \r
4114             /* [out] */ BMDDeckControlError *error) = 0;\r
4115         \r
4116         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
4117             /* [out] */ BMDDeckControlError *error) = 0;\r
4118         \r
4119         virtual HRESULT STDMETHODCALLTYPE Eject( \r
4120             /* [out] */ BMDDeckControlError *error) = 0;\r
4121         \r
4122         virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
4123             /* [in] */ BMDTimecodeBCD timecode,\r
4124             /* [out] */ BMDDeckControlError *error) = 0;\r
4125         \r
4126         virtual HRESULT STDMETHODCALLTYPE FastForward( \r
4127             /* [in] */ BOOL viewTape,\r
4128             /* [out] */ BMDDeckControlError *error) = 0;\r
4129         \r
4130         virtual HRESULT STDMETHODCALLTYPE Rewind( \r
4131             /* [in] */ BOOL viewTape,\r
4132             /* [out] */ BMDDeckControlError *error) = 0;\r
4133         \r
4134         virtual HRESULT STDMETHODCALLTYPE StepForward( \r
4135             /* [out] */ BMDDeckControlError *error) = 0;\r
4136         \r
4137         virtual HRESULT STDMETHODCALLTYPE StepBack( \r
4138             /* [out] */ BMDDeckControlError *error) = 0;\r
4139         \r
4140         virtual HRESULT STDMETHODCALLTYPE Jog( \r
4141             /* [in] */ double rate,\r
4142             /* [out] */ BMDDeckControlError *error) = 0;\r
4143         \r
4144         virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
4145             /* [in] */ double rate,\r
4146             /* [out] */ BMDDeckControlError *error) = 0;\r
4147         \r
4148         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
4149             /* [out] */ BSTR *currentTimeCode,\r
4150             /* [out] */ BMDDeckControlError *error) = 0;\r
4151         \r
4152         virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
4153             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
4154             /* [out] */ BMDDeckControlError *error) = 0;\r
4155         \r
4156         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
4157             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
4158             /* [out] */ BMDDeckControlError *error) = 0;\r
4159         \r
4160         virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
4161             /* [in] */ unsigned long prerollSeconds) = 0;\r
4162         \r
4163         virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
4164             /* [out] */ unsigned long *prerollSeconds) = 0;\r
4165         \r
4166         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
4167             /* [in] */ long exportOffsetFields) = 0;\r
4168         \r
4169         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
4170             /* [out] */ long *exportOffsetFields) = 0;\r
4171         \r
4172         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
4173             /* [out] */ long *deckManualExportOffsetFields) = 0;\r
4174         \r
4175         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
4176             /* [in] */ long captureOffsetFields) = 0;\r
4177         \r
4178         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
4179             /* [out] */ long *captureOffsetFields) = 0;\r
4180         \r
4181         virtual HRESULT STDMETHODCALLTYPE StartExport( \r
4182             /* [in] */ BMDTimecodeBCD inTimecode,\r
4183             /* [in] */ BMDTimecodeBCD outTimecode,\r
4184             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
4185             /* [out] */ BMDDeckControlError *error) = 0;\r
4186         \r
4187         virtual HRESULT STDMETHODCALLTYPE StartCapture( \r
4188             /* [in] */ BOOL useVITC,\r
4189             /* [in] */ BMDTimecodeBCD inTimecode,\r
4190             /* [in] */ BMDTimecodeBCD outTimecode,\r
4191             /* [out] */ BMDDeckControlError *error) = 0;\r
4192         \r
4193         virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
4194             /* [out] */ unsigned short *deviceId,\r
4195             /* [out] */ BMDDeckControlError *error) = 0;\r
4196         \r
4197         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
4198         \r
4199         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
4200             /* [out] */ BMDDeckControlError *error) = 0;\r
4201         \r
4202         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
4203             /* [out] */ BMDDeckControlError *error) = 0;\r
4204         \r
4205         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
4206             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
4207         \r
4208     };\r
4209     \r
4210 #else   /* C style interface */\r
4211 \r
4212     typedef struct IDeckLinkDeckControlVtbl\r
4213     {\r
4214         BEGIN_INTERFACE\r
4215         \r
4216         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4217             IDeckLinkDeckControl * This,\r
4218             /* [in] */ REFIID riid,\r
4219             /* [annotation][iid_is][out] */ \r
4220             __RPC__deref_out  void **ppvObject);\r
4221         \r
4222         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4223             IDeckLinkDeckControl * This);\r
4224         \r
4225         ULONG ( STDMETHODCALLTYPE *Release )( \r
4226             IDeckLinkDeckControl * This);\r
4227         \r
4228         HRESULT ( STDMETHODCALLTYPE *Open )( \r
4229             IDeckLinkDeckControl * This,\r
4230             /* [in] */ BMDTimeScale timeScale,\r
4231             /* [in] */ BMDTimeValue timeValue,\r
4232             /* [in] */ BOOL timecodeIsDropFrame,\r
4233             /* [out] */ BMDDeckControlError *error);\r
4234         \r
4235         HRESULT ( STDMETHODCALLTYPE *Close )( \r
4236             IDeckLinkDeckControl * This,\r
4237             /* [in] */ BOOL standbyOn);\r
4238         \r
4239         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
4240             IDeckLinkDeckControl * This,\r
4241             /* [out] */ BMDDeckControlMode *mode,\r
4242             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
4243             /* [out] */ BMDDeckControlStatusFlags *flags);\r
4244         \r
4245         HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
4246             IDeckLinkDeckControl * This,\r
4247             /* [in] */ BOOL standbyOn);\r
4248         \r
4249         HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
4250             IDeckLinkDeckControl * This,\r
4251             /* [in] */ unsigned char *inBuffer,\r
4252             /* [in] */ unsigned long inBufferSize,\r
4253             /* [out] */ unsigned char *outBuffer,\r
4254             /* [out] */ unsigned long *outDataSize,\r
4255             /* [in] */ unsigned long outBufferSize,\r
4256             /* [out] */ BMDDeckControlError *error);\r
4257         \r
4258         HRESULT ( STDMETHODCALLTYPE *Play )( \r
4259             IDeckLinkDeckControl * This,\r
4260             /* [out] */ BMDDeckControlError *error);\r
4261         \r
4262         HRESULT ( STDMETHODCALLTYPE *Stop )( \r
4263             IDeckLinkDeckControl * This,\r
4264             /* [out] */ BMDDeckControlError *error);\r
4265         \r
4266         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
4267             IDeckLinkDeckControl * This,\r
4268             /* [out] */ BMDDeckControlError *error);\r
4269         \r
4270         HRESULT ( STDMETHODCALLTYPE *Eject )( \r
4271             IDeckLinkDeckControl * This,\r
4272             /* [out] */ BMDDeckControlError *error);\r
4273         \r
4274         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
4275             IDeckLinkDeckControl * This,\r
4276             /* [in] */ BMDTimecodeBCD timecode,\r
4277             /* [out] */ BMDDeckControlError *error);\r
4278         \r
4279         HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
4280             IDeckLinkDeckControl * This,\r
4281             /* [in] */ BOOL viewTape,\r
4282             /* [out] */ BMDDeckControlError *error);\r
4283         \r
4284         HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
4285             IDeckLinkDeckControl * This,\r
4286             /* [in] */ BOOL viewTape,\r
4287             /* [out] */ BMDDeckControlError *error);\r
4288         \r
4289         HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
4290             IDeckLinkDeckControl * This,\r
4291             /* [out] */ BMDDeckControlError *error);\r
4292         \r
4293         HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
4294             IDeckLinkDeckControl * This,\r
4295             /* [out] */ BMDDeckControlError *error);\r
4296         \r
4297         HRESULT ( STDMETHODCALLTYPE *Jog )( \r
4298             IDeckLinkDeckControl * This,\r
4299             /* [in] */ double rate,\r
4300             /* [out] */ BMDDeckControlError *error);\r
4301         \r
4302         HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
4303             IDeckLinkDeckControl * This,\r
4304             /* [in] */ double rate,\r
4305             /* [out] */ BMDDeckControlError *error);\r
4306         \r
4307         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
4308             IDeckLinkDeckControl * This,\r
4309             /* [out] */ BSTR *currentTimeCode,\r
4310             /* [out] */ BMDDeckControlError *error);\r
4311         \r
4312         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
4313             IDeckLinkDeckControl * This,\r
4314             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
4315             /* [out] */ BMDDeckControlError *error);\r
4316         \r
4317         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
4318             IDeckLinkDeckControl * This,\r
4319             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
4320             /* [out] */ BMDDeckControlError *error);\r
4321         \r
4322         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
4323             IDeckLinkDeckControl * This,\r
4324             /* [in] */ unsigned long prerollSeconds);\r
4325         \r
4326         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
4327             IDeckLinkDeckControl * This,\r
4328             /* [out] */ unsigned long *prerollSeconds);\r
4329         \r
4330         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
4331             IDeckLinkDeckControl * This,\r
4332             /* [in] */ long exportOffsetFields);\r
4333         \r
4334         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
4335             IDeckLinkDeckControl * This,\r
4336             /* [out] */ long *exportOffsetFields);\r
4337         \r
4338         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
4339             IDeckLinkDeckControl * This,\r
4340             /* [out] */ long *deckManualExportOffsetFields);\r
4341         \r
4342         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
4343             IDeckLinkDeckControl * This,\r
4344             /* [in] */ long captureOffsetFields);\r
4345         \r
4346         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
4347             IDeckLinkDeckControl * This,\r
4348             /* [out] */ long *captureOffsetFields);\r
4349         \r
4350         HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
4351             IDeckLinkDeckControl * This,\r
4352             /* [in] */ BMDTimecodeBCD inTimecode,\r
4353             /* [in] */ BMDTimecodeBCD outTimecode,\r
4354             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
4355             /* [out] */ BMDDeckControlError *error);\r
4356         \r
4357         HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
4358             IDeckLinkDeckControl * This,\r
4359             /* [in] */ BOOL useVITC,\r
4360             /* [in] */ BMDTimecodeBCD inTimecode,\r
4361             /* [in] */ BMDTimecodeBCD outTimecode,\r
4362             /* [out] */ BMDDeckControlError *error);\r
4363         \r
4364         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
4365             IDeckLinkDeckControl * This,\r
4366             /* [out] */ unsigned short *deviceId,\r
4367             /* [out] */ BMDDeckControlError *error);\r
4368         \r
4369         HRESULT ( STDMETHODCALLTYPE *Abort )( \r
4370             IDeckLinkDeckControl * This);\r
4371         \r
4372         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
4373             IDeckLinkDeckControl * This,\r
4374             /* [out] */ BMDDeckControlError *error);\r
4375         \r
4376         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
4377             IDeckLinkDeckControl * This,\r
4378             /* [out] */ BMDDeckControlError *error);\r
4379         \r
4380         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
4381             IDeckLinkDeckControl * This,\r
4382             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
4383         \r
4384         END_INTERFACE\r
4385     } IDeckLinkDeckControlVtbl;\r
4386 \r
4387     interface IDeckLinkDeckControl\r
4388     {\r
4389         CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;\r
4390     };\r
4391 \r
4392     \r
4393 \r
4394 #ifdef COBJMACROS\r
4395 \r
4396 \r
4397 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject)        \\r
4398     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4399 \r
4400 #define IDeckLinkDeckControl_AddRef(This)       \\r
4401     ( (This)->lpVtbl -> AddRef(This) ) \r
4402 \r
4403 #define IDeckLinkDeckControl_Release(This)      \\r
4404     ( (This)->lpVtbl -> Release(This) ) \r
4405 \r
4406 \r
4407 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)   \\r
4408     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
4409 \r
4410 #define IDeckLinkDeckControl_Close(This,standbyOn)      \\r
4411     ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
4412 \r
4413 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags)   \\r
4414     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
4415 \r
4416 #define IDeckLinkDeckControl_SetStandby(This,standbyOn) \\r
4417     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
4418 \r
4419 #define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)  \\r
4420     ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) \r
4421 \r
4422 #define IDeckLinkDeckControl_Play(This,error)   \\r
4423     ( (This)->lpVtbl -> Play(This,error) ) \r
4424 \r
4425 #define IDeckLinkDeckControl_Stop(This,error)   \\r
4426     ( (This)->lpVtbl -> Stop(This,error) ) \r
4427 \r
4428 #define IDeckLinkDeckControl_TogglePlayStop(This,error) \\r
4429     ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
4430 \r
4431 #define IDeckLinkDeckControl_Eject(This,error)  \\r
4432     ( (This)->lpVtbl -> Eject(This,error) ) \r
4433 \r
4434 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error)  \\r
4435     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
4436 \r
4437 #define IDeckLinkDeckControl_FastForward(This,viewTape,error)   \\r
4438     ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
4439 \r
4440 #define IDeckLinkDeckControl_Rewind(This,viewTape,error)        \\r
4441     ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
4442 \r
4443 #define IDeckLinkDeckControl_StepForward(This,error)    \\r
4444     ( (This)->lpVtbl -> StepForward(This,error) ) \r
4445 \r
4446 #define IDeckLinkDeckControl_StepBack(This,error)       \\r
4447     ( (This)->lpVtbl -> StepBack(This,error) ) \r
4448 \r
4449 #define IDeckLinkDeckControl_Jog(This,rate,error)       \\r
4450     ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
4451 \r
4452 #define IDeckLinkDeckControl_Shuttle(This,rate,error)   \\r
4453     ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
4454 \r
4455 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error)      \\r
4456     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
4457 \r
4458 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error)    \\r
4459     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
4460 \r
4461 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) \\r
4462     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
4463 \r
4464 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds)    \\r
4465     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
4466 \r
4467 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds)    \\r
4468     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
4469 \r
4470 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields)   \\r
4471     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
4472 \r
4473 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields)   \\r
4474     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
4475 \r
4476 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields)   \\r
4477     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
4478 \r
4479 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) \\r
4480     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
4481 \r
4482 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) \\r
4483     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
4484 \r
4485 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error)       \\r
4486     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
4487 \r
4488 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error)    \\r
4489     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
4490 \r
4491 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error)   \\r
4492     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
4493 \r
4494 #define IDeckLinkDeckControl_Abort(This)        \\r
4495     ( (This)->lpVtbl -> Abort(This) ) \r
4496 \r
4497 #define IDeckLinkDeckControl_CrashRecordStart(This,error)       \\r
4498     ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
4499 \r
4500 #define IDeckLinkDeckControl_CrashRecordStop(This,error)        \\r
4501     ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
4502 \r
4503 #define IDeckLinkDeckControl_SetCallback(This,callback) \\r
4504     ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
4505 \r
4506 #endif /* COBJMACROS */\r
4507 \r
4508 \r
4509 #endif  /* C style interface */\r
4510 \r
4511 \r
4512 \r
4513 \r
4514 #endif  /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */\r
4515 \r
4516 \r
4517 EXTERN_C const CLSID CLSID_CDeckLinkIterator;\r
4518 \r
4519 #ifdef __cplusplus\r
4520 \r
4521 class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")\r
4522 CDeckLinkIterator;\r
4523 #endif\r
4524 \r
4525 EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;\r
4526 \r
4527 #ifdef __cplusplus\r
4528 \r
4529 class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")\r
4530 CDeckLinkAPIInformation;\r
4531 #endif\r
4532 \r
4533 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;\r
4534 \r
4535 #ifdef __cplusplus\r
4536 \r
4537 class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")\r
4538 CDeckLinkGLScreenPreviewHelper;\r
4539 #endif\r
4540 \r
4541 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;\r
4542 \r
4543 #ifdef __cplusplus\r
4544 \r
4545 class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")\r
4546 CDeckLinkVideoConversion;\r
4547 #endif\r
4548 \r
4549 #ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
4550 #define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
4551 \r
4552 /* interface IDeckLinkDeckControl_v7_9 */\r
4553 /* [helpstring][uuid][object] */ \r
4554 \r
4555 \r
4556 EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;\r
4557 \r
4558 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4559     \r
4560     MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")\r
4561     IDeckLinkDeckControl_v7_9 : public IUnknown\r
4562     {\r
4563     public:\r
4564         virtual HRESULT STDMETHODCALLTYPE Open( \r
4565             /* [in] */ BMDTimeScale timeScale,\r
4566             /* [in] */ BMDTimeValue timeValue,\r
4567             /* [in] */ BOOL timecodeIsDropFrame,\r
4568             /* [out] */ BMDDeckControlError *error) = 0;\r
4569         \r
4570         virtual HRESULT STDMETHODCALLTYPE Close( \r
4571             /* [in] */ BOOL standbyOn) = 0;\r
4572         \r
4573         virtual HRESULT STDMETHODCALLTYPE GetCurrentState( \r
4574             /* [out] */ BMDDeckControlMode *mode,\r
4575             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
4576             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;\r
4577         \r
4578         virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
4579             /* [in] */ BOOL standbyOn) = 0;\r
4580         \r
4581         virtual HRESULT STDMETHODCALLTYPE Play( \r
4582             /* [out] */ BMDDeckControlError *error) = 0;\r
4583         \r
4584         virtual HRESULT STDMETHODCALLTYPE Stop( \r
4585             /* [out] */ BMDDeckControlError *error) = 0;\r
4586         \r
4587         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
4588             /* [out] */ BMDDeckControlError *error) = 0;\r
4589         \r
4590         virtual HRESULT STDMETHODCALLTYPE Eject( \r
4591             /* [out] */ BMDDeckControlError *error) = 0;\r
4592         \r
4593         virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
4594             /* [in] */ BMDTimecodeBCD timecode,\r
4595             /* [out] */ BMDDeckControlError *error) = 0;\r
4596         \r
4597         virtual HRESULT STDMETHODCALLTYPE FastForward( \r
4598             /* [in] */ BOOL viewTape,\r
4599             /* [out] */ BMDDeckControlError *error) = 0;\r
4600         \r
4601         virtual HRESULT STDMETHODCALLTYPE Rewind( \r
4602             /* [in] */ BOOL viewTape,\r
4603             /* [out] */ BMDDeckControlError *error) = 0;\r
4604         \r
4605         virtual HRESULT STDMETHODCALLTYPE StepForward( \r
4606             /* [out] */ BMDDeckControlError *error) = 0;\r
4607         \r
4608         virtual HRESULT STDMETHODCALLTYPE StepBack( \r
4609             /* [out] */ BMDDeckControlError *error) = 0;\r
4610         \r
4611         virtual HRESULT STDMETHODCALLTYPE Jog( \r
4612             /* [in] */ double rate,\r
4613             /* [out] */ BMDDeckControlError *error) = 0;\r
4614         \r
4615         virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
4616             /* [in] */ double rate,\r
4617             /* [out] */ BMDDeckControlError *error) = 0;\r
4618         \r
4619         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
4620             /* [out] */ BSTR *currentTimeCode,\r
4621             /* [out] */ BMDDeckControlError *error) = 0;\r
4622         \r
4623         virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
4624             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
4625             /* [out] */ BMDDeckControlError *error) = 0;\r
4626         \r
4627         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
4628             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
4629             /* [out] */ BMDDeckControlError *error) = 0;\r
4630         \r
4631         virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
4632             /* [in] */ unsigned long prerollSeconds) = 0;\r
4633         \r
4634         virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
4635             /* [out] */ unsigned long *prerollSeconds) = 0;\r
4636         \r
4637         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
4638             /* [in] */ long exportOffsetFields) = 0;\r
4639         \r
4640         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
4641             /* [out] */ long *exportOffsetFields) = 0;\r
4642         \r
4643         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
4644             /* [out] */ long *deckManualExportOffsetFields) = 0;\r
4645         \r
4646         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
4647             /* [in] */ long captureOffsetFields) = 0;\r
4648         \r
4649         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
4650             /* [out] */ long *captureOffsetFields) = 0;\r
4651         \r
4652         virtual HRESULT STDMETHODCALLTYPE StartExport( \r
4653             /* [in] */ BMDTimecodeBCD inTimecode,\r
4654             /* [in] */ BMDTimecodeBCD outTimecode,\r
4655             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
4656             /* [out] */ BMDDeckControlError *error) = 0;\r
4657         \r
4658         virtual HRESULT STDMETHODCALLTYPE StartCapture( \r
4659             /* [in] */ BOOL useVITC,\r
4660             /* [in] */ BMDTimecodeBCD inTimecode,\r
4661             /* [in] */ BMDTimecodeBCD outTimecode,\r
4662             /* [out] */ BMDDeckControlError *error) = 0;\r
4663         \r
4664         virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
4665             /* [out] */ unsigned short *deviceId,\r
4666             /* [out] */ BMDDeckControlError *error) = 0;\r
4667         \r
4668         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
4669         \r
4670         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
4671             /* [out] */ BMDDeckControlError *error) = 0;\r
4672         \r
4673         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
4674             /* [out] */ BMDDeckControlError *error) = 0;\r
4675         \r
4676         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
4677             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
4678         \r
4679     };\r
4680     \r
4681 #else   /* C style interface */\r
4682 \r
4683     typedef struct IDeckLinkDeckControl_v7_9Vtbl\r
4684     {\r
4685         BEGIN_INTERFACE\r
4686         \r
4687         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4688             IDeckLinkDeckControl_v7_9 * This,\r
4689             /* [in] */ REFIID riid,\r
4690             /* [annotation][iid_is][out] */ \r
4691             __RPC__deref_out  void **ppvObject);\r
4692         \r
4693         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4694             IDeckLinkDeckControl_v7_9 * This);\r
4695         \r
4696         ULONG ( STDMETHODCALLTYPE *Release )( \r
4697             IDeckLinkDeckControl_v7_9 * This);\r
4698         \r
4699         HRESULT ( STDMETHODCALLTYPE *Open )( \r
4700             IDeckLinkDeckControl_v7_9 * This,\r
4701             /* [in] */ BMDTimeScale timeScale,\r
4702             /* [in] */ BMDTimeValue timeValue,\r
4703             /* [in] */ BOOL timecodeIsDropFrame,\r
4704             /* [out] */ BMDDeckControlError *error);\r
4705         \r
4706         HRESULT ( STDMETHODCALLTYPE *Close )( \r
4707             IDeckLinkDeckControl_v7_9 * This,\r
4708             /* [in] */ BOOL standbyOn);\r
4709         \r
4710         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
4711             IDeckLinkDeckControl_v7_9 * This,\r
4712             /* [out] */ BMDDeckControlMode *mode,\r
4713             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
4714             /* [out] */ BMDDeckControlStatusFlags *flags);\r
4715         \r
4716         HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
4717             IDeckLinkDeckControl_v7_9 * This,\r
4718             /* [in] */ BOOL standbyOn);\r
4719         \r
4720         HRESULT ( STDMETHODCALLTYPE *Play )( \r
4721             IDeckLinkDeckControl_v7_9 * This,\r
4722             /* [out] */ BMDDeckControlError *error);\r
4723         \r
4724         HRESULT ( STDMETHODCALLTYPE *Stop )( \r
4725             IDeckLinkDeckControl_v7_9 * This,\r
4726             /* [out] */ BMDDeckControlError *error);\r
4727         \r
4728         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
4729             IDeckLinkDeckControl_v7_9 * This,\r
4730             /* [out] */ BMDDeckControlError *error);\r
4731         \r
4732         HRESULT ( STDMETHODCALLTYPE *Eject )( \r
4733             IDeckLinkDeckControl_v7_9 * This,\r
4734             /* [out] */ BMDDeckControlError *error);\r
4735         \r
4736         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
4737             IDeckLinkDeckControl_v7_9 * This,\r
4738             /* [in] */ BMDTimecodeBCD timecode,\r
4739             /* [out] */ BMDDeckControlError *error);\r
4740         \r
4741         HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
4742             IDeckLinkDeckControl_v7_9 * This,\r
4743             /* [in] */ BOOL viewTape,\r
4744             /* [out] */ BMDDeckControlError *error);\r
4745         \r
4746         HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
4747             IDeckLinkDeckControl_v7_9 * This,\r
4748             /* [in] */ BOOL viewTape,\r
4749             /* [out] */ BMDDeckControlError *error);\r
4750         \r
4751         HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
4752             IDeckLinkDeckControl_v7_9 * This,\r
4753             /* [out] */ BMDDeckControlError *error);\r
4754         \r
4755         HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
4756             IDeckLinkDeckControl_v7_9 * This,\r
4757             /* [out] */ BMDDeckControlError *error);\r
4758         \r
4759         HRESULT ( STDMETHODCALLTYPE *Jog )( \r
4760             IDeckLinkDeckControl_v7_9 * This,\r
4761             /* [in] */ double rate,\r
4762             /* [out] */ BMDDeckControlError *error);\r
4763         \r
4764         HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
4765             IDeckLinkDeckControl_v7_9 * This,\r
4766             /* [in] */ double rate,\r
4767             /* [out] */ BMDDeckControlError *error);\r
4768         \r
4769         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
4770             IDeckLinkDeckControl_v7_9 * This,\r
4771             /* [out] */ BSTR *currentTimeCode,\r
4772             /* [out] */ BMDDeckControlError *error);\r
4773         \r
4774         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
4775             IDeckLinkDeckControl_v7_9 * This,\r
4776             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
4777             /* [out] */ BMDDeckControlError *error);\r
4778         \r
4779         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
4780             IDeckLinkDeckControl_v7_9 * This,\r
4781             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
4782             /* [out] */ BMDDeckControlError *error);\r
4783         \r
4784         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
4785             IDeckLinkDeckControl_v7_9 * This,\r
4786             /* [in] */ unsigned long prerollSeconds);\r
4787         \r
4788         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
4789             IDeckLinkDeckControl_v7_9 * This,\r
4790             /* [out] */ unsigned long *prerollSeconds);\r
4791         \r
4792         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
4793             IDeckLinkDeckControl_v7_9 * This,\r
4794             /* [in] */ long exportOffsetFields);\r
4795         \r
4796         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
4797             IDeckLinkDeckControl_v7_9 * This,\r
4798             /* [out] */ long *exportOffsetFields);\r
4799         \r
4800         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
4801             IDeckLinkDeckControl_v7_9 * This,\r
4802             /* [out] */ long *deckManualExportOffsetFields);\r
4803         \r
4804         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
4805             IDeckLinkDeckControl_v7_9 * This,\r
4806             /* [in] */ long captureOffsetFields);\r
4807         \r
4808         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
4809             IDeckLinkDeckControl_v7_9 * This,\r
4810             /* [out] */ long *captureOffsetFields);\r
4811         \r
4812         HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
4813             IDeckLinkDeckControl_v7_9 * This,\r
4814             /* [in] */ BMDTimecodeBCD inTimecode,\r
4815             /* [in] */ BMDTimecodeBCD outTimecode,\r
4816             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
4817             /* [out] */ BMDDeckControlError *error);\r
4818         \r
4819         HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
4820             IDeckLinkDeckControl_v7_9 * This,\r
4821             /* [in] */ BOOL useVITC,\r
4822             /* [in] */ BMDTimecodeBCD inTimecode,\r
4823             /* [in] */ BMDTimecodeBCD outTimecode,\r
4824             /* [out] */ BMDDeckControlError *error);\r
4825         \r
4826         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
4827             IDeckLinkDeckControl_v7_9 * This,\r
4828             /* [out] */ unsigned short *deviceId,\r
4829             /* [out] */ BMDDeckControlError *error);\r
4830         \r
4831         HRESULT ( STDMETHODCALLTYPE *Abort )( \r
4832             IDeckLinkDeckControl_v7_9 * This);\r
4833         \r
4834         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
4835             IDeckLinkDeckControl_v7_9 * This,\r
4836             /* [out] */ BMDDeckControlError *error);\r
4837         \r
4838         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
4839             IDeckLinkDeckControl_v7_9 * This,\r
4840             /* [out] */ BMDDeckControlError *error);\r
4841         \r
4842         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
4843             IDeckLinkDeckControl_v7_9 * This,\r
4844             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
4845         \r
4846         END_INTERFACE\r
4847     } IDeckLinkDeckControl_v7_9Vtbl;\r
4848 \r
4849     interface IDeckLinkDeckControl_v7_9\r
4850     {\r
4851         CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;\r
4852     };\r
4853 \r
4854     \r
4855 \r
4856 #ifdef COBJMACROS\r
4857 \r
4858 \r
4859 #define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject)   \\r
4860     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4861 \r
4862 #define IDeckLinkDeckControl_v7_9_AddRef(This)  \\r
4863     ( (This)->lpVtbl -> AddRef(This) ) \r
4864 \r
4865 #define IDeckLinkDeckControl_v7_9_Release(This) \\r
4866     ( (This)->lpVtbl -> Release(This) ) \r
4867 \r
4868 \r
4869 #define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)      \\r
4870     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
4871 \r
4872 #define IDeckLinkDeckControl_v7_9_Close(This,standbyOn) \\r
4873     ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
4874 \r
4875 #define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags)      \\r
4876     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
4877 \r
4878 #define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn)    \\r
4879     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
4880 \r
4881 #define IDeckLinkDeckControl_v7_9_Play(This,error)      \\r
4882     ( (This)->lpVtbl -> Play(This,error) ) \r
4883 \r
4884 #define IDeckLinkDeckControl_v7_9_Stop(This,error)      \\r
4885     ( (This)->lpVtbl -> Stop(This,error) ) \r
4886 \r
4887 #define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error)    \\r
4888     ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
4889 \r
4890 #define IDeckLinkDeckControl_v7_9_Eject(This,error)     \\r
4891     ( (This)->lpVtbl -> Eject(This,error) ) \r
4892 \r
4893 #define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error)     \\r
4894     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
4895 \r
4896 #define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error)      \\r
4897     ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
4898 \r
4899 #define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error)   \\r
4900     ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
4901 \r
4902 #define IDeckLinkDeckControl_v7_9_StepForward(This,error)       \\r
4903     ( (This)->lpVtbl -> StepForward(This,error) ) \r
4904 \r
4905 #define IDeckLinkDeckControl_v7_9_StepBack(This,error)  \\r
4906     ( (This)->lpVtbl -> StepBack(This,error) ) \r
4907 \r
4908 #define IDeckLinkDeckControl_v7_9_Jog(This,rate,error)  \\r
4909     ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
4910 \r
4911 #define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error)      \\r
4912     ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
4913 \r
4914 #define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error) \\r
4915     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
4916 \r
4917 #define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error)       \\r
4918     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
4919 \r
4920 #define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error)    \\r
4921     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
4922 \r
4923 #define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds)       \\r
4924     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
4925 \r
4926 #define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds)       \\r
4927     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
4928 \r
4929 #define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields)      \\r
4930     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
4931 \r
4932 #define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields)      \\r
4933     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
4934 \r
4935 #define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields)      \\r
4936     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
4937 \r
4938 #define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields)    \\r
4939     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
4940 \r
4941 #define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields)    \\r
4942     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
4943 \r
4944 #define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error)  \\r
4945     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
4946 \r
4947 #define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error)       \\r
4948     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
4949 \r
4950 #define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error)      \\r
4951     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
4952 \r
4953 #define IDeckLinkDeckControl_v7_9_Abort(This)   \\r
4954     ( (This)->lpVtbl -> Abort(This) ) \r
4955 \r
4956 #define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error)  \\r
4957     ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
4958 \r
4959 #define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error)   \\r
4960     ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
4961 \r
4962 #define IDeckLinkDeckControl_v7_9_SetCallback(This,callback)    \\r
4963     ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
4964 \r
4965 #endif /* COBJMACROS */\r
4966 \r
4967 \r
4968 #endif  /* C style interface */\r
4969 \r
4970 \r
4971 \r
4972 \r
4973 #endif  /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */\r
4974 \r
4975 \r
4976 #ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
4977 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
4978 \r
4979 /* interface IDeckLinkDisplayModeIterator_v7_6 */\r
4980 /* [helpstring][uuid][object] */ \r
4981 \r
4982 \r
4983 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;\r
4984 \r
4985 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4986     \r
4987     MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")\r
4988     IDeckLinkDisplayModeIterator_v7_6 : public IUnknown\r
4989     {\r
4990     public:\r
4991         virtual HRESULT STDMETHODCALLTYPE Next( \r
4992             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;\r
4993         \r
4994     };\r
4995     \r
4996 #else   /* C style interface */\r
4997 \r
4998     typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl\r
4999     {\r
5000         BEGIN_INTERFACE\r
5001         \r
5002         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5003             IDeckLinkDisplayModeIterator_v7_6 * This,\r
5004             /* [in] */ REFIID riid,\r
5005             /* [annotation][iid_is][out] */ \r
5006             __RPC__deref_out  void **ppvObject);\r
5007         \r
5008         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5009             IDeckLinkDisplayModeIterator_v7_6 * This);\r
5010         \r
5011         ULONG ( STDMETHODCALLTYPE *Release )( \r
5012             IDeckLinkDisplayModeIterator_v7_6 * This);\r
5013         \r
5014         HRESULT ( STDMETHODCALLTYPE *Next )( \r
5015             IDeckLinkDisplayModeIterator_v7_6 * This,\r
5016             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);\r
5017         \r
5018         END_INTERFACE\r
5019     } IDeckLinkDisplayModeIterator_v7_6Vtbl;\r
5020 \r
5021     interface IDeckLinkDisplayModeIterator_v7_6\r
5022     {\r
5023         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;\r
5024     };\r
5025 \r
5026     \r
5027 \r
5028 #ifdef COBJMACROS\r
5029 \r
5030 \r
5031 #define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject)   \\r
5032     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5033 \r
5034 #define IDeckLinkDisplayModeIterator_v7_6_AddRef(This)  \\r
5035     ( (This)->lpVtbl -> AddRef(This) ) \r
5036 \r
5037 #define IDeckLinkDisplayModeIterator_v7_6_Release(This) \\r
5038     ( (This)->lpVtbl -> Release(This) ) \r
5039 \r
5040 \r
5041 #define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode)        \\r
5042     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
5043 \r
5044 #endif /* COBJMACROS */\r
5045 \r
5046 \r
5047 #endif  /* C style interface */\r
5048 \r
5049 \r
5050 \r
5051 \r
5052 #endif  /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */\r
5053 \r
5054 \r
5055 #ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__\r
5056 #define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__\r
5057 \r
5058 /* interface IDeckLinkDisplayMode_v7_6 */\r
5059 /* [helpstring][uuid][object] */ \r
5060 \r
5061 \r
5062 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;\r
5063 \r
5064 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5065     \r
5066     MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")\r
5067     IDeckLinkDisplayMode_v7_6 : public IUnknown\r
5068     {\r
5069     public:\r
5070         virtual HRESULT STDMETHODCALLTYPE GetName( \r
5071             /* [out] */ BSTR *name) = 0;\r
5072         \r
5073         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
5074         \r
5075         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
5076         \r
5077         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
5078         \r
5079         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
5080             /* [out] */ BMDTimeValue *frameDuration,\r
5081             /* [out] */ BMDTimeScale *timeScale) = 0;\r
5082         \r
5083         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
5084         \r
5085     };\r
5086     \r
5087 #else   /* C style interface */\r
5088 \r
5089     typedef struct IDeckLinkDisplayMode_v7_6Vtbl\r
5090     {\r
5091         BEGIN_INTERFACE\r
5092         \r
5093         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5094             IDeckLinkDisplayMode_v7_6 * This,\r
5095             /* [in] */ REFIID riid,\r
5096             /* [annotation][iid_is][out] */ \r
5097             __RPC__deref_out  void **ppvObject);\r
5098         \r
5099         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5100             IDeckLinkDisplayMode_v7_6 * This);\r
5101         \r
5102         ULONG ( STDMETHODCALLTYPE *Release )( \r
5103             IDeckLinkDisplayMode_v7_6 * This);\r
5104         \r
5105         HRESULT ( STDMETHODCALLTYPE *GetName )( \r
5106             IDeckLinkDisplayMode_v7_6 * This,\r
5107             /* [out] */ BSTR *name);\r
5108         \r
5109         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
5110             IDeckLinkDisplayMode_v7_6 * This);\r
5111         \r
5112         long ( STDMETHODCALLTYPE *GetWidth )( \r
5113             IDeckLinkDisplayMode_v7_6 * This);\r
5114         \r
5115         long ( STDMETHODCALLTYPE *GetHeight )( \r
5116             IDeckLinkDisplayMode_v7_6 * This);\r
5117         \r
5118         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
5119             IDeckLinkDisplayMode_v7_6 * This,\r
5120             /* [out] */ BMDTimeValue *frameDuration,\r
5121             /* [out] */ BMDTimeScale *timeScale);\r
5122         \r
5123         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
5124             IDeckLinkDisplayMode_v7_6 * This);\r
5125         \r
5126         END_INTERFACE\r
5127     } IDeckLinkDisplayMode_v7_6Vtbl;\r
5128 \r
5129     interface IDeckLinkDisplayMode_v7_6\r
5130     {\r
5131         CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;\r
5132     };\r
5133 \r
5134     \r
5135 \r
5136 #ifdef COBJMACROS\r
5137 \r
5138 \r
5139 #define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject)   \\r
5140     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5141 \r
5142 #define IDeckLinkDisplayMode_v7_6_AddRef(This)  \\r
5143     ( (This)->lpVtbl -> AddRef(This) ) \r
5144 \r
5145 #define IDeckLinkDisplayMode_v7_6_Release(This) \\r
5146     ( (This)->lpVtbl -> Release(This) ) \r
5147 \r
5148 \r
5149 #define IDeckLinkDisplayMode_v7_6_GetName(This,name)    \\r
5150     ( (This)->lpVtbl -> GetName(This,name) ) \r
5151 \r
5152 #define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This)  \\r
5153     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
5154 \r
5155 #define IDeckLinkDisplayMode_v7_6_GetWidth(This)        \\r
5156     ( (This)->lpVtbl -> GetWidth(This) ) \r
5157 \r
5158 #define IDeckLinkDisplayMode_v7_6_GetHeight(This)       \\r
5159     ( (This)->lpVtbl -> GetHeight(This) ) \r
5160 \r
5161 #define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale)    \\r
5162     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
5163 \r
5164 #define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This)       \\r
5165     ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
5166 \r
5167 #endif /* COBJMACROS */\r
5168 \r
5169 \r
5170 #endif  /* C style interface */\r
5171 \r
5172 \r
5173 \r
5174 \r
5175 #endif  /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */\r
5176 \r
5177 \r
5178 #ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__\r
5179 #define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__\r
5180 \r
5181 /* interface IDeckLinkOutput_v7_6 */\r
5182 /* [helpstring][local][uuid][object] */ \r
5183 \r
5184 \r
5185 EXTERN_C const IID IID_IDeckLinkOutput_v7_6;\r
5186 \r
5187 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5188     \r
5189     MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")\r
5190     IDeckLinkOutput_v7_6 : public IUnknown\r
5191     {\r
5192     public:\r
5193         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
5194             BMDDisplayMode displayMode,\r
5195             BMDPixelFormat pixelFormat,\r
5196             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
5197         \r
5198         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
5199             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
5200         \r
5201         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
5202             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;\r
5203         \r
5204         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
5205             BMDDisplayMode displayMode,\r
5206             BMDVideoOutputFlags flags) = 0;\r
5207         \r
5208         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
5209         \r
5210         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
5211             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
5212         \r
5213         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
5214             long width,\r
5215             long height,\r
5216             long rowBytes,\r
5217             BMDPixelFormat pixelFormat,\r
5218             BMDFrameFlags flags,\r
5219             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
5220         \r
5221         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
5222             BMDPixelFormat pixelFormat,\r
5223             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
5224         \r
5225         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
5226             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
5227         \r
5228         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
5229             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
5230             BMDTimeValue displayTime,\r
5231             BMDTimeValue displayDuration,\r
5232             BMDTimeScale timeScale) = 0;\r
5233         \r
5234         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
5235             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;\r
5236         \r
5237         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
5238             /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
5239         \r
5240         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
5241             BMDAudioSampleRate sampleRate,\r
5242             BMDAudioSampleType sampleType,\r
5243             unsigned long channelCount,\r
5244             BMDAudioOutputStreamType streamType) = 0;\r
5245         \r
5246         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
5247         \r
5248         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
5249             /* [in] */ void *buffer,\r
5250             unsigned long sampleFrameCount,\r
5251             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
5252         \r
5253         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
5254         \r
5255         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
5256         \r
5257         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
5258             /* [in] */ void *buffer,\r
5259             unsigned long sampleFrameCount,\r
5260             BMDTimeValue streamTime,\r
5261             BMDTimeScale timeScale,\r
5262             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
5263         \r
5264         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
5265             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
5266         \r
5267         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
5268         \r
5269         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
5270             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
5271         \r
5272         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
5273             BMDTimeValue playbackStartTime,\r
5274             BMDTimeScale timeScale,\r
5275             double playbackSpeed) = 0;\r
5276         \r
5277         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
5278             BMDTimeValue stopPlaybackAtTime,\r
5279             /* [out] */ BMDTimeValue *actualStopTime,\r
5280             BMDTimeScale timeScale) = 0;\r
5281         \r
5282         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
5283             /* [out] */ BOOL *active) = 0;\r
5284         \r
5285         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
5286             BMDTimeScale desiredTimeScale,\r
5287             /* [out] */ BMDTimeValue *streamTime,\r
5288             /* [out] */ double *playbackSpeed) = 0;\r
5289         \r
5290         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
5291             BMDTimeScale desiredTimeScale,\r
5292             /* [out] */ BMDTimeValue *hardwareTime,\r
5293             /* [out] */ BMDTimeValue *timeInFrame,\r
5294             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
5295         \r
5296     };\r
5297     \r
5298 #else   /* C style interface */\r
5299 \r
5300     typedef struct IDeckLinkOutput_v7_6Vtbl\r
5301     {\r
5302         BEGIN_INTERFACE\r
5303         \r
5304         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5305             IDeckLinkOutput_v7_6 * This,\r
5306             /* [in] */ REFIID riid,\r
5307             /* [annotation][iid_is][out] */ \r
5308             __RPC__deref_out  void **ppvObject);\r
5309         \r
5310         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5311             IDeckLinkOutput_v7_6 * This);\r
5312         \r
5313         ULONG ( STDMETHODCALLTYPE *Release )( \r
5314             IDeckLinkOutput_v7_6 * This);\r
5315         \r
5316         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
5317             IDeckLinkOutput_v7_6 * This,\r
5318             BMDDisplayMode displayMode,\r
5319             BMDPixelFormat pixelFormat,\r
5320             /* [out] */ BMDDisplayModeSupport *result);\r
5321         \r
5322         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
5323             IDeckLinkOutput_v7_6 * This,\r
5324             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
5325         \r
5326         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
5327             IDeckLinkOutput_v7_6 * This,\r
5328             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);\r
5329         \r
5330         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
5331             IDeckLinkOutput_v7_6 * This,\r
5332             BMDDisplayMode displayMode,\r
5333             BMDVideoOutputFlags flags);\r
5334         \r
5335         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
5336             IDeckLinkOutput_v7_6 * This);\r
5337         \r
5338         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
5339             IDeckLinkOutput_v7_6 * This,\r
5340             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
5341         \r
5342         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
5343             IDeckLinkOutput_v7_6 * This,\r
5344             long width,\r
5345             long height,\r
5346             long rowBytes,\r
5347             BMDPixelFormat pixelFormat,\r
5348             BMDFrameFlags flags,\r
5349             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
5350         \r
5351         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
5352             IDeckLinkOutput_v7_6 * This,\r
5353             BMDPixelFormat pixelFormat,\r
5354             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
5355         \r
5356         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
5357             IDeckLinkOutput_v7_6 * This,\r
5358             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
5359         \r
5360         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
5361             IDeckLinkOutput_v7_6 * This,\r
5362             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
5363             BMDTimeValue displayTime,\r
5364             BMDTimeValue displayDuration,\r
5365             BMDTimeScale timeScale);\r
5366         \r
5367         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
5368             IDeckLinkOutput_v7_6 * This,\r
5369             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);\r
5370         \r
5371         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
5372             IDeckLinkOutput_v7_6 * This,\r
5373             /* [out] */ unsigned long *bufferedFrameCount);\r
5374         \r
5375         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
5376             IDeckLinkOutput_v7_6 * This,\r
5377             BMDAudioSampleRate sampleRate,\r
5378             BMDAudioSampleType sampleType,\r
5379             unsigned long channelCount,\r
5380             BMDAudioOutputStreamType streamType);\r
5381         \r
5382         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
5383             IDeckLinkOutput_v7_6 * This);\r
5384         \r
5385         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
5386             IDeckLinkOutput_v7_6 * This,\r
5387             /* [in] */ void *buffer,\r
5388             unsigned long sampleFrameCount,\r
5389             /* [out] */ unsigned long *sampleFramesWritten);\r
5390         \r
5391         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
5392             IDeckLinkOutput_v7_6 * This);\r
5393         \r
5394         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
5395             IDeckLinkOutput_v7_6 * This);\r
5396         \r
5397         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
5398             IDeckLinkOutput_v7_6 * This,\r
5399             /* [in] */ void *buffer,\r
5400             unsigned long sampleFrameCount,\r
5401             BMDTimeValue streamTime,\r
5402             BMDTimeScale timeScale,\r
5403             /* [out] */ unsigned long *sampleFramesWritten);\r
5404         \r
5405         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
5406             IDeckLinkOutput_v7_6 * This,\r
5407             /* [out] */ unsigned long *bufferedSampleFrameCount);\r
5408         \r
5409         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
5410             IDeckLinkOutput_v7_6 * This);\r
5411         \r
5412         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
5413             IDeckLinkOutput_v7_6 * This,\r
5414             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
5415         \r
5416         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
5417             IDeckLinkOutput_v7_6 * This,\r
5418             BMDTimeValue playbackStartTime,\r
5419             BMDTimeScale timeScale,\r
5420             double playbackSpeed);\r
5421         \r
5422         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
5423             IDeckLinkOutput_v7_6 * This,\r
5424             BMDTimeValue stopPlaybackAtTime,\r
5425             /* [out] */ BMDTimeValue *actualStopTime,\r
5426             BMDTimeScale timeScale);\r
5427         \r
5428         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
5429             IDeckLinkOutput_v7_6 * This,\r
5430             /* [out] */ BOOL *active);\r
5431         \r
5432         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
5433             IDeckLinkOutput_v7_6 * This,\r
5434             BMDTimeScale desiredTimeScale,\r
5435             /* [out] */ BMDTimeValue *streamTime,\r
5436             /* [out] */ double *playbackSpeed);\r
5437         \r
5438         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
5439             IDeckLinkOutput_v7_6 * This,\r
5440             BMDTimeScale desiredTimeScale,\r
5441             /* [out] */ BMDTimeValue *hardwareTime,\r
5442             /* [out] */ BMDTimeValue *timeInFrame,\r
5443             /* [out] */ BMDTimeValue *ticksPerFrame);\r
5444         \r
5445         END_INTERFACE\r
5446     } IDeckLinkOutput_v7_6Vtbl;\r
5447 \r
5448     interface IDeckLinkOutput_v7_6\r
5449     {\r
5450         CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;\r
5451     };\r
5452 \r
5453     \r
5454 \r
5455 #ifdef COBJMACROS\r
5456 \r
5457 \r
5458 #define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject)        \\r
5459     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5460 \r
5461 #define IDeckLinkOutput_v7_6_AddRef(This)       \\r
5462     ( (This)->lpVtbl -> AddRef(This) ) \r
5463 \r
5464 #define IDeckLinkOutput_v7_6_Release(This)      \\r
5465     ( (This)->lpVtbl -> Release(This) ) \r
5466 \r
5467 \r
5468 #define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
5469     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
5470 \r
5471 #define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator)      \\r
5472     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
5473 \r
5474 #define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback)     \\r
5475     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
5476 \r
5477 #define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags)  \\r
5478     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
5479 \r
5480 #define IDeckLinkOutput_v7_6_DisableVideoOutput(This)   \\r
5481     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
5482 \r
5483 #define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \\r
5484     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
5485 \r
5486 #define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \\r
5487     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
5488 \r
5489 #define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer)    \\r
5490     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
5491 \r
5492 #define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame)       \\r
5493     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
5494 \r
5495 #define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \\r
5496     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
5497 \r
5498 #define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback)      \\r
5499     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
5500 \r
5501 #define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount)        \\r
5502     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
5503 \r
5504 #define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)      \\r
5505     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
5506 \r
5507 #define IDeckLinkOutput_v7_6_DisableAudioOutput(This)   \\r
5508     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
5509 \r
5510 #define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \\r
5511     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
5512 \r
5513 #define IDeckLinkOutput_v7_6_BeginAudioPreroll(This)    \\r
5514     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
5515 \r
5516 #define IDeckLinkOutput_v7_6_EndAudioPreroll(This)      \\r
5517     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
5518 \r
5519 #define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \\r
5520     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
5521 \r
5522 #define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)    \\r
5523     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
5524 \r
5525 #define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This)    \\r
5526     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
5527 \r
5528 #define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback) \\r
5529     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
5530 \r
5531 #define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \\r
5532     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
5533 \r
5534 #define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \\r
5535     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
5536 \r
5537 #define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active)    \\r
5538     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
5539 \r
5540 #define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)     \\r
5541     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
5542 \r
5543 #define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)    \\r
5544     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
5545 \r
5546 #endif /* COBJMACROS */\r
5547 \r
5548 \r
5549 #endif  /* C style interface */\r
5550 \r
5551 \r
5552 \r
5553 \r
5554 #endif  /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */\r
5555 \r
5556 \r
5557 #ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__\r
5558 #define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__\r
5559 \r
5560 /* interface IDeckLinkInput_v7_6 */\r
5561 /* [helpstring][uuid][object] */ \r
5562 \r
5563 \r
5564 EXTERN_C const IID IID_IDeckLinkInput_v7_6;\r
5565 \r
5566 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5567     \r
5568     MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")\r
5569     IDeckLinkInput_v7_6 : public IUnknown\r
5570     {\r
5571     public:\r
5572         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
5573             BMDDisplayMode displayMode,\r
5574             BMDPixelFormat pixelFormat,\r
5575             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
5576         \r
5577         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
5578             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
5579         \r
5580         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
5581             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;\r
5582         \r
5583         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
5584             BMDDisplayMode displayMode,\r
5585             BMDPixelFormat pixelFormat,\r
5586             BMDVideoInputFlags flags) = 0;\r
5587         \r
5588         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
5589         \r
5590         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
5591             /* [out] */ unsigned long *availableFrameCount) = 0;\r
5592         \r
5593         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
5594             BMDAudioSampleRate sampleRate,\r
5595             BMDAudioSampleType sampleType,\r
5596             unsigned long channelCount) = 0;\r
5597         \r
5598         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
5599         \r
5600         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
5601             /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
5602         \r
5603         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
5604         \r
5605         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
5606         \r
5607         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
5608         \r
5609         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
5610         \r
5611         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
5612             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;\r
5613         \r
5614         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
5615             BMDTimeScale desiredTimeScale,\r
5616             /* [out] */ BMDTimeValue *hardwareTime,\r
5617             /* [out] */ BMDTimeValue *timeInFrame,\r
5618             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
5619         \r
5620     };\r
5621     \r
5622 #else   /* C style interface */\r
5623 \r
5624     typedef struct IDeckLinkInput_v7_6Vtbl\r
5625     {\r
5626         BEGIN_INTERFACE\r
5627         \r
5628         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5629             IDeckLinkInput_v7_6 * This,\r
5630             /* [in] */ REFIID riid,\r
5631             /* [annotation][iid_is][out] */ \r
5632             __RPC__deref_out  void **ppvObject);\r
5633         \r
5634         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5635             IDeckLinkInput_v7_6 * This);\r
5636         \r
5637         ULONG ( STDMETHODCALLTYPE *Release )( \r
5638             IDeckLinkInput_v7_6 * This);\r
5639         \r
5640         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
5641             IDeckLinkInput_v7_6 * This,\r
5642             BMDDisplayMode displayMode,\r
5643             BMDPixelFormat pixelFormat,\r
5644             /* [out] */ BMDDisplayModeSupport *result);\r
5645         \r
5646         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
5647             IDeckLinkInput_v7_6 * This,\r
5648             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
5649         \r
5650         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
5651             IDeckLinkInput_v7_6 * This,\r
5652             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);\r
5653         \r
5654         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
5655             IDeckLinkInput_v7_6 * This,\r
5656             BMDDisplayMode displayMode,\r
5657             BMDPixelFormat pixelFormat,\r
5658             BMDVideoInputFlags flags);\r
5659         \r
5660         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
5661             IDeckLinkInput_v7_6 * This);\r
5662         \r
5663         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
5664             IDeckLinkInput_v7_6 * This,\r
5665             /* [out] */ unsigned long *availableFrameCount);\r
5666         \r
5667         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
5668             IDeckLinkInput_v7_6 * This,\r
5669             BMDAudioSampleRate sampleRate,\r
5670             BMDAudioSampleType sampleType,\r
5671             unsigned long channelCount);\r
5672         \r
5673         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
5674             IDeckLinkInput_v7_6 * This);\r
5675         \r
5676         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
5677             IDeckLinkInput_v7_6 * This,\r
5678             /* [out] */ unsigned long *availableSampleFrameCount);\r
5679         \r
5680         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
5681             IDeckLinkInput_v7_6 * This);\r
5682         \r
5683         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
5684             IDeckLinkInput_v7_6 * This);\r
5685         \r
5686         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
5687             IDeckLinkInput_v7_6 * This);\r
5688         \r
5689         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
5690             IDeckLinkInput_v7_6 * This);\r
5691         \r
5692         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
5693             IDeckLinkInput_v7_6 * This,\r
5694             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);\r
5695         \r
5696         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
5697             IDeckLinkInput_v7_6 * This,\r
5698             BMDTimeScale desiredTimeScale,\r
5699             /* [out] */ BMDTimeValue *hardwareTime,\r
5700             /* [out] */ BMDTimeValue *timeInFrame,\r
5701             /* [out] */ BMDTimeValue *ticksPerFrame);\r
5702         \r
5703         END_INTERFACE\r
5704     } IDeckLinkInput_v7_6Vtbl;\r
5705 \r
5706     interface IDeckLinkInput_v7_6\r
5707     {\r
5708         CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;\r
5709     };\r
5710 \r
5711     \r
5712 \r
5713 #ifdef COBJMACROS\r
5714 \r
5715 \r
5716 #define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject) \\r
5717     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5718 \r
5719 #define IDeckLinkInput_v7_6_AddRef(This)        \\r
5720     ( (This)->lpVtbl -> AddRef(This) ) \r
5721 \r
5722 #define IDeckLinkInput_v7_6_Release(This)       \\r
5723     ( (This)->lpVtbl -> Release(This) ) \r
5724 \r
5725 \r
5726 #define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \\r
5727     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
5728 \r
5729 #define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator)       \\r
5730     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
5731 \r
5732 #define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback)      \\r
5733     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
5734 \r
5735 #define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags)        \\r
5736     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
5737 \r
5738 #define IDeckLinkInput_v7_6_DisableVideoInput(This)     \\r
5739     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
5740 \r
5741 #define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount)       \\r
5742     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
5743 \r
5744 #define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \\r
5745     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
5746 \r
5747 #define IDeckLinkInput_v7_6_DisableAudioInput(This)     \\r
5748     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
5749 \r
5750 #define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)   \\r
5751     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
5752 \r
5753 #define IDeckLinkInput_v7_6_StartStreams(This)  \\r
5754     ( (This)->lpVtbl -> StartStreams(This) ) \r
5755 \r
5756 #define IDeckLinkInput_v7_6_StopStreams(This)   \\r
5757     ( (This)->lpVtbl -> StopStreams(This) ) \r
5758 \r
5759 #define IDeckLinkInput_v7_6_PauseStreams(This)  \\r
5760     ( (This)->lpVtbl -> PauseStreams(This) ) \r
5761 \r
5762 #define IDeckLinkInput_v7_6_FlushStreams(This)  \\r
5763     ( (This)->lpVtbl -> FlushStreams(This) ) \r
5764 \r
5765 #define IDeckLinkInput_v7_6_SetCallback(This,theCallback)       \\r
5766     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
5767 \r
5768 #define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)     \\r
5769     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
5770 \r
5771 #endif /* COBJMACROS */\r
5772 \r
5773 \r
5774 #endif  /* C style interface */\r
5775 \r
5776 \r
5777 \r
5778 \r
5779 #endif  /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */\r
5780 \r
5781 \r
5782 #ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__\r
5783 #define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__\r
5784 \r
5785 /* interface IDeckLinkTimecode_v7_6 */\r
5786 /* [helpstring][uuid][object] */ \r
5787 \r
5788 \r
5789 EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;\r
5790 \r
5791 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5792     \r
5793     MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")\r
5794     IDeckLinkTimecode_v7_6 : public IUnknown\r
5795     {\r
5796     public:\r
5797         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
5798         \r
5799         virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
5800             /* [out] */ unsigned char *hours,\r
5801             /* [out] */ unsigned char *minutes,\r
5802             /* [out] */ unsigned char *seconds,\r
5803             /* [out] */ unsigned char *frames) = 0;\r
5804         \r
5805         virtual HRESULT STDMETHODCALLTYPE GetString( \r
5806             /* [out] */ BSTR *timecode) = 0;\r
5807         \r
5808         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
5809         \r
5810     };\r
5811     \r
5812 #else   /* C style interface */\r
5813 \r
5814     typedef struct IDeckLinkTimecode_v7_6Vtbl\r
5815     {\r
5816         BEGIN_INTERFACE\r
5817         \r
5818         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5819             IDeckLinkTimecode_v7_6 * This,\r
5820             /* [in] */ REFIID riid,\r
5821             /* [annotation][iid_is][out] */ \r
5822             __RPC__deref_out  void **ppvObject);\r
5823         \r
5824         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5825             IDeckLinkTimecode_v7_6 * This);\r
5826         \r
5827         ULONG ( STDMETHODCALLTYPE *Release )( \r
5828             IDeckLinkTimecode_v7_6 * This);\r
5829         \r
5830         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
5831             IDeckLinkTimecode_v7_6 * This);\r
5832         \r
5833         HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
5834             IDeckLinkTimecode_v7_6 * This,\r
5835             /* [out] */ unsigned char *hours,\r
5836             /* [out] */ unsigned char *minutes,\r
5837             /* [out] */ unsigned char *seconds,\r
5838             /* [out] */ unsigned char *frames);\r
5839         \r
5840         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
5841             IDeckLinkTimecode_v7_6 * This,\r
5842             /* [out] */ BSTR *timecode);\r
5843         \r
5844         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
5845             IDeckLinkTimecode_v7_6 * This);\r
5846         \r
5847         END_INTERFACE\r
5848     } IDeckLinkTimecode_v7_6Vtbl;\r
5849 \r
5850     interface IDeckLinkTimecode_v7_6\r
5851     {\r
5852         CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;\r
5853     };\r
5854 \r
5855     \r
5856 \r
5857 #ifdef COBJMACROS\r
5858 \r
5859 \r
5860 #define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject)      \\r
5861     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5862 \r
5863 #define IDeckLinkTimecode_v7_6_AddRef(This)     \\r
5864     ( (This)->lpVtbl -> AddRef(This) ) \r
5865 \r
5866 #define IDeckLinkTimecode_v7_6_Release(This)    \\r
5867     ( (This)->lpVtbl -> Release(This) ) \r
5868 \r
5869 \r
5870 #define IDeckLinkTimecode_v7_6_GetBCD(This)     \\r
5871     ( (This)->lpVtbl -> GetBCD(This) ) \r
5872 \r
5873 #define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames) \\r
5874     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
5875 \r
5876 #define IDeckLinkTimecode_v7_6_GetString(This,timecode) \\r
5877     ( (This)->lpVtbl -> GetString(This,timecode) ) \r
5878 \r
5879 #define IDeckLinkTimecode_v7_6_GetFlags(This)   \\r
5880     ( (This)->lpVtbl -> GetFlags(This) ) \r
5881 \r
5882 #endif /* COBJMACROS */\r
5883 \r
5884 \r
5885 #endif  /* C style interface */\r
5886 \r
5887 \r
5888 \r
5889 \r
5890 #endif  /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */\r
5891 \r
5892 \r
5893 #ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__\r
5894 #define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__\r
5895 \r
5896 /* interface IDeckLinkVideoFrame_v7_6 */\r
5897 /* [helpstring][local][uuid][object] */ \r
5898 \r
5899 \r
5900 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;\r
5901 \r
5902 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5903     \r
5904     MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")\r
5905     IDeckLinkVideoFrame_v7_6 : public IUnknown\r
5906     {\r
5907     public:\r
5908         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
5909         \r
5910         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
5911         \r
5912         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
5913         \r
5914         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
5915         \r
5916         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
5917         \r
5918         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
5919             /* [out] */ void **buffer) = 0;\r
5920         \r
5921         virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
5922             BMDTimecodeFormat format,\r
5923             /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;\r
5924         \r
5925         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
5926             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
5927         \r
5928     };\r
5929     \r
5930 #else   /* C style interface */\r
5931 \r
5932     typedef struct IDeckLinkVideoFrame_v7_6Vtbl\r
5933     {\r
5934         BEGIN_INTERFACE\r
5935         \r
5936         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5937             IDeckLinkVideoFrame_v7_6 * This,\r
5938             /* [in] */ REFIID riid,\r
5939             /* [annotation][iid_is][out] */ \r
5940             __RPC__deref_out  void **ppvObject);\r
5941         \r
5942         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5943             IDeckLinkVideoFrame_v7_6 * This);\r
5944         \r
5945         ULONG ( STDMETHODCALLTYPE *Release )( \r
5946             IDeckLinkVideoFrame_v7_6 * This);\r
5947         \r
5948         long ( STDMETHODCALLTYPE *GetWidth )( \r
5949             IDeckLinkVideoFrame_v7_6 * This);\r
5950         \r
5951         long ( STDMETHODCALLTYPE *GetHeight )( \r
5952             IDeckLinkVideoFrame_v7_6 * This);\r
5953         \r
5954         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
5955             IDeckLinkVideoFrame_v7_6 * This);\r
5956         \r
5957         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
5958             IDeckLinkVideoFrame_v7_6 * This);\r
5959         \r
5960         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
5961             IDeckLinkVideoFrame_v7_6 * This);\r
5962         \r
5963         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
5964             IDeckLinkVideoFrame_v7_6 * This,\r
5965             /* [out] */ void **buffer);\r
5966         \r
5967         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
5968             IDeckLinkVideoFrame_v7_6 * This,\r
5969             BMDTimecodeFormat format,\r
5970             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
5971         \r
5972         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
5973             IDeckLinkVideoFrame_v7_6 * This,\r
5974             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
5975         \r
5976         END_INTERFACE\r
5977     } IDeckLinkVideoFrame_v7_6Vtbl;\r
5978 \r
5979     interface IDeckLinkVideoFrame_v7_6\r
5980     {\r
5981         CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;\r
5982     };\r
5983 \r
5984     \r
5985 \r
5986 #ifdef COBJMACROS\r
5987 \r
5988 \r
5989 #define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)    \\r
5990     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5991 \r
5992 #define IDeckLinkVideoFrame_v7_6_AddRef(This)   \\r
5993     ( (This)->lpVtbl -> AddRef(This) ) \r
5994 \r
5995 #define IDeckLinkVideoFrame_v7_6_Release(This)  \\r
5996     ( (This)->lpVtbl -> Release(This) ) \r
5997 \r
5998 \r
5999 #define IDeckLinkVideoFrame_v7_6_GetWidth(This) \\r
6000     ( (This)->lpVtbl -> GetWidth(This) ) \r
6001 \r
6002 #define IDeckLinkVideoFrame_v7_6_GetHeight(This)        \\r
6003     ( (This)->lpVtbl -> GetHeight(This) ) \r
6004 \r
6005 #define IDeckLinkVideoFrame_v7_6_GetRowBytes(This)      \\r
6006     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
6007 \r
6008 #define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This)   \\r
6009     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
6010 \r
6011 #define IDeckLinkVideoFrame_v7_6_GetFlags(This) \\r
6012     ( (This)->lpVtbl -> GetFlags(This) ) \r
6013 \r
6014 #define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer)  \\r
6015     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
6016 \r
6017 #define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode)      \\r
6018     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
6019 \r
6020 #define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary)       \\r
6021     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
6022 \r
6023 #endif /* COBJMACROS */\r
6024 \r
6025 \r
6026 #endif  /* C style interface */\r
6027 \r
6028 \r
6029 \r
6030 \r
6031 #endif  /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */\r
6032 \r
6033 \r
6034 #ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__\r
6035 #define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__\r
6036 \r
6037 /* interface IDeckLinkMutableVideoFrame_v7_6 */\r
6038 /* [helpstring][local][uuid][object] */ \r
6039 \r
6040 \r
6041 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;\r
6042 \r
6043 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6044     \r
6045     MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")\r
6046     IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6\r
6047     {\r
6048     public:\r
6049         virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
6050             BMDFrameFlags newFlags) = 0;\r
6051         \r
6052         virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
6053             BMDTimecodeFormat format,\r
6054             /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;\r
6055         \r
6056         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
6057             BMDTimecodeFormat format,\r
6058             unsigned char hours,\r
6059             unsigned char minutes,\r
6060             unsigned char seconds,\r
6061             unsigned char frames,\r
6062             BMDTimecodeFlags flags) = 0;\r
6063         \r
6064         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
6065             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
6066         \r
6067     };\r
6068     \r
6069 #else   /* C style interface */\r
6070 \r
6071     typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl\r
6072     {\r
6073         BEGIN_INTERFACE\r
6074         \r
6075         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
6076             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6077             /* [in] */ REFIID riid,\r
6078             /* [annotation][iid_is][out] */ \r
6079             __RPC__deref_out  void **ppvObject);\r
6080         \r
6081         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
6082             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6083         \r
6084         ULONG ( STDMETHODCALLTYPE *Release )( \r
6085             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6086         \r
6087         long ( STDMETHODCALLTYPE *GetWidth )( \r
6088             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6089         \r
6090         long ( STDMETHODCALLTYPE *GetHeight )( \r
6091             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6092         \r
6093         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
6094             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6095         \r
6096         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
6097             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6098         \r
6099         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
6100             IDeckLinkMutableVideoFrame_v7_6 * This);\r
6101         \r
6102         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
6103             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6104             /* [out] */ void **buffer);\r
6105         \r
6106         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
6107             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6108             BMDTimecodeFormat format,\r
6109             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
6110         \r
6111         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
6112             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6113             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
6114         \r
6115         HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
6116             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6117             BMDFrameFlags newFlags);\r
6118         \r
6119         HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
6120             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6121             BMDTimecodeFormat format,\r
6122             /* [in] */ IDeckLinkTimecode_v7_6 *timecode);\r
6123         \r
6124         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
6125             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6126             BMDTimecodeFormat format,\r
6127             unsigned char hours,\r
6128             unsigned char minutes,\r
6129             unsigned char seconds,\r
6130             unsigned char frames,\r
6131             BMDTimecodeFlags flags);\r
6132         \r
6133         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
6134             IDeckLinkMutableVideoFrame_v7_6 * This,\r
6135             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
6136         \r
6137         END_INTERFACE\r
6138     } IDeckLinkMutableVideoFrame_v7_6Vtbl;\r
6139 \r
6140     interface IDeckLinkMutableVideoFrame_v7_6\r
6141     {\r
6142         CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;\r
6143     };\r
6144 \r
6145     \r
6146 \r
6147 #ifdef COBJMACROS\r
6148 \r
6149 \r
6150 #define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)     \\r
6151     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
6152 \r
6153 #define IDeckLinkMutableVideoFrame_v7_6_AddRef(This)    \\r
6154     ( (This)->lpVtbl -> AddRef(This) ) \r
6155 \r
6156 #define IDeckLinkMutableVideoFrame_v7_6_Release(This)   \\r
6157     ( (This)->lpVtbl -> Release(This) ) \r
6158 \r
6159 \r
6160 #define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This)  \\r
6161     ( (This)->lpVtbl -> GetWidth(This) ) \r
6162 \r
6163 #define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This) \\r
6164     ( (This)->lpVtbl -> GetHeight(This) ) \r
6165 \r
6166 #define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This)       \\r
6167     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
6168 \r
6169 #define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This)    \\r
6170     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
6171 \r
6172 #define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This)  \\r
6173     ( (This)->lpVtbl -> GetFlags(This) ) \r
6174 \r
6175 #define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer)   \\r
6176     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
6177 \r
6178 #define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode)       \\r
6179     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
6180 \r
6181 #define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary)        \\r
6182     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
6183 \r
6184 \r
6185 #define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags) \\r
6186     ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
6187 \r
6188 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode)       \\r
6189     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
6190 \r
6191 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)       \\r
6192     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
6193 \r
6194 #define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary)        \\r
6195     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
6196 \r
6197 #endif /* COBJMACROS */\r
6198 \r
6199 \r
6200 #endif  /* C style interface */\r
6201 \r
6202 \r
6203 \r
6204 \r
6205 #endif  /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */\r
6206 \r
6207 \r
6208 #ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__\r
6209 #define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__\r
6210 \r
6211 /* interface IDeckLinkVideoInputFrame_v7_6 */\r
6212 /* [helpstring][local][uuid][object] */ \r
6213 \r
6214 \r
6215 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;\r
6216 \r
6217 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6218     \r
6219     MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")\r
6220     IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6\r
6221     {\r
6222     public:\r
6223         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
6224             /* [out] */ BMDTimeValue *frameTime,\r
6225             /* [out] */ BMDTimeValue *frameDuration,\r
6226             BMDTimeScale timeScale) = 0;\r
6227         \r
6228         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
6229             BMDTimeScale timeScale,\r
6230             /* [out] */ BMDTimeValue *frameTime,\r
6231             /* [out] */ BMDTimeValue *frameDuration) = 0;\r
6232         \r
6233     };\r
6234     \r
6235 #else   /* C style interface */\r
6236 \r
6237     typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl\r
6238     {\r
6239         BEGIN_INTERFACE\r
6240         \r
6241         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
6242             IDeckLinkVideoInputFrame_v7_6 * This,\r
6243             /* [in] */ REFIID riid,\r
6244             /* [annotation][iid_is][out] */ \r
6245             __RPC__deref_out  void **ppvObject);\r
6246         \r
6247         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
6248             IDeckLinkVideoInputFrame_v7_6 * This);\r
6249         \r
6250         ULONG ( STDMETHODCALLTYPE *Release )( \r
6251             IDeckLinkVideoInputFrame_v7_6 * This);\r
6252         \r
6253         long ( STDMETHODCALLTYPE *GetWidth )( \r
6254             IDeckLinkVideoInputFrame_v7_6 * This);\r
6255         \r
6256         long ( STDMETHODCALLTYPE *GetHeight )( \r
6257             IDeckLinkVideoInputFrame_v7_6 * This);\r
6258         \r
6259         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
6260             IDeckLinkVideoInputFrame_v7_6 * This);\r
6261         \r
6262         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
6263             IDeckLinkVideoInputFrame_v7_6 * This);\r
6264         \r
6265         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
6266             IDeckLinkVideoInputFrame_v7_6 * This);\r
6267         \r
6268         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
6269             IDeckLinkVideoInputFrame_v7_6 * This,\r
6270             /* [out] */ void **buffer);\r
6271         \r
6272         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
6273             IDeckLinkVideoInputFrame_v7_6 * This,\r
6274             BMDTimecodeFormat format,\r
6275             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
6276         \r
6277         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
6278             IDeckLinkVideoInputFrame_v7_6 * This,\r
6279             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
6280         \r
6281         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
6282             IDeckLinkVideoInputFrame_v7_6 * This,\r
6283             /* [out] */ BMDTimeValue *frameTime,\r
6284             /* [out] */ BMDTimeValue *frameDuration,\r
6285             BMDTimeScale timeScale);\r
6286         \r
6287         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
6288             IDeckLinkVideoInputFrame_v7_6 * This,\r
6289             BMDTimeScale timeScale,\r
6290             /* [out] */ BMDTimeValue *frameTime,\r
6291             /* [out] */ BMDTimeValue *frameDuration);\r
6292         \r
6293         END_INTERFACE\r
6294     } IDeckLinkVideoInputFrame_v7_6Vtbl;\r
6295 \r
6296     interface IDeckLinkVideoInputFrame_v7_6\r
6297     {\r
6298         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;\r
6299     };\r
6300 \r
6301     \r
6302 \r
6303 #ifdef COBJMACROS\r
6304 \r
6305 \r
6306 #define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject)       \\r
6307     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
6308 \r
6309 #define IDeckLinkVideoInputFrame_v7_6_AddRef(This)      \\r
6310     ( (This)->lpVtbl -> AddRef(This) ) \r
6311 \r
6312 #define IDeckLinkVideoInputFrame_v7_6_Release(This)     \\r
6313     ( (This)->lpVtbl -> Release(This) ) \r
6314 \r
6315 \r
6316 #define IDeckLinkVideoInputFrame_v7_6_GetWidth(This)    \\r
6317     ( (This)->lpVtbl -> GetWidth(This) ) \r
6318 \r
6319 #define IDeckLinkVideoInputFrame_v7_6_GetHeight(This)   \\r
6320     ( (This)->lpVtbl -> GetHeight(This) ) \r
6321 \r
6322 #define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This) \\r
6323     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
6324 \r
6325 #define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This)      \\r
6326     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
6327 \r
6328 #define IDeckLinkVideoInputFrame_v7_6_GetFlags(This)    \\r
6329     ( (This)->lpVtbl -> GetFlags(This) ) \r
6330 \r
6331 #define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer)     \\r
6332     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
6333 \r
6334 #define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode) \\r
6335     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
6336 \r
6337 #define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary)  \\r
6338     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
6339 \r
6340 \r
6341 #define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale)     \\r
6342     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
6343 \r
6344 #define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)     \\r
6345     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
6346 \r
6347 #endif /* COBJMACROS */\r
6348 \r
6349 \r
6350 #endif  /* C style interface */\r
6351 \r
6352 \r
6353 \r
6354 \r
6355 #endif  /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */\r
6356 \r
6357 \r
6358 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__\r
6359 #define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__\r
6360 \r
6361 /* interface IDeckLinkScreenPreviewCallback_v7_6 */\r
6362 /* [helpstring][local][uuid][object] */ \r
6363 \r
6364 \r
6365 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;\r
6366 \r
6367 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6368     \r
6369     MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")\r
6370     IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown\r
6371     {\r
6372     public:\r
6373         virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
6374             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
6375         \r
6376     };\r
6377     \r
6378 #else   /* C style interface */\r
6379 \r
6380     typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl\r
6381     {\r
6382         BEGIN_INTERFACE\r
6383         \r
6384         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
6385             IDeckLinkScreenPreviewCallback_v7_6 * This,\r
6386             /* [in] */ REFIID riid,\r
6387             /* [annotation][iid_is][out] */ \r
6388             __RPC__deref_out  void **ppvObject);\r
6389         \r
6390         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
6391             IDeckLinkScreenPreviewCallback_v7_6 * This);\r
6392         \r
6393         ULONG ( STDMETHODCALLTYPE *Release )( \r
6394             IDeckLinkScreenPreviewCallback_v7_6 * This);\r
6395         \r
6396         HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
6397             IDeckLinkScreenPreviewCallback_v7_6 * This,\r
6398             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
6399         \r
6400         END_INTERFACE\r
6401     } IDeckLinkScreenPreviewCallback_v7_6Vtbl;\r
6402 \r
6403     interface IDeckLinkScreenPreviewCallback_v7_6\r
6404     {\r
6405         CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;\r
6406     };\r
6407 \r
6408     \r
6409 \r
6410 #ifdef COBJMACROS\r
6411 \r
6412 \r
6413 #define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject) \\r
6414     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
6415 \r
6416 #define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This)        \\r
6417     ( (This)->lpVtbl -> AddRef(This) ) \r
6418 \r
6419 #define IDeckLinkScreenPreviewCallback_v7_6_Release(This)       \\r
6420     ( (This)->lpVtbl -> Release(This) ) \r
6421 \r
6422 \r
6423 #define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame)    \\r
6424     ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
6425 \r
6426 #endif /* COBJMACROS */\r
6427 \r
6428 \r
6429 #endif  /* C style interface */\r
6430 \r
6431 \r
6432 \r
6433 \r
6434 #endif  /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */\r
6435 \r
6436 \r
6437 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__\r
6438 #define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__\r
6439 \r
6440 /* interface IDeckLinkGLScreenPreviewHelper_v7_6 */\r
6441 /* [helpstring][local][uuid][object] */ \r
6442 \r
6443 \r
6444 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;\r
6445 \r
6446 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6447     \r
6448     MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")\r
6449     IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown\r
6450     {\r
6451     public:\r
6452         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
6453         \r
6454         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
6455         \r
6456         virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
6457             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
6458         \r
6459     };\r
6460     \r
6461 #else   /* C style interface */\r
6462 \r
6463     typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl\r
6464     {\r
6465         BEGIN_INTERFACE\r
6466         \r
6467         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
6468             IDeckLinkGLScreenPreviewHelper_v7_6 * This,\r
6469             /* [in] */ REFIID riid,\r
6470             /* [annotation][iid_is][out] */ \r
6471             __RPC__deref_out  void **ppvObject);\r
6472         \r
6473         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
6474             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
6475         \r
6476         ULONG ( STDMETHODCALLTYPE *Release )( \r
6477             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
6478         \r
6479         HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
6480             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
6481         \r
6482         HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
6483             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
6484         \r
6485         HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
6486             IDeckLinkGLScreenPreviewHelper_v7_6 * This,\r
6487             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
6488         \r
6489         END_INTERFACE\r
6490     } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;\r
6491 \r
6492     interface IDeckLinkGLScreenPreviewHelper_v7_6\r
6493     {\r
6494         CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;\r
6495     };\r
6496 \r
6497     \r
6498 \r
6499 #ifdef COBJMACROS\r
6500 \r
6501 \r
6502 #define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject) \\r
6503     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
6504 \r
6505 #define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This)        \\r
6506     ( (This)->lpVtbl -> AddRef(This) ) \r
6507 \r
6508 #define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This)       \\r
6509     ( (This)->lpVtbl -> Release(This) ) \r
6510 \r
6511 \r
6512 #define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This)  \\r
6513     ( (This)->lpVtbl -> InitializeGL(This) ) \r
6514 \r
6515 #define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This)       \\r
6516     ( (This)->lpVtbl -> PaintGL(This) ) \r
6517 \r
6518 #define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame)     \\r
6519     ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
6520 \r
6521 #endif /* COBJMACROS */\r
6522 \r
6523 \r
6524 #endif  /* C style interface */\r
6525 \r
6526 \r
6527 \r
6528 \r
6529 #endif  /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */\r
6530 \r
6531 \r
6532 #ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__\r
6533 #define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__\r
6534 \r
6535 /* interface IDeckLinkVideoConversion_v7_6 */\r
6536 /* [helpstring][local][uuid][object] */ \r
6537 \r
6538 \r
6539 EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;\r
6540 \r
6541 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6542     \r
6543     MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")\r
6544     IDeckLinkVideoConversion_v7_6 : public IUnknown\r
6545     {\r
6546     public:\r
6547         virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
6548             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,\r
6549             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;\r
6550         \r
6551     };\r
6552     \r
6553 #else   /* C style interface */\r
6554 \r
6555     typedef struct IDeckLinkVideoConversion_v7_6Vtbl\r
6556     {\r
6557         BEGIN_INTERFACE\r
6558         \r
6559         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
6560             IDeckLinkVideoConversion_v7_6 * This,\r
6561             /* [in] */ REFIID riid,\r
6562             /* [annotation][iid_is][out] */ \r
6563             __RPC__deref_out  void **ppvObject);\r
6564         \r
6565         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
6566             IDeckLinkVideoConversion_v7_6 * This);\r
6567         \r
6568         ULONG ( STDMETHODCALLTYPE *Release )( \r
6569             IDeckLinkVideoConversion_v7_6 * This);\r
6570         \r
6571         HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
6572             IDeckLinkVideoConversion_v7_6 * This,\r
6573             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,\r
6574             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);\r
6575         \r
6576         END_INTERFACE\r
6577     } IDeckLinkVideoConversion_v7_6Vtbl;\r
6578 \r
6579     interface IDeckLinkVideoConversion_v7_6\r
6580     {\r
6581         CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;\r
6582     };\r
6583 \r
6584     \r
6585 \r
6586 #ifdef COBJMACROS\r
6587 \r
6588 \r
6589 #define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject)       \\r
6590     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
6591 \r
6592 #define IDeckLinkVideoConversion_v7_6_AddRef(This)      \\r
6593     ( (This)->lpVtbl -> AddRef(This) ) \r
6594 \r
6595 #define IDeckLinkVideoConversion_v7_6_Release(This)     \\r
6596     ( (This)->lpVtbl -> Release(This) ) \r
6597 \r
6598 \r
6599 #define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame)      \\r
6600     ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
6601 \r
6602 #endif /* COBJMACROS */\r
6603 \r
6604 \r
6605 #endif  /* C style interface */\r
6606 \r
6607 \r
6608 \r
6609 \r
6610 #endif  /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */\r
6611 \r
6612 \r
6613 #ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__\r
6614 #define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__\r
6615 \r
6616 /* interface IDeckLinkConfiguration_v7_6 */\r
6617 /* [helpstring][uuid][object] */ \r
6618 \r
6619 \r
6620 EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;\r
6621 \r
6622 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6623     \r
6624     MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")\r
6625     IDeckLinkConfiguration_v7_6 : public IUnknown\r
6626     {\r
6627     public:\r
6628         virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( \r
6629             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;\r
6630         \r
6631         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
6632         \r
6633         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( \r
6634             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;\r
6635         \r
6636         virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( \r
6637             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,\r
6638             /* [out] */ BOOL *active) = 0;\r
6639         \r
6640         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( \r
6641             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;\r
6642         \r
6643         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( \r
6644             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
6645         \r
6646         virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( \r
6647             /* [in] */ BOOL enable) = 0;\r
6648         \r
6649         virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( \r
6650             /* [out] */ BOOL *enabled) = 0;\r
6651         \r
6652         virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( \r
6653             /* [in] */ BOOL enable444VideoOutput,\r
6654             /* [in] */ BOOL enable3GbsOutput) = 0;\r
6655         \r
6656         virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( \r
6657             /* [out] */ BOOL *is444VideoOutputEnabled,\r
6658             /* [out] */ BOOL *threeGbsOutputEnabled) = 0;\r
6659         \r
6660         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( \r
6661             /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;\r
6662         \r
6663         virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( \r
6664             /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;\r
6665         \r
6666         virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( \r
6667             /* [in] */ BOOL enable) = 0;\r
6668         \r
6669         virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( \r
6670             /* [out] */ BOOL *enabled) = 0;\r
6671         \r
6672         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( \r
6673             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;\r
6674         \r
6675         virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( \r
6676             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;\r
6677         \r
6678         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( \r
6679             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;\r
6680         \r
6681         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( \r
6682             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
6683         \r
6684         virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( \r
6685             /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;\r
6686         \r
6687         virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( \r
6688             /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;\r
6689         \r
6690         virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( \r
6691             /* [in] */ BOOL blackOutInCapture) = 0;\r
6692         \r
6693         virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( \r
6694             /* [out] */ BOOL *blackOutInCapture) = 0;\r
6695         \r
6696         virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( \r
6697             /* [in] */ unsigned long aFrameTimecode) = 0;\r
6698         \r
6699         virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( \r
6700             /* [out] */ unsigned long *aFrameTimecode) = 0;\r
6701         \r
6702         virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( \r
6703             /* [in] */ unsigned long activeLine1VANCsource,\r
6704             /* [in] */ unsigned long activeLine2VANCsource,\r
6705             /* [in] */ unsigned long activeLine3VANCsource) = 0;\r
6706         \r
6707         virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( \r
6708             /* [out] */ unsigned long *activeLine1VANCsource,\r
6709             /* [out] */ unsigned long *activeLine2VANCsource,\r
6710             /* [out] */ unsigned long *activeLine3VANCsource) = 0;\r
6711         \r
6712         virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( \r
6713             /* [in] */ BMDAudioConnection audioInputFormat) = 0;\r
6714         \r
6715         virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( \r
6716             /* [out] */ BMDAudioConnection *audioInputFormat) = 0;\r
6717         \r
6718     };\r
6719     \r
6720 #else   /* C style interface */\r
6721 \r
6722     typedef struct IDeckLinkConfiguration_v7_6Vtbl\r
6723     {\r
6724         BEGIN_INTERFACE\r
6725         \r
6726         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
6727             IDeckLinkConfiguration_v7_6 * This,\r
6728             /* [in] */ REFIID riid,\r
6729             /* [annotation][iid_is][out] */ \r
6730             __RPC__deref_out  void **ppvObject);\r
6731         \r
6732         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
6733             IDeckLinkConfiguration_v7_6 * This);\r
6734         \r
6735         ULONG ( STDMETHODCALLTYPE *Release )( \r
6736             IDeckLinkConfiguration_v7_6 * This);\r
6737         \r
6738         HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )( \r
6739             IDeckLinkConfiguration_v7_6 * This,\r
6740             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);\r
6741         \r
6742         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
6743             IDeckLinkConfiguration_v7_6 * This);\r
6744         \r
6745         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )( \r
6746             IDeckLinkConfiguration_v7_6 * This,\r
6747             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);\r
6748         \r
6749         HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )( \r
6750             IDeckLinkConfiguration_v7_6 * This,\r
6751             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,\r
6752             /* [out] */ BOOL *active);\r
6753         \r
6754         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )( \r
6755             IDeckLinkConfiguration_v7_6 * This,\r
6756             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);\r
6757         \r
6758         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )( \r
6759             IDeckLinkConfiguration_v7_6 * This,\r
6760             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
6761         \r
6762         HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )( \r
6763             IDeckLinkConfiguration_v7_6 * This,\r
6764             /* [in] */ BOOL enable);\r
6765         \r
6766         HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )( \r
6767             IDeckLinkConfiguration_v7_6 * This,\r
6768             /* [out] */ BOOL *enabled);\r
6769         \r
6770         HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )( \r
6771             IDeckLinkConfiguration_v7_6 * This,\r
6772             /* [in] */ BOOL enable444VideoOutput,\r
6773             /* [in] */ BOOL enable3GbsOutput);\r
6774         \r
6775         HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )( \r
6776             IDeckLinkConfiguration_v7_6 * This,\r
6777             /* [out] */ BOOL *is444VideoOutputEnabled,\r
6778             /* [out] */ BOOL *threeGbsOutputEnabled);\r
6779         \r
6780         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )( \r
6781             IDeckLinkConfiguration_v7_6 * This,\r
6782             /* [in] */ BMDVideoOutputConversionMode conversionMode);\r
6783         \r
6784         HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )( \r
6785             IDeckLinkConfiguration_v7_6 * This,\r
6786             /* [out] */ BMDVideoOutputConversionMode *conversionMode);\r
6787         \r
6788         HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )( \r
6789             IDeckLinkConfiguration_v7_6 * This,\r
6790             /* [in] */ BOOL enable);\r
6791         \r
6792         HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )( \r
6793             IDeckLinkConfiguration_v7_6 * This,\r
6794             /* [out] */ BOOL *enabled);\r
6795         \r
6796         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )( \r
6797             IDeckLinkConfiguration_v7_6 * This,\r
6798             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);\r
6799         \r
6800         HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )( \r
6801             IDeckLinkConfiguration_v7_6 * This,\r
6802             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);\r
6803         \r
6804         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )( \r
6805             IDeckLinkConfiguration_v7_6 * This,\r
6806             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);\r
6807         \r
6808         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )( \r
6809             IDeckLinkConfiguration_v7_6 * This,\r
6810             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
6811         \r
6812         HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )( \r
6813             IDeckLinkConfiguration_v7_6 * This,\r
6814             /* [in] */ BMDVideoInputConversionMode conversionMode);\r
6815         \r
6816         HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )( \r
6817             IDeckLinkConfiguration_v7_6 * This,\r
6818             /* [out] */ BMDVideoInputConversionMode *conversionMode);\r
6819         \r
6820         HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )( \r
6821             IDeckLinkConfiguration_v7_6 * This,\r
6822             /* [in] */ BOOL blackOutInCapture);\r
6823         \r
6824         HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )( \r
6825             IDeckLinkConfiguration_v7_6 * This,\r
6826             /* [out] */ BOOL *blackOutInCapture);\r
6827         \r
6828         HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( \r
6829             IDeckLinkConfiguration_v7_6 * This,\r
6830             /* [in] */ unsigned long aFrameTimecode);\r
6831         \r
6832         HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( \r
6833             IDeckLinkConfiguration_v7_6 * This,\r
6834             /* [out] */ unsigned long *aFrameTimecode);\r
6835         \r
6836         HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )( \r
6837             IDeckLinkConfiguration_v7_6 * This,\r
6838             /* [in] */ unsigned long activeLine1VANCsource,\r
6839             /* [in] */ unsigned long activeLine2VANCsource,\r
6840             /* [in] */ unsigned long activeLine3VANCsource);\r
6841         \r
6842         HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )( \r
6843             IDeckLinkConfiguration_v7_6 * This,\r
6844             /* [out] */ unsigned long *activeLine1VANCsource,\r
6845             /* [out] */ unsigned long *activeLine2VANCsource,\r
6846             /* [out] */ unsigned long *activeLine3VANCsource);\r
6847         \r
6848         HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( \r
6849             IDeckLinkConfiguration_v7_6 * This,\r
6850             /* [in] */ BMDAudioConnection audioInputFormat);\r
6851         \r
6852         HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )( \r
6853             IDeckLinkConfiguration_v7_6 * This,\r
6854             /* [out] */ BMDAudioConnection *audioInputFormat);\r
6855         \r
6856         END_INTERFACE\r
6857     } IDeckLinkConfiguration_v7_6Vtbl;\r
6858 \r
6859     interface IDeckLinkConfiguration_v7_6\r
6860     {\r
6861         CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;\r
6862     };\r
6863 \r
6864     \r
6865 \r
6866 #ifdef COBJMACROS\r
6867 \r
6868 \r
6869 #define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject) \\r
6870     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
6871 \r
6872 #define IDeckLinkConfiguration_v7_6_AddRef(This)        \\r
6873     ( (This)->lpVtbl -> AddRef(This) ) \r
6874 \r
6875 #define IDeckLinkConfiguration_v7_6_Release(This)       \\r
6876     ( (This)->lpVtbl -> Release(This) ) \r
6877 \r
6878 \r
6879 #define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject)        \\r
6880     ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) ) \r
6881 \r
6882 #define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This)       \\r
6883     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
6884 \r
6885 #define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection)    \\r
6886     ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) ) \r
6887 \r
6888 #define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active)      \\r
6889     ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) ) \r
6890 \r
6891 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags)    \\r
6892     ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
6893 \r
6894 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags)    \\r
6895     ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
6896 \r
6897 #define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable)    \\r
6898     ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) ) \r
6899 \r
6900 #define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled)        \\r
6901     ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) ) \r
6902 \r
6903 #define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput)       \\r
6904     ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) ) \r
6905 \r
6906 #define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled)       \\r
6907     ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) ) \r
6908 \r
6909 #define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode)   \\r
6910     ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) ) \r
6911 \r
6912 #define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode)   \\r
6913     ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) ) \r
6914 \r
6915 #define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable)        \\r
6916     ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) ) \r
6917 \r
6918 #define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled)       \\r
6919     ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) ) \r
6920 \r
6921 #define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat)  \\r
6922     ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) ) \r
6923 \r
6924 #define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat)  \\r
6925     ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) ) \r
6926 \r
6927 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags)     \\r
6928     ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
6929 \r
6930 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags)     \\r
6931     ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
6932 \r
6933 #define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode)    \\r
6934     ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) ) \r
6935 \r
6936 #define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode)    \\r
6937     ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) ) \r
6938 \r
6939 #define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture)    \\r
6940     ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
6941 \r
6942 #define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture)    \\r
6943     ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
6944 \r
6945 #define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)      \\r
6946     ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
6947 \r
6948 #define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)      \\r
6949     ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
6950 \r
6951 #define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)    \\r
6952     ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
6953 \r
6954 #define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)    \\r
6955     ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
6956 \r
6957 #define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat)  \\r
6958     ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) ) \r
6959 \r
6960 #define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat)  \\r
6961     ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) ) \r
6962 \r
6963 #endif /* COBJMACROS */\r
6964 \r
6965 \r
6966 #endif  /* C style interface */\r
6967 \r
6968 \r
6969 \r
6970 \r
6971 #endif  /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */\r
6972 \r
6973 \r
6974 #ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__\r
6975 #define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__\r
6976 \r
6977 /* interface IDeckLinkVideoOutputCallback_v7_6 */\r
6978 /* [helpstring][uuid][object] */ \r
6979 \r
6980 \r
6981 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;\r
6982 \r
6983 #if defined(__cplusplus) && !defined(CINTERFACE)\r
6984     \r
6985     MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")\r
6986     IDeckLinkVideoOutputCallback_v7_6 : public IUnknown\r
6987     {\r
6988     public:\r
6989         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
6990             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,\r
6991             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
6992         \r
6993         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
6994         \r
6995     };\r
6996     \r
6997 #else   /* C style interface */\r
6998 \r
6999     typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl\r
7000     {\r
7001         BEGIN_INTERFACE\r
7002         \r
7003         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
7004             IDeckLinkVideoOutputCallback_v7_6 * This,\r
7005             /* [in] */ REFIID riid,\r
7006             /* [annotation][iid_is][out] */ \r
7007             __RPC__deref_out  void **ppvObject);\r
7008         \r
7009         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
7010             IDeckLinkVideoOutputCallback_v7_6 * This);\r
7011         \r
7012         ULONG ( STDMETHODCALLTYPE *Release )( \r
7013             IDeckLinkVideoOutputCallback_v7_6 * This);\r
7014         \r
7015         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
7016             IDeckLinkVideoOutputCallback_v7_6 * This,\r
7017             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,\r
7018             /* [in] */ BMDOutputFrameCompletionResult result);\r
7019         \r
7020         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
7021             IDeckLinkVideoOutputCallback_v7_6 * This);\r
7022         \r
7023         END_INTERFACE\r
7024     } IDeckLinkVideoOutputCallback_v7_6Vtbl;\r
7025 \r
7026     interface IDeckLinkVideoOutputCallback_v7_6\r
7027     {\r
7028         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;\r
7029     };\r
7030 \r
7031     \r
7032 \r
7033 #ifdef COBJMACROS\r
7034 \r
7035 \r
7036 #define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject)   \\r
7037     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
7038 \r
7039 #define IDeckLinkVideoOutputCallback_v7_6_AddRef(This)  \\r
7040     ( (This)->lpVtbl -> AddRef(This) ) \r
7041 \r
7042 #define IDeckLinkVideoOutputCallback_v7_6_Release(This) \\r
7043     ( (This)->lpVtbl -> Release(This) ) \r
7044 \r
7045 \r
7046 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result)   \\r
7047     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
7048 \r
7049 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This)     \\r
7050     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
7051 \r
7052 #endif /* COBJMACROS */\r
7053 \r
7054 \r
7055 #endif  /* C style interface */\r
7056 \r
7057 \r
7058 \r
7059 \r
7060 #endif  /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */\r
7061 \r
7062 \r
7063 #ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__\r
7064 #define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__\r
7065 \r
7066 /* interface IDeckLinkInputCallback_v7_6 */\r
7067 /* [helpstring][uuid][object] */ \r
7068 \r
7069 \r
7070 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;\r
7071 \r
7072 #if defined(__cplusplus) && !defined(CINTERFACE)\r
7073     \r
7074     MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")\r
7075     IDeckLinkInputCallback_v7_6 : public IUnknown\r
7076     {\r
7077     public:\r
7078         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
7079             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
7080             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
7081             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
7082         \r
7083         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
7084             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,\r
7085             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
7086         \r
7087     };\r
7088     \r
7089 #else   /* C style interface */\r
7090 \r
7091     typedef struct IDeckLinkInputCallback_v7_6Vtbl\r
7092     {\r
7093         BEGIN_INTERFACE\r
7094         \r
7095         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
7096             IDeckLinkInputCallback_v7_6 * This,\r
7097             /* [in] */ REFIID riid,\r
7098             /* [annotation][iid_is][out] */ \r
7099             __RPC__deref_out  void **ppvObject);\r
7100         \r
7101         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
7102             IDeckLinkInputCallback_v7_6 * This);\r
7103         \r
7104         ULONG ( STDMETHODCALLTYPE *Release )( \r
7105             IDeckLinkInputCallback_v7_6 * This);\r
7106         \r
7107         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
7108             IDeckLinkInputCallback_v7_6 * This,\r
7109             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
7110             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
7111             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
7112         \r
7113         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
7114             IDeckLinkInputCallback_v7_6 * This,\r
7115             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,\r
7116             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
7117         \r
7118         END_INTERFACE\r
7119     } IDeckLinkInputCallback_v7_6Vtbl;\r
7120 \r
7121     interface IDeckLinkInputCallback_v7_6\r
7122     {\r
7123         CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;\r
7124     };\r
7125 \r
7126     \r
7127 \r
7128 #ifdef COBJMACROS\r
7129 \r
7130 \r
7131 #define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject) \\r
7132     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
7133 \r
7134 #define IDeckLinkInputCallback_v7_6_AddRef(This)        \\r
7135     ( (This)->lpVtbl -> AddRef(This) ) \r
7136 \r
7137 #define IDeckLinkInputCallback_v7_6_Release(This)       \\r
7138     ( (This)->lpVtbl -> Release(This) ) \r
7139 \r
7140 \r
7141 #define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \\r
7142     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
7143 \r
7144 #define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket) \\r
7145     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
7146 \r
7147 #endif /* COBJMACROS */\r
7148 \r
7149 \r
7150 #endif  /* C style interface */\r
7151 \r
7152 \r
7153 \r
7154 \r
7155 #endif  /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */\r
7156 \r
7157 \r
7158 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6;\r
7159 \r
7160 #ifdef __cplusplus\r
7161 \r
7162 class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")\r
7163 CDeckLinkGLScreenPreviewHelper_v7_6;\r
7164 #endif\r
7165 \r
7166 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6;\r
7167 \r
7168 #ifdef __cplusplus\r
7169 \r
7170 class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B")\r
7171 CDeckLinkVideoConversion_v7_6;\r
7172 #endif\r
7173 \r
7174 #ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
7175 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
7176 \r
7177 /* interface IDeckLinkInputCallback_v7_3 */\r
7178 /* [helpstring][uuid][object] */ \r
7179 \r
7180 \r
7181 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;\r
7182 \r
7183 #if defined(__cplusplus) && !defined(CINTERFACE)\r
7184     \r
7185     MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")\r
7186     IDeckLinkInputCallback_v7_3 : public IUnknown\r
7187     {\r
7188     public:\r
7189         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
7190             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
7191             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
7192             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
7193         \r
7194         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
7195             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
7196             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
7197         \r
7198     };\r
7199     \r
7200 #else   /* C style interface */\r
7201 \r
7202     typedef struct IDeckLinkInputCallback_v7_3Vtbl\r
7203     {\r
7204         BEGIN_INTERFACE\r
7205         \r
7206         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
7207             IDeckLinkInputCallback_v7_3 * This,\r
7208             /* [in] */ REFIID riid,\r
7209             /* [annotation][iid_is][out] */ \r
7210             __RPC__deref_out  void **ppvObject);\r
7211         \r
7212         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
7213             IDeckLinkInputCallback_v7_3 * This);\r
7214         \r
7215         ULONG ( STDMETHODCALLTYPE *Release )( \r
7216             IDeckLinkInputCallback_v7_3 * This);\r
7217         \r
7218         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
7219             IDeckLinkInputCallback_v7_3 * This,\r
7220             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
7221             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
7222             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
7223         \r
7224         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
7225             IDeckLinkInputCallback_v7_3 * This,\r
7226             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
7227             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
7228         \r
7229         END_INTERFACE\r
7230     } IDeckLinkInputCallback_v7_3Vtbl;\r
7231 \r
7232     interface IDeckLinkInputCallback_v7_3\r
7233     {\r
7234         CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;\r
7235     };\r
7236 \r
7237     \r
7238 \r
7239 #ifdef COBJMACROS\r
7240 \r
7241 \r
7242 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) \\r
7243     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
7244 \r
7245 #define IDeckLinkInputCallback_v7_3_AddRef(This)        \\r
7246     ( (This)->lpVtbl -> AddRef(This) ) \r
7247 \r
7248 #define IDeckLinkInputCallback_v7_3_Release(This)       \\r
7249     ( (This)->lpVtbl -> Release(This) ) \r
7250 \r
7251 \r
7252 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \\r
7253     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
7254 \r
7255 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) \\r
7256     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
7257 \r
7258 #endif /* COBJMACROS */\r
7259 \r
7260 \r
7261 #endif  /* C style interface */\r
7262 \r
7263 \r
7264 \r
7265 \r
7266 #endif  /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */\r
7267 \r
7268 \r
7269 #ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
7270 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
7271 \r
7272 /* interface IDeckLinkOutput_v7_3 */\r
7273 /* [helpstring][local][uuid][object] */ \r
7274 \r
7275 \r
7276 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;\r
7277 \r
7278 #if defined(__cplusplus) && !defined(CINTERFACE)\r
7279     \r
7280     MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")\r
7281     IDeckLinkOutput_v7_3 : public IUnknown\r
7282     {\r
7283     public:\r
7284         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
7285             BMDDisplayMode displayMode,\r
7286             BMDPixelFormat pixelFormat,\r
7287             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
7288         \r
7289         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
7290             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
7291         \r
7292         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
7293             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
7294         \r
7295         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
7296             BMDDisplayMode displayMode,\r
7297             BMDVideoOutputFlags flags) = 0;\r
7298         \r
7299         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
7300         \r
7301         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
7302             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
7303         \r
7304         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
7305             long width,\r
7306             long height,\r
7307             long rowBytes,\r
7308             BMDPixelFormat pixelFormat,\r
7309             BMDFrameFlags flags,\r
7310             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
7311         \r
7312         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
7313             BMDPixelFormat pixelFormat,\r
7314             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
7315         \r
7316         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
7317             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
7318         \r
7319         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
7320             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
7321             BMDTimeValue displayTime,\r
7322             BMDTimeValue displayDuration,\r
7323             BMDTimeScale timeScale) = 0;\r
7324         \r
7325         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
7326             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
7327         \r
7328         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
7329             /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
7330         \r
7331         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
7332             BMDAudioSampleRate sampleRate,\r
7333             BMDAudioSampleType sampleType,\r
7334             unsigned long channelCount,\r
7335             BMDAudioOutputStreamType streamType) = 0;\r
7336         \r
7337         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
7338         \r
7339         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
7340             /* [in] */ void *buffer,\r
7341             unsigned long sampleFrameCount,\r
7342             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
7343         \r
7344         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
7345         \r
7346         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
7347         \r
7348         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
7349             /* [in] */ void *buffer,\r
7350             unsigned long sampleFrameCount,\r
7351             BMDTimeValue streamTime,\r
7352             BMDTimeScale timeScale,\r
7353             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
7354         \r
7355         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
7356             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
7357         \r
7358         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
7359         \r
7360         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
7361             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
7362         \r
7363         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
7364             BMDTimeValue playbackStartTime,\r
7365             BMDTimeScale timeScale,\r
7366             double playbackSpeed) = 0;\r
7367         \r
7368         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
7369             BMDTimeValue stopPlaybackAtTime,\r
7370             /* [out] */ BMDTimeValue *actualStopTime,\r
7371             BMDTimeScale timeScale) = 0;\r
7372         \r
7373         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
7374             /* [out] */ BOOL *active) = 0;\r
7375         \r
7376         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
7377             BMDTimeScale desiredTimeScale,\r
7378             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
7379         \r
7380     };\r
7381     \r
7382 #else   /* C style interface */\r
7383 \r
7384     typedef struct IDeckLinkOutput_v7_3Vtbl\r
7385     {\r
7386         BEGIN_INTERFACE\r
7387         \r
7388         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
7389             IDeckLinkOutput_v7_3 * This,\r
7390             /* [in] */ REFIID riid,\r
7391             /* [annotation][iid_is][out] */ \r
7392             __RPC__deref_out  void **ppvObject);\r
7393         \r
7394         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
7395             IDeckLinkOutput_v7_3 * This);\r
7396         \r
7397         ULONG ( STDMETHODCALLTYPE *Release )( \r
7398             IDeckLinkOutput_v7_3 * This);\r
7399         \r
7400         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
7401             IDeckLinkOutput_v7_3 * This,\r
7402             BMDDisplayMode displayMode,\r
7403             BMDPixelFormat pixelFormat,\r
7404             /* [out] */ BMDDisplayModeSupport *result);\r
7405         \r
7406         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
7407             IDeckLinkOutput_v7_3 * This,\r
7408             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
7409         \r
7410         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
7411             IDeckLinkOutput_v7_3 * This,\r
7412             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
7413         \r
7414         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
7415             IDeckLinkOutput_v7_3 * This,\r
7416             BMDDisplayMode displayMode,\r
7417             BMDVideoOutputFlags flags);\r
7418         \r
7419         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
7420             IDeckLinkOutput_v7_3 * This);\r
7421         \r
7422         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
7423             IDeckLinkOutput_v7_3 * This,\r
7424             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
7425         \r
7426         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
7427             IDeckLinkOutput_v7_3 * This,\r
7428             long width,\r
7429             long height,\r
7430             long rowBytes,\r
7431             BMDPixelFormat pixelFormat,\r
7432             BMDFrameFlags flags,\r
7433             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
7434         \r
7435         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
7436             IDeckLinkOutput_v7_3 * This,\r
7437             BMDPixelFormat pixelFormat,\r
7438             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
7439         \r
7440         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
7441             IDeckLinkOutput_v7_3 * This,\r
7442             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
7443         \r
7444         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
7445             IDeckLinkOutput_v7_3 * This,\r
7446             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
7447             BMDTimeValue displayTime,\r
7448             BMDTimeValue displayDuration,\r
7449             BMDTimeScale timeScale);\r
7450         \r
7451         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
7452             IDeckLinkOutput_v7_3 * This,\r
7453             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
7454         \r
7455         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
7456             IDeckLinkOutput_v7_3 * This,\r
7457             /* [out] */ unsigned long *bufferedFrameCount);\r
7458         \r
7459         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
7460             IDeckLinkOutput_v7_3 * This,\r
7461             BMDAudioSampleRate sampleRate,\r
7462             BMDAudioSampleType sampleType,\r
7463             unsigned long channelCount,\r
7464             BMDAudioOutputStreamType streamType);\r
7465         \r
7466         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
7467             IDeckLinkOutput_v7_3 * This);\r
7468         \r
7469         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
7470             IDeckLinkOutput_v7_3 * This,\r
7471             /* [in] */ void *buffer,\r
7472             unsigned long sampleFrameCount,\r
7473             /* [out] */ unsigned long *sampleFramesWritten);\r
7474         \r
7475         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
7476             IDeckLinkOutput_v7_3 * This);\r
7477         \r
7478         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
7479             IDeckLinkOutput_v7_3 * This);\r
7480         \r
7481         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
7482             IDeckLinkOutput_v7_3 * This,\r
7483             /* [in] */ void *buffer,\r
7484             unsigned long sampleFrameCount,\r
7485             BMDTimeValue streamTime,\r
7486             BMDTimeScale timeScale,\r
7487             /* [out] */ unsigned long *sampleFramesWritten);\r
7488         \r
7489         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
7490             IDeckLinkOutput_v7_3 * This,\r
7491             /* [out] */ unsigned long *bufferedSampleFrameCount);\r
7492         \r
7493         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
7494             IDeckLinkOutput_v7_3 * This);\r
7495         \r
7496         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
7497             IDeckLinkOutput_v7_3 * This,\r
7498             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
7499         \r
7500         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
7501             IDeckLinkOutput_v7_3 * This,\r
7502             BMDTimeValue playbackStartTime,\r
7503             BMDTimeScale timeScale,\r
7504             double playbackSpeed);\r
7505         \r
7506         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
7507             IDeckLinkOutput_v7_3 * This,\r
7508             BMDTimeValue stopPlaybackAtTime,\r
7509             /* [out] */ BMDTimeValue *actualStopTime,\r
7510             BMDTimeScale timeScale);\r
7511         \r
7512         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
7513             IDeckLinkOutput_v7_3 * This,\r
7514             /* [out] */ BOOL *active);\r
7515         \r
7516         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
7517             IDeckLinkOutput_v7_3 * This,\r
7518             BMDTimeScale desiredTimeScale,\r
7519             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
7520         \r
7521         END_INTERFACE\r
7522     } IDeckLinkOutput_v7_3Vtbl;\r
7523 \r
7524     interface IDeckLinkOutput_v7_3\r
7525     {\r
7526         CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;\r
7527     };\r
7528 \r
7529     \r
7530 \r
7531 #ifdef COBJMACROS\r
7532 \r
7533 \r
7534 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject)        \\r
7535     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
7536 \r
7537 #define IDeckLinkOutput_v7_3_AddRef(This)       \\r
7538     ( (This)->lpVtbl -> AddRef(This) ) \r
7539 \r
7540 #define IDeckLinkOutput_v7_3_Release(This)      \\r
7541     ( (This)->lpVtbl -> Release(This) ) \r
7542 \r
7543 \r
7544 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
7545     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
7546 \r
7547 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator)      \\r
7548     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
7549 \r
7550 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback)     \\r
7551     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
7552 \r
7553 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags)  \\r
7554     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
7555 \r
7556 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This)   \\r
7557     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
7558 \r
7559 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \\r
7560     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
7561 \r
7562 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \\r
7563     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
7564 \r
7565 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer)    \\r
7566     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
7567 \r
7568 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame)       \\r
7569     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
7570 \r
7571 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \\r
7572     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
7573 \r
7574 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback)      \\r
7575     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
7576 \r
7577 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount)        \\r
7578     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
7579 \r
7580 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)      \\r
7581     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
7582 \r
7583 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This)   \\r
7584     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
7585 \r
7586 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \\r
7587     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
7588 \r
7589 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This)    \\r
7590     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
7591 \r
7592 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This)      \\r
7593     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
7594 \r
7595 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \\r
7596     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
7597 \r
7598 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)    \\r
7599     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
7600 \r
7601 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This)    \\r
7602     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
7603 \r
7604 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) \\r
7605     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
7606 \r
7607 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \\r
7608     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
7609 \r
7610 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \\r
7611     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
7612 \r
7613 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active)    \\r
7614     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
7615 \r
7616 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)    \\r
7617     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
7618 \r
7619 #endif /* COBJMACROS */\r
7620 \r
7621 \r
7622 #endif  /* C style interface */\r
7623 \r
7624 \r
7625 \r
7626 \r
7627 #endif  /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */\r
7628 \r
7629 \r
7630 #ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
7631 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
7632 \r
7633 /* interface IDeckLinkInput_v7_3 */\r
7634 /* [helpstring][uuid][object] */ \r
7635 \r
7636 \r
7637 EXTERN_C const IID IID_IDeckLinkInput_v7_3;\r
7638 \r
7639 #if defined(__cplusplus) && !defined(CINTERFACE)\r
7640     \r
7641     MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")\r
7642     IDeckLinkInput_v7_3 : public IUnknown\r
7643     {\r
7644     public:\r
7645         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
7646             BMDDisplayMode displayMode,\r
7647             BMDPixelFormat pixelFormat,\r
7648             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
7649         \r
7650         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
7651             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
7652         \r
7653         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
7654             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
7655         \r
7656         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
7657             BMDDisplayMode displayMode,\r
7658             BMDPixelFormat pixelFormat,\r
7659             BMDVideoInputFlags flags) = 0;\r
7660         \r
7661         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
7662         \r
7663         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
7664             /* [out] */ unsigned long *availableFrameCount) = 0;\r
7665         \r
7666         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
7667             BMDAudioSampleRate sampleRate,\r
7668             BMDAudioSampleType sampleType,\r
7669             unsigned long channelCount) = 0;\r
7670         \r
7671         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
7672         \r
7673         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
7674             /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
7675         \r
7676         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
7677         \r
7678         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
7679         \r
7680         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
7681         \r
7682         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
7683         \r
7684         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
7685             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;\r
7686         \r
7687     };\r
7688     \r
7689 #else   /* C style interface */\r
7690 \r
7691     typedef struct IDeckLinkInput_v7_3Vtbl\r
7692     {\r
7693         BEGIN_INTERFACE\r
7694         \r
7695         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
7696             IDeckLinkInput_v7_3 * This,\r
7697             /* [in] */ REFIID riid,\r
7698             /* [annotation][iid_is][out] */ \r
7699             __RPC__deref_out  void **ppvObject);\r
7700         \r
7701         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
7702             IDeckLinkInput_v7_3 * This);\r
7703         \r
7704         ULONG ( STDMETHODCALLTYPE *Release )( \r
7705             IDeckLinkInput_v7_3 * This);\r
7706         \r
7707         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
7708             IDeckLinkInput_v7_3 * This,\r
7709             BMDDisplayMode displayMode,\r
7710             BMDPixelFormat pixelFormat,\r
7711             /* [out] */ BMDDisplayModeSupport *result);\r
7712         \r
7713         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
7714             IDeckLinkInput_v7_3 * This,\r
7715             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
7716         \r
7717         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
7718             IDeckLinkInput_v7_3 * This,\r
7719             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
7720         \r
7721         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
7722             IDeckLinkInput_v7_3 * This,\r
7723             BMDDisplayMode displayMode,\r
7724             BMDPixelFormat pixelFormat,\r
7725             BMDVideoInputFlags flags);\r
7726         \r
7727         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
7728             IDeckLinkInput_v7_3 * This);\r
7729         \r
7730         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
7731             IDeckLinkInput_v7_3 * This,\r
7732             /* [out] */ unsigned long *availableFrameCount);\r
7733         \r
7734         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
7735             IDeckLinkInput_v7_3 * This,\r
7736             BMDAudioSampleRate sampleRate,\r
7737             BMDAudioSampleType sampleType,\r
7738             unsigned long channelCount);\r
7739         \r
7740         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
7741             IDeckLinkInput_v7_3 * This);\r
7742         \r
7743         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
7744             IDeckLinkInput_v7_3 * This,\r
7745             /* [out] */ unsigned long *availableSampleFrameCount);\r
7746         \r
7747         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
7748             IDeckLinkInput_v7_3 * This);\r
7749         \r
7750         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
7751             IDeckLinkInput_v7_3 * This);\r
7752         \r
7753         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
7754             IDeckLinkInput_v7_3 * This);\r
7755         \r
7756         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
7757             IDeckLinkInput_v7_3 * This);\r
7758         \r
7759         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
7760             IDeckLinkInput_v7_3 * This,\r
7761             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);\r
7762         \r
7763         END_INTERFACE\r
7764     } IDeckLinkInput_v7_3Vtbl;\r
7765 \r
7766     interface IDeckLinkInput_v7_3\r
7767     {\r
7768         CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;\r
7769     };\r
7770 \r
7771     \r
7772 \r
7773 #ifdef COBJMACROS\r
7774 \r
7775 \r
7776 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) \\r
7777     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
7778 \r
7779 #define IDeckLinkInput_v7_3_AddRef(This)        \\r
7780     ( (This)->lpVtbl -> AddRef(This) ) \r
7781 \r
7782 #define IDeckLinkInput_v7_3_Release(This)       \\r
7783     ( (This)->lpVtbl -> Release(This) ) \r
7784 \r
7785 \r
7786 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \\r
7787     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
7788 \r
7789 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator)       \\r
7790     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
7791 \r
7792 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback)      \\r
7793     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
7794 \r
7795 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags)        \\r
7796     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
7797 \r
7798 #define IDeckLinkInput_v7_3_DisableVideoInput(This)     \\r
7799     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
7800 \r
7801 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount)       \\r
7802     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
7803 \r
7804 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \\r
7805     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
7806 \r
7807 #define IDeckLinkInput_v7_3_DisableAudioInput(This)     \\r
7808     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
7809 \r
7810 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)   \\r
7811     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
7812 \r
7813 #define IDeckLinkInput_v7_3_StartStreams(This)  \\r
7814     ( (This)->lpVtbl -> StartStreams(This) ) \r
7815 \r
7816 #define IDeckLinkInput_v7_3_StopStreams(This)   \\r
7817     ( (This)->lpVtbl -> StopStreams(This) ) \r
7818 \r
7819 #define IDeckLinkInput_v7_3_PauseStreams(This)  \\r
7820     ( (This)->lpVtbl -> PauseStreams(This) ) \r
7821 \r
7822 #define IDeckLinkInput_v7_3_FlushStreams(This)  \\r
7823     ( (This)->lpVtbl -> FlushStreams(This) ) \r
7824 \r
7825 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback)       \\r
7826     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
7827 \r
7828 #endif /* COBJMACROS */\r
7829 \r
7830 \r
7831 #endif  /* C style interface */\r
7832 \r
7833 \r
7834 \r
7835 \r
7836 #endif  /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */\r
7837 \r
7838 \r
7839 #ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
7840 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
7841 \r
7842 /* interface IDeckLinkVideoInputFrame_v7_3 */\r
7843 /* [helpstring][local][uuid][object] */ \r
7844 \r
7845 \r
7846 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;\r
7847 \r
7848 #if defined(__cplusplus) && !defined(CINTERFACE)\r
7849     \r
7850     MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")\r
7851     IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6\r
7852     {\r
7853     public:\r
7854         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
7855             /* [out] */ BMDTimeValue *frameTime,\r
7856             /* [out] */ BMDTimeValue *frameDuration,\r
7857             BMDTimeScale timeScale) = 0;\r
7858         \r
7859     };\r
7860     \r
7861 #else   /* C style interface */\r
7862 \r
7863     typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl\r
7864     {\r
7865         BEGIN_INTERFACE\r
7866         \r
7867         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
7868             IDeckLinkVideoInputFrame_v7_3 * This,\r
7869             /* [in] */ REFIID riid,\r
7870             /* [annotation][iid_is][out] */ \r
7871             __RPC__deref_out  void **ppvObject);\r
7872         \r
7873         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
7874             IDeckLinkVideoInputFrame_v7_3 * This);\r
7875         \r
7876         ULONG ( STDMETHODCALLTYPE *Release )( \r
7877             IDeckLinkVideoInputFrame_v7_3 * This);\r
7878         \r
7879         long ( STDMETHODCALLTYPE *GetWidth )( \r
7880             IDeckLinkVideoInputFrame_v7_3 * This);\r
7881         \r
7882         long ( STDMETHODCALLTYPE *GetHeight )( \r
7883             IDeckLinkVideoInputFrame_v7_3 * This);\r
7884         \r
7885         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
7886             IDeckLinkVideoInputFrame_v7_3 * This);\r
7887         \r
7888         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
7889             IDeckLinkVideoInputFrame_v7_3 * This);\r
7890         \r
7891         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
7892             IDeckLinkVideoInputFrame_v7_3 * This);\r
7893         \r
7894         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
7895             IDeckLinkVideoInputFrame_v7_3 * This,\r
7896             /* [out] */ void **buffer);\r
7897         \r
7898         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
7899             IDeckLinkVideoInputFrame_v7_3 * This,\r
7900             BMDTimecodeFormat format,\r
7901             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
7902         \r
7903         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
7904             IDeckLinkVideoInputFrame_v7_3 * This,\r
7905             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
7906         \r
7907         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
7908             IDeckLinkVideoInputFrame_v7_3 * This,\r
7909             /* [out] */ BMDTimeValue *frameTime,\r
7910             /* [out] */ BMDTimeValue *frameDuration,\r
7911             BMDTimeScale timeScale);\r
7912         \r
7913         END_INTERFACE\r
7914     } IDeckLinkVideoInputFrame_v7_3Vtbl;\r
7915 \r
7916     interface IDeckLinkVideoInputFrame_v7_3\r
7917     {\r
7918         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;\r
7919     };\r
7920 \r
7921     \r
7922 \r
7923 #ifdef COBJMACROS\r
7924 \r
7925 \r
7926 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject)       \\r
7927     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
7928 \r
7929 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This)      \\r
7930     ( (This)->lpVtbl -> AddRef(This) ) \r
7931 \r
7932 #define IDeckLinkVideoInputFrame_v7_3_Release(This)     \\r
7933     ( (This)->lpVtbl -> Release(This) ) \r
7934 \r
7935 \r
7936 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This)    \\r
7937     ( (This)->lpVtbl -> GetWidth(This) ) \r
7938 \r
7939 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This)   \\r
7940     ( (This)->lpVtbl -> GetHeight(This) ) \r
7941 \r
7942 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) \\r
7943     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
7944 \r
7945 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This)      \\r
7946     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
7947 \r
7948 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This)    \\r
7949     ( (This)->lpVtbl -> GetFlags(This) ) \r
7950 \r
7951 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer)     \\r
7952     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
7953 \r
7954 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) \\r
7955     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
7956 \r
7957 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary)  \\r
7958     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
7959 \r
7960 \r
7961 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale)     \\r
7962     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
7963 \r
7964 #endif /* COBJMACROS */\r
7965 \r
7966 \r
7967 #endif  /* C style interface */\r
7968 \r
7969 \r
7970 \r
7971 \r
7972 #endif  /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */\r
7973 \r
7974 \r
7975 #ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
7976 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
7977 \r
7978 /* interface IDeckLinkDisplayModeIterator_v7_1 */\r
7979 /* [helpstring][uuid][object] */ \r
7980 \r
7981 \r
7982 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;\r
7983 \r
7984 #if defined(__cplusplus) && !defined(CINTERFACE)\r
7985     \r
7986     MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")\r
7987     IDeckLinkDisplayModeIterator_v7_1 : public IUnknown\r
7988     {\r
7989     public:\r
7990         virtual HRESULT STDMETHODCALLTYPE Next( \r
7991             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;\r
7992         \r
7993     };\r
7994     \r
7995 #else   /* C style interface */\r
7996 \r
7997     typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl\r
7998     {\r
7999         BEGIN_INTERFACE\r
8000         \r
8001         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8002             IDeckLinkDisplayModeIterator_v7_1 * This,\r
8003             /* [in] */ REFIID riid,\r
8004             /* [annotation][iid_is][out] */ \r
8005             __RPC__deref_out  void **ppvObject);\r
8006         \r
8007         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8008             IDeckLinkDisplayModeIterator_v7_1 * This);\r
8009         \r
8010         ULONG ( STDMETHODCALLTYPE *Release )( \r
8011             IDeckLinkDisplayModeIterator_v7_1 * This);\r
8012         \r
8013         HRESULT ( STDMETHODCALLTYPE *Next )( \r
8014             IDeckLinkDisplayModeIterator_v7_1 * This,\r
8015             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);\r
8016         \r
8017         END_INTERFACE\r
8018     } IDeckLinkDisplayModeIterator_v7_1Vtbl;\r
8019 \r
8020     interface IDeckLinkDisplayModeIterator_v7_1\r
8021     {\r
8022         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;\r
8023     };\r
8024 \r
8025     \r
8026 \r
8027 #ifdef COBJMACROS\r
8028 \r
8029 \r
8030 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject)   \\r
8031     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8032 \r
8033 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This)  \\r
8034     ( (This)->lpVtbl -> AddRef(This) ) \r
8035 \r
8036 #define IDeckLinkDisplayModeIterator_v7_1_Release(This) \\r
8037     ( (This)->lpVtbl -> Release(This) ) \r
8038 \r
8039 \r
8040 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode)        \\r
8041     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
8042 \r
8043 #endif /* COBJMACROS */\r
8044 \r
8045 \r
8046 #endif  /* C style interface */\r
8047 \r
8048 \r
8049 \r
8050 \r
8051 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */\r
8052 \r
8053 \r
8054 #ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
8055 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
8056 \r
8057 /* interface IDeckLinkDisplayMode_v7_1 */\r
8058 /* [helpstring][uuid][object] */ \r
8059 \r
8060 \r
8061 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;\r
8062 \r
8063 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8064     \r
8065     MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")\r
8066     IDeckLinkDisplayMode_v7_1 : public IUnknown\r
8067     {\r
8068     public:\r
8069         virtual HRESULT STDMETHODCALLTYPE GetName( \r
8070             /* [out] */ BSTR *name) = 0;\r
8071         \r
8072         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
8073         \r
8074         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
8075         \r
8076         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
8077         \r
8078         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
8079             /* [out] */ BMDTimeValue *frameDuration,\r
8080             /* [out] */ BMDTimeScale *timeScale) = 0;\r
8081         \r
8082     };\r
8083     \r
8084 #else   /* C style interface */\r
8085 \r
8086     typedef struct IDeckLinkDisplayMode_v7_1Vtbl\r
8087     {\r
8088         BEGIN_INTERFACE\r
8089         \r
8090         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8091             IDeckLinkDisplayMode_v7_1 * This,\r
8092             /* [in] */ REFIID riid,\r
8093             /* [annotation][iid_is][out] */ \r
8094             __RPC__deref_out  void **ppvObject);\r
8095         \r
8096         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8097             IDeckLinkDisplayMode_v7_1 * This);\r
8098         \r
8099         ULONG ( STDMETHODCALLTYPE *Release )( \r
8100             IDeckLinkDisplayMode_v7_1 * This);\r
8101         \r
8102         HRESULT ( STDMETHODCALLTYPE *GetName )( \r
8103             IDeckLinkDisplayMode_v7_1 * This,\r
8104             /* [out] */ BSTR *name);\r
8105         \r
8106         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
8107             IDeckLinkDisplayMode_v7_1 * This);\r
8108         \r
8109         long ( STDMETHODCALLTYPE *GetWidth )( \r
8110             IDeckLinkDisplayMode_v7_1 * This);\r
8111         \r
8112         long ( STDMETHODCALLTYPE *GetHeight )( \r
8113             IDeckLinkDisplayMode_v7_1 * This);\r
8114         \r
8115         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
8116             IDeckLinkDisplayMode_v7_1 * This,\r
8117             /* [out] */ BMDTimeValue *frameDuration,\r
8118             /* [out] */ BMDTimeScale *timeScale);\r
8119         \r
8120         END_INTERFACE\r
8121     } IDeckLinkDisplayMode_v7_1Vtbl;\r
8122 \r
8123     interface IDeckLinkDisplayMode_v7_1\r
8124     {\r
8125         CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;\r
8126     };\r
8127 \r
8128     \r
8129 \r
8130 #ifdef COBJMACROS\r
8131 \r
8132 \r
8133 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject)   \\r
8134     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8135 \r
8136 #define IDeckLinkDisplayMode_v7_1_AddRef(This)  \\r
8137     ( (This)->lpVtbl -> AddRef(This) ) \r
8138 \r
8139 #define IDeckLinkDisplayMode_v7_1_Release(This) \\r
8140     ( (This)->lpVtbl -> Release(This) ) \r
8141 \r
8142 \r
8143 #define IDeckLinkDisplayMode_v7_1_GetName(This,name)    \\r
8144     ( (This)->lpVtbl -> GetName(This,name) ) \r
8145 \r
8146 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This)  \\r
8147     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
8148 \r
8149 #define IDeckLinkDisplayMode_v7_1_GetWidth(This)        \\r
8150     ( (This)->lpVtbl -> GetWidth(This) ) \r
8151 \r
8152 #define IDeckLinkDisplayMode_v7_1_GetHeight(This)       \\r
8153     ( (This)->lpVtbl -> GetHeight(This) ) \r
8154 \r
8155 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale)    \\r
8156     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
8157 \r
8158 #endif /* COBJMACROS */\r
8159 \r
8160 \r
8161 #endif  /* C style interface */\r
8162 \r
8163 \r
8164 \r
8165 \r
8166 #endif  /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */\r
8167 \r
8168 \r
8169 #ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
8170 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
8171 \r
8172 /* interface IDeckLinkVideoFrame_v7_1 */\r
8173 /* [helpstring][local][uuid][object] */ \r
8174 \r
8175 \r
8176 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;\r
8177 \r
8178 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8179     \r
8180     MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")\r
8181     IDeckLinkVideoFrame_v7_1 : public IUnknown\r
8182     {\r
8183     public:\r
8184         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
8185         \r
8186         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
8187         \r
8188         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
8189         \r
8190         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
8191         \r
8192         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
8193         \r
8194         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
8195             void **buffer) = 0;\r
8196         \r
8197     };\r
8198     \r
8199 #else   /* C style interface */\r
8200 \r
8201     typedef struct IDeckLinkVideoFrame_v7_1Vtbl\r
8202     {\r
8203         BEGIN_INTERFACE\r
8204         \r
8205         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8206             IDeckLinkVideoFrame_v7_1 * This,\r
8207             /* [in] */ REFIID riid,\r
8208             /* [annotation][iid_is][out] */ \r
8209             __RPC__deref_out  void **ppvObject);\r
8210         \r
8211         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8212             IDeckLinkVideoFrame_v7_1 * This);\r
8213         \r
8214         ULONG ( STDMETHODCALLTYPE *Release )( \r
8215             IDeckLinkVideoFrame_v7_1 * This);\r
8216         \r
8217         long ( STDMETHODCALLTYPE *GetWidth )( \r
8218             IDeckLinkVideoFrame_v7_1 * This);\r
8219         \r
8220         long ( STDMETHODCALLTYPE *GetHeight )( \r
8221             IDeckLinkVideoFrame_v7_1 * This);\r
8222         \r
8223         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
8224             IDeckLinkVideoFrame_v7_1 * This);\r
8225         \r
8226         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
8227             IDeckLinkVideoFrame_v7_1 * This);\r
8228         \r
8229         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
8230             IDeckLinkVideoFrame_v7_1 * This);\r
8231         \r
8232         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
8233             IDeckLinkVideoFrame_v7_1 * This,\r
8234             void **buffer);\r
8235         \r
8236         END_INTERFACE\r
8237     } IDeckLinkVideoFrame_v7_1Vtbl;\r
8238 \r
8239     interface IDeckLinkVideoFrame_v7_1\r
8240     {\r
8241         CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;\r
8242     };\r
8243 \r
8244     \r
8245 \r
8246 #ifdef COBJMACROS\r
8247 \r
8248 \r
8249 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject)    \\r
8250     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8251 \r
8252 #define IDeckLinkVideoFrame_v7_1_AddRef(This)   \\r
8253     ( (This)->lpVtbl -> AddRef(This) ) \r
8254 \r
8255 #define IDeckLinkVideoFrame_v7_1_Release(This)  \\r
8256     ( (This)->lpVtbl -> Release(This) ) \r
8257 \r
8258 \r
8259 #define IDeckLinkVideoFrame_v7_1_GetWidth(This) \\r
8260     ( (This)->lpVtbl -> GetWidth(This) ) \r
8261 \r
8262 #define IDeckLinkVideoFrame_v7_1_GetHeight(This)        \\r
8263     ( (This)->lpVtbl -> GetHeight(This) ) \r
8264 \r
8265 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This)      \\r
8266     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
8267 \r
8268 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This)   \\r
8269     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
8270 \r
8271 #define IDeckLinkVideoFrame_v7_1_GetFlags(This) \\r
8272     ( (This)->lpVtbl -> GetFlags(This) ) \r
8273 \r
8274 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer)  \\r
8275     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
8276 \r
8277 #endif /* COBJMACROS */\r
8278 \r
8279 \r
8280 #endif  /* C style interface */\r
8281 \r
8282 \r
8283 \r
8284 \r
8285 #endif  /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */\r
8286 \r
8287 \r
8288 #ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
8289 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
8290 \r
8291 /* interface IDeckLinkVideoInputFrame_v7_1 */\r
8292 /* [helpstring][local][uuid][object] */ \r
8293 \r
8294 \r
8295 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;\r
8296 \r
8297 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8298     \r
8299     MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")\r
8300     IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1\r
8301     {\r
8302     public:\r
8303         virtual HRESULT STDMETHODCALLTYPE GetFrameTime( \r
8304             BMDTimeValue *frameTime,\r
8305             BMDTimeValue *frameDuration,\r
8306             BMDTimeScale timeScale) = 0;\r
8307         \r
8308     };\r
8309     \r
8310 #else   /* C style interface */\r
8311 \r
8312     typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl\r
8313     {\r
8314         BEGIN_INTERFACE\r
8315         \r
8316         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8317             IDeckLinkVideoInputFrame_v7_1 * This,\r
8318             /* [in] */ REFIID riid,\r
8319             /* [annotation][iid_is][out] */ \r
8320             __RPC__deref_out  void **ppvObject);\r
8321         \r
8322         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8323             IDeckLinkVideoInputFrame_v7_1 * This);\r
8324         \r
8325         ULONG ( STDMETHODCALLTYPE *Release )( \r
8326             IDeckLinkVideoInputFrame_v7_1 * This);\r
8327         \r
8328         long ( STDMETHODCALLTYPE *GetWidth )( \r
8329             IDeckLinkVideoInputFrame_v7_1 * This);\r
8330         \r
8331         long ( STDMETHODCALLTYPE *GetHeight )( \r
8332             IDeckLinkVideoInputFrame_v7_1 * This);\r
8333         \r
8334         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
8335             IDeckLinkVideoInputFrame_v7_1 * This);\r
8336         \r
8337         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
8338             IDeckLinkVideoInputFrame_v7_1 * This);\r
8339         \r
8340         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
8341             IDeckLinkVideoInputFrame_v7_1 * This);\r
8342         \r
8343         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
8344             IDeckLinkVideoInputFrame_v7_1 * This,\r
8345             void **buffer);\r
8346         \r
8347         HRESULT ( STDMETHODCALLTYPE *GetFrameTime )( \r
8348             IDeckLinkVideoInputFrame_v7_1 * This,\r
8349             BMDTimeValue *frameTime,\r
8350             BMDTimeValue *frameDuration,\r
8351             BMDTimeScale timeScale);\r
8352         \r
8353         END_INTERFACE\r
8354     } IDeckLinkVideoInputFrame_v7_1Vtbl;\r
8355 \r
8356     interface IDeckLinkVideoInputFrame_v7_1\r
8357     {\r
8358         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;\r
8359     };\r
8360 \r
8361     \r
8362 \r
8363 #ifdef COBJMACROS\r
8364 \r
8365 \r
8366 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject)       \\r
8367     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8368 \r
8369 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This)      \\r
8370     ( (This)->lpVtbl -> AddRef(This) ) \r
8371 \r
8372 #define IDeckLinkVideoInputFrame_v7_1_Release(This)     \\r
8373     ( (This)->lpVtbl -> Release(This) ) \r
8374 \r
8375 \r
8376 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This)    \\r
8377     ( (This)->lpVtbl -> GetWidth(This) ) \r
8378 \r
8379 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This)   \\r
8380     ( (This)->lpVtbl -> GetHeight(This) ) \r
8381 \r
8382 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) \\r
8383     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
8384 \r
8385 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This)      \\r
8386     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
8387 \r
8388 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This)    \\r
8389     ( (This)->lpVtbl -> GetFlags(This) ) \r
8390 \r
8391 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer)     \\r
8392     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
8393 \r
8394 \r
8395 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale)      \\r
8396     ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) ) \r
8397 \r
8398 #endif /* COBJMACROS */\r
8399 \r
8400 \r
8401 #endif  /* C style interface */\r
8402 \r
8403 \r
8404 \r
8405 \r
8406 #endif  /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */\r
8407 \r
8408 \r
8409 #ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
8410 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
8411 \r
8412 /* interface IDeckLinkAudioInputPacket_v7_1 */\r
8413 /* [helpstring][local][uuid][object] */ \r
8414 \r
8415 \r
8416 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;\r
8417 \r
8418 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8419     \r
8420     MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")\r
8421     IDeckLinkAudioInputPacket_v7_1 : public IUnknown\r
8422     {\r
8423     public:\r
8424         virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;\r
8425         \r
8426         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
8427             void **buffer) = 0;\r
8428         \r
8429         virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( \r
8430             BMDTimeValue *packetTime,\r
8431             BMDTimeScale timeScale) = 0;\r
8432         \r
8433     };\r
8434     \r
8435 #else   /* C style interface */\r
8436 \r
8437     typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl\r
8438     {\r
8439         BEGIN_INTERFACE\r
8440         \r
8441         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8442             IDeckLinkAudioInputPacket_v7_1 * This,\r
8443             /* [in] */ REFIID riid,\r
8444             /* [annotation][iid_is][out] */ \r
8445             __RPC__deref_out  void **ppvObject);\r
8446         \r
8447         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8448             IDeckLinkAudioInputPacket_v7_1 * This);\r
8449         \r
8450         ULONG ( STDMETHODCALLTYPE *Release )( \r
8451             IDeckLinkAudioInputPacket_v7_1 * This);\r
8452         \r
8453         long ( STDMETHODCALLTYPE *GetSampleCount )( \r
8454             IDeckLinkAudioInputPacket_v7_1 * This);\r
8455         \r
8456         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
8457             IDeckLinkAudioInputPacket_v7_1 * This,\r
8458             void **buffer);\r
8459         \r
8460         HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )( \r
8461             IDeckLinkAudioInputPacket_v7_1 * This,\r
8462             BMDTimeValue *packetTime,\r
8463             BMDTimeScale timeScale);\r
8464         \r
8465         END_INTERFACE\r
8466     } IDeckLinkAudioInputPacket_v7_1Vtbl;\r
8467 \r
8468     interface IDeckLinkAudioInputPacket_v7_1\r
8469     {\r
8470         CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;\r
8471     };\r
8472 \r
8473     \r
8474 \r
8475 #ifdef COBJMACROS\r
8476 \r
8477 \r
8478 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject)      \\r
8479     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8480 \r
8481 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This)     \\r
8482     ( (This)->lpVtbl -> AddRef(This) ) \r
8483 \r
8484 #define IDeckLinkAudioInputPacket_v7_1_Release(This)    \\r
8485     ( (This)->lpVtbl -> Release(This) ) \r
8486 \r
8487 \r
8488 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This)     \\r
8489     ( (This)->lpVtbl -> GetSampleCount(This) ) \r
8490 \r
8491 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer)    \\r
8492     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
8493 \r
8494 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale)    \\r
8495     ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) ) \r
8496 \r
8497 #endif /* COBJMACROS */\r
8498 \r
8499 \r
8500 #endif  /* C style interface */\r
8501 \r
8502 \r
8503 \r
8504 \r
8505 #endif  /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */\r
8506 \r
8507 \r
8508 #ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
8509 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
8510 \r
8511 /* interface IDeckLinkVideoOutputCallback_v7_1 */\r
8512 /* [helpstring][uuid][object] */ \r
8513 \r
8514 \r
8515 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;\r
8516 \r
8517 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8518     \r
8519     MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")\r
8520     IDeckLinkVideoOutputCallback_v7_1 : public IUnknown\r
8521     {\r
8522     public:\r
8523         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
8524             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
8525             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
8526         \r
8527     };\r
8528     \r
8529 #else   /* C style interface */\r
8530 \r
8531     typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl\r
8532     {\r
8533         BEGIN_INTERFACE\r
8534         \r
8535         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8536             IDeckLinkVideoOutputCallback_v7_1 * This,\r
8537             /* [in] */ REFIID riid,\r
8538             /* [annotation][iid_is][out] */ \r
8539             __RPC__deref_out  void **ppvObject);\r
8540         \r
8541         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8542             IDeckLinkVideoOutputCallback_v7_1 * This);\r
8543         \r
8544         ULONG ( STDMETHODCALLTYPE *Release )( \r
8545             IDeckLinkVideoOutputCallback_v7_1 * This);\r
8546         \r
8547         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
8548             IDeckLinkVideoOutputCallback_v7_1 * This,\r
8549             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
8550             /* [in] */ BMDOutputFrameCompletionResult result);\r
8551         \r
8552         END_INTERFACE\r
8553     } IDeckLinkVideoOutputCallback_v7_1Vtbl;\r
8554 \r
8555     interface IDeckLinkVideoOutputCallback_v7_1\r
8556     {\r
8557         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;\r
8558     };\r
8559 \r
8560     \r
8561 \r
8562 #ifdef COBJMACROS\r
8563 \r
8564 \r
8565 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject)   \\r
8566     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8567 \r
8568 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This)  \\r
8569     ( (This)->lpVtbl -> AddRef(This) ) \r
8570 \r
8571 #define IDeckLinkVideoOutputCallback_v7_1_Release(This) \\r
8572     ( (This)->lpVtbl -> Release(This) ) \r
8573 \r
8574 \r
8575 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result)   \\r
8576     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
8577 \r
8578 #endif /* COBJMACROS */\r
8579 \r
8580 \r
8581 #endif  /* C style interface */\r
8582 \r
8583 \r
8584 \r
8585 \r
8586 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */\r
8587 \r
8588 \r
8589 #ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
8590 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
8591 \r
8592 /* interface IDeckLinkInputCallback_v7_1 */\r
8593 /* [helpstring][uuid][object] */ \r
8594 \r
8595 \r
8596 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;\r
8597 \r
8598 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8599     \r
8600     MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")\r
8601     IDeckLinkInputCallback_v7_1 : public IUnknown\r
8602     {\r
8603     public:\r
8604         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
8605             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
8606             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;\r
8607         \r
8608     };\r
8609     \r
8610 #else   /* C style interface */\r
8611 \r
8612     typedef struct IDeckLinkInputCallback_v7_1Vtbl\r
8613     {\r
8614         BEGIN_INTERFACE\r
8615         \r
8616         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8617             IDeckLinkInputCallback_v7_1 * This,\r
8618             /* [in] */ REFIID riid,\r
8619             /* [annotation][iid_is][out] */ \r
8620             __RPC__deref_out  void **ppvObject);\r
8621         \r
8622         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8623             IDeckLinkInputCallback_v7_1 * This);\r
8624         \r
8625         ULONG ( STDMETHODCALLTYPE *Release )( \r
8626             IDeckLinkInputCallback_v7_1 * This);\r
8627         \r
8628         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
8629             IDeckLinkInputCallback_v7_1 * This,\r
8630             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
8631             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);\r
8632         \r
8633         END_INTERFACE\r
8634     } IDeckLinkInputCallback_v7_1Vtbl;\r
8635 \r
8636     interface IDeckLinkInputCallback_v7_1\r
8637     {\r
8638         CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;\r
8639     };\r
8640 \r
8641     \r
8642 \r
8643 #ifdef COBJMACROS\r
8644 \r
8645 \r
8646 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) \\r
8647     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8648 \r
8649 #define IDeckLinkInputCallback_v7_1_AddRef(This)        \\r
8650     ( (This)->lpVtbl -> AddRef(This) ) \r
8651 \r
8652 #define IDeckLinkInputCallback_v7_1_Release(This)       \\r
8653     ( (This)->lpVtbl -> Release(This) ) \r
8654 \r
8655 \r
8656 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) \\r
8657     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
8658 \r
8659 #endif /* COBJMACROS */\r
8660 \r
8661 \r
8662 #endif  /* C style interface */\r
8663 \r
8664 \r
8665 \r
8666 \r
8667 #endif  /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */\r
8668 \r
8669 \r
8670 #ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
8671 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
8672 \r
8673 /* interface IDeckLinkOutput_v7_1 */\r
8674 /* [helpstring][local][uuid][object] */ \r
8675 \r
8676 \r
8677 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;\r
8678 \r
8679 #if defined(__cplusplus) && !defined(CINTERFACE)\r
8680     \r
8681     MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")\r
8682     IDeckLinkOutput_v7_1 : public IUnknown\r
8683     {\r
8684     public:\r
8685         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
8686             BMDDisplayMode displayMode,\r
8687             BMDPixelFormat pixelFormat,\r
8688             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
8689         \r
8690         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
8691             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
8692         \r
8693         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
8694             BMDDisplayMode displayMode) = 0;\r
8695         \r
8696         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
8697         \r
8698         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
8699             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
8700         \r
8701         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
8702             long width,\r
8703             long height,\r
8704             long rowBytes,\r
8705             BMDPixelFormat pixelFormat,\r
8706             BMDFrameFlags flags,\r
8707             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
8708         \r
8709         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( \r
8710             void *buffer,\r
8711             long width,\r
8712             long height,\r
8713             long rowBytes,\r
8714             BMDPixelFormat pixelFormat,\r
8715             BMDFrameFlags flags,\r
8716             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
8717         \r
8718         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
8719             IDeckLinkVideoFrame_v7_1 *theFrame) = 0;\r
8720         \r
8721         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
8722             IDeckLinkVideoFrame_v7_1 *theFrame,\r
8723             BMDTimeValue displayTime,\r
8724             BMDTimeValue displayDuration,\r
8725             BMDTimeScale timeScale) = 0;\r
8726         \r
8727         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
8728             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;\r
8729         \r
8730         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
8731             BMDAudioSampleRate sampleRate,\r
8732             BMDAudioSampleType sampleType,\r
8733             unsigned long channelCount) = 0;\r
8734         \r
8735         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
8736         \r
8737         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
8738             void *buffer,\r
8739             unsigned long sampleFrameCount,\r
8740             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
8741         \r
8742         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
8743         \r
8744         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
8745         \r
8746         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
8747             void *buffer,\r
8748             unsigned long sampleFrameCount,\r
8749             BMDTimeValue streamTime,\r
8750             BMDTimeScale timeScale,\r
8751             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
8752         \r
8753         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
8754             /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
8755         \r
8756         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
8757         \r
8758         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
8759             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
8760         \r
8761         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
8762             BMDTimeValue playbackStartTime,\r
8763             BMDTimeScale timeScale,\r
8764             double playbackSpeed) = 0;\r
8765         \r
8766         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
8767             BMDTimeValue stopPlaybackAtTime,\r
8768             BMDTimeValue *actualStopTime,\r
8769             BMDTimeScale timeScale) = 0;\r
8770         \r
8771         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
8772             BMDTimeScale desiredTimeScale,\r
8773             BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
8774         \r
8775     };\r
8776     \r
8777 #else   /* C style interface */\r
8778 \r
8779     typedef struct IDeckLinkOutput_v7_1Vtbl\r
8780     {\r
8781         BEGIN_INTERFACE\r
8782         \r
8783         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
8784             IDeckLinkOutput_v7_1 * This,\r
8785             /* [in] */ REFIID riid,\r
8786             /* [annotation][iid_is][out] */ \r
8787             __RPC__deref_out  void **ppvObject);\r
8788         \r
8789         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
8790             IDeckLinkOutput_v7_1 * This);\r
8791         \r
8792         ULONG ( STDMETHODCALLTYPE *Release )( \r
8793             IDeckLinkOutput_v7_1 * This);\r
8794         \r
8795         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
8796             IDeckLinkOutput_v7_1 * This,\r
8797             BMDDisplayMode displayMode,\r
8798             BMDPixelFormat pixelFormat,\r
8799             /* [out] */ BMDDisplayModeSupport *result);\r
8800         \r
8801         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
8802             IDeckLinkOutput_v7_1 * This,\r
8803             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
8804         \r
8805         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
8806             IDeckLinkOutput_v7_1 * This,\r
8807             BMDDisplayMode displayMode);\r
8808         \r
8809         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
8810             IDeckLinkOutput_v7_1 * This);\r
8811         \r
8812         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
8813             IDeckLinkOutput_v7_1 * This,\r
8814             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
8815         \r
8816         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
8817             IDeckLinkOutput_v7_1 * This,\r
8818             long width,\r
8819             long height,\r
8820             long rowBytes,\r
8821             BMDPixelFormat pixelFormat,\r
8822             BMDFrameFlags flags,\r
8823             IDeckLinkVideoFrame_v7_1 **outFrame);\r
8824         \r
8825         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( \r
8826             IDeckLinkOutput_v7_1 * This,\r
8827             void *buffer,\r
8828             long width,\r
8829             long height,\r
8830             long rowBytes,\r
8831             BMDPixelFormat pixelFormat,\r
8832             BMDFrameFlags flags,\r
8833             IDeckLinkVideoFrame_v7_1 **outFrame);\r
8834         \r
8835         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
8836             IDeckLinkOutput_v7_1 * This,\r
8837             IDeckLinkVideoFrame_v7_1 *theFrame);\r
8838         \r
8839         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
8840             IDeckLinkOutput_v7_1 * This,\r
8841             IDeckLinkVideoFrame_v7_1 *theFrame,\r
8842             BMDTimeValue displayTime,\r
8843             BMDTimeValue displayDuration,\r
8844             BMDTimeScale timeScale);\r
8845         \r
8846         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
8847             IDeckLinkOutput_v7_1 * This,\r
8848             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);\r
8849         \r
8850         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
8851             IDeckLinkOutput_v7_1 * This,\r
8852             BMDAudioSampleRate sampleRate,\r
8853             BMDAudioSampleType sampleType,\r
8854             unsigned long channelCount);\r
8855         \r
8856         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
8857             IDeckLinkOutput_v7_1 * This);\r
8858         \r
8859         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
8860             IDeckLinkOutput_v7_1 * This,\r
8861             void *buffer,\r
8862             unsigned long sampleFrameCount,\r
8863             /* [out] */ unsigned long *sampleFramesWritten);\r
8864         \r
8865         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
8866             IDeckLinkOutput_v7_1 * This);\r
8867         \r
8868         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
8869             IDeckLinkOutput_v7_1 * This);\r
8870         \r
8871         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
8872             IDeckLinkOutput_v7_1 * This,\r
8873             void *buffer,\r
8874             unsigned long sampleFrameCount,\r
8875             BMDTimeValue streamTime,\r
8876             BMDTimeScale timeScale,\r
8877             /* [out] */ unsigned long *sampleFramesWritten);\r
8878         \r
8879         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
8880             IDeckLinkOutput_v7_1 * This,\r
8881             /* [out] */ unsigned long *bufferedSampleCount);\r
8882         \r
8883         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
8884             IDeckLinkOutput_v7_1 * This);\r
8885         \r
8886         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
8887             IDeckLinkOutput_v7_1 * This,\r
8888             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
8889         \r
8890         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
8891             IDeckLinkOutput_v7_1 * This,\r
8892             BMDTimeValue playbackStartTime,\r
8893             BMDTimeScale timeScale,\r
8894             double playbackSpeed);\r
8895         \r
8896         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
8897             IDeckLinkOutput_v7_1 * This,\r
8898             BMDTimeValue stopPlaybackAtTime,\r
8899             BMDTimeValue *actualStopTime,\r
8900             BMDTimeScale timeScale);\r
8901         \r
8902         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
8903             IDeckLinkOutput_v7_1 * This,\r
8904             BMDTimeScale desiredTimeScale,\r
8905             BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
8906         \r
8907         END_INTERFACE\r
8908     } IDeckLinkOutput_v7_1Vtbl;\r
8909 \r
8910     interface IDeckLinkOutput_v7_1\r
8911     {\r
8912         CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;\r
8913     };\r
8914 \r
8915     \r
8916 \r
8917 #ifdef COBJMACROS\r
8918 \r
8919 \r
8920 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject)        \\r
8921     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
8922 \r
8923 #define IDeckLinkOutput_v7_1_AddRef(This)       \\r
8924     ( (This)->lpVtbl -> AddRef(This) ) \r
8925 \r
8926 #define IDeckLinkOutput_v7_1_Release(This)      \\r
8927     ( (This)->lpVtbl -> Release(This) ) \r
8928 \r
8929 \r
8930 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
8931     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
8932 \r
8933 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator)      \\r
8934     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
8935 \r
8936 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode)        \\r
8937     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) ) \r
8938 \r
8939 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This)   \\r
8940     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
8941 \r
8942 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \\r
8943     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
8944 \r
8945 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \\r
8946     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
8947 \r
8948 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
8949     ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
8950 \r
8951 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame)       \\r
8952     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
8953 \r
8954 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \\r
8955     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
8956 \r
8957 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback)      \\r
8958     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
8959 \r
8960 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) \\r
8961     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) ) \r
8962 \r
8963 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This)   \\r
8964     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
8965 \r
8966 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \\r
8967     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
8968 \r
8969 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This)    \\r
8970     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
8971 \r
8972 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This)      \\r
8973     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
8974 \r
8975 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \\r
8976     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
8977 \r
8978 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \\r
8979     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
8980 \r
8981 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This)    \\r
8982     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
8983 \r
8984 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) \\r
8985     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
8986 \r
8987 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \\r
8988     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
8989 \r
8990 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \\r
8991     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
8992 \r
8993 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)    \\r
8994     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
8995 \r
8996 #endif /* COBJMACROS */\r
8997 \r
8998 \r
8999 #endif  /* C style interface */\r
9000 \r
9001 \r
9002 \r
9003 \r
9004 #endif  /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */\r
9005 \r
9006 \r
9007 #ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
9008 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
9009 \r
9010 /* interface IDeckLinkInput_v7_1 */\r
9011 /* [helpstring][uuid][object] */ \r
9012 \r
9013 \r
9014 EXTERN_C const IID IID_IDeckLinkInput_v7_1;\r
9015 \r
9016 #if defined(__cplusplus) && !defined(CINTERFACE)\r
9017     \r
9018     MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")\r
9019     IDeckLinkInput_v7_1 : public IUnknown\r
9020     {\r
9021     public:\r
9022         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
9023             BMDDisplayMode displayMode,\r
9024             BMDPixelFormat pixelFormat,\r
9025             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
9026         \r
9027         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
9028             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
9029         \r
9030         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
9031             BMDDisplayMode displayMode,\r
9032             BMDPixelFormat pixelFormat,\r
9033             BMDVideoInputFlags flags) = 0;\r
9034         \r
9035         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
9036         \r
9037         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
9038             BMDAudioSampleRate sampleRate,\r
9039             BMDAudioSampleType sampleType,\r
9040             unsigned long channelCount) = 0;\r
9041         \r
9042         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
9043         \r
9044         virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( \r
9045             void *buffer,\r
9046             unsigned long sampleFrameCount,\r
9047             /* [out] */ unsigned long *sampleFramesRead,\r
9048             /* [out] */ BMDTimeValue *audioPacketTime,\r
9049             BMDTimeScale timeScale) = 0;\r
9050         \r
9051         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
9052             /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
9053         \r
9054         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
9055         \r
9056         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
9057         \r
9058         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
9059         \r
9060         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
9061             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;\r
9062         \r
9063     };\r
9064     \r
9065 #else   /* C style interface */\r
9066 \r
9067     typedef struct IDeckLinkInput_v7_1Vtbl\r
9068     {\r
9069         BEGIN_INTERFACE\r
9070         \r
9071         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
9072             IDeckLinkInput_v7_1 * This,\r
9073             /* [in] */ REFIID riid,\r
9074             /* [annotation][iid_is][out] */ \r
9075             __RPC__deref_out  void **ppvObject);\r
9076         \r
9077         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
9078             IDeckLinkInput_v7_1 * This);\r
9079         \r
9080         ULONG ( STDMETHODCALLTYPE *Release )( \r
9081             IDeckLinkInput_v7_1 * This);\r
9082         \r
9083         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
9084             IDeckLinkInput_v7_1 * This,\r
9085             BMDDisplayMode displayMode,\r
9086             BMDPixelFormat pixelFormat,\r
9087             /* [out] */ BMDDisplayModeSupport *result);\r
9088         \r
9089         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
9090             IDeckLinkInput_v7_1 * This,\r
9091             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
9092         \r
9093         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
9094             IDeckLinkInput_v7_1 * This,\r
9095             BMDDisplayMode displayMode,\r
9096             BMDPixelFormat pixelFormat,\r
9097             BMDVideoInputFlags flags);\r
9098         \r
9099         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
9100             IDeckLinkInput_v7_1 * This);\r
9101         \r
9102         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
9103             IDeckLinkInput_v7_1 * This,\r
9104             BMDAudioSampleRate sampleRate,\r
9105             BMDAudioSampleType sampleType,\r
9106             unsigned long channelCount);\r
9107         \r
9108         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
9109             IDeckLinkInput_v7_1 * This);\r
9110         \r
9111         HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( \r
9112             IDeckLinkInput_v7_1 * This,\r
9113             void *buffer,\r
9114             unsigned long sampleFrameCount,\r
9115             /* [out] */ unsigned long *sampleFramesRead,\r
9116             /* [out] */ BMDTimeValue *audioPacketTime,\r
9117             BMDTimeScale timeScale);\r
9118         \r
9119         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
9120             IDeckLinkInput_v7_1 * This,\r
9121             /* [out] */ unsigned long *bufferedSampleCount);\r
9122         \r
9123         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
9124             IDeckLinkInput_v7_1 * This);\r
9125         \r
9126         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
9127             IDeckLinkInput_v7_1 * This);\r
9128         \r
9129         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
9130             IDeckLinkInput_v7_1 * This);\r
9131         \r
9132         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
9133             IDeckLinkInput_v7_1 * This,\r
9134             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);\r
9135         \r
9136         END_INTERFACE\r
9137     } IDeckLinkInput_v7_1Vtbl;\r
9138 \r
9139     interface IDeckLinkInput_v7_1\r
9140     {\r
9141         CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;\r
9142     };\r
9143 \r
9144     \r
9145 \r
9146 #ifdef COBJMACROS\r
9147 \r
9148 \r
9149 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) \\r
9150     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
9151 \r
9152 #define IDeckLinkInput_v7_1_AddRef(This)        \\r
9153     ( (This)->lpVtbl -> AddRef(This) ) \r
9154 \r
9155 #define IDeckLinkInput_v7_1_Release(This)       \\r
9156     ( (This)->lpVtbl -> Release(This) ) \r
9157 \r
9158 \r
9159 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \\r
9160     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
9161 \r
9162 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator)       \\r
9163     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
9164 \r
9165 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags)        \\r
9166     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
9167 \r
9168 #define IDeckLinkInput_v7_1_DisableVideoInput(This)     \\r
9169     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
9170 \r
9171 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \\r
9172     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
9173 \r
9174 #define IDeckLinkInput_v7_1_DisableAudioInput(This)     \\r
9175     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
9176 \r
9177 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale)   \\r
9178     ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) ) \r
9179 \r
9180 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)  \\r
9181     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
9182 \r
9183 #define IDeckLinkInput_v7_1_StartStreams(This)  \\r
9184     ( (This)->lpVtbl -> StartStreams(This) ) \r
9185 \r
9186 #define IDeckLinkInput_v7_1_StopStreams(This)   \\r
9187     ( (This)->lpVtbl -> StopStreams(This) ) \r
9188 \r
9189 #define IDeckLinkInput_v7_1_PauseStreams(This)  \\r
9190     ( (This)->lpVtbl -> PauseStreams(This) ) \r
9191 \r
9192 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback)       \\r
9193     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
9194 \r
9195 #endif /* COBJMACROS */\r
9196 \r
9197 \r
9198 #endif  /* C style interface */\r
9199 \r
9200 \r
9201 \r
9202 \r
9203 #endif  /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */\r
9204 \r
9205 #endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */\r
9206 \r
9207 /* Additional Prototypes for ALL interfaces */\r
9208 \r
9209 /* end of Additional Prototypes */\r
9210 \r
9211 #ifdef __cplusplus\r
9212 }\r
9213 #endif\r
9214 \r
9215 #endif\r
9216 \r
9217 \r