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