]> git.sesse.net Git - casparcg/blob - modules/decklink/interop/DeckLinkAPI_h.h
fa2dc2217a502a68d1924b25dec82eb515b21099
[casparcg] / modules / decklink / interop / DeckLinkAPI_h.h
1
2
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6  /* File created by MIDL compiler version 7.00.0555 */
7 /* at Thu Apr 04 12:00:19 2013
8  */
9 /* Compiler settings for interop\DeckLinkAPI.idl:
10     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 
11     protocol : dce , ms_ext, c_ext, robust
12     error checks: allocation ref bounds_check enum stub_data 
13     VC __declspec() decoration level: 
14          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15          DECLSPEC_UUID(), MIDL_INTERFACE()
16 */
17 /* @@MIDL_FILE_HEADING(  ) */
18
19 #pragma warning( disable: 4049 )  /* more than 64k source lines */
20
21
22 /* verify that the <rpcndr.h> version is high enough to compile this file*/
23 #ifndef __REQUIRED_RPCNDR_H_VERSION__
24 #define __REQUIRED_RPCNDR_H_VERSION__ 475
25 #endif
26
27 #include "rpc.h"
28 #include "rpcndr.h"
29
30 #ifndef __RPCNDR_H_VERSION__
31 #error this stub requires an updated version of <rpcndr.h>
32 #endif // __RPCNDR_H_VERSION__
33
34
35 #ifndef __DeckLinkAPI_h_h__
36 #define __DeckLinkAPI_h_h__
37
38 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
39 #pragma once
40 #endif
41
42 /* Forward Declarations */ 
43
44 #ifndef __IDeckLinkTimecode_FWD_DEFINED__
45 #define __IDeckLinkTimecode_FWD_DEFINED__
46 typedef interface IDeckLinkTimecode IDeckLinkTimecode;
47 #endif  /* __IDeckLinkTimecode_FWD_DEFINED__ */
48
49
50 #ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__
51 #define __IDeckLinkDisplayModeIterator_FWD_DEFINED__
52 typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator;
53 #endif  /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */
54
55
56 #ifndef __IDeckLinkDisplayMode_FWD_DEFINED__
57 #define __IDeckLinkDisplayMode_FWD_DEFINED__
58 typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode;
59 #endif  /* __IDeckLinkDisplayMode_FWD_DEFINED__ */
60
61
62 #ifndef __IDeckLink_FWD_DEFINED__
63 #define __IDeckLink_FWD_DEFINED__
64 typedef interface IDeckLink IDeckLink;
65 #endif  /* __IDeckLink_FWD_DEFINED__ */
66
67
68 #ifndef __IDeckLinkConfiguration_FWD_DEFINED__
69 #define __IDeckLinkConfiguration_FWD_DEFINED__
70 typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;
71 #endif  /* __IDeckLinkConfiguration_FWD_DEFINED__ */
72
73
74 #ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
75 #define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
76 typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;
77 #endif  /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */
78
79
80 #ifndef __IDeckLinkDeckControl_FWD_DEFINED__
81 #define __IDeckLinkDeckControl_FWD_DEFINED__
82 typedef interface IDeckLinkDeckControl IDeckLinkDeckControl;
83 #endif  /* __IDeckLinkDeckControl_FWD_DEFINED__ */
84
85
86 #ifndef __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__
87 #define __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__
88 typedef interface IBMDStreamingDeviceNotificationCallback IBMDStreamingDeviceNotificationCallback;
89 #endif  /* __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ */
90
91
92 #ifndef __IBMDStreamingH264InputCallback_FWD_DEFINED__
93 #define __IBMDStreamingH264InputCallback_FWD_DEFINED__
94 typedef interface IBMDStreamingH264InputCallback IBMDStreamingH264InputCallback;
95 #endif  /* __IBMDStreamingH264InputCallback_FWD_DEFINED__ */
96
97
98 #ifndef __IBMDStreamingDiscovery_FWD_DEFINED__
99 #define __IBMDStreamingDiscovery_FWD_DEFINED__
100 typedef interface IBMDStreamingDiscovery IBMDStreamingDiscovery;
101 #endif  /* __IBMDStreamingDiscovery_FWD_DEFINED__ */
102
103
104 #ifndef __IBMDStreamingVideoEncodingMode_FWD_DEFINED__
105 #define __IBMDStreamingVideoEncodingMode_FWD_DEFINED__
106 typedef interface IBMDStreamingVideoEncodingMode IBMDStreamingVideoEncodingMode;
107 #endif  /* __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ */
108
109
110 #ifndef __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__
111 #define __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__
112 typedef interface IBMDStreamingMutableVideoEncodingMode IBMDStreamingMutableVideoEncodingMode;
113 #endif  /* __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ */
114
115
116 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__
117 #define __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__
118 typedef interface IBMDStreamingVideoEncodingModePresetIterator IBMDStreamingVideoEncodingModePresetIterator;
119 #endif  /* __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ */
120
121
122 #ifndef __IBMDStreamingDeviceInput_FWD_DEFINED__
123 #define __IBMDStreamingDeviceInput_FWD_DEFINED__
124 typedef interface IBMDStreamingDeviceInput IBMDStreamingDeviceInput;
125 #endif  /* __IBMDStreamingDeviceInput_FWD_DEFINED__ */
126
127
128 #ifndef __IBMDStreamingH264NALPacket_FWD_DEFINED__
129 #define __IBMDStreamingH264NALPacket_FWD_DEFINED__
130 typedef interface IBMDStreamingH264NALPacket IBMDStreamingH264NALPacket;
131 #endif  /* __IBMDStreamingH264NALPacket_FWD_DEFINED__ */
132
133
134 #ifndef __IBMDStreamingAudioPacket_FWD_DEFINED__
135 #define __IBMDStreamingAudioPacket_FWD_DEFINED__
136 typedef interface IBMDStreamingAudioPacket IBMDStreamingAudioPacket;
137 #endif  /* __IBMDStreamingAudioPacket_FWD_DEFINED__ */
138
139
140 #ifndef __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__
141 #define __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__
142 typedef interface IBMDStreamingMPEG2TSPacket IBMDStreamingMPEG2TSPacket;
143 #endif  /* __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ */
144
145
146 #ifndef __IBMDStreamingH264NALParser_FWD_DEFINED__
147 #define __IBMDStreamingH264NALParser_FWD_DEFINED__
148 typedef interface IBMDStreamingH264NALParser IBMDStreamingH264NALParser;
149 #endif  /* __IBMDStreamingH264NALParser_FWD_DEFINED__ */
150
151
152 #ifndef __CBMDStreamingDiscovery_FWD_DEFINED__
153 #define __CBMDStreamingDiscovery_FWD_DEFINED__
154
155 #ifdef __cplusplus
156 typedef class CBMDStreamingDiscovery CBMDStreamingDiscovery;
157 #else
158 typedef struct CBMDStreamingDiscovery CBMDStreamingDiscovery;
159 #endif /* __cplusplus */
160
161 #endif  /* __CBMDStreamingDiscovery_FWD_DEFINED__ */
162
163
164 #ifndef __CBMDStreamingH264NALParser_FWD_DEFINED__
165 #define __CBMDStreamingH264NALParser_FWD_DEFINED__
166
167 #ifdef __cplusplus
168 typedef class CBMDStreamingH264NALParser CBMDStreamingH264NALParser;
169 #else
170 typedef struct CBMDStreamingH264NALParser CBMDStreamingH264NALParser;
171 #endif /* __cplusplus */
172
173 #endif  /* __CBMDStreamingH264NALParser_FWD_DEFINED__ */
174
175
176 #ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__
177 #define __IDeckLinkVideoOutputCallback_FWD_DEFINED__
178 typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback;
179 #endif  /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */
180
181
182 #ifndef __IDeckLinkInputCallback_FWD_DEFINED__
183 #define __IDeckLinkInputCallback_FWD_DEFINED__
184 typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;
185 #endif  /* __IDeckLinkInputCallback_FWD_DEFINED__ */
186
187
188 #ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__
189 #define __IDeckLinkMemoryAllocator_FWD_DEFINED__
190 typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;
191 #endif  /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */
192
193
194 #ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__
195 #define __IDeckLinkAudioOutputCallback_FWD_DEFINED__
196 typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback;
197 #endif  /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */
198
199
200 #ifndef __IDeckLinkIterator_FWD_DEFINED__
201 #define __IDeckLinkIterator_FWD_DEFINED__
202 typedef interface IDeckLinkIterator IDeckLinkIterator;
203 #endif  /* __IDeckLinkIterator_FWD_DEFINED__ */
204
205
206 #ifndef __IDeckLinkAPIInformation_FWD_DEFINED__
207 #define __IDeckLinkAPIInformation_FWD_DEFINED__
208 typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation;
209 #endif  /* __IDeckLinkAPIInformation_FWD_DEFINED__ */
210
211
212 #ifndef __IDeckLinkOutput_FWD_DEFINED__
213 #define __IDeckLinkOutput_FWD_DEFINED__
214 typedef interface IDeckLinkOutput IDeckLinkOutput;
215 #endif  /* __IDeckLinkOutput_FWD_DEFINED__ */
216
217
218 #ifndef __IDeckLinkInput_FWD_DEFINED__
219 #define __IDeckLinkInput_FWD_DEFINED__
220 typedef interface IDeckLinkInput IDeckLinkInput;
221 #endif  /* __IDeckLinkInput_FWD_DEFINED__ */
222
223
224 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__
225 #define __IDeckLinkVideoFrame_FWD_DEFINED__
226 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;
227 #endif  /* __IDeckLinkVideoFrame_FWD_DEFINED__ */
228
229
230 #ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__
231 #define __IDeckLinkMutableVideoFrame_FWD_DEFINED__
232 typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;
233 #endif  /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */
234
235
236 #ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
237 #define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
238 typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;
239 #endif  /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */
240
241
242 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__
243 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__
244 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;
245 #endif  /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */
246
247
248 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
249 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
250 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;
251 #endif  /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */
252
253
254 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__
255 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__
256 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;
257 #endif  /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */
258
259
260 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
261 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
262 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;
263 #endif  /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */
264
265
266 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
267 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
268 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;
269 #endif  /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
270
271
272 #ifndef __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
273 #define __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
274 typedef interface IDeckLinkDX9ScreenPreviewHelper IDeckLinkDX9ScreenPreviewHelper;
275 #endif  /* __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
276
277
278 #ifndef __IDeckLinkNotificationCallback_FWD_DEFINED__
279 #define __IDeckLinkNotificationCallback_FWD_DEFINED__
280 typedef interface IDeckLinkNotificationCallback IDeckLinkNotificationCallback;
281 #endif  /* __IDeckLinkNotificationCallback_FWD_DEFINED__ */
282
283
284 #ifndef __IDeckLinkNotification_FWD_DEFINED__
285 #define __IDeckLinkNotification_FWD_DEFINED__
286 typedef interface IDeckLinkNotification IDeckLinkNotification;
287 #endif  /* __IDeckLinkNotification_FWD_DEFINED__ */
288
289
290 #ifndef __IDeckLinkAttributes_FWD_DEFINED__
291 #define __IDeckLinkAttributes_FWD_DEFINED__
292 typedef interface IDeckLinkAttributes IDeckLinkAttributes;
293 #endif  /* __IDeckLinkAttributes_FWD_DEFINED__ */
294
295
296 #ifndef __IDeckLinkKeyer_FWD_DEFINED__
297 #define __IDeckLinkKeyer_FWD_DEFINED__
298 typedef interface IDeckLinkKeyer IDeckLinkKeyer;
299 #endif  /* __IDeckLinkKeyer_FWD_DEFINED__ */
300
301
302 #ifndef __IDeckLinkVideoConversion_FWD_DEFINED__
303 #define __IDeckLinkVideoConversion_FWD_DEFINED__
304 typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;
305 #endif  /* __IDeckLinkVideoConversion_FWD_DEFINED__ */
306
307
308 #ifndef __CDeckLinkIterator_FWD_DEFINED__
309 #define __CDeckLinkIterator_FWD_DEFINED__
310
311 #ifdef __cplusplus
312 typedef class CDeckLinkIterator CDeckLinkIterator;
313 #else
314 typedef struct CDeckLinkIterator CDeckLinkIterator;
315 #endif /* __cplusplus */
316
317 #endif  /* __CDeckLinkIterator_FWD_DEFINED__ */
318
319
320 #ifndef __CDeckLinkAPIInformation_FWD_DEFINED__
321 #define __CDeckLinkAPIInformation_FWD_DEFINED__
322
323 #ifdef __cplusplus
324 typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;
325 #else
326 typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;
327 #endif /* __cplusplus */
328
329 #endif  /* __CDeckLinkAPIInformation_FWD_DEFINED__ */
330
331
332 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
333 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
334
335 #ifdef __cplusplus
336 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
337 #else
338 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
339 #endif /* __cplusplus */
340
341 #endif  /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
342
343
344 #ifndef __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
345 #define __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
346
347 #ifdef __cplusplus
348 typedef class CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
349 #else
350 typedef struct CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
351 #endif /* __cplusplus */
352
353 #endif  /* __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
354
355
356 #ifndef __CDeckLinkVideoConversion_FWD_DEFINED__
357 #define __CDeckLinkVideoConversion_FWD_DEFINED__
358
359 #ifdef __cplusplus
360 typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;
361 #else
362 typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;
363 #endif /* __cplusplus */
364
365 #endif  /* __CDeckLinkVideoConversion_FWD_DEFINED__ */
366
367
368 #ifndef __IDeckLinkInput_v9_2_FWD_DEFINED__
369 #define __IDeckLinkInput_v9_2_FWD_DEFINED__
370 typedef interface IDeckLinkInput_v9_2 IDeckLinkInput_v9_2;
371 #endif  /* __IDeckLinkInput_v9_2_FWD_DEFINED__ */
372
373
374 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
375 #define __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
376 typedef interface IDeckLinkDeckControlStatusCallback_v8_1 IDeckLinkDeckControlStatusCallback_v8_1;
377 #endif  /* __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__ */
378
379
380 #ifndef __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
381 #define __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
382 typedef interface IDeckLinkDeckControl_v8_1 IDeckLinkDeckControl_v8_1;
383 #endif  /* __IDeckLinkDeckControl_v8_1_FWD_DEFINED__ */
384
385
386 #ifndef __IDeckLink_v8_0_FWD_DEFINED__
387 #define __IDeckLink_v8_0_FWD_DEFINED__
388 typedef interface IDeckLink_v8_0 IDeckLink_v8_0;
389 #endif  /* __IDeckLink_v8_0_FWD_DEFINED__ */
390
391
392 #ifndef __IDeckLinkIterator_v8_0_FWD_DEFINED__
393 #define __IDeckLinkIterator_v8_0_FWD_DEFINED__
394 typedef interface IDeckLinkIterator_v8_0 IDeckLinkIterator_v8_0;
395 #endif  /* __IDeckLinkIterator_v8_0_FWD_DEFINED__ */
396
397
398 #ifndef __CDeckLinkIterator_v8_0_FWD_DEFINED__
399 #define __CDeckLinkIterator_v8_0_FWD_DEFINED__
400
401 #ifdef __cplusplus
402 typedef class CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
403 #else
404 typedef struct CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
405 #endif /* __cplusplus */
406
407 #endif  /* __CDeckLinkIterator_v8_0_FWD_DEFINED__ */
408
409
410 #ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
411 #define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
412 typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;
413 #endif  /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */
414
415
416 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
417 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
418 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;
419 #endif  /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */
420
421
422 #ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
423 #define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
424 typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;
425 #endif  /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */
426
427
428 #ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__
429 #define __IDeckLinkOutput_v7_6_FWD_DEFINED__
430 typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;
431 #endif  /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */
432
433
434 #ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__
435 #define __IDeckLinkInput_v7_6_FWD_DEFINED__
436 typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;
437 #endif  /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */
438
439
440 #ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__
441 #define __IDeckLinkTimecode_v7_6_FWD_DEFINED__
442 typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;
443 #endif  /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */
444
445
446 #ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
447 #define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
448 typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;
449 #endif  /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */
450
451
452 #ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
453 #define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
454 typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;
455 #endif  /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */
456
457
458 #ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
459 #define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
460 typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;
461 #endif  /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */
462
463
464 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
465 #define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
466 typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;
467 #endif  /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */
468
469
470 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
471 #define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
472 typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;
473 #endif  /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
474
475
476 #ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
477 #define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
478 typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;
479 #endif  /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
480
481
482 #ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
483 #define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
484 typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;
485 #endif  /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */
486
487
488 #ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
489 #define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
490 typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;
491 #endif  /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */
492
493
494 #ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
495 #define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
496 typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;
497 #endif  /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */
498
499
500 #ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
501 #define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
502
503 #ifdef __cplusplus
504 typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
505 #else
506 typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
507 #endif /* __cplusplus */
508
509 #endif  /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
510
511
512 #ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
513 #define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
514
515 #ifdef __cplusplus
516 typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
517 #else
518 typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
519 #endif /* __cplusplus */
520
521 #endif  /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
522
523
524 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
525 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
526 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;
527 #endif  /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */
528
529
530 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__
531 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__
532 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;
533 #endif  /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */
534
535
536 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__
537 #define __IDeckLinkInput_v7_3_FWD_DEFINED__
538 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;
539 #endif  /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */
540
541
542 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
543 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
544 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;
545 #endif  /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */
546
547
548 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
549 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
550 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;
551 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */
552
553
554 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
555 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
556 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;
557 #endif  /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */
558
559
560 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
561 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
562 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;
563 #endif  /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */
564
565
566 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
567 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
568 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;
569 #endif  /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */
570
571
572 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
573 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
574 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;
575 #endif  /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */
576
577
578 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
579 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
580 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;
581 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */
582
583
584 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
585 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
586 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;
587 #endif  /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */
588
589
590 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__
591 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__
592 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;
593 #endif  /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */
594
595
596 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__
597 #define __IDeckLinkInput_v7_1_FWD_DEFINED__
598 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;
599 #endif  /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */
600
601
602 /* header files for imported files */
603 #include "unknwn.h"
604
605 #ifdef __cplusplus
606 extern "C"{
607 #endif 
608
609
610
611 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__
612 #define __DeckLinkAPI_LIBRARY_DEFINED__
613
614 /* library DeckLinkAPI */
615 /* [helpstring][version][uuid] */ 
616
617 typedef LONGLONG BMDTimeValue;
618
619 typedef LONGLONG BMDTimeScale;
620
621 typedef unsigned long BMDTimecodeBCD;
622
623 typedef unsigned long BMDTimecodeUserBits;
624
625 typedef unsigned long BMDTimecodeFlags;
626 #if 0
627 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;
628
629 #endif
630 /* [v1_enum] */ 
631 enum _BMDTimecodeFlags
632     {   bmdTimecodeFlagDefault  = 0,
633         bmdTimecodeIsDropFrame  = ( 1 << 0 ) 
634     } ;
635 typedef /* [v1_enum] */ 
636 enum _BMDVideoConnection
637     {   bmdVideoConnectionSDI   = ( 1 << 0 ) ,
638         bmdVideoConnectionHDMI  = ( 1 << 1 ) ,
639         bmdVideoConnectionOpticalSDI    = ( 1 << 2 ) ,
640         bmdVideoConnectionComponent     = ( 1 << 3 ) ,
641         bmdVideoConnectionComposite     = ( 1 << 4 ) ,
642         bmdVideoConnectionSVideo        = ( 1 << 5 ) 
643     }   BMDVideoConnection;
644
645
646 typedef unsigned long BMDDisplayModeFlags;
647 #if 0
648 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;
649
650 #endif
651 typedef /* [v1_enum] */ 
652 enum _BMDDisplayMode
653     {   bmdModeNTSC     = 0x6e747363,
654         bmdModeNTSC2398 = 0x6e743233,
655         bmdModePAL      = 0x70616c20,
656         bmdModeNTSCp    = 0x6e747370,
657         bmdModePALp     = 0x70616c70,
658         bmdModeHD1080p2398      = 0x32337073,
659         bmdModeHD1080p24        = 0x32347073,
660         bmdModeHD1080p25        = 0x48703235,
661         bmdModeHD1080p2997      = 0x48703239,
662         bmdModeHD1080p30        = 0x48703330,
663         bmdModeHD1080i50        = 0x48693530,
664         bmdModeHD1080i5994      = 0x48693539,
665         bmdModeHD1080i6000      = 0x48693630,
666         bmdModeHD1080p50        = 0x48703530,
667         bmdModeHD1080p5994      = 0x48703539,
668         bmdModeHD1080p6000      = 0x48703630,
669         bmdModeHD720p50 = 0x68703530,
670         bmdModeHD720p5994       = 0x68703539,
671         bmdModeHD720p60 = 0x68703630,
672         bmdMode2k2398   = 0x326b3233,
673         bmdMode2k24     = 0x326b3234,
674         bmdMode2k25     = 0x326b3235,
675         bmdMode4K2160p2398      = 0x346b3233,
676         bmdMode4K2160p24        = 0x346b3234,
677         bmdMode4K2160p25        = 0x346b3235,
678         bmdMode4K2160p2997      = 0x346b3239,
679         bmdMode4K2160p30        = 0x346b3330,
680         bmdModeUnknown  = 0x69756e6b
681     }   BMDDisplayMode;
682
683 typedef /* [v1_enum] */ 
684 enum _BMDFieldDominance
685     {   bmdUnknownFieldDominance        = 0,
686         bmdLowerFieldFirst      = 0x6c6f7772,
687         bmdUpperFieldFirst      = 0x75707072,
688         bmdProgressiveFrame     = 0x70726f67,
689         bmdProgressiveSegmentedFrame    = 0x70736620
690     }   BMDFieldDominance;
691
692 typedef /* [v1_enum] */ 
693 enum _BMDPixelFormat
694     {   bmdFormat8BitYUV        = 0x32767579,
695         bmdFormat10BitYUV       = 0x76323130,
696         bmdFormat8BitARGB       = 32,
697         bmdFormat8BitBGRA       = 0x42475241,
698         bmdFormat10BitRGB       = 0x72323130
699     }   BMDPixelFormat;
700
701 /* [v1_enum] */ 
702 enum _BMDDisplayModeFlags
703     {   bmdDisplayModeSupports3D        = ( 1 << 0 ) ,
704         bmdDisplayModeColorspaceRec601  = ( 1 << 1 ) ,
705         bmdDisplayModeColorspaceRec709  = ( 1 << 2 ) 
706     } ;
707
708
709 #if 0
710 #endif
711
712 #if 0
713 #endif
714 typedef /* [v1_enum] */ 
715 enum _BMDDeckLinkConfigurationID
716     {   bmdDeckLinkConfigSwapSerialRxTx = 0x73737274,
717         bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,
718         bmdDeckLinkConfigHDMI3DPackingFormat    = 0x33647066,
719         bmdDeckLinkConfigBypass = 0x62797073,
720         bmdDeckLinkConfigClockTimingAdjustment  = 0x63746164,
721         bmdDeckLinkConfigAnalogAudioConsumerLevels      = 0x6161636c,
722         bmdDeckLinkConfigFieldFlickerRemoval    = 0x66646672,
723         bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion       = 0x746f3539,
724         bmdDeckLinkConfig444SDIVideoOutput      = 0x3434346f,
725         bmdDeckLinkConfig3GBpsVideoOutput       = 0x33676273,
726         bmdDeckLinkConfigBlackVideoOutputDuringCapture  = 0x62766f63,
727         bmdDeckLinkConfigLowLatencyVideoOutput  = 0x6c6c766f,
728         bmdDeckLinkConfigVideoOutputConnection  = 0x766f636e,
729         bmdDeckLinkConfigVideoOutputConversionMode      = 0x766f636d,
730         bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,
731         bmdDeckLinkConfigReferenceInputTimingOffset     = 0x676c6f74,
732         bmdDeckLinkConfigVideoOutputIdleOperation       = 0x766f696f,
733         bmdDeckLinkConfigDefaultVideoOutputMode = 0x64766f6d,
734         bmdDeckLinkConfigDefaultVideoOutputModeFlags    = 0x64766f66,
735         bmdDeckLinkConfigVideoOutputComponentLumaGain   = 0x6f636c67,
736         bmdDeckLinkConfigVideoOutputComponentChromaBlueGain     = 0x6f636362,
737         bmdDeckLinkConfigVideoOutputComponentChromaRedGain      = 0x6f636372,
738         bmdDeckLinkConfigVideoOutputCompositeLumaGain   = 0x6f696c67,
739         bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367,
740         bmdDeckLinkConfigVideoOutputSVideoLumaGain      = 0x6f736c67,
741         bmdDeckLinkConfigVideoOutputSVideoChromaGain    = 0x6f736367,
742         bmdDeckLinkConfigVideoInputScanning     = 0x76697363,
743         bmdDeckLinkConfigUseDedicatedLTCInput   = 0x646c7463,
744         bmdDeckLinkConfigVideoInputConnection   = 0x7669636e,
745         bmdDeckLinkConfigAnalogVideoInputFlags  = 0x61766966,
746         bmdDeckLinkConfigVideoInputConversionMode       = 0x7669636d,
747         bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966,
748         bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,
749         bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,
750         bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,
751         bmdDeckLinkConfigVideoInputComponentLumaGain    = 0x69636c67,
752         bmdDeckLinkConfigVideoInputComponentChromaBlueGain      = 0x69636362,
753         bmdDeckLinkConfigVideoInputComponentChromaRedGain       = 0x69636372,
754         bmdDeckLinkConfigVideoInputCompositeLumaGain    = 0x69696c67,
755         bmdDeckLinkConfigVideoInputCompositeChromaGain  = 0x69696367,
756         bmdDeckLinkConfigVideoInputSVideoLumaGain       = 0x69736c67,
757         bmdDeckLinkConfigVideoInputSVideoChromaGain     = 0x69736367,
758         bmdDeckLinkConfigAudioInputConnection   = 0x6169636e,
759         bmdDeckLinkConfigAnalogAudioInputScaleChannel1  = 0x61697331,
760         bmdDeckLinkConfigAnalogAudioInputScaleChannel2  = 0x61697332,
761         bmdDeckLinkConfigAnalogAudioInputScaleChannel3  = 0x61697333,
762         bmdDeckLinkConfigAnalogAudioInputScaleChannel4  = 0x61697334,
763         bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973,
764         bmdDeckLinkConfigAudioOutputAESAnalogSwitch     = 0x616f6161,
765         bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331,
766         bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332,
767         bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333,
768         bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334,
769         bmdDeckLinkConfigDigitalAudioOutputScale        = 0x64616f73
770     }   BMDDeckLinkConfigurationID;
771
772
773 typedef unsigned long BMDDeckControlStatusFlags;
774 typedef unsigned long BMDDeckControlExportModeOpsFlags;
775 #if 0
776 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;
777
778 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;
779
780 #endif
781 typedef /* [v1_enum] */ 
782 enum _BMDDeckControlMode
783     {   bmdDeckControlNotOpened = 0x6e746f70,
784         bmdDeckControlVTRControlMode    = 0x76747263,
785         bmdDeckControlExportMode        = 0x6578706d,
786         bmdDeckControlCaptureMode       = 0x6361706d
787     }   BMDDeckControlMode;
788
789 typedef /* [v1_enum] */ 
790 enum _BMDDeckControlEvent
791     {   bmdDeckControlAbortedEvent      = 0x61627465,
792         bmdDeckControlPrepareForExportEvent     = 0x70666565,
793         bmdDeckControlExportCompleteEvent       = 0x65786365,
794         bmdDeckControlPrepareForCaptureEvent    = 0x70666365,
795         bmdDeckControlCaptureCompleteEvent      = 0x63636576
796     }   BMDDeckControlEvent;
797
798 typedef /* [v1_enum] */ 
799 enum _BMDDeckControlVTRControlState
800     {   bmdDeckControlNotInVTRControlMode       = 0x6e76636d,
801         bmdDeckControlVTRControlPlaying = 0x76747270,
802         bmdDeckControlVTRControlRecording       = 0x76747272,
803         bmdDeckControlVTRControlStill   = 0x76747261,
804         bmdDeckControlVTRControlShuttleForward  = 0x76747366,
805         bmdDeckControlVTRControlShuttleReverse  = 0x76747372,
806         bmdDeckControlVTRControlJogForward      = 0x76746a66,
807         bmdDeckControlVTRControlJogReverse      = 0x76746a72,
808         bmdDeckControlVTRControlStopped = 0x7674726f
809     }   BMDDeckControlVTRControlState;
810
811 /* [v1_enum] */ 
812 enum _BMDDeckControlStatusFlags
813     {   bmdDeckControlStatusDeckConnected       = ( 1 << 0 ) ,
814         bmdDeckControlStatusRemoteMode  = ( 1 << 1 ) ,
815         bmdDeckControlStatusRecordInhibited     = ( 1 << 2 ) ,
816         bmdDeckControlStatusCassetteOut = ( 1 << 3 ) 
817     } ;
818 /* [v1_enum] */ 
819 enum _BMDDeckControlExportModeOpsFlags
820     {   bmdDeckControlExportModeInsertVideo     = ( 1 << 0 ) ,
821         bmdDeckControlExportModeInsertAudio1    = ( 1 << 1 ) ,
822         bmdDeckControlExportModeInsertAudio2    = ( 1 << 2 ) ,
823         bmdDeckControlExportModeInsertAudio3    = ( 1 << 3 ) ,
824         bmdDeckControlExportModeInsertAudio4    = ( 1 << 4 ) ,
825         bmdDeckControlExportModeInsertAudio5    = ( 1 << 5 ) ,
826         bmdDeckControlExportModeInsertAudio6    = ( 1 << 6 ) ,
827         bmdDeckControlExportModeInsertAudio7    = ( 1 << 7 ) ,
828         bmdDeckControlExportModeInsertAudio8    = ( 1 << 8 ) ,
829         bmdDeckControlExportModeInsertAudio9    = ( 1 << 9 ) ,
830         bmdDeckControlExportModeInsertAudio10   = ( 1 << 10 ) ,
831         bmdDeckControlExportModeInsertAudio11   = ( 1 << 11 ) ,
832         bmdDeckControlExportModeInsertAudio12   = ( 1 << 12 ) ,
833         bmdDeckControlExportModeInsertTimeCode  = ( 1 << 13 ) ,
834         bmdDeckControlExportModeInsertAssemble  = ( 1 << 14 ) ,
835         bmdDeckControlExportModeInsertPreview   = ( 1 << 15 ) ,
836         bmdDeckControlUseManualExport   = ( 1 << 16 ) 
837     } ;
838 typedef /* [v1_enum] */ 
839 enum _BMDDeckControlError
840     {   bmdDeckControlNoError   = 0x6e6f6572,
841         bmdDeckControlModeError = 0x6d6f6572,
842         bmdDeckControlMissedInPointError        = 0x6d696572,
843         bmdDeckControlDeckTimeoutError  = 0x64746572,
844         bmdDeckControlCommandFailedError        = 0x63666572,
845         bmdDeckControlDeviceAlreadyOpenedError  = 0x64616c6f,
846         bmdDeckControlFailedToOpenDeviceError   = 0x66646572,
847         bmdDeckControlInLocalModeError  = 0x6c6d6572,
848         bmdDeckControlEndOfTapeError    = 0x65746572,
849         bmdDeckControlUserAbortError    = 0x75616572,
850         bmdDeckControlNoTapeInDeckError = 0x6e746572,
851         bmdDeckControlNoVideoFromCardError      = 0x6e766663,
852         bmdDeckControlNoCommunicationError      = 0x6e636f6d,
853         bmdDeckControlBufferTooSmallError       = 0x6274736d,
854         bmdDeckControlBadChecksumError  = 0x63686b73,
855         bmdDeckControlUnknownError      = 0x756e6572
856     }   BMDDeckControlError;
857
858
859
860 #if 0
861 #endif
862 typedef /* [v1_enum] */ 
863 enum _BMDStreamingDeviceMode
864     {   bmdStreamingDeviceIdle  = 0x69646c65,
865         bmdStreamingDeviceEncoding      = 0x656e636f,
866         bmdStreamingDeviceStopping      = 0x73746f70,
867         bmdStreamingDeviceUnknown       = 0x6d756e6b
868     }   BMDStreamingDeviceMode;
869
870 typedef /* [v1_enum] */ 
871 enum _BMDStreamingEncodingFrameRate
872     {   bmdStreamingEncodedFrameRate50i = 0x65353069,
873         bmdStreamingEncodedFrameRate5994i       = 0x65353969,
874         bmdStreamingEncodedFrameRate60i = 0x65363069,
875         bmdStreamingEncodedFrameRate2398p       = 0x65323370,
876         bmdStreamingEncodedFrameRate24p = 0x65323470,
877         bmdStreamingEncodedFrameRate25p = 0x65323570,
878         bmdStreamingEncodedFrameRate2997p       = 0x65323970,
879         bmdStreamingEncodedFrameRate30p = 0x65333070,
880         bmdStreamingEncodedFrameRate50p = 0x65353070,
881         bmdStreamingEncodedFrameRate5994p       = 0x65353970,
882         bmdStreamingEncodedFrameRate60p = 0x65363070
883     }   BMDStreamingEncodingFrameRate;
884
885 typedef /* [v1_enum] */ 
886 enum _BMDStreamingEncodingSupport
887     {   bmdStreamingEncodingModeNotSupported    = 0,
888         bmdStreamingEncodingModeSupported       = ( bmdStreamingEncodingModeNotSupported + 1 ) ,
889         bmdStreamingEncodingModeSupportedWithChanges    = ( bmdStreamingEncodingModeSupported + 1 ) 
890     }   BMDStreamingEncodingSupport;
891
892 typedef /* [v1_enum] */ 
893 enum _BMDStreamingVideoCodec
894     {   bmdStreamingVideoCodecH264      = 0x48323634
895     }   BMDStreamingVideoCodec;
896
897 typedef /* [v1_enum] */ 
898 enum _BMDStreamingH264Profile
899     {   bmdStreamingH264ProfileHigh     = 0x68696768,
900         bmdStreamingH264ProfileMain     = 0x6d61696e,
901         bmdStreamingH264ProfileBaseline = 0x62617365
902     }   BMDStreamingH264Profile;
903
904 typedef /* [v1_enum] */ 
905 enum _BMDStreamingH264Level
906     {   bmdStreamingH264Level12 = 0x6c763132,
907         bmdStreamingH264Level13 = 0x6c763133,
908         bmdStreamingH264Level2  = 0x6c763220,
909         bmdStreamingH264Level21 = 0x6c763231,
910         bmdStreamingH264Level22 = 0x6c763232,
911         bmdStreamingH264Level3  = 0x6c763320,
912         bmdStreamingH264Level31 = 0x6c763331,
913         bmdStreamingH264Level32 = 0x6c763332,
914         bmdStreamingH264Level4  = 0x6c763420,
915         bmdStreamingH264Level41 = 0x6c763431,
916         bmdStreamingH264Level42 = 0x6c763432
917     }   BMDStreamingH264Level;
918
919 typedef /* [v1_enum] */ 
920 enum _BMDStreamingH264EntropyCoding
921     {   bmdStreamingH264EntropyCodingCAVLC      = 0x45564c43,
922         bmdStreamingH264EntropyCodingCABAC      = 0x45424143
923     }   BMDStreamingH264EntropyCoding;
924
925 typedef /* [v1_enum] */ 
926 enum _BMDStreamingAudioCodec
927     {   bmdStreamingAudioCodecAAC       = 0x41414320
928     }   BMDStreamingAudioCodec;
929
930 typedef /* [v1_enum] */ 
931 enum _BMDStreamingEncodingModePropertyID
932     {   bmdStreamingEncodingPropertyVideoFrameRate      = 0x76667274,
933         bmdStreamingEncodingPropertyVideoBitRateKbps    = 0x76627274,
934         bmdStreamingEncodingPropertyH264Profile = 0x68707266,
935         bmdStreamingEncodingPropertyH264Level   = 0x686c766c,
936         bmdStreamingEncodingPropertyH264EntropyCoding   = 0x68656e74,
937         bmdStreamingEncodingPropertyH264HasBFrames      = 0x68426672,
938         bmdStreamingEncodingPropertyAudioCodec  = 0x61636463,
939         bmdStreamingEncodingPropertyAudioSampleRate     = 0x61737274,
940         bmdStreamingEncodingPropertyAudioChannelCount   = 0x61636863,
941         bmdStreamingEncodingPropertyAudioBitRateKbps    = 0x61627274
942     }   BMDStreamingEncodingModePropertyID;
943
944
945
946
947
948
949
950
951
952
953
954
955 typedef unsigned long BMDFrameFlags;
956 typedef unsigned long BMDVideoInputFlags;
957 typedef unsigned long BMDVideoInputFormatChangedEvents;
958 typedef unsigned long BMDDetectedVideoInputFormatFlags;
959 typedef unsigned long BMDAnalogVideoFlags;
960 typedef unsigned long BMDDeviceBusyState;
961 #if 0
962 typedef enum _BMDFrameFlags BMDFrameFlags;
963
964 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;
965
966 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;
967
968 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;
969
970 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;
971
972 typedef enum _BMDDeviceBusyState BMDDeviceBusyState;
973
974 #endif
975 typedef /* [v1_enum] */ 
976 enum _BMDVideoOutputFlags
977     {   bmdVideoOutputFlagDefault       = 0,
978         bmdVideoOutputVANC      = ( 1 << 0 ) ,
979         bmdVideoOutputVITC      = ( 1 << 1 ) ,
980         bmdVideoOutputRP188     = ( 1 << 2 ) ,
981         bmdVideoOutputDualStream3D      = ( 1 << 4 ) 
982     }   BMDVideoOutputFlags;
983
984 /* [v1_enum] */ 
985 enum _BMDFrameFlags
986     {   bmdFrameFlagDefault     = 0,
987         bmdFrameFlagFlipVertical        = ( 1 << 0 ) ,
988         bmdFrameHasNoInputSource        = ( 1 << 31 ) 
989     } ;
990 /* [v1_enum] */ 
991 enum _BMDVideoInputFlags
992     {   bmdVideoInputFlagDefault        = 0,
993         bmdVideoInputEnableFormatDetection      = ( 1 << 0 ) ,
994         bmdVideoInputDualStream3D       = ( 1 << 1 ) 
995     } ;
996 /* [v1_enum] */ 
997 enum _BMDVideoInputFormatChangedEvents
998     {   bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,
999         bmdVideoInputFieldDominanceChanged      = ( 1 << 1 ) ,
1000         bmdVideoInputColorspaceChanged  = ( 1 << 2 ) 
1001     } ;
1002 /* [v1_enum] */ 
1003 enum _BMDDetectedVideoInputFormatFlags
1004     {   bmdDetectedVideoInputYCbCr422   = ( 1 << 0 ) ,
1005         bmdDetectedVideoInputRGB444     = ( 1 << 1 ) 
1006     } ;
1007 typedef /* [v1_enum] */ 
1008 enum _BMDOutputFrameCompletionResult
1009     {   bmdOutputFrameCompleted = 0,
1010         bmdOutputFrameDisplayedLate     = ( bmdOutputFrameCompleted + 1 ) ,
1011         bmdOutputFrameDropped   = ( bmdOutputFrameDisplayedLate + 1 ) ,
1012         bmdOutputFrameFlushed   = ( bmdOutputFrameDropped + 1 ) 
1013     }   BMDOutputFrameCompletionResult;
1014
1015 typedef /* [v1_enum] */ 
1016 enum _BMDReferenceStatus
1017     {   bmdReferenceNotSupportedByHardware      = ( 1 << 0 ) ,
1018         bmdReferenceLocked      = ( 1 << 1 ) 
1019     }   BMDReferenceStatus;
1020
1021 typedef /* [v1_enum] */ 
1022 enum _BMDAudioSampleRate
1023     {   bmdAudioSampleRate48kHz = 48000
1024     }   BMDAudioSampleRate;
1025
1026 typedef /* [v1_enum] */ 
1027 enum _BMDAudioSampleType
1028     {   bmdAudioSampleType16bitInteger  = 16,
1029         bmdAudioSampleType32bitInteger  = 32
1030     }   BMDAudioSampleType;
1031
1032 typedef /* [v1_enum] */ 
1033 enum _BMDAudioOutputStreamType
1034     {   bmdAudioOutputStreamContinuous  = 0,
1035         bmdAudioOutputStreamContinuousDontResample      = ( bmdAudioOutputStreamContinuous + 1 ) ,
1036         bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 ) 
1037     }   BMDAudioOutputStreamType;
1038
1039 typedef /* [v1_enum] */ 
1040 enum _BMDDisplayModeSupport
1041     {   bmdDisplayModeNotSupported      = 0,
1042         bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,
1043         bmdDisplayModeSupportedWithConversion   = ( bmdDisplayModeSupported + 1 ) 
1044     }   BMDDisplayModeSupport;
1045
1046 typedef /* [v1_enum] */ 
1047 enum _BMDTimecodeFormat
1048     {   bmdTimecodeRP188VITC1   = 0x72707631,
1049         bmdTimecodeRP188VITC2   = 0x72703132,
1050         bmdTimecodeRP188LTC     = 0x72706c74,
1051         bmdTimecodeRP188Any     = 0x72703138,
1052         bmdTimecodeVITC = 0x76697463,
1053         bmdTimecodeVITCField2   = 0x76697432,
1054         bmdTimecodeSerial       = 0x73657269
1055     }   BMDTimecodeFormat;
1056
1057 /* [v1_enum] */ 
1058 enum _BMDAnalogVideoFlags
1059     {   bmdAnalogVideoFlagCompositeSetup75      = ( 1 << 0 ) ,
1060         bmdAnalogVideoFlagComponentBetacamLevels        = ( 1 << 1 ) 
1061     } ;
1062 typedef /* [v1_enum] */ 
1063 enum _BMDAudioConnection
1064     {   bmdAudioConnectionEmbedded      = 0x656d6264,
1065         bmdAudioConnectionAESEBU        = 0x61657320,
1066         bmdAudioConnectionAnalog        = 0x616e6c67,
1067         bmdAudioConnectionAnalogXLR     = 0x61786c72,
1068         bmdAudioConnectionAnalogRCA     = 0x61726361
1069     }   BMDAudioConnection;
1070
1071 typedef /* [v1_enum] */ 
1072 enum _BMDAudioOutputAnalogAESSwitch
1073     {   bmdAudioOutputSwitchAESEBU      = 0x61657320,
1074         bmdAudioOutputSwitchAnalog      = 0x616e6c67
1075     }   BMDAudioOutputAnalogAESSwitch;
1076
1077 typedef /* [v1_enum] */ 
1078 enum _BMDVideoOutputConversionMode
1079     {   bmdNoVideoOutputConversion      = 0x6e6f6e65,
1080         bmdVideoOutputLetterboxDownconversion   = 0x6c746278,
1081         bmdVideoOutputAnamorphicDownconversion  = 0x616d7068,
1082         bmdVideoOutputHD720toHD1080Conversion   = 0x37323063,
1083         bmdVideoOutputHardwareLetterboxDownconversion   = 0x48576c62,
1084         bmdVideoOutputHardwareAnamorphicDownconversion  = 0x4857616d,
1085         bmdVideoOutputHardwareCenterCutDownconversion   = 0x48576363,
1086         bmdVideoOutputHardware720p1080pCrossconversion  = 0x78636170,
1087         bmdVideoOutputHardwareAnamorphic720pUpconversion        = 0x75613770,
1088         bmdVideoOutputHardwareAnamorphic1080iUpconversion       = 0x75613169,
1089         bmdVideoOutputHardwareAnamorphic149To720pUpconversion   = 0x75343770,
1090         bmdVideoOutputHardwareAnamorphic149To1080iUpconversion  = 0x75343169,
1091         bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770,
1092         bmdVideoOutputHardwarePillarbox1080iUpconversion        = 0x75703169
1093     }   BMDVideoOutputConversionMode;
1094
1095 typedef /* [v1_enum] */ 
1096 enum _BMDVideoInputConversionMode
1097     {   bmdNoVideoInputConversion       = 0x6e6f6e65,
1098         bmdVideoInputLetterboxDownconversionFromHD1080  = 0x31306c62,
1099         bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,
1100         bmdVideoInputLetterboxDownconversionFromHD720   = 0x37326c62,
1101         bmdVideoInputAnamorphicDownconversionFromHD720  = 0x3732616d,
1102         bmdVideoInputLetterboxUpconversion      = 0x6c627570,
1103         bmdVideoInputAnamorphicUpconversion     = 0x616d7570
1104     }   BMDVideoInputConversionMode;
1105
1106 typedef /* [v1_enum] */ 
1107 enum _BMDVideo3DPackingFormat
1108     {   bmdVideo3DPackingSidebySideHalf = 0x73627368,
1109         bmdVideo3DPackingLinebyLine     = 0x6c62796c,
1110         bmdVideo3DPackingTopAndBottom   = 0x7461626f,
1111         bmdVideo3DPackingFramePacking   = 0x6672706b,
1112         bmdVideo3DPackingLeftOnly       = 0x6c656674,
1113         bmdVideo3DPackingRightOnly      = 0x72696768
1114     }   BMDVideo3DPackingFormat;
1115
1116 typedef /* [v1_enum] */ 
1117 enum _BMDIdleVideoOutputOperation
1118     {   bmdIdleVideoOutputBlack = 0x626c6163,
1119         bmdIdleVideoOutputLastFrame     = 0x6c616661,
1120         bmdIdleVideoOutputDesktop       = 0x6465736b
1121     }   BMDIdleVideoOutputOperation;
1122
1123 typedef /* [v1_enum] */ 
1124 enum _BMDDeckLinkAttributeID
1125     {   BMDDeckLinkSupportsInternalKeying       = 0x6b657969,
1126         BMDDeckLinkSupportsExternalKeying       = 0x6b657965,
1127         BMDDeckLinkSupportsHDKeying     = 0x6b657968,
1128         BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,
1129         BMDDeckLinkHasReferenceInput    = 0x6872696e,
1130         BMDDeckLinkHasSerialPort        = 0x68737074,
1131         BMDDeckLinkHasAnalogVideoOutputGain     = 0x61766f67,
1132         BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain  = 0x6f766f67,
1133         BMDDeckLinkHasVideoInputAntiAliasingFilter      = 0x6161666c,
1134         BMDDeckLinkHasBypass    = 0x62797073,
1135         BMDDeckLinkSupportsDesktopDisplay       = 0x65787464,
1136         BMDDeckLinkSupportsClockTimingAdjustment        = 0x63746164,
1137         BMDDeckLinkMaximumAudioChannels = 0x6d616368,
1138         BMDDeckLinkNumberOfSubDevices   = 0x6e736264,
1139         BMDDeckLinkSubDeviceIndex       = 0x73756269,
1140         BMDDeckLinkVideoOutputConnections       = 0x766f636e,
1141         BMDDeckLinkVideoInputConnections        = 0x7669636e,
1142         BMDDeckLinkDeviceBusyState      = 0x64627374,
1143         BMDDeckLinkVideoIOSupport       = 0x76696f73,
1144         BMDDeckLinkVideoInputGainMinimum        = 0x7669676d,
1145         BMDDeckLinkVideoInputGainMaximum        = 0x76696778,
1146         BMDDeckLinkVideoOutputGainMinimum       = 0x766f676d,
1147         BMDDeckLinkVideoOutputGainMaximum       = 0x766f6778,
1148         BMDDeckLinkSerialPortDeviceName = 0x736c706e
1149     }   BMDDeckLinkAttributeID;
1150
1151 typedef /* [v1_enum] */ 
1152 enum _BMDDeckLinkAPIInformationID
1153     {   BMDDeckLinkAPIVersion   = 0x76657273
1154     }   BMDDeckLinkAPIInformationID;
1155
1156 /* [v1_enum] */ 
1157 enum _BMDDeviceBusyState
1158     {   bmdDeviceCaptureBusy    = ( 1 << 0 ) ,
1159         bmdDevicePlaybackBusy   = ( 1 << 1 ) ,
1160         bmdDeviceSerialPortBusy = ( 1 << 2 ) 
1161     } ;
1162 typedef /* [v1_enum] */ 
1163 enum _BMDVideoIOSupport
1164     {   bmdDeviceSupportsCapture        = ( 1 << 0 ) ,
1165         bmdDeviceSupportsPlayback       = ( 1 << 1 ) 
1166     }   BMDVideoIOSupport;
1167
1168 typedef /* [v1_enum] */ 
1169 enum _BMD3DPreviewFormat
1170     {   bmd3DPreviewFormatDefault       = 0x64656661,
1171         bmd3DPreviewFormatLeftOnly      = 0x6c656674,
1172         bmd3DPreviewFormatRightOnly     = 0x72696768,
1173         bmd3DPreviewFormatSideBySide    = 0x73696465,
1174         bmd3DPreviewFormatTopBottom     = 0x746f7062
1175     }   BMD3DPreviewFormat;
1176
1177 typedef /* [v1_enum] */ 
1178 enum _BMDNotifications
1179     {   bmdPreferencesChanged   = 0x70726566
1180     }   BMDNotifications;
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204 typedef /* [v1_enum] */ 
1205 enum _BMDDeckControlVTRControlState_v8_1
1206     {   bmdDeckControlNotInVTRControlMode_v8_1  = 0x6e76636d,
1207         bmdDeckControlVTRControlPlaying_v8_1    = 0x76747270,
1208         bmdDeckControlVTRControlRecording_v8_1  = 0x76747272,
1209         bmdDeckControlVTRControlStill_v8_1      = 0x76747261,
1210         bmdDeckControlVTRControlSeeking_v8_1    = 0x76747273,
1211         bmdDeckControlVTRControlStopped_v8_1    = 0x7674726f
1212     }   BMDDeckControlVTRControlState_v8_1;
1213
1214
1215
1216 typedef /* [v1_enum] */ 
1217 enum _BMDVideoConnection_v7_6
1218     {   bmdVideoConnectionSDI_v7_6      = 0x73646920,
1219         bmdVideoConnectionHDMI_v7_6     = 0x68646d69,
1220         bmdVideoConnectionOpticalSDI_v7_6       = 0x6f707469,
1221         bmdVideoConnectionComponent_v7_6        = 0x63706e74,
1222         bmdVideoConnectionComposite_v7_6        = 0x636d7374,
1223         bmdVideoConnectionSVideo_v7_6   = 0x73766964
1224     }   BMDVideoConnection_v7_6;
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248 EXTERN_C const IID LIBID_DeckLinkAPI;
1249
1250 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__
1251 #define __IDeckLinkTimecode_INTERFACE_DEFINED__
1252
1253 /* interface IDeckLinkTimecode */
1254 /* [helpstring][uuid][object] */ 
1255
1256
1257 EXTERN_C const IID IID_IDeckLinkTimecode;
1258
1259 #if defined(__cplusplus) && !defined(CINTERFACE)
1260     
1261     MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")
1262     IDeckLinkTimecode : public IUnknown
1263     {
1264     public:
1265         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
1266         
1267         virtual HRESULT STDMETHODCALLTYPE GetComponents( 
1268             /* [out] */ unsigned char *hours,
1269             /* [out] */ unsigned char *minutes,
1270             /* [out] */ unsigned char *seconds,
1271             /* [out] */ unsigned char *frames) = 0;
1272         
1273         virtual HRESULT STDMETHODCALLTYPE GetString( 
1274             /* [out] */ BSTR *timecode) = 0;
1275         
1276         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1277         
1278         virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( 
1279             /* [out] */ BMDTimecodeUserBits *userBits) = 0;
1280         
1281     };
1282     
1283 #else   /* C style interface */
1284
1285     typedef struct IDeckLinkTimecodeVtbl
1286     {
1287         BEGIN_INTERFACE
1288         
1289         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1290             IDeckLinkTimecode * This,
1291             /* [in] */ REFIID riid,
1292             /* [annotation][iid_is][out] */ 
1293             __RPC__deref_out  void **ppvObject);
1294         
1295         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1296             IDeckLinkTimecode * This);
1297         
1298         ULONG ( STDMETHODCALLTYPE *Release )( 
1299             IDeckLinkTimecode * This);
1300         
1301         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( 
1302             IDeckLinkTimecode * This);
1303         
1304         HRESULT ( STDMETHODCALLTYPE *GetComponents )( 
1305             IDeckLinkTimecode * This,
1306             /* [out] */ unsigned char *hours,
1307             /* [out] */ unsigned char *minutes,
1308             /* [out] */ unsigned char *seconds,
1309             /* [out] */ unsigned char *frames);
1310         
1311         HRESULT ( STDMETHODCALLTYPE *GetString )( 
1312             IDeckLinkTimecode * This,
1313             /* [out] */ BSTR *timecode);
1314         
1315         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( 
1316             IDeckLinkTimecode * This);
1317         
1318         HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )( 
1319             IDeckLinkTimecode * This,
1320             /* [out] */ BMDTimecodeUserBits *userBits);
1321         
1322         END_INTERFACE
1323     } IDeckLinkTimecodeVtbl;
1324
1325     interface IDeckLinkTimecode
1326     {
1327         CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;
1328     };
1329
1330     
1331
1332 #ifdef COBJMACROS
1333
1334
1335 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)   \
1336     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1337
1338 #define IDeckLinkTimecode_AddRef(This)  \
1339     ( (This)->lpVtbl -> AddRef(This) ) 
1340
1341 #define IDeckLinkTimecode_Release(This) \
1342     ( (This)->lpVtbl -> Release(This) ) 
1343
1344
1345 #define IDeckLinkTimecode_GetBCD(This)  \
1346     ( (This)->lpVtbl -> GetBCD(This) ) 
1347
1348 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)      \
1349     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) 
1350
1351 #define IDeckLinkTimecode_GetString(This,timecode)      \
1352     ( (This)->lpVtbl -> GetString(This,timecode) ) 
1353
1354 #define IDeckLinkTimecode_GetFlags(This)        \
1355     ( (This)->lpVtbl -> GetFlags(This) ) 
1356
1357 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits)    \
1358     ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) ) 
1359
1360 #endif /* COBJMACROS */
1361
1362
1363 #endif  /* C style interface */
1364
1365
1366
1367
1368 #endif  /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */
1369
1370
1371 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1372 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1373
1374 /* interface IDeckLinkDisplayModeIterator */
1375 /* [helpstring][uuid][object] */ 
1376
1377
1378 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
1379
1380 #if defined(__cplusplus) && !defined(CINTERFACE)
1381     
1382     MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")
1383     IDeckLinkDisplayModeIterator : public IUnknown
1384     {
1385     public:
1386         virtual HRESULT STDMETHODCALLTYPE Next( 
1387             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
1388         
1389     };
1390     
1391 #else   /* C style interface */
1392
1393     typedef struct IDeckLinkDisplayModeIteratorVtbl
1394     {
1395         BEGIN_INTERFACE
1396         
1397         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1398             IDeckLinkDisplayModeIterator * This,
1399             /* [in] */ REFIID riid,
1400             /* [annotation][iid_is][out] */ 
1401             __RPC__deref_out  void **ppvObject);
1402         
1403         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1404             IDeckLinkDisplayModeIterator * This);
1405         
1406         ULONG ( STDMETHODCALLTYPE *Release )( 
1407             IDeckLinkDisplayModeIterator * This);
1408         
1409         HRESULT ( STDMETHODCALLTYPE *Next )( 
1410             IDeckLinkDisplayModeIterator * This,
1411             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);
1412         
1413         END_INTERFACE
1414     } IDeckLinkDisplayModeIteratorVtbl;
1415
1416     interface IDeckLinkDisplayModeIterator
1417     {
1418         CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;
1419     };
1420
1421     
1422
1423 #ifdef COBJMACROS
1424
1425
1426 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)        \
1427     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1428
1429 #define IDeckLinkDisplayModeIterator_AddRef(This)       \
1430     ( (This)->lpVtbl -> AddRef(This) ) 
1431
1432 #define IDeckLinkDisplayModeIterator_Release(This)      \
1433     ( (This)->lpVtbl -> Release(This) ) 
1434
1435
1436 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)     \
1437     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) 
1438
1439 #endif /* COBJMACROS */
1440
1441
1442 #endif  /* C style interface */
1443
1444
1445
1446
1447 #endif  /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */
1448
1449
1450 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1451 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1452
1453 /* interface IDeckLinkDisplayMode */
1454 /* [helpstring][uuid][object] */ 
1455
1456
1457 EXTERN_C const IID IID_IDeckLinkDisplayMode;
1458
1459 #if defined(__cplusplus) && !defined(CINTERFACE)
1460     
1461     MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")
1462     IDeckLinkDisplayMode : public IUnknown
1463     {
1464     public:
1465         virtual HRESULT STDMETHODCALLTYPE GetName( 
1466             /* [out] */ BSTR *name) = 0;
1467         
1468         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
1469         
1470         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
1471         
1472         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
1473         
1474         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( 
1475             /* [out] */ BMDTimeValue *frameDuration,
1476             /* [out] */ BMDTimeScale *timeScale) = 0;
1477         
1478         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
1479         
1480         virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1481         
1482     };
1483     
1484 #else   /* C style interface */
1485
1486     typedef struct IDeckLinkDisplayModeVtbl
1487     {
1488         BEGIN_INTERFACE
1489         
1490         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1491             IDeckLinkDisplayMode * This,
1492             /* [in] */ REFIID riid,
1493             /* [annotation][iid_is][out] */ 
1494             __RPC__deref_out  void **ppvObject);
1495         
1496         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1497             IDeckLinkDisplayMode * This);
1498         
1499         ULONG ( STDMETHODCALLTYPE *Release )( 
1500             IDeckLinkDisplayMode * This);
1501         
1502         HRESULT ( STDMETHODCALLTYPE *GetName )( 
1503             IDeckLinkDisplayMode * This,
1504             /* [out] */ BSTR *name);
1505         
1506         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( 
1507             IDeckLinkDisplayMode * This);
1508         
1509         long ( STDMETHODCALLTYPE *GetWidth )( 
1510             IDeckLinkDisplayMode * This);
1511         
1512         long ( STDMETHODCALLTYPE *GetHeight )( 
1513             IDeckLinkDisplayMode * This);
1514         
1515         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( 
1516             IDeckLinkDisplayMode * This,
1517             /* [out] */ BMDTimeValue *frameDuration,
1518             /* [out] */ BMDTimeScale *timeScale);
1519         
1520         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( 
1521             IDeckLinkDisplayMode * This);
1522         
1523         BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )( 
1524             IDeckLinkDisplayMode * This);
1525         
1526         END_INTERFACE
1527     } IDeckLinkDisplayModeVtbl;
1528
1529     interface IDeckLinkDisplayMode
1530     {
1531         CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;
1532     };
1533
1534     
1535
1536 #ifdef COBJMACROS
1537
1538
1539 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)        \
1540     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1541
1542 #define IDeckLinkDisplayMode_AddRef(This)       \
1543     ( (This)->lpVtbl -> AddRef(This) ) 
1544
1545 #define IDeckLinkDisplayMode_Release(This)      \
1546     ( (This)->lpVtbl -> Release(This) ) 
1547
1548
1549 #define IDeckLinkDisplayMode_GetName(This,name) \
1550     ( (This)->lpVtbl -> GetName(This,name) ) 
1551
1552 #define IDeckLinkDisplayMode_GetDisplayMode(This)       \
1553     ( (This)->lpVtbl -> GetDisplayMode(This) ) 
1554
1555 #define IDeckLinkDisplayMode_GetWidth(This)     \
1556     ( (This)->lpVtbl -> GetWidth(This) ) 
1557
1558 #define IDeckLinkDisplayMode_GetHeight(This)    \
1559     ( (This)->lpVtbl -> GetHeight(This) ) 
1560
1561 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \
1562     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) 
1563
1564 #define IDeckLinkDisplayMode_GetFieldDominance(This)    \
1565     ( (This)->lpVtbl -> GetFieldDominance(This) ) 
1566
1567 #define IDeckLinkDisplayMode_GetFlags(This)     \
1568     ( (This)->lpVtbl -> GetFlags(This) ) 
1569
1570 #endif /* COBJMACROS */
1571
1572
1573 #endif  /* C style interface */
1574
1575
1576
1577
1578 #endif  /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */
1579
1580
1581 #ifndef __IDeckLink_INTERFACE_DEFINED__
1582 #define __IDeckLink_INTERFACE_DEFINED__
1583
1584 /* interface IDeckLink */
1585 /* [helpstring][uuid][object] */ 
1586
1587
1588 EXTERN_C const IID IID_IDeckLink;
1589
1590 #if defined(__cplusplus) && !defined(CINTERFACE)
1591     
1592     MIDL_INTERFACE("C418FBDD-0587-48ED-8FE5-640F0A14AF91")
1593     IDeckLink : public IUnknown
1594     {
1595     public:
1596         virtual HRESULT STDMETHODCALLTYPE GetModelName( 
1597             /* [out] */ BSTR *modelName) = 0;
1598         
1599         virtual HRESULT STDMETHODCALLTYPE GetDisplayName( 
1600             /* [out] */ BSTR *displayName) = 0;
1601         
1602     };
1603     
1604 #else   /* C style interface */
1605
1606     typedef struct IDeckLinkVtbl
1607     {
1608         BEGIN_INTERFACE
1609         
1610         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1611             IDeckLink * This,
1612             /* [in] */ REFIID riid,
1613             /* [annotation][iid_is][out] */ 
1614             __RPC__deref_out  void **ppvObject);
1615         
1616         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1617             IDeckLink * This);
1618         
1619         ULONG ( STDMETHODCALLTYPE *Release )( 
1620             IDeckLink * This);
1621         
1622         HRESULT ( STDMETHODCALLTYPE *GetModelName )( 
1623             IDeckLink * This,
1624             /* [out] */ BSTR *modelName);
1625         
1626         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( 
1627             IDeckLink * This,
1628             /* [out] */ BSTR *displayName);
1629         
1630         END_INTERFACE
1631     } IDeckLinkVtbl;
1632
1633     interface IDeckLink
1634     {
1635         CONST_VTBL struct IDeckLinkVtbl *lpVtbl;
1636     };
1637
1638     
1639
1640 #ifdef COBJMACROS
1641
1642
1643 #define IDeckLink_QueryInterface(This,riid,ppvObject)   \
1644     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1645
1646 #define IDeckLink_AddRef(This)  \
1647     ( (This)->lpVtbl -> AddRef(This) ) 
1648
1649 #define IDeckLink_Release(This) \
1650     ( (This)->lpVtbl -> Release(This) ) 
1651
1652
1653 #define IDeckLink_GetModelName(This,modelName)  \
1654     ( (This)->lpVtbl -> GetModelName(This,modelName) ) 
1655
1656 #define IDeckLink_GetDisplayName(This,displayName)      \
1657     ( (This)->lpVtbl -> GetDisplayName(This,displayName) ) 
1658
1659 #endif /* COBJMACROS */
1660
1661
1662 #endif  /* C style interface */
1663
1664
1665
1666
1667 #endif  /* __IDeckLink_INTERFACE_DEFINED__ */
1668
1669
1670 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__
1671 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__
1672
1673 /* interface IDeckLinkConfiguration */
1674 /* [helpstring][local][uuid][object] */ 
1675
1676
1677 EXTERN_C const IID IID_IDeckLinkConfiguration;
1678
1679 #if defined(__cplusplus) && !defined(CINTERFACE)
1680     
1681     MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")
1682     IDeckLinkConfiguration : public IUnknown
1683     {
1684     public:
1685         virtual HRESULT STDMETHODCALLTYPE SetFlag( 
1686             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1687             /* [in] */ BOOL value) = 0;
1688         
1689         virtual HRESULT STDMETHODCALLTYPE GetFlag( 
1690             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1691             /* [out] */ BOOL *value) = 0;
1692         
1693         virtual HRESULT STDMETHODCALLTYPE SetInt( 
1694             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1695             /* [in] */ LONGLONG value) = 0;
1696         
1697         virtual HRESULT STDMETHODCALLTYPE GetInt( 
1698             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1699             /* [out] */ LONGLONG *value) = 0;
1700         
1701         virtual HRESULT STDMETHODCALLTYPE SetFloat( 
1702             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1703             /* [in] */ double value) = 0;
1704         
1705         virtual HRESULT STDMETHODCALLTYPE GetFloat( 
1706             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1707             /* [out] */ double *value) = 0;
1708         
1709         virtual HRESULT STDMETHODCALLTYPE SetString( 
1710             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1711             /* [in] */ BSTR value) = 0;
1712         
1713         virtual HRESULT STDMETHODCALLTYPE GetString( 
1714             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1715             /* [out] */ BSTR *value) = 0;
1716         
1717         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
1718         
1719     };
1720     
1721 #else   /* C style interface */
1722
1723     typedef struct IDeckLinkConfigurationVtbl
1724     {
1725         BEGIN_INTERFACE
1726         
1727         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1728             IDeckLinkConfiguration * This,
1729             /* [in] */ REFIID riid,
1730             /* [annotation][iid_is][out] */ 
1731             __RPC__deref_out  void **ppvObject);
1732         
1733         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1734             IDeckLinkConfiguration * This);
1735         
1736         ULONG ( STDMETHODCALLTYPE *Release )( 
1737             IDeckLinkConfiguration * This);
1738         
1739         HRESULT ( STDMETHODCALLTYPE *SetFlag )( 
1740             IDeckLinkConfiguration * This,
1741             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1742             /* [in] */ BOOL value);
1743         
1744         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
1745             IDeckLinkConfiguration * This,
1746             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1747             /* [out] */ BOOL *value);
1748         
1749         HRESULT ( STDMETHODCALLTYPE *SetInt )( 
1750             IDeckLinkConfiguration * This,
1751             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1752             /* [in] */ LONGLONG value);
1753         
1754         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
1755             IDeckLinkConfiguration * This,
1756             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1757             /* [out] */ LONGLONG *value);
1758         
1759         HRESULT ( STDMETHODCALLTYPE *SetFloat )( 
1760             IDeckLinkConfiguration * This,
1761             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1762             /* [in] */ double value);
1763         
1764         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
1765             IDeckLinkConfiguration * This,
1766             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1767             /* [out] */ double *value);
1768         
1769         HRESULT ( STDMETHODCALLTYPE *SetString )( 
1770             IDeckLinkConfiguration * This,
1771             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1772             /* [in] */ BSTR value);
1773         
1774         HRESULT ( STDMETHODCALLTYPE *GetString )( 
1775             IDeckLinkConfiguration * This,
1776             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1777             /* [out] */ BSTR *value);
1778         
1779         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( 
1780             IDeckLinkConfiguration * This);
1781         
1782         END_INTERFACE
1783     } IDeckLinkConfigurationVtbl;
1784
1785     interface IDeckLinkConfiguration
1786     {
1787         CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;
1788     };
1789
1790     
1791
1792 #ifdef COBJMACROS
1793
1794
1795 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)      \
1796     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1797
1798 #define IDeckLinkConfiguration_AddRef(This)     \
1799     ( (This)->lpVtbl -> AddRef(This) ) 
1800
1801 #define IDeckLinkConfiguration_Release(This)    \
1802     ( (This)->lpVtbl -> Release(This) ) 
1803
1804
1805 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value)        \
1806     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) 
1807
1808 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value)        \
1809     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
1810
1811 #define IDeckLinkConfiguration_SetInt(This,cfgID,value) \
1812     ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) 
1813
1814 #define IDeckLinkConfiguration_GetInt(This,cfgID,value) \
1815     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
1816
1817 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value)       \
1818     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) 
1819
1820 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value)       \
1821     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
1822
1823 #define IDeckLinkConfiguration_SetString(This,cfgID,value)      \
1824     ( (This)->lpVtbl -> SetString(This,cfgID,value) ) 
1825
1826 #define IDeckLinkConfiguration_GetString(This,cfgID,value)      \
1827     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
1828
1829 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)    \
1830     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) 
1831
1832 #endif /* COBJMACROS */
1833
1834
1835 #endif  /* C style interface */
1836
1837
1838
1839
1840 #endif  /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */
1841
1842
1843 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
1844 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
1845
1846 /* interface IDeckLinkDeckControlStatusCallback */
1847 /* [helpstring][uuid][object] */ 
1848
1849
1850 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
1851
1852 #if defined(__cplusplus) && !defined(CINTERFACE)
1853     
1854     MIDL_INTERFACE("53436FFB-B434-4906-BADC-AE3060FFE8EF")
1855     IDeckLinkDeckControlStatusCallback : public IUnknown
1856     {
1857     public:
1858         virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( 
1859             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
1860         
1861         virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( 
1862             /* [in] */ BMDDeckControlVTRControlState newState,
1863             /* [in] */ BMDDeckControlError error) = 0;
1864         
1865         virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( 
1866             /* [in] */ BMDDeckControlEvent event,
1867             /* [in] */ BMDDeckControlError error) = 0;
1868         
1869         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( 
1870             /* [in] */ BMDDeckControlStatusFlags flags,
1871             /* [in] */ unsigned long mask) = 0;
1872         
1873     };
1874     
1875 #else   /* C style interface */
1876
1877     typedef struct IDeckLinkDeckControlStatusCallbackVtbl
1878     {
1879         BEGIN_INTERFACE
1880         
1881         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1882             IDeckLinkDeckControlStatusCallback * This,
1883             /* [in] */ REFIID riid,
1884             /* [annotation][iid_is][out] */ 
1885             __RPC__deref_out  void **ppvObject);
1886         
1887         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1888             IDeckLinkDeckControlStatusCallback * This);
1889         
1890         ULONG ( STDMETHODCALLTYPE *Release )( 
1891             IDeckLinkDeckControlStatusCallback * This);
1892         
1893         HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( 
1894             IDeckLinkDeckControlStatusCallback * This,
1895             /* [in] */ BMDTimecodeBCD currentTimecode);
1896         
1897         HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( 
1898             IDeckLinkDeckControlStatusCallback * This,
1899             /* [in] */ BMDDeckControlVTRControlState newState,
1900             /* [in] */ BMDDeckControlError error);
1901         
1902         HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( 
1903             IDeckLinkDeckControlStatusCallback * This,
1904             /* [in] */ BMDDeckControlEvent event,
1905             /* [in] */ BMDDeckControlError error);
1906         
1907         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( 
1908             IDeckLinkDeckControlStatusCallback * This,
1909             /* [in] */ BMDDeckControlStatusFlags flags,
1910             /* [in] */ unsigned long mask);
1911         
1912         END_INTERFACE
1913     } IDeckLinkDeckControlStatusCallbackVtbl;
1914
1915     interface IDeckLinkDeckControlStatusCallback
1916     {
1917         CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;
1918     };
1919
1920     
1921
1922 #ifdef COBJMACROS
1923
1924
1925 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject)  \
1926     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1927
1928 #define IDeckLinkDeckControlStatusCallback_AddRef(This) \
1929     ( (This)->lpVtbl -> AddRef(This) ) 
1930
1931 #define IDeckLinkDeckControlStatusCallback_Release(This)        \
1932     ( (This)->lpVtbl -> Release(This) ) 
1933
1934
1935 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) \
1936     ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) 
1937
1938 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error)  \
1939     ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) 
1940
1941 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error)   \
1942     ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) 
1943
1944 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask)    \
1945     ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) 
1946
1947 #endif /* COBJMACROS */
1948
1949
1950 #endif  /* C style interface */
1951
1952
1953
1954
1955 #endif  /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */
1956
1957
1958 #ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__
1959 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__
1960
1961 /* interface IDeckLinkDeckControl */
1962 /* [helpstring][uuid][object] */ 
1963
1964
1965 EXTERN_C const IID IID_IDeckLinkDeckControl;
1966
1967 #if defined(__cplusplus) && !defined(CINTERFACE)
1968     
1969     MIDL_INTERFACE("8E1C3ACE-19C7-4E00-8B92-D80431D958BE")
1970     IDeckLinkDeckControl : public IUnknown
1971     {
1972     public:
1973         virtual HRESULT STDMETHODCALLTYPE Open( 
1974             /* [in] */ BMDTimeScale timeScale,
1975             /* [in] */ BMDTimeValue timeValue,
1976             /* [in] */ BOOL timecodeIsDropFrame,
1977             /* [out] */ BMDDeckControlError *error) = 0;
1978         
1979         virtual HRESULT STDMETHODCALLTYPE Close( 
1980             /* [in] */ BOOL standbyOn) = 0;
1981         
1982         virtual HRESULT STDMETHODCALLTYPE GetCurrentState( 
1983             /* [out] */ BMDDeckControlMode *mode,
1984             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
1985             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
1986         
1987         virtual HRESULT STDMETHODCALLTYPE SetStandby( 
1988             /* [in] */ BOOL standbyOn) = 0;
1989         
1990         virtual HRESULT STDMETHODCALLTYPE SendCommand( 
1991             /* [in] */ unsigned char *inBuffer,
1992             /* [in] */ unsigned long inBufferSize,
1993             /* [out] */ unsigned char *outBuffer,
1994             /* [out] */ unsigned long *outDataSize,
1995             /* [in] */ unsigned long outBufferSize,
1996             /* [out] */ BMDDeckControlError *error) = 0;
1997         
1998         virtual HRESULT STDMETHODCALLTYPE Play( 
1999             /* [out] */ BMDDeckControlError *error) = 0;
2000         
2001         virtual HRESULT STDMETHODCALLTYPE Stop( 
2002             /* [out] */ BMDDeckControlError *error) = 0;
2003         
2004         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( 
2005             /* [out] */ BMDDeckControlError *error) = 0;
2006         
2007         virtual HRESULT STDMETHODCALLTYPE Eject( 
2008             /* [out] */ BMDDeckControlError *error) = 0;
2009         
2010         virtual HRESULT STDMETHODCALLTYPE GoToTimecode( 
2011             /* [in] */ BMDTimecodeBCD timecode,
2012             /* [out] */ BMDDeckControlError *error) = 0;
2013         
2014         virtual HRESULT STDMETHODCALLTYPE FastForward( 
2015             /* [in] */ BOOL viewTape,
2016             /* [out] */ BMDDeckControlError *error) = 0;
2017         
2018         virtual HRESULT STDMETHODCALLTYPE Rewind( 
2019             /* [in] */ BOOL viewTape,
2020             /* [out] */ BMDDeckControlError *error) = 0;
2021         
2022         virtual HRESULT STDMETHODCALLTYPE StepForward( 
2023             /* [out] */ BMDDeckControlError *error) = 0;
2024         
2025         virtual HRESULT STDMETHODCALLTYPE StepBack( 
2026             /* [out] */ BMDDeckControlError *error) = 0;
2027         
2028         virtual HRESULT STDMETHODCALLTYPE Jog( 
2029             /* [in] */ double rate,
2030             /* [out] */ BMDDeckControlError *error) = 0;
2031         
2032         virtual HRESULT STDMETHODCALLTYPE Shuttle( 
2033             /* [in] */ double rate,
2034             /* [out] */ BMDDeckControlError *error) = 0;
2035         
2036         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( 
2037             /* [out] */ BSTR *currentTimeCode,
2038             /* [out] */ BMDDeckControlError *error) = 0;
2039         
2040         virtual HRESULT STDMETHODCALLTYPE GetTimecode( 
2041             /* [out] */ IDeckLinkTimecode **currentTimecode,
2042             /* [out] */ BMDDeckControlError *error) = 0;
2043         
2044         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( 
2045             /* [out] */ BMDTimecodeBCD *currentTimecode,
2046             /* [out] */ BMDDeckControlError *error) = 0;
2047         
2048         virtual HRESULT STDMETHODCALLTYPE SetPreroll( 
2049             /* [in] */ unsigned long prerollSeconds) = 0;
2050         
2051         virtual HRESULT STDMETHODCALLTYPE GetPreroll( 
2052             /* [out] */ unsigned long *prerollSeconds) = 0;
2053         
2054         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( 
2055             /* [in] */ long exportOffsetFields) = 0;
2056         
2057         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( 
2058             /* [out] */ long *exportOffsetFields) = 0;
2059         
2060         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( 
2061             /* [out] */ long *deckManualExportOffsetFields) = 0;
2062         
2063         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( 
2064             /* [in] */ long captureOffsetFields) = 0;
2065         
2066         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( 
2067             /* [out] */ long *captureOffsetFields) = 0;
2068         
2069         virtual HRESULT STDMETHODCALLTYPE StartExport( 
2070             /* [in] */ BMDTimecodeBCD inTimecode,
2071             /* [in] */ BMDTimecodeBCD outTimecode,
2072             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
2073             /* [out] */ BMDDeckControlError *error) = 0;
2074         
2075         virtual HRESULT STDMETHODCALLTYPE StartCapture( 
2076             /* [in] */ BOOL useVITC,
2077             /* [in] */ BMDTimecodeBCD inTimecode,
2078             /* [in] */ BMDTimecodeBCD outTimecode,
2079             /* [out] */ BMDDeckControlError *error) = 0;
2080         
2081         virtual HRESULT STDMETHODCALLTYPE GetDeviceID( 
2082             /* [out] */ unsigned short *deviceId,
2083             /* [out] */ BMDDeckControlError *error) = 0;
2084         
2085         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
2086         
2087         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( 
2088             /* [out] */ BMDDeckControlError *error) = 0;
2089         
2090         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( 
2091             /* [out] */ BMDDeckControlError *error) = 0;
2092         
2093         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
2094             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
2095         
2096     };
2097     
2098 #else   /* C style interface */
2099
2100     typedef struct IDeckLinkDeckControlVtbl
2101     {
2102         BEGIN_INTERFACE
2103         
2104         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2105             IDeckLinkDeckControl * This,
2106             /* [in] */ REFIID riid,
2107             /* [annotation][iid_is][out] */ 
2108             __RPC__deref_out  void **ppvObject);
2109         
2110         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2111             IDeckLinkDeckControl * This);
2112         
2113         ULONG ( STDMETHODCALLTYPE *Release )( 
2114             IDeckLinkDeckControl * This);
2115         
2116         HRESULT ( STDMETHODCALLTYPE *Open )( 
2117             IDeckLinkDeckControl * This,
2118             /* [in] */ BMDTimeScale timeScale,
2119             /* [in] */ BMDTimeValue timeValue,
2120             /* [in] */ BOOL timecodeIsDropFrame,
2121             /* [out] */ BMDDeckControlError *error);
2122         
2123         HRESULT ( STDMETHODCALLTYPE *Close )( 
2124             IDeckLinkDeckControl * This,
2125             /* [in] */ BOOL standbyOn);
2126         
2127         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( 
2128             IDeckLinkDeckControl * This,
2129             /* [out] */ BMDDeckControlMode *mode,
2130             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
2131             /* [out] */ BMDDeckControlStatusFlags *flags);
2132         
2133         HRESULT ( STDMETHODCALLTYPE *SetStandby )( 
2134             IDeckLinkDeckControl * This,
2135             /* [in] */ BOOL standbyOn);
2136         
2137         HRESULT ( STDMETHODCALLTYPE *SendCommand )( 
2138             IDeckLinkDeckControl * This,
2139             /* [in] */ unsigned char *inBuffer,
2140             /* [in] */ unsigned long inBufferSize,
2141             /* [out] */ unsigned char *outBuffer,
2142             /* [out] */ unsigned long *outDataSize,
2143             /* [in] */ unsigned long outBufferSize,
2144             /* [out] */ BMDDeckControlError *error);
2145         
2146         HRESULT ( STDMETHODCALLTYPE *Play )( 
2147             IDeckLinkDeckControl * This,
2148             /* [out] */ BMDDeckControlError *error);
2149         
2150         HRESULT ( STDMETHODCALLTYPE *Stop )( 
2151             IDeckLinkDeckControl * This,
2152             /* [out] */ BMDDeckControlError *error);
2153         
2154         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( 
2155             IDeckLinkDeckControl * This,
2156             /* [out] */ BMDDeckControlError *error);
2157         
2158         HRESULT ( STDMETHODCALLTYPE *Eject )( 
2159             IDeckLinkDeckControl * This,
2160             /* [out] */ BMDDeckControlError *error);
2161         
2162         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( 
2163             IDeckLinkDeckControl * This,
2164             /* [in] */ BMDTimecodeBCD timecode,
2165             /* [out] */ BMDDeckControlError *error);
2166         
2167         HRESULT ( STDMETHODCALLTYPE *FastForward )( 
2168             IDeckLinkDeckControl * This,
2169             /* [in] */ BOOL viewTape,
2170             /* [out] */ BMDDeckControlError *error);
2171         
2172         HRESULT ( STDMETHODCALLTYPE *Rewind )( 
2173             IDeckLinkDeckControl * This,
2174             /* [in] */ BOOL viewTape,
2175             /* [out] */ BMDDeckControlError *error);
2176         
2177         HRESULT ( STDMETHODCALLTYPE *StepForward )( 
2178             IDeckLinkDeckControl * This,
2179             /* [out] */ BMDDeckControlError *error);
2180         
2181         HRESULT ( STDMETHODCALLTYPE *StepBack )( 
2182             IDeckLinkDeckControl * This,
2183             /* [out] */ BMDDeckControlError *error);
2184         
2185         HRESULT ( STDMETHODCALLTYPE *Jog )( 
2186             IDeckLinkDeckControl * This,
2187             /* [in] */ double rate,
2188             /* [out] */ BMDDeckControlError *error);
2189         
2190         HRESULT ( STDMETHODCALLTYPE *Shuttle )( 
2191             IDeckLinkDeckControl * This,
2192             /* [in] */ double rate,
2193             /* [out] */ BMDDeckControlError *error);
2194         
2195         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( 
2196             IDeckLinkDeckControl * This,
2197             /* [out] */ BSTR *currentTimeCode,
2198             /* [out] */ BMDDeckControlError *error);
2199         
2200         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
2201             IDeckLinkDeckControl * This,
2202             /* [out] */ IDeckLinkTimecode **currentTimecode,
2203             /* [out] */ BMDDeckControlError *error);
2204         
2205         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( 
2206             IDeckLinkDeckControl * This,
2207             /* [out] */ BMDTimecodeBCD *currentTimecode,
2208             /* [out] */ BMDDeckControlError *error);
2209         
2210         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( 
2211             IDeckLinkDeckControl * This,
2212             /* [in] */ unsigned long prerollSeconds);
2213         
2214         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( 
2215             IDeckLinkDeckControl * This,
2216             /* [out] */ unsigned long *prerollSeconds);
2217         
2218         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( 
2219             IDeckLinkDeckControl * This,
2220             /* [in] */ long exportOffsetFields);
2221         
2222         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( 
2223             IDeckLinkDeckControl * This,
2224             /* [out] */ long *exportOffsetFields);
2225         
2226         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( 
2227             IDeckLinkDeckControl * This,
2228             /* [out] */ long *deckManualExportOffsetFields);
2229         
2230         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( 
2231             IDeckLinkDeckControl * This,
2232             /* [in] */ long captureOffsetFields);
2233         
2234         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( 
2235             IDeckLinkDeckControl * This,
2236             /* [out] */ long *captureOffsetFields);
2237         
2238         HRESULT ( STDMETHODCALLTYPE *StartExport )( 
2239             IDeckLinkDeckControl * This,
2240             /* [in] */ BMDTimecodeBCD inTimecode,
2241             /* [in] */ BMDTimecodeBCD outTimecode,
2242             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
2243             /* [out] */ BMDDeckControlError *error);
2244         
2245         HRESULT ( STDMETHODCALLTYPE *StartCapture )( 
2246             IDeckLinkDeckControl * This,
2247             /* [in] */ BOOL useVITC,
2248             /* [in] */ BMDTimecodeBCD inTimecode,
2249             /* [in] */ BMDTimecodeBCD outTimecode,
2250             /* [out] */ BMDDeckControlError *error);
2251         
2252         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( 
2253             IDeckLinkDeckControl * This,
2254             /* [out] */ unsigned short *deviceId,
2255             /* [out] */ BMDDeckControlError *error);
2256         
2257         HRESULT ( STDMETHODCALLTYPE *Abort )( 
2258             IDeckLinkDeckControl * This);
2259         
2260         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( 
2261             IDeckLinkDeckControl * This,
2262             /* [out] */ BMDDeckControlError *error);
2263         
2264         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( 
2265             IDeckLinkDeckControl * This,
2266             /* [out] */ BMDDeckControlError *error);
2267         
2268         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
2269             IDeckLinkDeckControl * This,
2270             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
2271         
2272         END_INTERFACE
2273     } IDeckLinkDeckControlVtbl;
2274
2275     interface IDeckLinkDeckControl
2276     {
2277         CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;
2278     };
2279
2280     
2281
2282 #ifdef COBJMACROS
2283
2284
2285 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject)        \
2286     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2287
2288 #define IDeckLinkDeckControl_AddRef(This)       \
2289     ( (This)->lpVtbl -> AddRef(This) ) 
2290
2291 #define IDeckLinkDeckControl_Release(This)      \
2292     ( (This)->lpVtbl -> Release(This) ) 
2293
2294
2295 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)   \
2296     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) 
2297
2298 #define IDeckLinkDeckControl_Close(This,standbyOn)      \
2299     ( (This)->lpVtbl -> Close(This,standbyOn) ) 
2300
2301 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags)   \
2302     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) 
2303
2304 #define IDeckLinkDeckControl_SetStandby(This,standbyOn) \
2305     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) 
2306
2307 #define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)  \
2308     ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) 
2309
2310 #define IDeckLinkDeckControl_Play(This,error)   \
2311     ( (This)->lpVtbl -> Play(This,error) ) 
2312
2313 #define IDeckLinkDeckControl_Stop(This,error)   \
2314     ( (This)->lpVtbl -> Stop(This,error) ) 
2315
2316 #define IDeckLinkDeckControl_TogglePlayStop(This,error) \
2317     ( (This)->lpVtbl -> TogglePlayStop(This,error) ) 
2318
2319 #define IDeckLinkDeckControl_Eject(This,error)  \
2320     ( (This)->lpVtbl -> Eject(This,error) ) 
2321
2322 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error)  \
2323     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) 
2324
2325 #define IDeckLinkDeckControl_FastForward(This,viewTape,error)   \
2326     ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) 
2327
2328 #define IDeckLinkDeckControl_Rewind(This,viewTape,error)        \
2329     ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) 
2330
2331 #define IDeckLinkDeckControl_StepForward(This,error)    \
2332     ( (This)->lpVtbl -> StepForward(This,error) ) 
2333
2334 #define IDeckLinkDeckControl_StepBack(This,error)       \
2335     ( (This)->lpVtbl -> StepBack(This,error) ) 
2336
2337 #define IDeckLinkDeckControl_Jog(This,rate,error)       \
2338     ( (This)->lpVtbl -> Jog(This,rate,error) ) 
2339
2340 #define IDeckLinkDeckControl_Shuttle(This,rate,error)   \
2341     ( (This)->lpVtbl -> Shuttle(This,rate,error) ) 
2342
2343 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error)      \
2344     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) 
2345
2346 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error)    \
2347     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) 
2348
2349 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) \
2350     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) 
2351
2352 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds)    \
2353     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) 
2354
2355 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds)    \
2356     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) 
2357
2358 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields)   \
2359     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) 
2360
2361 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields)   \
2362     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) 
2363
2364 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields)   \
2365     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) 
2366
2367 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) \
2368     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) 
2369
2370 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) \
2371     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) 
2372
2373 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error)       \
2374     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) 
2375
2376 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error)    \
2377     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) 
2378
2379 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error)   \
2380     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) 
2381
2382 #define IDeckLinkDeckControl_Abort(This)        \
2383     ( (This)->lpVtbl -> Abort(This) ) 
2384
2385 #define IDeckLinkDeckControl_CrashRecordStart(This,error)       \
2386     ( (This)->lpVtbl -> CrashRecordStart(This,error) ) 
2387
2388 #define IDeckLinkDeckControl_CrashRecordStop(This,error)        \
2389     ( (This)->lpVtbl -> CrashRecordStop(This,error) ) 
2390
2391 #define IDeckLinkDeckControl_SetCallback(This,callback) \
2392     ( (This)->lpVtbl -> SetCallback(This,callback) ) 
2393
2394 #endif /* COBJMACROS */
2395
2396
2397 #endif  /* C style interface */
2398
2399
2400
2401
2402 #endif  /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */
2403
2404
2405 #ifndef __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
2406 #define __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
2407
2408 /* interface IBMDStreamingDeviceNotificationCallback */
2409 /* [helpstring][uuid][object] */ 
2410
2411
2412 EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;
2413
2414 #if defined(__cplusplus) && !defined(CINTERFACE)
2415     
2416     MIDL_INTERFACE("F9531D64-3305-4B29-A387-7F74BB0D0E84")
2417     IBMDStreamingDeviceNotificationCallback : public IUnknown
2418     {
2419     public:
2420         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived( 
2421             /* [in] */ IDeckLink *device) = 0;
2422         
2423         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved( 
2424             /* [in] */ IDeckLink *device) = 0;
2425         
2426         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged( 
2427             /* [in] */ IDeckLink *device,
2428             /* [in] */ BMDStreamingDeviceMode mode) = 0;
2429         
2430     };
2431     
2432 #else   /* C style interface */
2433
2434     typedef struct IBMDStreamingDeviceNotificationCallbackVtbl
2435     {
2436         BEGIN_INTERFACE
2437         
2438         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2439             IBMDStreamingDeviceNotificationCallback * This,
2440             /* [in] */ REFIID riid,
2441             /* [annotation][iid_is][out] */ 
2442             __RPC__deref_out  void **ppvObject);
2443         
2444         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2445             IBMDStreamingDeviceNotificationCallback * This);
2446         
2447         ULONG ( STDMETHODCALLTYPE *Release )( 
2448             IBMDStreamingDeviceNotificationCallback * This);
2449         
2450         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceArrived )( 
2451             IBMDStreamingDeviceNotificationCallback * This,
2452             /* [in] */ IDeckLink *device);
2453         
2454         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceRemoved )( 
2455             IBMDStreamingDeviceNotificationCallback * This,
2456             /* [in] */ IDeckLink *device);
2457         
2458         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceModeChanged )( 
2459             IBMDStreamingDeviceNotificationCallback * This,
2460             /* [in] */ IDeckLink *device,
2461             /* [in] */ BMDStreamingDeviceMode mode);
2462         
2463         END_INTERFACE
2464     } IBMDStreamingDeviceNotificationCallbackVtbl;
2465
2466     interface IBMDStreamingDeviceNotificationCallback
2467     {
2468         CONST_VTBL struct IBMDStreamingDeviceNotificationCallbackVtbl *lpVtbl;
2469     };
2470
2471     
2472
2473 #ifdef COBJMACROS
2474
2475
2476 #define IBMDStreamingDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)     \
2477     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2478
2479 #define IBMDStreamingDeviceNotificationCallback_AddRef(This)    \
2480     ( (This)->lpVtbl -> AddRef(This) ) 
2481
2482 #define IBMDStreamingDeviceNotificationCallback_Release(This)   \
2483     ( (This)->lpVtbl -> Release(This) ) 
2484
2485
2486 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(This,device)     \
2487     ( (This)->lpVtbl -> StreamingDeviceArrived(This,device) ) 
2488
2489 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(This,device)     \
2490     ( (This)->lpVtbl -> StreamingDeviceRemoved(This,device) ) 
2491
2492 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(This,device,mode)    \
2493     ( (This)->lpVtbl -> StreamingDeviceModeChanged(This,device,mode) ) 
2494
2495 #endif /* COBJMACROS */
2496
2497
2498 #endif  /* C style interface */
2499
2500
2501
2502
2503 #endif  /* __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ */
2504
2505
2506 #ifndef __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
2507 #define __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
2508
2509 /* interface IBMDStreamingH264InputCallback */
2510 /* [helpstring][uuid][object] */ 
2511
2512
2513 EXTERN_C const IID IID_IBMDStreamingH264InputCallback;
2514
2515 #if defined(__cplusplus) && !defined(CINTERFACE)
2516     
2517     MIDL_INTERFACE("823C475F-55AE-46F9-890C-537CC5CEDCCA")
2518     IBMDStreamingH264InputCallback : public IUnknown
2519     {
2520     public:
2521         virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived( 
2522             /* [in] */ IBMDStreamingH264NALPacket *nalPacket) = 0;
2523         
2524         virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived( 
2525             /* [in] */ IBMDStreamingAudioPacket *audioPacket) = 0;
2526         
2527         virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived( 
2528             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket) = 0;
2529         
2530         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorScanningChanged( void) = 0;
2531         
2532         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorChanged( void) = 0;
2533         
2534         virtual HRESULT STDMETHODCALLTYPE H264VideoInputModeChanged( void) = 0;
2535         
2536     };
2537     
2538 #else   /* C style interface */
2539
2540     typedef struct IBMDStreamingH264InputCallbackVtbl
2541     {
2542         BEGIN_INTERFACE
2543         
2544         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2545             IBMDStreamingH264InputCallback * This,
2546             /* [in] */ REFIID riid,
2547             /* [annotation][iid_is][out] */ 
2548             __RPC__deref_out  void **ppvObject);
2549         
2550         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2551             IBMDStreamingH264InputCallback * This);
2552         
2553         ULONG ( STDMETHODCALLTYPE *Release )( 
2554             IBMDStreamingH264InputCallback * This);
2555         
2556         HRESULT ( STDMETHODCALLTYPE *H264NALPacketArrived )( 
2557             IBMDStreamingH264InputCallback * This,
2558             /* [in] */ IBMDStreamingH264NALPacket *nalPacket);
2559         
2560         HRESULT ( STDMETHODCALLTYPE *H264AudioPacketArrived )( 
2561             IBMDStreamingH264InputCallback * This,
2562             /* [in] */ IBMDStreamingAudioPacket *audioPacket);
2563         
2564         HRESULT ( STDMETHODCALLTYPE *MPEG2TSPacketArrived )( 
2565             IBMDStreamingH264InputCallback * This,
2566             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket);
2567         
2568         HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged )( 
2569             IBMDStreamingH264InputCallback * This);
2570         
2571         HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorChanged )( 
2572             IBMDStreamingH264InputCallback * This);
2573         
2574         HRESULT ( STDMETHODCALLTYPE *H264VideoInputModeChanged )( 
2575             IBMDStreamingH264InputCallback * This);
2576         
2577         END_INTERFACE
2578     } IBMDStreamingH264InputCallbackVtbl;
2579
2580     interface IBMDStreamingH264InputCallback
2581     {
2582         CONST_VTBL struct IBMDStreamingH264InputCallbackVtbl *lpVtbl;
2583     };
2584
2585     
2586
2587 #ifdef COBJMACROS
2588
2589
2590 #define IBMDStreamingH264InputCallback_QueryInterface(This,riid,ppvObject)      \
2591     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2592
2593 #define IBMDStreamingH264InputCallback_AddRef(This)     \
2594     ( (This)->lpVtbl -> AddRef(This) ) 
2595
2596 #define IBMDStreamingH264InputCallback_Release(This)    \
2597     ( (This)->lpVtbl -> Release(This) ) 
2598
2599
2600 #define IBMDStreamingH264InputCallback_H264NALPacketArrived(This,nalPacket)     \
2601     ( (This)->lpVtbl -> H264NALPacketArrived(This,nalPacket) ) 
2602
2603 #define IBMDStreamingH264InputCallback_H264AudioPacketArrived(This,audioPacket) \
2604     ( (This)->lpVtbl -> H264AudioPacketArrived(This,audioPacket) ) 
2605
2606 #define IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(This,tsPacket)      \
2607     ( (This)->lpVtbl -> MPEG2TSPacketArrived(This,tsPacket) ) 
2608
2609 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(This)     \
2610     ( (This)->lpVtbl -> H264VideoInputConnectorScanningChanged(This) ) 
2611
2612 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(This)     \
2613     ( (This)->lpVtbl -> H264VideoInputConnectorChanged(This) ) 
2614
2615 #define IBMDStreamingH264InputCallback_H264VideoInputModeChanged(This)  \
2616     ( (This)->lpVtbl -> H264VideoInputModeChanged(This) ) 
2617
2618 #endif /* COBJMACROS */
2619
2620
2621 #endif  /* C style interface */
2622
2623
2624
2625
2626 #endif  /* __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ */
2627
2628
2629 #ifndef __IBMDStreamingDiscovery_INTERFACE_DEFINED__
2630 #define __IBMDStreamingDiscovery_INTERFACE_DEFINED__
2631
2632 /* interface IBMDStreamingDiscovery */
2633 /* [helpstring][uuid][object] */ 
2634
2635
2636 EXTERN_C const IID IID_IBMDStreamingDiscovery;
2637
2638 #if defined(__cplusplus) && !defined(CINTERFACE)
2639     
2640     MIDL_INTERFACE("2C837444-F989-4D87-901A-47C8A36D096D")
2641     IBMDStreamingDiscovery : public IUnknown
2642     {
2643     public:
2644         virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( 
2645             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback) = 0;
2646         
2647         virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;
2648         
2649     };
2650     
2651 #else   /* C style interface */
2652
2653     typedef struct IBMDStreamingDiscoveryVtbl
2654     {
2655         BEGIN_INTERFACE
2656         
2657         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2658             IBMDStreamingDiscovery * This,
2659             /* [in] */ REFIID riid,
2660             /* [annotation][iid_is][out] */ 
2661             __RPC__deref_out  void **ppvObject);
2662         
2663         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2664             IBMDStreamingDiscovery * This);
2665         
2666         ULONG ( STDMETHODCALLTYPE *Release )( 
2667             IBMDStreamingDiscovery * This);
2668         
2669         HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )( 
2670             IBMDStreamingDiscovery * This,
2671             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback);
2672         
2673         HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )( 
2674             IBMDStreamingDiscovery * This);
2675         
2676         END_INTERFACE
2677     } IBMDStreamingDiscoveryVtbl;
2678
2679     interface IBMDStreamingDiscovery
2680     {
2681         CONST_VTBL struct IBMDStreamingDiscoveryVtbl *lpVtbl;
2682     };
2683
2684     
2685
2686 #ifdef COBJMACROS
2687
2688
2689 #define IBMDStreamingDiscovery_QueryInterface(This,riid,ppvObject)      \
2690     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2691
2692 #define IBMDStreamingDiscovery_AddRef(This)     \
2693     ( (This)->lpVtbl -> AddRef(This) ) 
2694
2695 #define IBMDStreamingDiscovery_Release(This)    \
2696     ( (This)->lpVtbl -> Release(This) ) 
2697
2698
2699 #define IBMDStreamingDiscovery_InstallDeviceNotifications(This,theCallback)     \
2700     ( (This)->lpVtbl -> InstallDeviceNotifications(This,theCallback) ) 
2701
2702 #define IBMDStreamingDiscovery_UninstallDeviceNotifications(This)       \
2703     ( (This)->lpVtbl -> UninstallDeviceNotifications(This) ) 
2704
2705 #endif /* COBJMACROS */
2706
2707
2708 #endif  /* C style interface */
2709
2710
2711
2712
2713 #endif  /* __IBMDStreamingDiscovery_INTERFACE_DEFINED__ */
2714
2715
2716 #ifndef __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
2717 #define __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
2718
2719 /* interface IBMDStreamingVideoEncodingMode */
2720 /* [helpstring][uuid][object] */ 
2721
2722
2723 EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;
2724
2725 #if defined(__cplusplus) && !defined(CINTERFACE)
2726     
2727     MIDL_INTERFACE("1AB8035B-CD13-458D-B6DF-5E8F7C2141D9")
2728     IBMDStreamingVideoEncodingMode : public IUnknown
2729     {
2730     public:
2731         virtual HRESULT STDMETHODCALLTYPE GetName( 
2732             /* [out] */ BSTR *name) = 0;
2733         
2734         virtual unsigned int STDMETHODCALLTYPE GetPresetID( void) = 0;
2735         
2736         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionX( void) = 0;
2737         
2738         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionY( void) = 0;
2739         
2740         virtual unsigned int STDMETHODCALLTYPE GetSourceWidth( void) = 0;
2741         
2742         virtual unsigned int STDMETHODCALLTYPE GetSourceHeight( void) = 0;
2743         
2744         virtual unsigned int STDMETHODCALLTYPE GetDestWidth( void) = 0;
2745         
2746         virtual unsigned int STDMETHODCALLTYPE GetDestHeight( void) = 0;
2747         
2748         virtual HRESULT STDMETHODCALLTYPE GetFlag( 
2749             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2750             /* [out] */ BOOL *value) = 0;
2751         
2752         virtual HRESULT STDMETHODCALLTYPE GetInt( 
2753             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2754             /* [out] */ LONGLONG *value) = 0;
2755         
2756         virtual HRESULT STDMETHODCALLTYPE GetFloat( 
2757             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2758             /* [out] */ double *value) = 0;
2759         
2760         virtual HRESULT STDMETHODCALLTYPE GetString( 
2761             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2762             /* [out] */ BSTR *value) = 0;
2763         
2764         virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode( 
2765             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode) = 0;
2766         
2767     };
2768     
2769 #else   /* C style interface */
2770
2771     typedef struct IBMDStreamingVideoEncodingModeVtbl
2772     {
2773         BEGIN_INTERFACE
2774         
2775         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2776             IBMDStreamingVideoEncodingMode * This,
2777             /* [in] */ REFIID riid,
2778             /* [annotation][iid_is][out] */ 
2779             __RPC__deref_out  void **ppvObject);
2780         
2781         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2782             IBMDStreamingVideoEncodingMode * This);
2783         
2784         ULONG ( STDMETHODCALLTYPE *Release )( 
2785             IBMDStreamingVideoEncodingMode * This);
2786         
2787         HRESULT ( STDMETHODCALLTYPE *GetName )( 
2788             IBMDStreamingVideoEncodingMode * This,
2789             /* [out] */ BSTR *name);
2790         
2791         unsigned int ( STDMETHODCALLTYPE *GetPresetID )( 
2792             IBMDStreamingVideoEncodingMode * This);
2793         
2794         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )( 
2795             IBMDStreamingVideoEncodingMode * This);
2796         
2797         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )( 
2798             IBMDStreamingVideoEncodingMode * This);
2799         
2800         unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )( 
2801             IBMDStreamingVideoEncodingMode * This);
2802         
2803         unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )( 
2804             IBMDStreamingVideoEncodingMode * This);
2805         
2806         unsigned int ( STDMETHODCALLTYPE *GetDestWidth )( 
2807             IBMDStreamingVideoEncodingMode * This);
2808         
2809         unsigned int ( STDMETHODCALLTYPE *GetDestHeight )( 
2810             IBMDStreamingVideoEncodingMode * This);
2811         
2812         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
2813             IBMDStreamingVideoEncodingMode * This,
2814             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2815             /* [out] */ BOOL *value);
2816         
2817         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
2818             IBMDStreamingVideoEncodingMode * This,
2819             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2820             /* [out] */ LONGLONG *value);
2821         
2822         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
2823             IBMDStreamingVideoEncodingMode * This,
2824             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2825             /* [out] */ double *value);
2826         
2827         HRESULT ( STDMETHODCALLTYPE *GetString )( 
2828             IBMDStreamingVideoEncodingMode * This,
2829             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2830             /* [out] */ BSTR *value);
2831         
2832         HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )( 
2833             IBMDStreamingVideoEncodingMode * This,
2834             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
2835         
2836         END_INTERFACE
2837     } IBMDStreamingVideoEncodingModeVtbl;
2838
2839     interface IBMDStreamingVideoEncodingMode
2840     {
2841         CONST_VTBL struct IBMDStreamingVideoEncodingModeVtbl *lpVtbl;
2842     };
2843
2844     
2845
2846 #ifdef COBJMACROS
2847
2848
2849 #define IBMDStreamingVideoEncodingMode_QueryInterface(This,riid,ppvObject)      \
2850     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2851
2852 #define IBMDStreamingVideoEncodingMode_AddRef(This)     \
2853     ( (This)->lpVtbl -> AddRef(This) ) 
2854
2855 #define IBMDStreamingVideoEncodingMode_Release(This)    \
2856     ( (This)->lpVtbl -> Release(This) ) 
2857
2858
2859 #define IBMDStreamingVideoEncodingMode_GetName(This,name)       \
2860     ( (This)->lpVtbl -> GetName(This,name) ) 
2861
2862 #define IBMDStreamingVideoEncodingMode_GetPresetID(This)        \
2863     ( (This)->lpVtbl -> GetPresetID(This) ) 
2864
2865 #define IBMDStreamingVideoEncodingMode_GetSourcePositionX(This) \
2866     ( (This)->lpVtbl -> GetSourcePositionX(This) ) 
2867
2868 #define IBMDStreamingVideoEncodingMode_GetSourcePositionY(This) \
2869     ( (This)->lpVtbl -> GetSourcePositionY(This) ) 
2870
2871 #define IBMDStreamingVideoEncodingMode_GetSourceWidth(This)     \
2872     ( (This)->lpVtbl -> GetSourceWidth(This) ) 
2873
2874 #define IBMDStreamingVideoEncodingMode_GetSourceHeight(This)    \
2875     ( (This)->lpVtbl -> GetSourceHeight(This) ) 
2876
2877 #define IBMDStreamingVideoEncodingMode_GetDestWidth(This)       \
2878     ( (This)->lpVtbl -> GetDestWidth(This) ) 
2879
2880 #define IBMDStreamingVideoEncodingMode_GetDestHeight(This)      \
2881     ( (This)->lpVtbl -> GetDestHeight(This) ) 
2882
2883 #define IBMDStreamingVideoEncodingMode_GetFlag(This,cfgID,value)        \
2884     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
2885
2886 #define IBMDStreamingVideoEncodingMode_GetInt(This,cfgID,value) \
2887     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
2888
2889 #define IBMDStreamingVideoEncodingMode_GetFloat(This,cfgID,value)       \
2890     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
2891
2892 #define IBMDStreamingVideoEncodingMode_GetString(This,cfgID,value)      \
2893     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
2894
2895 #define IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)     \
2896     ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) ) 
2897
2898 #endif /* COBJMACROS */
2899
2900
2901 #endif  /* C style interface */
2902
2903
2904
2905
2906 #endif  /* __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ */
2907
2908
2909 #ifndef __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
2910 #define __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
2911
2912 /* interface IBMDStreamingMutableVideoEncodingMode */
2913 /* [helpstring][uuid][object] */ 
2914
2915
2916 EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
2917
2918 #if defined(__cplusplus) && !defined(CINTERFACE)
2919     
2920     MIDL_INTERFACE("19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D")
2921     IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode
2922     {
2923     public:
2924         virtual HRESULT STDMETHODCALLTYPE SetSourceRect( 
2925             /* [in] */ unsigned long posX,
2926             /* [in] */ unsigned long posY,
2927             /* [in] */ unsigned long width,
2928             /* [in] */ unsigned long height) = 0;
2929         
2930         virtual HRESULT STDMETHODCALLTYPE SetDestSize( 
2931             /* [in] */ unsigned long width,
2932             /* [in] */ unsigned long height) = 0;
2933         
2934         virtual HRESULT STDMETHODCALLTYPE SetFlag( 
2935             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2936             /* [in] */ BOOL value) = 0;
2937         
2938         virtual HRESULT STDMETHODCALLTYPE SetInt( 
2939             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2940             /* [in] */ LONGLONG value) = 0;
2941         
2942         virtual HRESULT STDMETHODCALLTYPE SetFloat( 
2943             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2944             /* [in] */ double value) = 0;
2945         
2946         virtual HRESULT STDMETHODCALLTYPE SetString( 
2947             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2948             /* [in] */ BSTR value) = 0;
2949         
2950     };
2951     
2952 #else   /* C style interface */
2953
2954     typedef struct IBMDStreamingMutableVideoEncodingModeVtbl
2955     {
2956         BEGIN_INTERFACE
2957         
2958         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2959             IBMDStreamingMutableVideoEncodingMode * This,
2960             /* [in] */ REFIID riid,
2961             /* [annotation][iid_is][out] */ 
2962             __RPC__deref_out  void **ppvObject);
2963         
2964         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2965             IBMDStreamingMutableVideoEncodingMode * This);
2966         
2967         ULONG ( STDMETHODCALLTYPE *Release )( 
2968             IBMDStreamingMutableVideoEncodingMode * This);
2969         
2970         HRESULT ( STDMETHODCALLTYPE *GetName )( 
2971             IBMDStreamingMutableVideoEncodingMode * This,
2972             /* [out] */ BSTR *name);
2973         
2974         unsigned int ( STDMETHODCALLTYPE *GetPresetID )( 
2975             IBMDStreamingMutableVideoEncodingMode * This);
2976         
2977         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )( 
2978             IBMDStreamingMutableVideoEncodingMode * This);
2979         
2980         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )( 
2981             IBMDStreamingMutableVideoEncodingMode * This);
2982         
2983         unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )( 
2984             IBMDStreamingMutableVideoEncodingMode * This);
2985         
2986         unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )( 
2987             IBMDStreamingMutableVideoEncodingMode * This);
2988         
2989         unsigned int ( STDMETHODCALLTYPE *GetDestWidth )( 
2990             IBMDStreamingMutableVideoEncodingMode * This);
2991         
2992         unsigned int ( STDMETHODCALLTYPE *GetDestHeight )( 
2993             IBMDStreamingMutableVideoEncodingMode * This);
2994         
2995         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
2996             IBMDStreamingMutableVideoEncodingMode * This,
2997             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2998             /* [out] */ BOOL *value);
2999         
3000         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
3001             IBMDStreamingMutableVideoEncodingMode * This,
3002             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3003             /* [out] */ LONGLONG *value);
3004         
3005         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
3006             IBMDStreamingMutableVideoEncodingMode * This,
3007             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3008             /* [out] */ double *value);
3009         
3010         HRESULT ( STDMETHODCALLTYPE *GetString )( 
3011             IBMDStreamingMutableVideoEncodingMode * This,
3012             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3013             /* [out] */ BSTR *value);
3014         
3015         HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )( 
3016             IBMDStreamingMutableVideoEncodingMode * This,
3017             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
3018         
3019         HRESULT ( STDMETHODCALLTYPE *SetSourceRect )( 
3020             IBMDStreamingMutableVideoEncodingMode * This,
3021             /* [in] */ unsigned long posX,
3022             /* [in] */ unsigned long posY,
3023             /* [in] */ unsigned long width,
3024             /* [in] */ unsigned long height);
3025         
3026         HRESULT ( STDMETHODCALLTYPE *SetDestSize )( 
3027             IBMDStreamingMutableVideoEncodingMode * This,
3028             /* [in] */ unsigned long width,
3029             /* [in] */ unsigned long height);
3030         
3031         HRESULT ( STDMETHODCALLTYPE *SetFlag )( 
3032             IBMDStreamingMutableVideoEncodingMode * This,
3033             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3034             /* [in] */ BOOL value);
3035         
3036         HRESULT ( STDMETHODCALLTYPE *SetInt )( 
3037             IBMDStreamingMutableVideoEncodingMode * This,
3038             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3039             /* [in] */ LONGLONG value);
3040         
3041         HRESULT ( STDMETHODCALLTYPE *SetFloat )( 
3042             IBMDStreamingMutableVideoEncodingMode * This,
3043             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3044             /* [in] */ double value);
3045         
3046         HRESULT ( STDMETHODCALLTYPE *SetString )( 
3047             IBMDStreamingMutableVideoEncodingMode * This,
3048             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3049             /* [in] */ BSTR value);
3050         
3051         END_INTERFACE
3052     } IBMDStreamingMutableVideoEncodingModeVtbl;
3053
3054     interface IBMDStreamingMutableVideoEncodingMode
3055     {
3056         CONST_VTBL struct IBMDStreamingMutableVideoEncodingModeVtbl *lpVtbl;
3057     };
3058
3059     
3060
3061 #ifdef COBJMACROS
3062
3063
3064 #define IBMDStreamingMutableVideoEncodingMode_QueryInterface(This,riid,ppvObject)       \
3065     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3066
3067 #define IBMDStreamingMutableVideoEncodingMode_AddRef(This)      \
3068     ( (This)->lpVtbl -> AddRef(This) ) 
3069
3070 #define IBMDStreamingMutableVideoEncodingMode_Release(This)     \
3071     ( (This)->lpVtbl -> Release(This) ) 
3072
3073
3074 #define IBMDStreamingMutableVideoEncodingMode_GetName(This,name)        \
3075     ( (This)->lpVtbl -> GetName(This,name) ) 
3076
3077 #define IBMDStreamingMutableVideoEncodingMode_GetPresetID(This) \
3078     ( (This)->lpVtbl -> GetPresetID(This) ) 
3079
3080 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(This)  \
3081     ( (This)->lpVtbl -> GetSourcePositionX(This) ) 
3082
3083 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(This)  \
3084     ( (This)->lpVtbl -> GetSourcePositionY(This) ) 
3085
3086 #define IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(This)      \
3087     ( (This)->lpVtbl -> GetSourceWidth(This) ) 
3088
3089 #define IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(This)     \
3090     ( (This)->lpVtbl -> GetSourceHeight(This) ) 
3091
3092 #define IBMDStreamingMutableVideoEncodingMode_GetDestWidth(This)        \
3093     ( (This)->lpVtbl -> GetDestWidth(This) ) 
3094
3095 #define IBMDStreamingMutableVideoEncodingMode_GetDestHeight(This)       \
3096     ( (This)->lpVtbl -> GetDestHeight(This) ) 
3097
3098 #define IBMDStreamingMutableVideoEncodingMode_GetFlag(This,cfgID,value) \
3099     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
3100
3101 #define IBMDStreamingMutableVideoEncodingMode_GetInt(This,cfgID,value)  \
3102     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
3103
3104 #define IBMDStreamingMutableVideoEncodingMode_GetFloat(This,cfgID,value)        \
3105     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
3106
3107 #define IBMDStreamingMutableVideoEncodingMode_GetString(This,cfgID,value)       \
3108     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
3109
3110 #define IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)      \
3111     ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) ) 
3112
3113
3114 #define IBMDStreamingMutableVideoEncodingMode_SetSourceRect(This,posX,posY,width,height)        \
3115     ( (This)->lpVtbl -> SetSourceRect(This,posX,posY,width,height) ) 
3116
3117 #define IBMDStreamingMutableVideoEncodingMode_SetDestSize(This,width,height)    \
3118     ( (This)->lpVtbl -> SetDestSize(This,width,height) ) 
3119
3120 #define IBMDStreamingMutableVideoEncodingMode_SetFlag(This,cfgID,value) \
3121     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) 
3122
3123 #define IBMDStreamingMutableVideoEncodingMode_SetInt(This,cfgID,value)  \
3124     ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) 
3125
3126 #define IBMDStreamingMutableVideoEncodingMode_SetFloat(This,cfgID,value)        \
3127     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) 
3128
3129 #define IBMDStreamingMutableVideoEncodingMode_SetString(This,cfgID,value)       \
3130     ( (This)->lpVtbl -> SetString(This,cfgID,value) ) 
3131
3132 #endif /* COBJMACROS */
3133
3134
3135 #endif  /* C style interface */
3136
3137
3138
3139
3140 #endif  /* __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ */
3141
3142
3143 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
3144 #define __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
3145
3146 /* interface IBMDStreamingVideoEncodingModePresetIterator */
3147 /* [helpstring][uuid][object] */ 
3148
3149
3150 EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;
3151
3152 #if defined(__cplusplus) && !defined(CINTERFACE)
3153     
3154     MIDL_INTERFACE("7AC731A3-C950-4AD0-804A-8377AA51C6C4")
3155     IBMDStreamingVideoEncodingModePresetIterator : public IUnknown
3156     {
3157     public:
3158         virtual HRESULT STDMETHODCALLTYPE Next( 
3159             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode) = 0;
3160         
3161     };
3162     
3163 #else   /* C style interface */
3164
3165     typedef struct IBMDStreamingVideoEncodingModePresetIteratorVtbl
3166     {
3167         BEGIN_INTERFACE
3168         
3169         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3170             IBMDStreamingVideoEncodingModePresetIterator * This,
3171             /* [in] */ REFIID riid,
3172             /* [annotation][iid_is][out] */ 
3173             __RPC__deref_out  void **ppvObject);
3174         
3175         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3176             IBMDStreamingVideoEncodingModePresetIterator * This);
3177         
3178         ULONG ( STDMETHODCALLTYPE *Release )( 
3179             IBMDStreamingVideoEncodingModePresetIterator * This);
3180         
3181         HRESULT ( STDMETHODCALLTYPE *Next )( 
3182             IBMDStreamingVideoEncodingModePresetIterator * This,
3183             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode);
3184         
3185         END_INTERFACE
3186     } IBMDStreamingVideoEncodingModePresetIteratorVtbl;
3187
3188     interface IBMDStreamingVideoEncodingModePresetIterator
3189     {
3190         CONST_VTBL struct IBMDStreamingVideoEncodingModePresetIteratorVtbl *lpVtbl;
3191     };
3192
3193     
3194
3195 #ifdef COBJMACROS
3196
3197
3198 #define IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(This,riid,ppvObject)        \
3199     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3200
3201 #define IBMDStreamingVideoEncodingModePresetIterator_AddRef(This)       \
3202     ( (This)->lpVtbl -> AddRef(This) ) 
3203
3204 #define IBMDStreamingVideoEncodingModePresetIterator_Release(This)      \
3205     ( (This)->lpVtbl -> Release(This) ) 
3206
3207
3208 #define IBMDStreamingVideoEncodingModePresetIterator_Next(This,videoEncodingMode)       \
3209     ( (This)->lpVtbl -> Next(This,videoEncodingMode) ) 
3210
3211 #endif /* COBJMACROS */
3212
3213
3214 #endif  /* C style interface */
3215
3216
3217
3218
3219 #endif  /* __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ */
3220
3221
3222 #ifndef __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
3223 #define __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
3224
3225 /* interface IBMDStreamingDeviceInput */
3226 /* [helpstring][uuid][object] */ 
3227
3228
3229 EXTERN_C const IID IID_IBMDStreamingDeviceInput;
3230
3231 #if defined(__cplusplus) && !defined(CINTERFACE)
3232     
3233     MIDL_INTERFACE("24B6B6EC-1727-44BB-9818-34FF086ACF98")
3234     IBMDStreamingDeviceInput : public IUnknown
3235     {
3236     public:
3237         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode( 
3238             /* [in] */ BMDDisplayMode inputMode,
3239             /* [out] */ BOOL *result) = 0;
3240         
3241         virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator( 
3242             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
3243         
3244         virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode( 
3245             /* [in] */ BMDDisplayMode inputMode) = 0;
3246         
3247         virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode( 
3248             /* [out] */ BMDDisplayMode *detectedMode) = 0;
3249         
3250         virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode( 
3251             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode) = 0;
3252         
3253         virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator( 
3254             /* [in] */ BMDDisplayMode inputMode,
3255             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator) = 0;
3256         
3257         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode( 
3258             /* [in] */ BMDDisplayMode inputMode,
3259             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
3260             /* [out] */ BMDStreamingEncodingSupport *result,
3261             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode) = 0;
3262         
3263         virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode( 
3264             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode) = 0;
3265         
3266         virtual HRESULT STDMETHODCALLTYPE StartCapture( void) = 0;
3267         
3268         virtual HRESULT STDMETHODCALLTYPE StopCapture( void) = 0;
3269         
3270         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
3271             /* [in] */ IUnknown *theCallback) = 0;
3272         
3273     };
3274     
3275 #else   /* C style interface */
3276
3277     typedef struct IBMDStreamingDeviceInputVtbl
3278     {
3279         BEGIN_INTERFACE
3280         
3281         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3282             IBMDStreamingDeviceInput * This,
3283             /* [in] */ REFIID riid,
3284             /* [annotation][iid_is][out] */ 
3285             __RPC__deref_out  void **ppvObject);
3286         
3287         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3288             IBMDStreamingDeviceInput * This);
3289         
3290         ULONG ( STDMETHODCALLTYPE *Release )( 
3291             IBMDStreamingDeviceInput * This);
3292         
3293         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoInputMode )( 
3294             IBMDStreamingDeviceInput * This,
3295             /* [in] */ BMDDisplayMode inputMode,
3296             /* [out] */ BOOL *result);
3297         
3298         HRESULT ( STDMETHODCALLTYPE *GetVideoInputModeIterator )( 
3299             IBMDStreamingDeviceInput * This,
3300             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
3301         
3302         HRESULT ( STDMETHODCALLTYPE *SetVideoInputMode )( 
3303             IBMDStreamingDeviceInput * This,
3304             /* [in] */ BMDDisplayMode inputMode);
3305         
3306         HRESULT ( STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode )( 
3307             IBMDStreamingDeviceInput * This,
3308             /* [out] */ BMDDisplayMode *detectedMode);
3309         
3310         HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingMode )( 
3311             IBMDStreamingDeviceInput * This,
3312             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode);
3313         
3314         HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator )( 
3315             IBMDStreamingDeviceInput * This,
3316             /* [in] */ BMDDisplayMode inputMode,
3317             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator);
3318         
3319         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoEncodingMode )( 
3320             IBMDStreamingDeviceInput * This,
3321             /* [in] */ BMDDisplayMode inputMode,
3322             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
3323             /* [out] */ BMDStreamingEncodingSupport *result,
3324             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode);
3325         
3326         HRESULT ( STDMETHODCALLTYPE *SetVideoEncodingMode )( 
3327             IBMDStreamingDeviceInput * This,
3328             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode);
3329         
3330         HRESULT ( STDMETHODCALLTYPE *StartCapture )( 
3331             IBMDStreamingDeviceInput * This);
3332         
3333         HRESULT ( STDMETHODCALLTYPE *StopCapture )( 
3334             IBMDStreamingDeviceInput * This);
3335         
3336         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
3337             IBMDStreamingDeviceInput * This,
3338             /* [in] */ IUnknown *theCallback);
3339         
3340         END_INTERFACE
3341     } IBMDStreamingDeviceInputVtbl;
3342
3343     interface IBMDStreamingDeviceInput
3344     {
3345         CONST_VTBL struct IBMDStreamingDeviceInputVtbl *lpVtbl;
3346     };
3347
3348     
3349
3350 #ifdef COBJMACROS
3351
3352
3353 #define IBMDStreamingDeviceInput_QueryInterface(This,riid,ppvObject)    \
3354     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3355
3356 #define IBMDStreamingDeviceInput_AddRef(This)   \
3357     ( (This)->lpVtbl -> AddRef(This) ) 
3358
3359 #define IBMDStreamingDeviceInput_Release(This)  \
3360     ( (This)->lpVtbl -> Release(This) ) 
3361
3362
3363 #define IBMDStreamingDeviceInput_DoesSupportVideoInputMode(This,inputMode,result)       \
3364     ( (This)->lpVtbl -> DoesSupportVideoInputMode(This,inputMode,result) ) 
3365
3366 #define IBMDStreamingDeviceInput_GetVideoInputModeIterator(This,iterator)       \
3367     ( (This)->lpVtbl -> GetVideoInputModeIterator(This,iterator) ) 
3368
3369 #define IBMDStreamingDeviceInput_SetVideoInputMode(This,inputMode)      \
3370     ( (This)->lpVtbl -> SetVideoInputMode(This,inputMode) ) 
3371
3372 #define IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(This,detectedMode)    \
3373     ( (This)->lpVtbl -> GetCurrentDetectedVideoInputMode(This,detectedMode) ) 
3374
3375 #define IBMDStreamingDeviceInput_GetVideoEncodingMode(This,encodingMode)        \
3376     ( (This)->lpVtbl -> GetVideoEncodingMode(This,encodingMode) ) 
3377
3378 #define IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(This,inputMode,iterator)    \
3379     ( (This)->lpVtbl -> GetVideoEncodingModePresetIterator(This,inputMode,iterator) ) 
3380
3381 #define IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode)   \
3382     ( (This)->lpVtbl -> DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) ) 
3383
3384 #define IBMDStreamingDeviceInput_SetVideoEncodingMode(This,encodingMode)        \
3385     ( (This)->lpVtbl -> SetVideoEncodingMode(This,encodingMode) ) 
3386
3387 #define IBMDStreamingDeviceInput_StartCapture(This)     \
3388     ( (This)->lpVtbl -> StartCapture(This) ) 
3389
3390 #define IBMDStreamingDeviceInput_StopCapture(This)      \
3391     ( (This)->lpVtbl -> StopCapture(This) ) 
3392
3393 #define IBMDStreamingDeviceInput_SetCallback(This,theCallback)  \
3394     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
3395
3396 #endif /* COBJMACROS */
3397
3398
3399 #endif  /* C style interface */
3400
3401
3402
3403
3404 #endif  /* __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ */
3405
3406
3407 #ifndef __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
3408 #define __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
3409
3410 /* interface IBMDStreamingH264NALPacket */
3411 /* [helpstring][uuid][object] */ 
3412
3413
3414 EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
3415
3416 #if defined(__cplusplus) && !defined(CINTERFACE)
3417     
3418     MIDL_INTERFACE("E260E955-14BE-4395-9775-9F02CC0A9D89")
3419     IBMDStreamingH264NALPacket : public IUnknown
3420     {
3421     public:
3422         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3423         
3424         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
3425             /* [out] */ void **buffer) = 0;
3426         
3427         virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix( 
3428             /* [out] */ void **buffer) = 0;
3429         
3430         virtual HRESULT STDMETHODCALLTYPE GetDisplayTime( 
3431             /* [in] */ ULONGLONG requestedTimeScale,
3432             /* [out] */ ULONGLONG *displayTime) = 0;
3433         
3434         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( 
3435             /* [out] */ unsigned long *packetIndex) = 0;
3436         
3437     };
3438     
3439 #else   /* C style interface */
3440
3441     typedef struct IBMDStreamingH264NALPacketVtbl
3442     {
3443         BEGIN_INTERFACE
3444         
3445         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3446             IBMDStreamingH264NALPacket * This,
3447             /* [in] */ REFIID riid,
3448             /* [annotation][iid_is][out] */ 
3449             __RPC__deref_out  void **ppvObject);
3450         
3451         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3452             IBMDStreamingH264NALPacket * This);
3453         
3454         ULONG ( STDMETHODCALLTYPE *Release )( 
3455             IBMDStreamingH264NALPacket * This);
3456         
3457         long ( STDMETHODCALLTYPE *GetPayloadSize )( 
3458             IBMDStreamingH264NALPacket * This);
3459         
3460         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
3461             IBMDStreamingH264NALPacket * This,
3462             /* [out] */ void **buffer);
3463         
3464         HRESULT ( STDMETHODCALLTYPE *GetBytesWithSizePrefix )( 
3465             IBMDStreamingH264NALPacket * This,
3466             /* [out] */ void **buffer);
3467         
3468         HRESULT ( STDMETHODCALLTYPE *GetDisplayTime )( 
3469             IBMDStreamingH264NALPacket * This,
3470             /* [in] */ ULONGLONG requestedTimeScale,
3471             /* [out] */ ULONGLONG *displayTime);
3472         
3473         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( 
3474             IBMDStreamingH264NALPacket * This,
3475             /* [out] */ unsigned long *packetIndex);
3476         
3477         END_INTERFACE
3478     } IBMDStreamingH264NALPacketVtbl;
3479
3480     interface IBMDStreamingH264NALPacket
3481     {
3482         CONST_VTBL struct IBMDStreamingH264NALPacketVtbl *lpVtbl;
3483     };
3484
3485     
3486
3487 #ifdef COBJMACROS
3488
3489
3490 #define IBMDStreamingH264NALPacket_QueryInterface(This,riid,ppvObject)  \
3491     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3492
3493 #define IBMDStreamingH264NALPacket_AddRef(This) \
3494     ( (This)->lpVtbl -> AddRef(This) ) 
3495
3496 #define IBMDStreamingH264NALPacket_Release(This)        \
3497     ( (This)->lpVtbl -> Release(This) ) 
3498
3499
3500 #define IBMDStreamingH264NALPacket_GetPayloadSize(This) \
3501     ( (This)->lpVtbl -> GetPayloadSize(This) ) 
3502
3503 #define IBMDStreamingH264NALPacket_GetBytes(This,buffer)        \
3504     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
3505
3506 #define IBMDStreamingH264NALPacket_GetBytesWithSizePrefix(This,buffer)  \
3507     ( (This)->lpVtbl -> GetBytesWithSizePrefix(This,buffer) ) 
3508
3509 #define IBMDStreamingH264NALPacket_GetDisplayTime(This,requestedTimeScale,displayTime)  \
3510     ( (This)->lpVtbl -> GetDisplayTime(This,requestedTimeScale,displayTime) ) 
3511
3512 #define IBMDStreamingH264NALPacket_GetPacketIndex(This,packetIndex)     \
3513     ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) ) 
3514
3515 #endif /* COBJMACROS */
3516
3517
3518 #endif  /* C style interface */
3519
3520
3521
3522
3523 #endif  /* __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__ */
3524
3525
3526 #ifndef __IBMDStreamingAudioPacket_INTERFACE_DEFINED__
3527 #define __IBMDStreamingAudioPacket_INTERFACE_DEFINED__
3528
3529 /* interface IBMDStreamingAudioPacket */
3530 /* [helpstring][uuid][object] */ 
3531
3532
3533 EXTERN_C const IID IID_IBMDStreamingAudioPacket;
3534
3535 #if defined(__cplusplus) && !defined(CINTERFACE)
3536     
3537     MIDL_INTERFACE("D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19")
3538     IBMDStreamingAudioPacket : public IUnknown
3539     {
3540     public:
3541         virtual BMDStreamingAudioCodec STDMETHODCALLTYPE GetCodec( void) = 0;
3542         
3543         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3544         
3545         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
3546             /* [out] */ void **buffer) = 0;
3547         
3548         virtual HRESULT STDMETHODCALLTYPE GetPlayTime( 
3549             /* [in] */ ULONGLONG requestedTimeScale,
3550             /* [out] */ ULONGLONG *playTime) = 0;
3551         
3552         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( 
3553             /* [out] */ unsigned long *packetIndex) = 0;
3554         
3555     };
3556     
3557 #else   /* C style interface */
3558
3559     typedef struct IBMDStreamingAudioPacketVtbl
3560     {
3561         BEGIN_INTERFACE
3562         
3563         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3564             IBMDStreamingAudioPacket * This,
3565             /* [in] */ REFIID riid,
3566             /* [annotation][iid_is][out] */ 
3567             __RPC__deref_out  void **ppvObject);
3568         
3569         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3570             IBMDStreamingAudioPacket * This);
3571         
3572         ULONG ( STDMETHODCALLTYPE *Release )( 
3573             IBMDStreamingAudioPacket * This);
3574         
3575         BMDStreamingAudioCodec ( STDMETHODCALLTYPE *GetCodec )( 
3576             IBMDStreamingAudioPacket * This);
3577         
3578         long ( STDMETHODCALLTYPE *GetPayloadSize )( 
3579             IBMDStreamingAudioPacket * This);
3580         
3581         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
3582             IBMDStreamingAudioPacket * This,
3583             /* [out] */ void **buffer);
3584         
3585         HRESULT ( STDMETHODCALLTYPE *GetPlayTime )( 
3586             IBMDStreamingAudioPacket * This,
3587             /* [in] */ ULONGLONG requestedTimeScale,
3588             /* [out] */ ULONGLONG *playTime);
3589         
3590         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( 
3591             IBMDStreamingAudioPacket * This,
3592             /* [out] */ unsigned long *packetIndex);
3593         
3594         END_INTERFACE
3595     } IBMDStreamingAudioPacketVtbl;
3596
3597     interface IBMDStreamingAudioPacket
3598     {
3599         CONST_VTBL struct IBMDStreamingAudioPacketVtbl *lpVtbl;
3600     };
3601
3602     
3603
3604 #ifdef COBJMACROS
3605
3606
3607 #define IBMDStreamingAudioPacket_QueryInterface(This,riid,ppvObject)    \
3608     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3609
3610 #define IBMDStreamingAudioPacket_AddRef(This)   \
3611     ( (This)->lpVtbl -> AddRef(This) ) 
3612
3613 #define IBMDStreamingAudioPacket_Release(This)  \
3614     ( (This)->lpVtbl -> Release(This) ) 
3615
3616
3617 #define IBMDStreamingAudioPacket_GetCodec(This) \
3618     ( (This)->lpVtbl -> GetCodec(This) ) 
3619
3620 #define IBMDStreamingAudioPacket_GetPayloadSize(This)   \
3621     ( (This)->lpVtbl -> GetPayloadSize(This) ) 
3622
3623 #define IBMDStreamingAudioPacket_GetBytes(This,buffer)  \
3624     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
3625
3626 #define IBMDStreamingAudioPacket_GetPlayTime(This,requestedTimeScale,playTime)  \
3627     ( (This)->lpVtbl -> GetPlayTime(This,requestedTimeScale,playTime) ) 
3628
3629 #define IBMDStreamingAudioPacket_GetPacketIndex(This,packetIndex)       \
3630     ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) ) 
3631
3632 #endif /* COBJMACROS */
3633
3634
3635 #endif  /* C style interface */
3636
3637
3638
3639
3640 #endif  /* __IBMDStreamingAudioPacket_INTERFACE_DEFINED__ */
3641
3642
3643 #ifndef __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__
3644 #define __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__
3645
3646 /* interface IBMDStreamingMPEG2TSPacket */
3647 /* [helpstring][uuid][object] */ 
3648
3649
3650 EXTERN_C const IID IID_IBMDStreamingMPEG2TSPacket;
3651
3652 #if defined(__cplusplus) && !defined(CINTERFACE)
3653     
3654     MIDL_INTERFACE("91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C")
3655     IBMDStreamingMPEG2TSPacket : public IUnknown
3656     {
3657     public:
3658         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3659         
3660         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
3661             /* [out] */ void **buffer) = 0;
3662         
3663     };
3664     
3665 #else   /* C style interface */
3666
3667     typedef struct IBMDStreamingMPEG2TSPacketVtbl
3668     {
3669         BEGIN_INTERFACE
3670         
3671         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3672             IBMDStreamingMPEG2TSPacket * This,
3673             /* [in] */ REFIID riid,
3674             /* [annotation][iid_is][out] */ 
3675             __RPC__deref_out  void **ppvObject);
3676         
3677         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3678             IBMDStreamingMPEG2TSPacket * This);
3679         
3680         ULONG ( STDMETHODCALLTYPE *Release )( 
3681             IBMDStreamingMPEG2TSPacket * This);
3682         
3683         long ( STDMETHODCALLTYPE *GetPayloadSize )( 
3684             IBMDStreamingMPEG2TSPacket * This);
3685         
3686         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
3687             IBMDStreamingMPEG2TSPacket * This,
3688             /* [out] */ void **buffer);
3689         
3690         END_INTERFACE
3691     } IBMDStreamingMPEG2TSPacketVtbl;
3692
3693     interface IBMDStreamingMPEG2TSPacket
3694     {
3695         CONST_VTBL struct IBMDStreamingMPEG2TSPacketVtbl *lpVtbl;
3696     };
3697
3698     
3699
3700 #ifdef COBJMACROS
3701
3702
3703 #define IBMDStreamingMPEG2TSPacket_QueryInterface(This,riid,ppvObject)  \
3704     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3705
3706 #define IBMDStreamingMPEG2TSPacket_AddRef(This) \
3707     ( (This)->lpVtbl -> AddRef(This) ) 
3708
3709 #define IBMDStreamingMPEG2TSPacket_Release(This)        \
3710     ( (This)->lpVtbl -> Release(This) ) 
3711
3712
3713 #define IBMDStreamingMPEG2TSPacket_GetPayloadSize(This) \
3714     ( (This)->lpVtbl -> GetPayloadSize(This) ) 
3715
3716 #define IBMDStreamingMPEG2TSPacket_GetBytes(This,buffer)        \
3717     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
3718
3719 #endif /* COBJMACROS */
3720
3721
3722 #endif  /* C style interface */
3723
3724
3725
3726
3727 #endif  /* __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__ */
3728
3729
3730 #ifndef __IBMDStreamingH264NALParser_INTERFACE_DEFINED__
3731 #define __IBMDStreamingH264NALParser_INTERFACE_DEFINED__
3732
3733 /* interface IBMDStreamingH264NALParser */
3734 /* [helpstring][uuid][object] */ 
3735
3736
3737 EXTERN_C const IID IID_IBMDStreamingH264NALParser;
3738
3739 #if defined(__cplusplus) && !defined(CINTERFACE)
3740     
3741     MIDL_INTERFACE("5867F18C-5BFA-4CCC-B2A7-9DFD140417D2")
3742     IBMDStreamingH264NALParser : public IUnknown
3743     {
3744     public:
3745         virtual HRESULT STDMETHODCALLTYPE IsNALSequenceParameterSet( 
3746             /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;
3747         
3748         virtual HRESULT STDMETHODCALLTYPE IsNALPictureParameterSet( 
3749             /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;
3750         
3751         virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS( 
3752             /* [in] */ IBMDStreamingH264NALPacket *nal,
3753             /* [out] */ unsigned long *profileIdc,
3754             /* [out] */ unsigned long *profileCompatability,
3755             /* [out] */ unsigned long *levelIdc) = 0;
3756         
3757     };
3758     
3759 #else   /* C style interface */
3760
3761     typedef struct IBMDStreamingH264NALParserVtbl
3762     {
3763         BEGIN_INTERFACE
3764         
3765         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3766             IBMDStreamingH264NALParser * This,
3767             /* [in] */ REFIID riid,
3768             /* [annotation][iid_is][out] */ 
3769             __RPC__deref_out  void **ppvObject);
3770         
3771         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3772             IBMDStreamingH264NALParser * This);
3773         
3774         ULONG ( STDMETHODCALLTYPE *Release )( 
3775             IBMDStreamingH264NALParser * This);
3776         
3777         HRESULT ( STDMETHODCALLTYPE *IsNALSequenceParameterSet )( 
3778             IBMDStreamingH264NALParser * This,
3779             /* [in] */ IBMDStreamingH264NALPacket *nal);
3780         
3781         HRESULT ( STDMETHODCALLTYPE *IsNALPictureParameterSet )( 
3782             IBMDStreamingH264NALParser * This,
3783             /* [in] */ IBMDStreamingH264NALPacket *nal);
3784         
3785         HRESULT ( STDMETHODCALLTYPE *GetProfileAndLevelFromSPS )( 
3786             IBMDStreamingH264NALParser * This,
3787             /* [in] */ IBMDStreamingH264NALPacket *nal,
3788             /* [out] */ unsigned long *profileIdc,
3789             /* [out] */ unsigned long *profileCompatability,
3790             /* [out] */ unsigned long *levelIdc);
3791         
3792         END_INTERFACE
3793     } IBMDStreamingH264NALParserVtbl;
3794
3795     interface IBMDStreamingH264NALParser
3796     {
3797         CONST_VTBL struct IBMDStreamingH264NALParserVtbl *lpVtbl;
3798     };
3799
3800     
3801
3802 #ifdef COBJMACROS
3803
3804
3805 #define IBMDStreamingH264NALParser_QueryInterface(This,riid,ppvObject)  \
3806     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3807
3808 #define IBMDStreamingH264NALParser_AddRef(This) \
3809     ( (This)->lpVtbl -> AddRef(This) ) 
3810
3811 #define IBMDStreamingH264NALParser_Release(This)        \
3812     ( (This)->lpVtbl -> Release(This) ) 
3813
3814
3815 #define IBMDStreamingH264NALParser_IsNALSequenceParameterSet(This,nal)  \
3816     ( (This)->lpVtbl -> IsNALSequenceParameterSet(This,nal) ) 
3817
3818 #define IBMDStreamingH264NALParser_IsNALPictureParameterSet(This,nal)   \
3819     ( (This)->lpVtbl -> IsNALPictureParameterSet(This,nal) ) 
3820
3821 #define IBMDStreamingH264NALParser_GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) \
3822     ( (This)->lpVtbl -> GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) ) 
3823
3824 #endif /* COBJMACROS */
3825
3826
3827 #endif  /* C style interface */
3828
3829
3830
3831
3832 #endif  /* __IBMDStreamingH264NALParser_INTERFACE_DEFINED__ */
3833
3834
3835 EXTERN_C const CLSID CLSID_CBMDStreamingDiscovery;
3836
3837 #ifdef __cplusplus
3838
3839 class DECLSPEC_UUID("0CAA31F6-8A26-40B0-86A4-BF58DCCA710C")
3840 CBMDStreamingDiscovery;
3841 #endif
3842
3843 EXTERN_C const CLSID CLSID_CBMDStreamingH264NALParser;
3844
3845 #ifdef __cplusplus
3846
3847 class DECLSPEC_UUID("7753EFBD-951C-407C-97A5-23C737B73B52")
3848 CBMDStreamingH264NALParser;
3849 #endif
3850
3851 #ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
3852 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
3853
3854 /* interface IDeckLinkVideoOutputCallback */
3855 /* [helpstring][uuid][object] */ 
3856
3857
3858 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;
3859
3860 #if defined(__cplusplus) && !defined(CINTERFACE)
3861     
3862     MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")
3863     IDeckLinkVideoOutputCallback : public IUnknown
3864     {
3865     public:
3866         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( 
3867             /* [in] */ IDeckLinkVideoFrame *completedFrame,
3868             /* [in] */ BMDOutputFrameCompletionResult result) = 0;
3869         
3870         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
3871         
3872     };
3873     
3874 #else   /* C style interface */
3875
3876     typedef struct IDeckLinkVideoOutputCallbackVtbl
3877     {
3878         BEGIN_INTERFACE
3879         
3880         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3881             IDeckLinkVideoOutputCallback * This,
3882             /* [in] */ REFIID riid,
3883             /* [annotation][iid_is][out] */ 
3884             __RPC__deref_out  void **ppvObject);
3885         
3886         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3887             IDeckLinkVideoOutputCallback * This);
3888         
3889         ULONG ( STDMETHODCALLTYPE *Release )( 
3890             IDeckLinkVideoOutputCallback * This);
3891         
3892         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( 
3893             IDeckLinkVideoOutputCallback * This,
3894             /* [in] */ IDeckLinkVideoFrame *completedFrame,
3895             /* [in] */ BMDOutputFrameCompletionResult result);
3896         
3897         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( 
3898             IDeckLinkVideoOutputCallback * This);
3899         
3900         END_INTERFACE
3901     } IDeckLinkVideoOutputCallbackVtbl;
3902
3903     interface IDeckLinkVideoOutputCallback
3904     {
3905         CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;
3906     };
3907
3908     
3909
3910 #ifdef COBJMACROS
3911
3912
3913 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject)        \
3914     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3915
3916 #define IDeckLinkVideoOutputCallback_AddRef(This)       \
3917     ( (This)->lpVtbl -> AddRef(This) ) 
3918
3919 #define IDeckLinkVideoOutputCallback_Release(This)      \
3920     ( (This)->lpVtbl -> Release(This) ) 
3921
3922
3923 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result)        \
3924     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) 
3925
3926 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This)  \
3927     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) 
3928
3929 #endif /* COBJMACROS */
3930
3931
3932 #endif  /* C style interface */
3933
3934
3935
3936
3937 #endif  /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */
3938
3939
3940 #ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__
3941 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__
3942
3943 /* interface IDeckLinkInputCallback */
3944 /* [helpstring][uuid][object] */ 
3945
3946
3947 EXTERN_C const IID IID_IDeckLinkInputCallback;
3948
3949 #if defined(__cplusplus) && !defined(CINTERFACE)
3950     
3951     MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")
3952     IDeckLinkInputCallback : public IUnknown
3953     {
3954     public:
3955         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( 
3956             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
3957             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
3958             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
3959         
3960         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( 
3961             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
3962             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
3963         
3964     };
3965     
3966 #else   /* C style interface */
3967
3968     typedef struct IDeckLinkInputCallbackVtbl
3969     {
3970         BEGIN_INTERFACE
3971         
3972         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3973             IDeckLinkInputCallback * This,
3974             /* [in] */ REFIID riid,
3975             /* [annotation][iid_is][out] */ 
3976             __RPC__deref_out  void **ppvObject);
3977         
3978         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3979             IDeckLinkInputCallback * This);
3980         
3981         ULONG ( STDMETHODCALLTYPE *Release )( 
3982             IDeckLinkInputCallback * This);
3983         
3984         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( 
3985             IDeckLinkInputCallback * This,
3986             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
3987             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
3988             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
3989         
3990         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( 
3991             IDeckLinkInputCallback * This,
3992             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
3993             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
3994         
3995         END_INTERFACE
3996     } IDeckLinkInputCallbackVtbl;
3997
3998     interface IDeckLinkInputCallback
3999     {
4000         CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;
4001     };
4002
4003     
4004
4005 #ifdef COBJMACROS
4006
4007
4008 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject)      \
4009     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4010
4011 #define IDeckLinkInputCallback_AddRef(This)     \
4012     ( (This)->lpVtbl -> AddRef(This) ) 
4013
4014 #define IDeckLinkInputCallback_Release(This)    \
4015     ( (This)->lpVtbl -> Release(This) ) 
4016
4017
4018 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)      \
4019     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) 
4020
4021 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket)      \
4022     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) 
4023
4024 #endif /* COBJMACROS */
4025
4026
4027 #endif  /* C style interface */
4028
4029
4030
4031
4032 #endif  /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */
4033
4034
4035 #ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
4036 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
4037
4038 /* interface IDeckLinkMemoryAllocator */
4039 /* [helpstring][local][uuid][object] */ 
4040
4041
4042 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
4043
4044 #if defined(__cplusplus) && !defined(CINTERFACE)
4045     
4046     MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")
4047     IDeckLinkMemoryAllocator : public IUnknown
4048     {
4049     public:
4050         virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( 
4051             /* [in] */ unsigned long bufferSize,
4052             /* [out] */ void **allocatedBuffer) = 0;
4053         
4054         virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 
4055             /* [in] */ void *buffer) = 0;
4056         
4057         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
4058         
4059         virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;
4060         
4061     };
4062     
4063 #else   /* C style interface */
4064
4065     typedef struct IDeckLinkMemoryAllocatorVtbl
4066     {
4067         BEGIN_INTERFACE
4068         
4069         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4070             IDeckLinkMemoryAllocator * This,
4071             /* [in] */ REFIID riid,
4072             /* [annotation][iid_is][out] */ 
4073             __RPC__deref_out  void **ppvObject);
4074         
4075         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4076             IDeckLinkMemoryAllocator * This);
4077         
4078         ULONG ( STDMETHODCALLTYPE *Release )( 
4079             IDeckLinkMemoryAllocator * This);
4080         
4081         HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )( 
4082             IDeckLinkMemoryAllocator * This,
4083             /* [in] */ unsigned long bufferSize,
4084             /* [out] */ void **allocatedBuffer);
4085         
4086         HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( 
4087             IDeckLinkMemoryAllocator * This,
4088             /* [in] */ void *buffer);
4089         
4090         HRESULT ( STDMETHODCALLTYPE *Commit )( 
4091             IDeckLinkMemoryAllocator * This);
4092         
4093         HRESULT ( STDMETHODCALLTYPE *Decommit )( 
4094             IDeckLinkMemoryAllocator * This);
4095         
4096         END_INTERFACE
4097     } IDeckLinkMemoryAllocatorVtbl;
4098
4099     interface IDeckLinkMemoryAllocator
4100     {
4101         CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;
4102     };
4103
4104     
4105
4106 #ifdef COBJMACROS
4107
4108
4109 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)    \
4110     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4111
4112 #define IDeckLinkMemoryAllocator_AddRef(This)   \
4113     ( (This)->lpVtbl -> AddRef(This) ) 
4114
4115 #define IDeckLinkMemoryAllocator_Release(This)  \
4116     ( (This)->lpVtbl -> Release(This) ) 
4117
4118
4119 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer)        \
4120     ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) ) 
4121
4122 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer)     \
4123     ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) ) 
4124
4125 #define IDeckLinkMemoryAllocator_Commit(This)   \
4126     ( (This)->lpVtbl -> Commit(This) ) 
4127
4128 #define IDeckLinkMemoryAllocator_Decommit(This) \
4129     ( (This)->lpVtbl -> Decommit(This) ) 
4130
4131 #endif /* COBJMACROS */
4132
4133
4134 #endif  /* C style interface */
4135
4136
4137
4138
4139 #endif  /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */
4140
4141
4142 #ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
4143 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
4144
4145 /* interface IDeckLinkAudioOutputCallback */
4146 /* [helpstring][local][uuid][object] */ 
4147
4148
4149 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;
4150
4151 #if defined(__cplusplus) && !defined(CINTERFACE)
4152     
4153     MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")
4154     IDeckLinkAudioOutputCallback : public IUnknown
4155     {
4156     public:
4157         virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( 
4158             /* [in] */ BOOL preroll) = 0;
4159         
4160     };
4161     
4162 #else   /* C style interface */
4163
4164     typedef struct IDeckLinkAudioOutputCallbackVtbl
4165     {
4166         BEGIN_INTERFACE
4167         
4168         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4169             IDeckLinkAudioOutputCallback * This,
4170             /* [in] */ REFIID riid,
4171             /* [annotation][iid_is][out] */ 
4172             __RPC__deref_out  void **ppvObject);
4173         
4174         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4175             IDeckLinkAudioOutputCallback * This);
4176         
4177         ULONG ( STDMETHODCALLTYPE *Release )( 
4178             IDeckLinkAudioOutputCallback * This);
4179         
4180         HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )( 
4181             IDeckLinkAudioOutputCallback * This,
4182             /* [in] */ BOOL preroll);
4183         
4184         END_INTERFACE
4185     } IDeckLinkAudioOutputCallbackVtbl;
4186
4187     interface IDeckLinkAudioOutputCallback
4188     {
4189         CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;
4190     };
4191
4192     
4193
4194 #ifdef COBJMACROS
4195
4196
4197 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject)        \
4198     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4199
4200 #define IDeckLinkAudioOutputCallback_AddRef(This)       \
4201     ( (This)->lpVtbl -> AddRef(This) ) 
4202
4203 #define IDeckLinkAudioOutputCallback_Release(This)      \
4204     ( (This)->lpVtbl -> Release(This) ) 
4205
4206
4207 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll)   \
4208     ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) ) 
4209
4210 #endif /* COBJMACROS */
4211
4212
4213 #endif  /* C style interface */
4214
4215
4216
4217
4218 #endif  /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */
4219
4220
4221 #ifndef __IDeckLinkIterator_INTERFACE_DEFINED__
4222 #define __IDeckLinkIterator_INTERFACE_DEFINED__
4223
4224 /* interface IDeckLinkIterator */
4225 /* [helpstring][uuid][object] */ 
4226
4227
4228 EXTERN_C const IID IID_IDeckLinkIterator;
4229
4230 #if defined(__cplusplus) && !defined(CINTERFACE)
4231     
4232     MIDL_INTERFACE("50FB36CD-3063-4B73-BDBB-958087F2D8BA")
4233     IDeckLinkIterator : public IUnknown
4234     {
4235     public:
4236         virtual HRESULT STDMETHODCALLTYPE Next( 
4237             /* [out] */ IDeckLink **deckLinkInstance) = 0;
4238         
4239     };
4240     
4241 #else   /* C style interface */
4242
4243     typedef struct IDeckLinkIteratorVtbl
4244     {
4245         BEGIN_INTERFACE
4246         
4247         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4248             IDeckLinkIterator * This,
4249             /* [in] */ REFIID riid,
4250             /* [annotation][iid_is][out] */ 
4251             __RPC__deref_out  void **ppvObject);
4252         
4253         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4254             IDeckLinkIterator * This);
4255         
4256         ULONG ( STDMETHODCALLTYPE *Release )( 
4257             IDeckLinkIterator * This);
4258         
4259         HRESULT ( STDMETHODCALLTYPE *Next )( 
4260             IDeckLinkIterator * This,
4261             /* [out] */ IDeckLink **deckLinkInstance);
4262         
4263         END_INTERFACE
4264     } IDeckLinkIteratorVtbl;
4265
4266     interface IDeckLinkIterator
4267     {
4268         CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;
4269     };
4270
4271     
4272
4273 #ifdef COBJMACROS
4274
4275
4276 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject)   \
4277     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4278
4279 #define IDeckLinkIterator_AddRef(This)  \
4280     ( (This)->lpVtbl -> AddRef(This) ) 
4281
4282 #define IDeckLinkIterator_Release(This) \
4283     ( (This)->lpVtbl -> Release(This) ) 
4284
4285
4286 #define IDeckLinkIterator_Next(This,deckLinkInstance)   \
4287     ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) 
4288
4289 #endif /* COBJMACROS */
4290
4291
4292 #endif  /* C style interface */
4293
4294
4295
4296
4297 #endif  /* __IDeckLinkIterator_INTERFACE_DEFINED__ */
4298
4299
4300 #ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__
4301 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__
4302
4303 /* interface IDeckLinkAPIInformation */
4304 /* [helpstring][uuid][object] */ 
4305
4306
4307 EXTERN_C const IID IID_IDeckLinkAPIInformation;
4308
4309 #if defined(__cplusplus) && !defined(CINTERFACE)
4310     
4311     MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")
4312     IDeckLinkAPIInformation : public IUnknown
4313     {
4314     public:
4315         virtual HRESULT STDMETHODCALLTYPE GetFlag( 
4316             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4317             /* [out] */ BOOL *value) = 0;
4318         
4319         virtual HRESULT STDMETHODCALLTYPE GetInt( 
4320             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4321             /* [out] */ LONGLONG *value) = 0;
4322         
4323         virtual HRESULT STDMETHODCALLTYPE GetFloat( 
4324             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4325             /* [out] */ double *value) = 0;
4326         
4327         virtual HRESULT STDMETHODCALLTYPE GetString( 
4328             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4329             /* [out] */ BSTR *value) = 0;
4330         
4331     };
4332     
4333 #else   /* C style interface */
4334
4335     typedef struct IDeckLinkAPIInformationVtbl
4336     {
4337         BEGIN_INTERFACE
4338         
4339         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4340             IDeckLinkAPIInformation * This,
4341             /* [in] */ REFIID riid,
4342             /* [annotation][iid_is][out] */ 
4343             __RPC__deref_out  void **ppvObject);
4344         
4345         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4346             IDeckLinkAPIInformation * This);
4347         
4348         ULONG ( STDMETHODCALLTYPE *Release )( 
4349             IDeckLinkAPIInformation * This);
4350         
4351         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
4352             IDeckLinkAPIInformation * This,
4353             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4354             /* [out] */ BOOL *value);
4355         
4356         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
4357             IDeckLinkAPIInformation * This,
4358             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4359             /* [out] */ LONGLONG *value);
4360         
4361         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
4362             IDeckLinkAPIInformation * This,
4363             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4364             /* [out] */ double *value);
4365         
4366         HRESULT ( STDMETHODCALLTYPE *GetString )( 
4367             IDeckLinkAPIInformation * This,
4368             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4369             /* [out] */ BSTR *value);
4370         
4371         END_INTERFACE
4372     } IDeckLinkAPIInformationVtbl;
4373
4374     interface IDeckLinkAPIInformation
4375     {
4376         CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;
4377     };
4378
4379     
4380
4381 #ifdef COBJMACROS
4382
4383
4384 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject)     \
4385     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4386
4387 #define IDeckLinkAPIInformation_AddRef(This)    \
4388     ( (This)->lpVtbl -> AddRef(This) ) 
4389
4390 #define IDeckLinkAPIInformation_Release(This)   \
4391     ( (This)->lpVtbl -> Release(This) ) 
4392
4393
4394 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value)       \
4395     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
4396
4397 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value)        \
4398     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
4399
4400 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value)      \
4401     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
4402
4403 #define IDeckLinkAPIInformation_GetString(This,cfgID,value)     \
4404     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
4405
4406 #endif /* COBJMACROS */
4407
4408
4409 #endif  /* C style interface */
4410
4411
4412
4413
4414 #endif  /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */
4415
4416
4417 #ifndef __IDeckLinkOutput_INTERFACE_DEFINED__
4418 #define __IDeckLinkOutput_INTERFACE_DEFINED__
4419
4420 /* interface IDeckLinkOutput */
4421 /* [helpstring][local][uuid][object] */ 
4422
4423
4424 EXTERN_C const IID IID_IDeckLinkOutput;
4425
4426 #if defined(__cplusplus) && !defined(CINTERFACE)
4427     
4428     MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")
4429     IDeckLinkOutput : public IUnknown
4430     {
4431     public:
4432         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
4433             /* [in] */ BMDDisplayMode displayMode,
4434             /* [in] */ BMDPixelFormat pixelFormat,
4435             /* [in] */ BMDVideoOutputFlags flags,
4436             /* [out] */ BMDDisplayModeSupport *result,
4437             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
4438         
4439         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
4440             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
4441         
4442         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
4443             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
4444         
4445         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( 
4446             /* [in] */ BMDDisplayMode displayMode,
4447             /* [in] */ BMDVideoOutputFlags flags) = 0;
4448         
4449         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
4450         
4451         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( 
4452             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
4453         
4454         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( 
4455             /* [in] */ long width,
4456             /* [in] */ long height,
4457             /* [in] */ long rowBytes,
4458             /* [in] */ BMDPixelFormat pixelFormat,
4459             /* [in] */ BMDFrameFlags flags,
4460             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;
4461         
4462         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( 
4463             /* [in] */ BMDPixelFormat pixelFormat,
4464             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
4465         
4466         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( 
4467             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
4468         
4469         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( 
4470             /* [in] */ IDeckLinkVideoFrame *theFrame,
4471             /* [in] */ BMDTimeValue displayTime,
4472             /* [in] */ BMDTimeValue displayDuration,
4473             /* [in] */ BMDTimeScale timeScale) = 0;
4474         
4475         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( 
4476             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
4477         
4478         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( 
4479             /* [out] */ unsigned long *bufferedFrameCount) = 0;
4480         
4481         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( 
4482             /* [in] */ BMDAudioSampleRate sampleRate,
4483             /* [in] */ BMDAudioSampleType sampleType,
4484             /* [in] */ unsigned long channelCount,
4485             /* [in] */ BMDAudioOutputStreamType streamType) = 0;
4486         
4487         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
4488         
4489         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( 
4490             /* [in] */ void *buffer,
4491             /* [in] */ unsigned long sampleFrameCount,
4492             /* [out] */ unsigned long *sampleFramesWritten) = 0;
4493         
4494         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
4495         
4496         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
4497         
4498         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( 
4499             /* [in] */ void *buffer,
4500             /* [in] */ unsigned long sampleFrameCount,
4501             /* [in] */ BMDTimeValue streamTime,
4502             /* [in] */ BMDTimeScale timeScale,
4503             /* [out] */ unsigned long *sampleFramesWritten) = 0;
4504         
4505         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( 
4506             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
4507         
4508         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
4509         
4510         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( 
4511             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
4512         
4513         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( 
4514             /* [in] */ BMDTimeValue playbackStartTime,
4515             /* [in] */ BMDTimeScale timeScale,
4516             /* [in] */ double playbackSpeed) = 0;
4517         
4518         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( 
4519             /* [in] */ BMDTimeValue stopPlaybackAtTime,
4520             /* [out] */ BMDTimeValue *actualStopTime,
4521             /* [in] */ BMDTimeScale timeScale) = 0;
4522         
4523         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( 
4524             /* [out] */ BOOL *active) = 0;
4525         
4526         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( 
4527             /* [in] */ BMDTimeScale desiredTimeScale,
4528             /* [out] */ BMDTimeValue *streamTime,
4529             /* [out] */ double *playbackSpeed) = 0;
4530         
4531         virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( 
4532             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;
4533         
4534         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
4535             /* [in] */ BMDTimeScale desiredTimeScale,
4536             /* [out] */ BMDTimeValue *hardwareTime,
4537             /* [out] */ BMDTimeValue *timeInFrame,
4538             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
4539         
4540     };
4541     
4542 #else   /* C style interface */
4543
4544     typedef struct IDeckLinkOutputVtbl
4545     {
4546         BEGIN_INTERFACE
4547         
4548         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4549             IDeckLinkOutput * This,
4550             /* [in] */ REFIID riid,
4551             /* [annotation][iid_is][out] */ 
4552             __RPC__deref_out  void **ppvObject);
4553         
4554         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4555             IDeckLinkOutput * This);
4556         
4557         ULONG ( STDMETHODCALLTYPE *Release )( 
4558             IDeckLinkOutput * This);
4559         
4560         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
4561             IDeckLinkOutput * This,
4562             /* [in] */ BMDDisplayMode displayMode,
4563             /* [in] */ BMDPixelFormat pixelFormat,
4564             /* [in] */ BMDVideoOutputFlags flags,
4565             /* [out] */ BMDDisplayModeSupport *result,
4566             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
4567         
4568         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
4569             IDeckLinkOutput * This,
4570             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
4571         
4572         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
4573             IDeckLinkOutput * This,
4574             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
4575         
4576         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( 
4577             IDeckLinkOutput * This,
4578             /* [in] */ BMDDisplayMode displayMode,
4579             /* [in] */ BMDVideoOutputFlags flags);
4580         
4581         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( 
4582             IDeckLinkOutput * This);
4583         
4584         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( 
4585             IDeckLinkOutput * This,
4586             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
4587         
4588         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( 
4589             IDeckLinkOutput * This,
4590             /* [in] */ long width,
4591             /* [in] */ long height,
4592             /* [in] */ long rowBytes,
4593             /* [in] */ BMDPixelFormat pixelFormat,
4594             /* [in] */ BMDFrameFlags flags,
4595             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);
4596         
4597         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( 
4598             IDeckLinkOutput * This,
4599             /* [in] */ BMDPixelFormat pixelFormat,
4600             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
4601         
4602         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( 
4603             IDeckLinkOutput * This,
4604             /* [in] */ IDeckLinkVideoFrame *theFrame);
4605         
4606         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( 
4607             IDeckLinkOutput * This,
4608             /* [in] */ IDeckLinkVideoFrame *theFrame,
4609             /* [in] */ BMDTimeValue displayTime,
4610             /* [in] */ BMDTimeValue displayDuration,
4611             /* [in] */ BMDTimeScale timeScale);
4612         
4613         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( 
4614             IDeckLinkOutput * This,
4615             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
4616         
4617         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( 
4618             IDeckLinkOutput * This,
4619             /* [out] */ unsigned long *bufferedFrameCount);
4620         
4621         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( 
4622             IDeckLinkOutput * This,
4623             /* [in] */ BMDAudioSampleRate sampleRate,
4624             /* [in] */ BMDAudioSampleType sampleType,
4625             /* [in] */ unsigned long channelCount,
4626             /* [in] */ BMDAudioOutputStreamType streamType);
4627         
4628         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( 
4629             IDeckLinkOutput * This);
4630         
4631         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( 
4632             IDeckLinkOutput * This,
4633             /* [in] */ void *buffer,
4634             /* [in] */ unsigned long sampleFrameCount,
4635             /* [out] */ unsigned long *sampleFramesWritten);
4636         
4637         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( 
4638             IDeckLinkOutput * This);
4639         
4640         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( 
4641             IDeckLinkOutput * This);
4642         
4643         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( 
4644             IDeckLinkOutput * This,
4645             /* [in] */ void *buffer,
4646             /* [in] */ unsigned long sampleFrameCount,
4647             /* [in] */ BMDTimeValue streamTime,
4648             /* [in] */ BMDTimeScale timeScale,
4649             /* [out] */ unsigned long *sampleFramesWritten);
4650         
4651         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( 
4652             IDeckLinkOutput * This,
4653             /* [out] */ unsigned long *bufferedSampleFrameCount);
4654         
4655         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( 
4656             IDeckLinkOutput * This);
4657         
4658         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( 
4659             IDeckLinkOutput * This,
4660             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
4661         
4662         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( 
4663             IDeckLinkOutput * This,
4664             /* [in] */ BMDTimeValue playbackStartTime,
4665             /* [in] */ BMDTimeScale timeScale,
4666             /* [in] */ double playbackSpeed);
4667         
4668         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( 
4669             IDeckLinkOutput * This,
4670             /* [in] */ BMDTimeValue stopPlaybackAtTime,
4671             /* [out] */ BMDTimeValue *actualStopTime,
4672             /* [in] */ BMDTimeScale timeScale);
4673         
4674         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( 
4675             IDeckLinkOutput * This,
4676             /* [out] */ BOOL *active);
4677         
4678         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( 
4679             IDeckLinkOutput * This,
4680             /* [in] */ BMDTimeScale desiredTimeScale,
4681             /* [out] */ BMDTimeValue *streamTime,
4682             /* [out] */ double *playbackSpeed);
4683         
4684         HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( 
4685             IDeckLinkOutput * This,
4686             /* [out] */ BMDReferenceStatus *referenceStatus);
4687         
4688         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
4689             IDeckLinkOutput * This,
4690             /* [in] */ BMDTimeScale desiredTimeScale,
4691             /* [out] */ BMDTimeValue *hardwareTime,
4692             /* [out] */ BMDTimeValue *timeInFrame,
4693             /* [out] */ BMDTimeValue *ticksPerFrame);
4694         
4695         END_INTERFACE
4696     } IDeckLinkOutputVtbl;
4697
4698     interface IDeckLinkOutput
4699     {
4700         CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;
4701     };
4702
4703     
4704
4705 #ifdef COBJMACROS
4706
4707
4708 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject)     \
4709     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4710
4711 #define IDeckLinkOutput_AddRef(This)    \
4712     ( (This)->lpVtbl -> AddRef(This) ) 
4713
4714 #define IDeckLinkOutput_Release(This)   \
4715     ( (This)->lpVtbl -> Release(This) ) 
4716
4717
4718 #define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)       \
4719     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) 
4720
4721 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator)   \
4722     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
4723
4724 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback)  \
4725     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
4726
4727 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags)       \
4728     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) 
4729
4730 #define IDeckLinkOutput_DisableVideoOutput(This)        \
4731     ( (This)->lpVtbl -> DisableVideoOutput(This) ) 
4732
4733 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator)   \
4734     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) 
4735
4736 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
4737     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) 
4738
4739 #define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer) \
4740     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) 
4741
4742 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame)    \
4743     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) 
4744
4745 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
4746     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) 
4747
4748 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback)   \
4749     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) 
4750
4751 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount)     \
4752     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) 
4753
4754 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)   \
4755     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) 
4756
4757 #define IDeckLinkOutput_DisableAudioOutput(This)        \
4758     ( (This)->lpVtbl -> DisableAudioOutput(This) ) 
4759
4760 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
4761     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) 
4762
4763 #define IDeckLinkOutput_BeginAudioPreroll(This) \
4764     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) 
4765
4766 #define IDeckLinkOutput_EndAudioPreroll(This)   \
4767     ( (This)->lpVtbl -> EndAudioPreroll(This) ) 
4768
4769 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)     \
4770     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) 
4771
4772 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
4773     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) 
4774
4775 #define IDeckLinkOutput_FlushBufferedAudioSamples(This) \
4776     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) 
4777
4778 #define IDeckLinkOutput_SetAudioCallback(This,theCallback)      \
4779     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) 
4780
4781 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)  \
4782     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) 
4783
4784 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
4785     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) 
4786
4787 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) \
4788     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) 
4789
4790 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)  \
4791     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) 
4792
4793 #define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus)        \
4794     ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) 
4795
4796 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
4797     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) 
4798
4799 #endif /* COBJMACROS */
4800
4801
4802 #endif  /* C style interface */
4803
4804
4805
4806
4807 #endif  /* __IDeckLinkOutput_INTERFACE_DEFINED__ */
4808
4809
4810 #ifndef __IDeckLinkInput_INTERFACE_DEFINED__
4811 #define __IDeckLinkInput_INTERFACE_DEFINED__
4812
4813 /* interface IDeckLinkInput */
4814 /* [helpstring][uuid][object] */ 
4815
4816
4817 EXTERN_C const IID IID_IDeckLinkInput;
4818
4819 #if defined(__cplusplus) && !defined(CINTERFACE)
4820     
4821     MIDL_INTERFACE("AF22762B-DFAC-4846-AA79-FA8883560995")
4822     IDeckLinkInput : public IUnknown
4823     {
4824     public:
4825         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
4826             /* [in] */ BMDDisplayMode displayMode,
4827             /* [in] */ BMDPixelFormat pixelFormat,
4828             /* [in] */ BMDVideoInputFlags flags,
4829             /* [out] */ BMDDisplayModeSupport *result,
4830             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
4831         
4832         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
4833             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
4834         
4835         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
4836             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
4837         
4838         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( 
4839             /* [in] */ BMDDisplayMode displayMode,
4840             /* [in] */ BMDPixelFormat pixelFormat,
4841             /* [in] */ BMDVideoInputFlags flags) = 0;
4842         
4843         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
4844         
4845         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( 
4846             /* [out] */ unsigned long *availableFrameCount) = 0;
4847         
4848         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( 
4849             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
4850         
4851         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( 
4852             /* [in] */ BMDAudioSampleRate sampleRate,
4853             /* [in] */ BMDAudioSampleType sampleType,
4854             /* [in] */ unsigned long channelCount) = 0;
4855         
4856         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
4857         
4858         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( 
4859             /* [out] */ unsigned long *availableSampleFrameCount) = 0;
4860         
4861         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
4862         
4863         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
4864         
4865         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
4866         
4867         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
4868         
4869         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
4870             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
4871         
4872         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
4873             /* [in] */ BMDTimeScale desiredTimeScale,
4874             /* [out] */ BMDTimeValue *hardwareTime,
4875             /* [out] */ BMDTimeValue *timeInFrame,
4876             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
4877         
4878     };
4879     
4880 #else   /* C style interface */
4881
4882     typedef struct IDeckLinkInputVtbl
4883     {
4884         BEGIN_INTERFACE
4885         
4886         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4887             IDeckLinkInput * This,
4888             /* [in] */ REFIID riid,
4889             /* [annotation][iid_is][out] */ 
4890             __RPC__deref_out  void **ppvObject);
4891         
4892         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4893             IDeckLinkInput * This);
4894         
4895         ULONG ( STDMETHODCALLTYPE *Release )( 
4896             IDeckLinkInput * This);
4897         
4898         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
4899             IDeckLinkInput * This,
4900             /* [in] */ BMDDisplayMode displayMode,
4901             /* [in] */ BMDPixelFormat pixelFormat,
4902             /* [in] */ BMDVideoInputFlags flags,
4903             /* [out] */ BMDDisplayModeSupport *result,
4904             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
4905         
4906         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
4907             IDeckLinkInput * This,
4908             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
4909         
4910         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
4911             IDeckLinkInput * This,
4912             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
4913         
4914         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( 
4915             IDeckLinkInput * This,
4916             /* [in] */ BMDDisplayMode displayMode,
4917             /* [in] */ BMDPixelFormat pixelFormat,
4918             /* [in] */ BMDVideoInputFlags flags);
4919         
4920         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( 
4921             IDeckLinkInput * This);
4922         
4923         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( 
4924             IDeckLinkInput * This,
4925             /* [out] */ unsigned long *availableFrameCount);
4926         
4927         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )( 
4928             IDeckLinkInput * This,
4929             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
4930         
4931         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( 
4932             IDeckLinkInput * This,
4933             /* [in] */ BMDAudioSampleRate sampleRate,
4934             /* [in] */ BMDAudioSampleType sampleType,
4935             /* [in] */ unsigned long channelCount);
4936         
4937         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( 
4938             IDeckLinkInput * This);
4939         
4940         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( 
4941             IDeckLinkInput * This,
4942             /* [out] */ unsigned long *availableSampleFrameCount);
4943         
4944         HRESULT ( STDMETHODCALLTYPE *StartStreams )( 
4945             IDeckLinkInput * This);
4946         
4947         HRESULT ( STDMETHODCALLTYPE *StopStreams )( 
4948             IDeckLinkInput * This);
4949         
4950         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( 
4951             IDeckLinkInput * This);
4952         
4953         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( 
4954             IDeckLinkInput * This);
4955         
4956         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
4957             IDeckLinkInput * This,
4958             /* [in] */ IDeckLinkInputCallback *theCallback);
4959         
4960         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
4961             IDeckLinkInput * This,
4962             /* [in] */ BMDTimeScale desiredTimeScale,
4963             /* [out] */ BMDTimeValue *hardwareTime,
4964             /* [out] */ BMDTimeValue *timeInFrame,
4965             /* [out] */ BMDTimeValue *ticksPerFrame);
4966         
4967         END_INTERFACE
4968     } IDeckLinkInputVtbl;
4969
4970     interface IDeckLinkInput
4971     {
4972         CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;
4973     };
4974
4975     
4976
4977 #ifdef COBJMACROS
4978
4979
4980 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject)      \
4981     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4982
4983 #define IDeckLinkInput_AddRef(This)     \
4984     ( (This)->lpVtbl -> AddRef(This) ) 
4985
4986 #define IDeckLinkInput_Release(This)    \
4987     ( (This)->lpVtbl -> Release(This) ) 
4988
4989
4990 #define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)        \
4991     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) 
4992
4993 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator)    \
4994     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
4995
4996 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback)   \
4997     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
4998
4999 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags)     \
5000     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) 
5001
5002 #define IDeckLinkInput_DisableVideoInput(This)  \
5003     ( (This)->lpVtbl -> DisableVideoInput(This) ) 
5004
5005 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount)    \
5006     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) 
5007
5008 #define IDeckLinkInput_SetVideoInputFrameMemoryAllocator(This,theAllocator)     \
5009     ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) ) 
5010
5011 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount)        \
5012     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) 
5013
5014 #define IDeckLinkInput_DisableAudioInput(This)  \
5015     ( (This)->lpVtbl -> DisableAudioInput(This) ) 
5016
5017 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)        \
5018     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) 
5019
5020 #define IDeckLinkInput_StartStreams(This)       \
5021     ( (This)->lpVtbl -> StartStreams(This) ) 
5022
5023 #define IDeckLinkInput_StopStreams(This)        \
5024     ( (This)->lpVtbl -> StopStreams(This) ) 
5025
5026 #define IDeckLinkInput_PauseStreams(This)       \
5027     ( (This)->lpVtbl -> PauseStreams(This) ) 
5028
5029 #define IDeckLinkInput_FlushStreams(This)       \
5030     ( (This)->lpVtbl -> FlushStreams(This) ) 
5031
5032 #define IDeckLinkInput_SetCallback(This,theCallback)    \
5033     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
5034
5035 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \
5036     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) 
5037
5038 #endif /* COBJMACROS */
5039
5040
5041 #endif  /* C style interface */
5042
5043
5044
5045
5046 #endif  /* __IDeckLinkInput_INTERFACE_DEFINED__ */
5047
5048
5049 #ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__
5050 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__
5051
5052 /* interface IDeckLinkVideoFrame */
5053 /* [helpstring][local][uuid][object] */ 
5054
5055
5056 EXTERN_C const IID IID_IDeckLinkVideoFrame;
5057
5058 #if defined(__cplusplus) && !defined(CINTERFACE)
5059     
5060     MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")
5061     IDeckLinkVideoFrame : public IUnknown
5062     {
5063     public:
5064         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
5065         
5066         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
5067         
5068         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
5069         
5070         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
5071         
5072         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
5073         
5074         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
5075             /* [out] */ void **buffer) = 0;
5076         
5077         virtual HRESULT STDMETHODCALLTYPE GetTimecode( 
5078             /* [in] */ BMDTimecodeFormat format,
5079             /* [out] */ IDeckLinkTimecode **timecode) = 0;
5080         
5081         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( 
5082             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
5083         
5084     };
5085     
5086 #else   /* C style interface */
5087
5088     typedef struct IDeckLinkVideoFrameVtbl
5089     {
5090         BEGIN_INTERFACE
5091         
5092         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5093             IDeckLinkVideoFrame * This,
5094             /* [in] */ REFIID riid,
5095             /* [annotation][iid_is][out] */ 
5096             __RPC__deref_out  void **ppvObject);
5097         
5098         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5099             IDeckLinkVideoFrame * This);
5100         
5101         ULONG ( STDMETHODCALLTYPE *Release )( 
5102             IDeckLinkVideoFrame * This);
5103         
5104         long ( STDMETHODCALLTYPE *GetWidth )( 
5105             IDeckLinkVideoFrame * This);
5106         
5107         long ( STDMETHODCALLTYPE *GetHeight )( 
5108             IDeckLinkVideoFrame * This);
5109         
5110         long ( STDMETHODCALLTYPE *GetRowBytes )( 
5111             IDeckLinkVideoFrame * This);
5112         
5113         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
5114             IDeckLinkVideoFrame * This);
5115         
5116         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
5117             IDeckLinkVideoFrame * This);
5118         
5119         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
5120             IDeckLinkVideoFrame * This,
5121             /* [out] */ void **buffer);
5122         
5123         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
5124             IDeckLinkVideoFrame * This,
5125             /* [in] */ BMDTimecodeFormat format,
5126             /* [out] */ IDeckLinkTimecode **timecode);
5127         
5128         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
5129             IDeckLinkVideoFrame * This,
5130             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5131         
5132         END_INTERFACE
5133     } IDeckLinkVideoFrameVtbl;
5134
5135     interface IDeckLinkVideoFrame
5136     {
5137         CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;
5138     };
5139
5140     
5141
5142 #ifdef COBJMACROS
5143
5144
5145 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) \
5146     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5147
5148 #define IDeckLinkVideoFrame_AddRef(This)        \
5149     ( (This)->lpVtbl -> AddRef(This) ) 
5150
5151 #define IDeckLinkVideoFrame_Release(This)       \
5152     ( (This)->lpVtbl -> Release(This) ) 
5153
5154
5155 #define IDeckLinkVideoFrame_GetWidth(This)      \
5156     ( (This)->lpVtbl -> GetWidth(This) ) 
5157
5158 #define IDeckLinkVideoFrame_GetHeight(This)     \
5159     ( (This)->lpVtbl -> GetHeight(This) ) 
5160
5161 #define IDeckLinkVideoFrame_GetRowBytes(This)   \
5162     ( (This)->lpVtbl -> GetRowBytes(This) ) 
5163
5164 #define IDeckLinkVideoFrame_GetPixelFormat(This)        \
5165     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
5166
5167 #define IDeckLinkVideoFrame_GetFlags(This)      \
5168     ( (This)->lpVtbl -> GetFlags(This) ) 
5169
5170 #define IDeckLinkVideoFrame_GetBytes(This,buffer)       \
5171     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
5172
5173 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)   \
5174     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
5175
5176 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)    \
5177     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
5178
5179 #endif /* COBJMACROS */
5180
5181
5182 #endif  /* C style interface */
5183
5184
5185
5186
5187 #endif  /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */
5188
5189
5190 #ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
5191 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
5192
5193 /* interface IDeckLinkMutableVideoFrame */
5194 /* [helpstring][local][uuid][object] */ 
5195
5196
5197 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
5198
5199 #if defined(__cplusplus) && !defined(CINTERFACE)
5200     
5201     MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")
5202     IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame
5203     {
5204     public:
5205         virtual HRESULT STDMETHODCALLTYPE SetFlags( 
5206             /* [in] */ BMDFrameFlags newFlags) = 0;
5207         
5208         virtual HRESULT STDMETHODCALLTYPE SetTimecode( 
5209             /* [in] */ BMDTimecodeFormat format,
5210             /* [in] */ IDeckLinkTimecode *timecode) = 0;
5211         
5212         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( 
5213             /* [in] */ BMDTimecodeFormat format,
5214             /* [in] */ unsigned char hours,
5215             /* [in] */ unsigned char minutes,
5216             /* [in] */ unsigned char seconds,
5217             /* [in] */ unsigned char frames,
5218             /* [in] */ BMDTimecodeFlags flags) = 0;
5219         
5220         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( 
5221             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
5222         
5223         virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits( 
5224             /* [in] */ BMDTimecodeFormat format,
5225             /* [in] */ BMDTimecodeUserBits userBits) = 0;
5226         
5227     };
5228     
5229 #else   /* C style interface */
5230
5231     typedef struct IDeckLinkMutableVideoFrameVtbl
5232     {
5233         BEGIN_INTERFACE
5234         
5235         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5236             IDeckLinkMutableVideoFrame * This,
5237             /* [in] */ REFIID riid,
5238             /* [annotation][iid_is][out] */ 
5239             __RPC__deref_out  void **ppvObject);
5240         
5241         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5242             IDeckLinkMutableVideoFrame * This);
5243         
5244         ULONG ( STDMETHODCALLTYPE *Release )( 
5245             IDeckLinkMutableVideoFrame * This);
5246         
5247         long ( STDMETHODCALLTYPE *GetWidth )( 
5248             IDeckLinkMutableVideoFrame * This);
5249         
5250         long ( STDMETHODCALLTYPE *GetHeight )( 
5251             IDeckLinkMutableVideoFrame * This);
5252         
5253         long ( STDMETHODCALLTYPE *GetRowBytes )( 
5254             IDeckLinkMutableVideoFrame * This);
5255         
5256         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
5257             IDeckLinkMutableVideoFrame * This);
5258         
5259         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
5260             IDeckLinkMutableVideoFrame * This);
5261         
5262         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
5263             IDeckLinkMutableVideoFrame * This,
5264             /* [out] */ void **buffer);
5265         
5266         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
5267             IDeckLinkMutableVideoFrame * This,
5268             /* [in] */ BMDTimecodeFormat format,
5269             /* [out] */ IDeckLinkTimecode **timecode);
5270         
5271         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
5272             IDeckLinkMutableVideoFrame * This,
5273             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5274         
5275         HRESULT ( STDMETHODCALLTYPE *SetFlags )( 
5276             IDeckLinkMutableVideoFrame * This,
5277             /* [in] */ BMDFrameFlags newFlags);
5278         
5279         HRESULT ( STDMETHODCALLTYPE *SetTimecode )( 
5280             IDeckLinkMutableVideoFrame * This,
5281             /* [in] */ BMDTimecodeFormat format,
5282             /* [in] */ IDeckLinkTimecode *timecode);
5283         
5284         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( 
5285             IDeckLinkMutableVideoFrame * This,
5286             /* [in] */ BMDTimecodeFormat format,
5287             /* [in] */ unsigned char hours,
5288             /* [in] */ unsigned char minutes,
5289             /* [in] */ unsigned char seconds,
5290             /* [in] */ unsigned char frames,
5291             /* [in] */ BMDTimecodeFlags flags);
5292         
5293         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( 
5294             IDeckLinkMutableVideoFrame * This,
5295             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
5296         
5297         HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )( 
5298             IDeckLinkMutableVideoFrame * This,
5299             /* [in] */ BMDTimecodeFormat format,
5300             /* [in] */ BMDTimecodeUserBits userBits);
5301         
5302         END_INTERFACE
5303     } IDeckLinkMutableVideoFrameVtbl;
5304
5305     interface IDeckLinkMutableVideoFrame
5306     {
5307         CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;
5308     };
5309
5310     
5311
5312 #ifdef COBJMACROS
5313
5314
5315 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject)  \
5316     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5317
5318 #define IDeckLinkMutableVideoFrame_AddRef(This) \
5319     ( (This)->lpVtbl -> AddRef(This) ) 
5320
5321 #define IDeckLinkMutableVideoFrame_Release(This)        \
5322     ( (This)->lpVtbl -> Release(This) ) 
5323
5324
5325 #define IDeckLinkMutableVideoFrame_GetWidth(This)       \
5326     ( (This)->lpVtbl -> GetWidth(This) ) 
5327
5328 #define IDeckLinkMutableVideoFrame_GetHeight(This)      \
5329     ( (This)->lpVtbl -> GetHeight(This) ) 
5330
5331 #define IDeckLinkMutableVideoFrame_GetRowBytes(This)    \
5332     ( (This)->lpVtbl -> GetRowBytes(This) ) 
5333
5334 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This) \
5335     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
5336
5337 #define IDeckLinkMutableVideoFrame_GetFlags(This)       \
5338     ( (This)->lpVtbl -> GetFlags(This) ) 
5339
5340 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer)        \
5341     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
5342
5343 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode)    \
5344     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
5345
5346 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary)     \
5347     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
5348
5349
5350 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags)      \
5351     ( (This)->lpVtbl -> SetFlags(This,newFlags) ) 
5352
5353 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode)    \
5354     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) 
5355
5356 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)    \
5357     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) 
5358
5359 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary)     \
5360     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) 
5361
5362 #define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits)    \
5363     ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) ) 
5364
5365 #endif /* COBJMACROS */
5366
5367
5368 #endif  /* C style interface */
5369
5370
5371
5372
5373 #endif  /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */
5374
5375
5376 #ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
5377 #define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
5378
5379 /* interface IDeckLinkVideoFrame3DExtensions */
5380 /* [helpstring][local][uuid][object] */ 
5381
5382
5383 EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
5384
5385 #if defined(__cplusplus) && !defined(CINTERFACE)
5386     
5387     MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")
5388     IDeckLinkVideoFrame3DExtensions : public IUnknown
5389     {
5390     public:
5391         virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;
5392         
5393         virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( 
5394             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;
5395         
5396     };
5397     
5398 #else   /* C style interface */
5399
5400     typedef struct IDeckLinkVideoFrame3DExtensionsVtbl
5401     {
5402         BEGIN_INTERFACE
5403         
5404         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5405             IDeckLinkVideoFrame3DExtensions * This,
5406             /* [in] */ REFIID riid,
5407             /* [annotation][iid_is][out] */ 
5408             __RPC__deref_out  void **ppvObject);
5409         
5410         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5411             IDeckLinkVideoFrame3DExtensions * This);
5412         
5413         ULONG ( STDMETHODCALLTYPE *Release )( 
5414             IDeckLinkVideoFrame3DExtensions * This);
5415         
5416         BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )( 
5417             IDeckLinkVideoFrame3DExtensions * This);
5418         
5419         HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )( 
5420             IDeckLinkVideoFrame3DExtensions * This,
5421             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);
5422         
5423         END_INTERFACE
5424     } IDeckLinkVideoFrame3DExtensionsVtbl;
5425
5426     interface IDeckLinkVideoFrame3DExtensions
5427     {
5428         CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;
5429     };
5430
5431     
5432
5433 #ifdef COBJMACROS
5434
5435
5436 #define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject)     \
5437     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5438
5439 #define IDeckLinkVideoFrame3DExtensions_AddRef(This)    \
5440     ( (This)->lpVtbl -> AddRef(This) ) 
5441
5442 #define IDeckLinkVideoFrame3DExtensions_Release(This)   \
5443     ( (This)->lpVtbl -> Release(This) ) 
5444
5445
5446 #define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This)        \
5447     ( (This)->lpVtbl -> Get3DPackingFormat(This) ) 
5448
5449 #define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame) \
5450     ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) ) 
5451
5452 #endif /* COBJMACROS */
5453
5454
5455 #endif  /* C style interface */
5456
5457
5458
5459
5460 #endif  /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */
5461
5462
5463 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
5464 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
5465
5466 /* interface IDeckLinkVideoInputFrame */
5467 /* [helpstring][local][uuid][object] */ 
5468
5469
5470 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;
5471
5472 #if defined(__cplusplus) && !defined(CINTERFACE)
5473     
5474     MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")
5475     IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame
5476     {
5477     public:
5478         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( 
5479             /* [out] */ BMDTimeValue *frameTime,
5480             /* [out] */ BMDTimeValue *frameDuration,
5481             /* [in] */ BMDTimeScale timeScale) = 0;
5482         
5483         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( 
5484             /* [in] */ BMDTimeScale timeScale,
5485             /* [out] */ BMDTimeValue *frameTime,
5486             /* [out] */ BMDTimeValue *frameDuration) = 0;
5487         
5488     };
5489     
5490 #else   /* C style interface */
5491
5492     typedef struct IDeckLinkVideoInputFrameVtbl
5493     {
5494         BEGIN_INTERFACE
5495         
5496         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5497             IDeckLinkVideoInputFrame * This,
5498             /* [in] */ REFIID riid,
5499             /* [annotation][iid_is][out] */ 
5500             __RPC__deref_out  void **ppvObject);
5501         
5502         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5503             IDeckLinkVideoInputFrame * This);
5504         
5505         ULONG ( STDMETHODCALLTYPE *Release )( 
5506             IDeckLinkVideoInputFrame * This);
5507         
5508         long ( STDMETHODCALLTYPE *GetWidth )( 
5509             IDeckLinkVideoInputFrame * This);
5510         
5511         long ( STDMETHODCALLTYPE *GetHeight )( 
5512             IDeckLinkVideoInputFrame * This);
5513         
5514         long ( STDMETHODCALLTYPE *GetRowBytes )( 
5515             IDeckLinkVideoInputFrame * This);
5516         
5517         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
5518             IDeckLinkVideoInputFrame * This);
5519         
5520         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
5521             IDeckLinkVideoInputFrame * This);
5522         
5523         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
5524             IDeckLinkVideoInputFrame * This,
5525             /* [out] */ void **buffer);
5526         
5527         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
5528             IDeckLinkVideoInputFrame * This,
5529             /* [in] */ BMDTimecodeFormat format,
5530             /* [out] */ IDeckLinkTimecode **timecode);
5531         
5532         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
5533             IDeckLinkVideoInputFrame * This,
5534             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5535         
5536         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( 
5537             IDeckLinkVideoInputFrame * This,
5538             /* [out] */ BMDTimeValue *frameTime,
5539             /* [out] */ BMDTimeValue *frameDuration,
5540             /* [in] */ BMDTimeScale timeScale);
5541         
5542         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( 
5543             IDeckLinkVideoInputFrame * This,
5544             /* [in] */ BMDTimeScale timeScale,
5545             /* [out] */ BMDTimeValue *frameTime,
5546             /* [out] */ BMDTimeValue *frameDuration);
5547         
5548         END_INTERFACE
5549     } IDeckLinkVideoInputFrameVtbl;
5550
5551     interface IDeckLinkVideoInputFrame
5552     {
5553         CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;
5554     };
5555
5556     
5557
5558 #ifdef COBJMACROS
5559
5560
5561 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject)    \
5562     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5563
5564 #define IDeckLinkVideoInputFrame_AddRef(This)   \
5565     ( (This)->lpVtbl -> AddRef(This) ) 
5566
5567 #define IDeckLinkVideoInputFrame_Release(This)  \
5568     ( (This)->lpVtbl -> Release(This) ) 
5569
5570
5571 #define IDeckLinkVideoInputFrame_GetWidth(This) \
5572     ( (This)->lpVtbl -> GetWidth(This) ) 
5573
5574 #define IDeckLinkVideoInputFrame_GetHeight(This)        \
5575     ( (This)->lpVtbl -> GetHeight(This) ) 
5576
5577 #define IDeckLinkVideoInputFrame_GetRowBytes(This)      \
5578     ( (This)->lpVtbl -> GetRowBytes(This) ) 
5579
5580 #define IDeckLinkVideoInputFrame_GetPixelFormat(This)   \
5581     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
5582
5583 #define IDeckLinkVideoInputFrame_GetFlags(This) \
5584     ( (This)->lpVtbl -> GetFlags(This) ) 
5585
5586 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer)  \
5587     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
5588
5589 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode)      \
5590     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
5591
5592 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary)       \
5593     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
5594
5595
5596 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale)  \
5597     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) 
5598
5599 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)  \
5600     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) 
5601
5602 #endif /* COBJMACROS */
5603
5604
5605 #endif  /* C style interface */
5606
5607
5608
5609
5610 #endif  /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */
5611
5612
5613 #ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
5614 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
5615
5616 /* interface IDeckLinkVideoFrameAncillary */
5617 /* [helpstring][local][uuid][object] */ 
5618
5619
5620 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
5621
5622 #if defined(__cplusplus) && !defined(CINTERFACE)
5623     
5624     MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")
5625     IDeckLinkVideoFrameAncillary : public IUnknown
5626     {
5627     public:
5628         virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( 
5629             /* [in] */ unsigned long lineNumber,
5630             /* [out] */ void **buffer) = 0;
5631         
5632         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
5633         
5634         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
5635         
5636     };
5637     
5638 #else   /* C style interface */
5639
5640     typedef struct IDeckLinkVideoFrameAncillaryVtbl
5641     {
5642         BEGIN_INTERFACE
5643         
5644         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5645             IDeckLinkVideoFrameAncillary * This,
5646             /* [in] */ REFIID riid,
5647             /* [annotation][iid_is][out] */ 
5648             __RPC__deref_out  void **ppvObject);
5649         
5650         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5651             IDeckLinkVideoFrameAncillary * This);
5652         
5653         ULONG ( STDMETHODCALLTYPE *Release )( 
5654             IDeckLinkVideoFrameAncillary * This);
5655         
5656         HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( 
5657             IDeckLinkVideoFrameAncillary * This,
5658             /* [in] */ unsigned long lineNumber,
5659             /* [out] */ void **buffer);
5660         
5661         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
5662             IDeckLinkVideoFrameAncillary * This);
5663         
5664         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( 
5665             IDeckLinkVideoFrameAncillary * This);
5666         
5667         END_INTERFACE
5668     } IDeckLinkVideoFrameAncillaryVtbl;
5669
5670     interface IDeckLinkVideoFrameAncillary
5671     {
5672         CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;
5673     };
5674
5675     
5676
5677 #ifdef COBJMACROS
5678
5679
5680 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject)        \
5681     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5682
5683 #define IDeckLinkVideoFrameAncillary_AddRef(This)       \
5684     ( (This)->lpVtbl -> AddRef(This) ) 
5685
5686 #define IDeckLinkVideoFrameAncillary_Release(This)      \
5687     ( (This)->lpVtbl -> Release(This) ) 
5688
5689
5690 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer)   \
5691     ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) ) 
5692
5693 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This)       \
5694     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
5695
5696 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This)       \
5697     ( (This)->lpVtbl -> GetDisplayMode(This) ) 
5698
5699 #endif /* COBJMACROS */
5700
5701
5702 #endif  /* C style interface */
5703
5704
5705
5706
5707 #endif  /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */
5708
5709
5710 #ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
5711 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
5712
5713 /* interface IDeckLinkAudioInputPacket */
5714 /* [helpstring][local][uuid][object] */ 
5715
5716
5717 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
5718
5719 #if defined(__cplusplus) && !defined(CINTERFACE)
5720     
5721     MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")
5722     IDeckLinkAudioInputPacket : public IUnknown
5723     {
5724     public:
5725         virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;
5726         
5727         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
5728             /* [out] */ void **buffer) = 0;
5729         
5730         virtual HRESULT STDMETHODCALLTYPE GetPacketTime( 
5731             /* [out] */ BMDTimeValue *packetTime,
5732             /* [in] */ BMDTimeScale timeScale) = 0;
5733         
5734     };
5735     
5736 #else   /* C style interface */
5737
5738     typedef struct IDeckLinkAudioInputPacketVtbl
5739     {
5740         BEGIN_INTERFACE
5741         
5742         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5743             IDeckLinkAudioInputPacket * This,
5744             /* [in] */ REFIID riid,
5745             /* [annotation][iid_is][out] */ 
5746             __RPC__deref_out  void **ppvObject);
5747         
5748         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5749             IDeckLinkAudioInputPacket * This);
5750         
5751         ULONG ( STDMETHODCALLTYPE *Release )( 
5752             IDeckLinkAudioInputPacket * This);
5753         
5754         long ( STDMETHODCALLTYPE *GetSampleFrameCount )( 
5755             IDeckLinkAudioInputPacket * This);
5756         
5757         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
5758             IDeckLinkAudioInputPacket * This,
5759             /* [out] */ void **buffer);
5760         
5761         HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( 
5762             IDeckLinkAudioInputPacket * This,
5763             /* [out] */ BMDTimeValue *packetTime,
5764             /* [in] */ BMDTimeScale timeScale);
5765         
5766         END_INTERFACE
5767     } IDeckLinkAudioInputPacketVtbl;
5768
5769     interface IDeckLinkAudioInputPacket
5770     {
5771         CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;
5772     };
5773
5774     
5775
5776 #ifdef COBJMACROS
5777
5778
5779 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)   \
5780     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5781
5782 #define IDeckLinkAudioInputPacket_AddRef(This)  \
5783     ( (This)->lpVtbl -> AddRef(This) ) 
5784
5785 #define IDeckLinkAudioInputPacket_Release(This) \
5786     ( (This)->lpVtbl -> Release(This) ) 
5787
5788
5789 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This)     \
5790     ( (This)->lpVtbl -> GetSampleFrameCount(This) ) 
5791
5792 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer) \
5793     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
5794
5795 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale)      \
5796     ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) ) 
5797
5798 #endif /* COBJMACROS */
5799
5800
5801 #endif  /* C style interface */
5802
5803
5804
5805
5806 #endif  /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */
5807
5808
5809 #ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
5810 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
5811
5812 /* interface IDeckLinkScreenPreviewCallback */
5813 /* [helpstring][local][uuid][object] */ 
5814
5815
5816 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
5817
5818 #if defined(__cplusplus) && !defined(CINTERFACE)
5819     
5820     MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")
5821     IDeckLinkScreenPreviewCallback : public IUnknown
5822     {
5823     public:
5824         virtual HRESULT STDMETHODCALLTYPE DrawFrame( 
5825             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
5826         
5827     };
5828     
5829 #else   /* C style interface */
5830
5831     typedef struct IDeckLinkScreenPreviewCallbackVtbl
5832     {
5833         BEGIN_INTERFACE
5834         
5835         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5836             IDeckLinkScreenPreviewCallback * This,
5837             /* [in] */ REFIID riid,
5838             /* [annotation][iid_is][out] */ 
5839             __RPC__deref_out  void **ppvObject);
5840         
5841         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5842             IDeckLinkScreenPreviewCallback * This);
5843         
5844         ULONG ( STDMETHODCALLTYPE *Release )( 
5845             IDeckLinkScreenPreviewCallback * This);
5846         
5847         HRESULT ( STDMETHODCALLTYPE *DrawFrame )( 
5848             IDeckLinkScreenPreviewCallback * This,
5849             /* [in] */ IDeckLinkVideoFrame *theFrame);
5850         
5851         END_INTERFACE
5852     } IDeckLinkScreenPreviewCallbackVtbl;
5853
5854     interface IDeckLinkScreenPreviewCallback
5855     {
5856         CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;
5857     };
5858
5859     
5860
5861 #ifdef COBJMACROS
5862
5863
5864 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)      \
5865     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5866
5867 #define IDeckLinkScreenPreviewCallback_AddRef(This)     \
5868     ( (This)->lpVtbl -> AddRef(This) ) 
5869
5870 #define IDeckLinkScreenPreviewCallback_Release(This)    \
5871     ( (This)->lpVtbl -> Release(This) ) 
5872
5873
5874 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) \
5875     ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) 
5876
5877 #endif /* COBJMACROS */
5878
5879
5880 #endif  /* C style interface */
5881
5882
5883
5884
5885 #endif  /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */
5886
5887
5888 #ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
5889 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
5890
5891 /* interface IDeckLinkGLScreenPreviewHelper */
5892 /* [helpstring][local][uuid][object] */ 
5893
5894
5895 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
5896
5897 #if defined(__cplusplus) && !defined(CINTERFACE)
5898     
5899     MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")
5900     IDeckLinkGLScreenPreviewHelper : public IUnknown
5901     {
5902     public:
5903         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
5904         
5905         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
5906         
5907         virtual HRESULT STDMETHODCALLTYPE SetFrame( 
5908             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
5909         
5910         virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( 
5911             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
5912         
5913     };
5914     
5915 #else   /* C style interface */
5916
5917     typedef struct IDeckLinkGLScreenPreviewHelperVtbl
5918     {
5919         BEGIN_INTERFACE
5920         
5921         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5922             IDeckLinkGLScreenPreviewHelper * This,
5923             /* [in] */ REFIID riid,
5924             /* [annotation][iid_is][out] */ 
5925             __RPC__deref_out  void **ppvObject);
5926         
5927         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5928             IDeckLinkGLScreenPreviewHelper * This);
5929         
5930         ULONG ( STDMETHODCALLTYPE *Release )( 
5931             IDeckLinkGLScreenPreviewHelper * This);
5932         
5933         HRESULT ( STDMETHODCALLTYPE *InitializeGL )( 
5934             IDeckLinkGLScreenPreviewHelper * This);
5935         
5936         HRESULT ( STDMETHODCALLTYPE *PaintGL )( 
5937             IDeckLinkGLScreenPreviewHelper * This);
5938         
5939         HRESULT ( STDMETHODCALLTYPE *SetFrame )( 
5940             IDeckLinkGLScreenPreviewHelper * This,
5941             /* [in] */ IDeckLinkVideoFrame *theFrame);
5942         
5943         HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( 
5944             IDeckLinkGLScreenPreviewHelper * This,
5945             /* [in] */ BMD3DPreviewFormat previewFormat);
5946         
5947         END_INTERFACE
5948     } IDeckLinkGLScreenPreviewHelperVtbl;
5949
5950     interface IDeckLinkGLScreenPreviewHelper
5951     {
5952         CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;
5953     };
5954
5955     
5956
5957 #ifdef COBJMACROS
5958
5959
5960 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)      \
5961     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5962
5963 #define IDeckLinkGLScreenPreviewHelper_AddRef(This)     \
5964     ( (This)->lpVtbl -> AddRef(This) ) 
5965
5966 #define IDeckLinkGLScreenPreviewHelper_Release(This)    \
5967     ( (This)->lpVtbl -> Release(This) ) 
5968
5969
5970 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)       \
5971     ( (This)->lpVtbl -> InitializeGL(This) ) 
5972
5973 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This)    \
5974     ( (This)->lpVtbl -> PaintGL(This) ) 
5975
5976 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame)  \
5977     ( (This)->lpVtbl -> SetFrame(This,theFrame) ) 
5978
5979 #define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)   \
5980     ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) 
5981
5982 #endif /* COBJMACROS */
5983
5984
5985 #endif  /* C style interface */
5986
5987
5988
5989
5990 #endif  /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */
5991
5992
5993 #ifndef __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__
5994 #define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__
5995
5996 /* interface IDeckLinkDX9ScreenPreviewHelper */
5997 /* [helpstring][local][uuid][object] */ 
5998
5999
6000 EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
6001
6002 #if defined(__cplusplus) && !defined(CINTERFACE)
6003     
6004     MIDL_INTERFACE("2094B522-D1A1-40C0-9AC7-1C012218EF02")
6005     IDeckLinkDX9ScreenPreviewHelper : public IUnknown
6006     {
6007     public:
6008         virtual HRESULT STDMETHODCALLTYPE Initialize( 
6009             /* [in] */ void *device) = 0;
6010         
6011         virtual HRESULT STDMETHODCALLTYPE Render( 
6012             /* [in] */ RECT *rc) = 0;
6013         
6014         virtual HRESULT STDMETHODCALLTYPE SetFrame( 
6015             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
6016         
6017         virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( 
6018             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
6019         
6020     };
6021     
6022 #else   /* C style interface */
6023
6024     typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl
6025     {
6026         BEGIN_INTERFACE
6027         
6028         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6029             IDeckLinkDX9ScreenPreviewHelper * This,
6030             /* [in] */ REFIID riid,
6031             /* [annotation][iid_is][out] */ 
6032             __RPC__deref_out  void **ppvObject);
6033         
6034         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6035             IDeckLinkDX9ScreenPreviewHelper * This);
6036         
6037         ULONG ( STDMETHODCALLTYPE *Release )( 
6038             IDeckLinkDX9ScreenPreviewHelper * This);
6039         
6040         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
6041             IDeckLinkDX9ScreenPreviewHelper * This,
6042             /* [in] */ void *device);
6043         
6044         HRESULT ( STDMETHODCALLTYPE *Render )( 
6045             IDeckLinkDX9ScreenPreviewHelper * This,
6046             /* [in] */ RECT *rc);
6047         
6048         HRESULT ( STDMETHODCALLTYPE *SetFrame )( 
6049             IDeckLinkDX9ScreenPreviewHelper * This,
6050             /* [in] */ IDeckLinkVideoFrame *theFrame);
6051         
6052         HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( 
6053             IDeckLinkDX9ScreenPreviewHelper * This,
6054             /* [in] */ BMD3DPreviewFormat previewFormat);
6055         
6056         END_INTERFACE
6057     } IDeckLinkDX9ScreenPreviewHelperVtbl;
6058
6059     interface IDeckLinkDX9ScreenPreviewHelper
6060     {
6061         CONST_VTBL struct IDeckLinkDX9ScreenPreviewHelperVtbl *lpVtbl;
6062     };
6063
6064     
6065
6066 #ifdef COBJMACROS
6067
6068
6069 #define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject)     \
6070     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6071
6072 #define IDeckLinkDX9ScreenPreviewHelper_AddRef(This)    \
6073     ( (This)->lpVtbl -> AddRef(This) ) 
6074
6075 #define IDeckLinkDX9ScreenPreviewHelper_Release(This)   \
6076     ( (This)->lpVtbl -> Release(This) ) 
6077
6078
6079 #define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device) \
6080     ( (This)->lpVtbl -> Initialize(This,device) ) 
6081
6082 #define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc) \
6083     ( (This)->lpVtbl -> Render(This,rc) ) 
6084
6085 #define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame) \
6086     ( (This)->lpVtbl -> SetFrame(This,theFrame) ) 
6087
6088 #define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)  \
6089     ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) 
6090
6091 #endif /* COBJMACROS */
6092
6093
6094 #endif  /* C style interface */
6095
6096
6097
6098
6099 #endif  /* __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ */
6100
6101
6102 #ifndef __IDeckLinkNotificationCallback_INTERFACE_DEFINED__
6103 #define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__
6104
6105 /* interface IDeckLinkNotificationCallback */
6106 /* [helpstring][local][uuid][object] */ 
6107
6108
6109 EXTERN_C const IID IID_IDeckLinkNotificationCallback;
6110
6111 #if defined(__cplusplus) && !defined(CINTERFACE)
6112     
6113     MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d")
6114     IDeckLinkNotificationCallback : public IUnknown
6115     {
6116     public:
6117         virtual HRESULT STDMETHODCALLTYPE Notify( 
6118             /* [in] */ BMDNotifications topic,
6119             /* [in] */ ULONGLONG param1,
6120             /* [in] */ ULONGLONG param2) = 0;
6121         
6122     };
6123     
6124 #else   /* C style interface */
6125
6126     typedef struct IDeckLinkNotificationCallbackVtbl
6127     {
6128         BEGIN_INTERFACE
6129         
6130         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6131             IDeckLinkNotificationCallback * This,
6132             /* [in] */ REFIID riid,
6133             /* [annotation][iid_is][out] */ 
6134             __RPC__deref_out  void **ppvObject);
6135         
6136         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6137             IDeckLinkNotificationCallback * This);
6138         
6139         ULONG ( STDMETHODCALLTYPE *Release )( 
6140             IDeckLinkNotificationCallback * This);
6141         
6142         HRESULT ( STDMETHODCALLTYPE *Notify )( 
6143             IDeckLinkNotificationCallback * This,
6144             /* [in] */ BMDNotifications topic,
6145             /* [in] */ ULONGLONG param1,
6146             /* [in] */ ULONGLONG param2);
6147         
6148         END_INTERFACE
6149     } IDeckLinkNotificationCallbackVtbl;
6150
6151     interface IDeckLinkNotificationCallback
6152     {
6153         CONST_VTBL struct IDeckLinkNotificationCallbackVtbl *lpVtbl;
6154     };
6155
6156     
6157
6158 #ifdef COBJMACROS
6159
6160
6161 #define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject)       \
6162     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6163
6164 #define IDeckLinkNotificationCallback_AddRef(This)      \
6165     ( (This)->lpVtbl -> AddRef(This) ) 
6166
6167 #define IDeckLinkNotificationCallback_Release(This)     \
6168     ( (This)->lpVtbl -> Release(This) ) 
6169
6170
6171 #define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2)  \
6172     ( (This)->lpVtbl -> Notify(This,topic,param1,param2) ) 
6173
6174 #endif /* COBJMACROS */
6175
6176
6177 #endif  /* C style interface */
6178
6179
6180
6181
6182 #endif  /* __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ */
6183
6184
6185 #ifndef __IDeckLinkNotification_INTERFACE_DEFINED__
6186 #define __IDeckLinkNotification_INTERFACE_DEFINED__
6187
6188 /* interface IDeckLinkNotification */
6189 /* [helpstring][local][uuid][object] */ 
6190
6191
6192 EXTERN_C const IID IID_IDeckLinkNotification;
6193
6194 #if defined(__cplusplus) && !defined(CINTERFACE)
6195     
6196     MIDL_INTERFACE("0a1fb207-e215-441b-9b19-6fa1575946c5")
6197     IDeckLinkNotification : public IUnknown
6198     {
6199     public:
6200         virtual HRESULT STDMETHODCALLTYPE Subscribe( 
6201             /* [in] */ BMDNotifications topic,
6202             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
6203         
6204         virtual HRESULT STDMETHODCALLTYPE Unsubscribe( 
6205             /* [in] */ BMDNotifications topic,
6206             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
6207         
6208     };
6209     
6210 #else   /* C style interface */
6211
6212     typedef struct IDeckLinkNotificationVtbl
6213     {
6214         BEGIN_INTERFACE
6215         
6216         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6217             IDeckLinkNotification * This,
6218             /* [in] */ REFIID riid,
6219             /* [annotation][iid_is][out] */ 
6220             __RPC__deref_out  void **ppvObject);
6221         
6222         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6223             IDeckLinkNotification * This);
6224         
6225         ULONG ( STDMETHODCALLTYPE *Release )( 
6226             IDeckLinkNotification * This);
6227         
6228         HRESULT ( STDMETHODCALLTYPE *Subscribe )( 
6229             IDeckLinkNotification * This,
6230             /* [in] */ BMDNotifications topic,
6231             /* [in] */ IDeckLinkNotificationCallback *theCallback);
6232         
6233         HRESULT ( STDMETHODCALLTYPE *Unsubscribe )( 
6234             IDeckLinkNotification * This,
6235             /* [in] */ BMDNotifications topic,
6236             /* [in] */ IDeckLinkNotificationCallback *theCallback);
6237         
6238         END_INTERFACE
6239     } IDeckLinkNotificationVtbl;
6240
6241     interface IDeckLinkNotification
6242     {
6243         CONST_VTBL struct IDeckLinkNotificationVtbl *lpVtbl;
6244     };
6245
6246     
6247
6248 #ifdef COBJMACROS
6249
6250
6251 #define IDeckLinkNotification_QueryInterface(This,riid,ppvObject)       \
6252     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6253
6254 #define IDeckLinkNotification_AddRef(This)      \
6255     ( (This)->lpVtbl -> AddRef(This) ) 
6256
6257 #define IDeckLinkNotification_Release(This)     \
6258     ( (This)->lpVtbl -> Release(This) ) 
6259
6260
6261 #define IDeckLinkNotification_Subscribe(This,topic,theCallback) \
6262     ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) ) 
6263
6264 #define IDeckLinkNotification_Unsubscribe(This,topic,theCallback)       \
6265     ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) ) 
6266
6267 #endif /* COBJMACROS */
6268
6269
6270 #endif  /* C style interface */
6271
6272
6273
6274
6275 #endif  /* __IDeckLinkNotification_INTERFACE_DEFINED__ */
6276
6277
6278 #ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__
6279 #define __IDeckLinkAttributes_INTERFACE_DEFINED__
6280
6281 /* interface IDeckLinkAttributes */
6282 /* [helpstring][local][uuid][object] */ 
6283
6284
6285 EXTERN_C const IID IID_IDeckLinkAttributes;
6286
6287 #if defined(__cplusplus) && !defined(CINTERFACE)
6288     
6289     MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")
6290     IDeckLinkAttributes : public IUnknown
6291     {
6292     public:
6293         virtual HRESULT STDMETHODCALLTYPE GetFlag( 
6294             /* [in] */ BMDDeckLinkAttributeID cfgID,
6295             /* [out] */ BOOL *value) = 0;
6296         
6297         virtual HRESULT STDMETHODCALLTYPE GetInt( 
6298             /* [in] */ BMDDeckLinkAttributeID cfgID,
6299             /* [out] */ LONGLONG *value) = 0;
6300         
6301         virtual HRESULT STDMETHODCALLTYPE GetFloat( 
6302             /* [in] */ BMDDeckLinkAttributeID cfgID,
6303             /* [out] */ double *value) = 0;
6304         
6305         virtual HRESULT STDMETHODCALLTYPE GetString( 
6306             /* [in] */ BMDDeckLinkAttributeID cfgID,
6307             /* [out] */ BSTR *value) = 0;
6308         
6309     };
6310     
6311 #else   /* C style interface */
6312
6313     typedef struct IDeckLinkAttributesVtbl
6314     {
6315         BEGIN_INTERFACE
6316         
6317         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6318             IDeckLinkAttributes * This,
6319             /* [in] */ REFIID riid,
6320             /* [annotation][iid_is][out] */ 
6321             __RPC__deref_out  void **ppvObject);
6322         
6323         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6324             IDeckLinkAttributes * This);
6325         
6326         ULONG ( STDMETHODCALLTYPE *Release )( 
6327             IDeckLinkAttributes * This);
6328         
6329         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
6330             IDeckLinkAttributes * This,
6331             /* [in] */ BMDDeckLinkAttributeID cfgID,
6332             /* [out] */ BOOL *value);
6333         
6334         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
6335             IDeckLinkAttributes * This,
6336             /* [in] */ BMDDeckLinkAttributeID cfgID,
6337             /* [out] */ LONGLONG *value);
6338         
6339         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
6340             IDeckLinkAttributes * This,
6341             /* [in] */ BMDDeckLinkAttributeID cfgID,
6342             /* [out] */ double *value);
6343         
6344         HRESULT ( STDMETHODCALLTYPE *GetString )( 
6345             IDeckLinkAttributes * This,
6346             /* [in] */ BMDDeckLinkAttributeID cfgID,
6347             /* [out] */ BSTR *value);
6348         
6349         END_INTERFACE
6350     } IDeckLinkAttributesVtbl;
6351
6352     interface IDeckLinkAttributes
6353     {
6354         CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;
6355     };
6356
6357     
6358
6359 #ifdef COBJMACROS
6360
6361
6362 #define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) \
6363     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6364
6365 #define IDeckLinkAttributes_AddRef(This)        \
6366     ( (This)->lpVtbl -> AddRef(This) ) 
6367
6368 #define IDeckLinkAttributes_Release(This)       \
6369     ( (This)->lpVtbl -> Release(This) ) 
6370
6371
6372 #define IDeckLinkAttributes_GetFlag(This,cfgID,value)   \
6373     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
6374
6375 #define IDeckLinkAttributes_GetInt(This,cfgID,value)    \
6376     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
6377
6378 #define IDeckLinkAttributes_GetFloat(This,cfgID,value)  \
6379     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
6380
6381 #define IDeckLinkAttributes_GetString(This,cfgID,value) \
6382     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
6383
6384 #endif /* COBJMACROS */
6385
6386
6387 #endif  /* C style interface */
6388
6389
6390
6391
6392 #endif  /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */
6393
6394
6395 #ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__
6396 #define __IDeckLinkKeyer_INTERFACE_DEFINED__
6397
6398 /* interface IDeckLinkKeyer */
6399 /* [helpstring][local][uuid][object] */ 
6400
6401
6402 EXTERN_C const IID IID_IDeckLinkKeyer;
6403
6404 #if defined(__cplusplus) && !defined(CINTERFACE)
6405     
6406     MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")
6407     IDeckLinkKeyer : public IUnknown
6408     {
6409     public:
6410         virtual HRESULT STDMETHODCALLTYPE Enable( 
6411             /* [in] */ BOOL isExternal) = 0;
6412         
6413         virtual HRESULT STDMETHODCALLTYPE SetLevel( 
6414             /* [in] */ unsigned char level) = 0;
6415         
6416         virtual HRESULT STDMETHODCALLTYPE RampUp( 
6417             /* [in] */ unsigned long numberOfFrames) = 0;
6418         
6419         virtual HRESULT STDMETHODCALLTYPE RampDown( 
6420             /* [in] */ unsigned long numberOfFrames) = 0;
6421         
6422         virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;
6423         
6424     };
6425     
6426 #else   /* C style interface */
6427
6428     typedef struct IDeckLinkKeyerVtbl
6429     {
6430         BEGIN_INTERFACE
6431         
6432         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6433             IDeckLinkKeyer * This,
6434             /* [in] */ REFIID riid,
6435             /* [annotation][iid_is][out] */ 
6436             __RPC__deref_out  void **ppvObject);
6437         
6438         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6439             IDeckLinkKeyer * This);
6440         
6441         ULONG ( STDMETHODCALLTYPE *Release )( 
6442             IDeckLinkKeyer * This);
6443         
6444         HRESULT ( STDMETHODCALLTYPE *Enable )( 
6445             IDeckLinkKeyer * This,
6446             /* [in] */ BOOL isExternal);
6447         
6448         HRESULT ( STDMETHODCALLTYPE *SetLevel )( 
6449             IDeckLinkKeyer * This,
6450             /* [in] */ unsigned char level);
6451         
6452         HRESULT ( STDMETHODCALLTYPE *RampUp )( 
6453             IDeckLinkKeyer * This,
6454             /* [in] */ unsigned long numberOfFrames);
6455         
6456         HRESULT ( STDMETHODCALLTYPE *RampDown )( 
6457             IDeckLinkKeyer * This,
6458             /* [in] */ unsigned long numberOfFrames);
6459         
6460         HRESULT ( STDMETHODCALLTYPE *Disable )( 
6461             IDeckLinkKeyer * This);
6462         
6463         END_INTERFACE
6464     } IDeckLinkKeyerVtbl;
6465
6466     interface IDeckLinkKeyer
6467     {
6468         CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;
6469     };
6470
6471     
6472
6473 #ifdef COBJMACROS
6474
6475
6476 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)      \
6477     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6478
6479 #define IDeckLinkKeyer_AddRef(This)     \
6480     ( (This)->lpVtbl -> AddRef(This) ) 
6481
6482 #define IDeckLinkKeyer_Release(This)    \
6483     ( (This)->lpVtbl -> Release(This) ) 
6484
6485
6486 #define IDeckLinkKeyer_Enable(This,isExternal)  \
6487     ( (This)->lpVtbl -> Enable(This,isExternal) ) 
6488
6489 #define IDeckLinkKeyer_SetLevel(This,level)     \
6490     ( (This)->lpVtbl -> SetLevel(This,level) ) 
6491
6492 #define IDeckLinkKeyer_RampUp(This,numberOfFrames)      \
6493     ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) 
6494
6495 #define IDeckLinkKeyer_RampDown(This,numberOfFrames)    \
6496     ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) 
6497
6498 #define IDeckLinkKeyer_Disable(This)    \
6499     ( (This)->lpVtbl -> Disable(This) ) 
6500
6501 #endif /* COBJMACROS */
6502
6503
6504 #endif  /* C style interface */
6505
6506
6507
6508
6509 #endif  /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */
6510
6511
6512 #ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__
6513 #define __IDeckLinkVideoConversion_INTERFACE_DEFINED__
6514
6515 /* interface IDeckLinkVideoConversion */
6516 /* [helpstring][local][uuid][object] */ 
6517
6518
6519 EXTERN_C const IID IID_IDeckLinkVideoConversion;
6520
6521 #if defined(__cplusplus) && !defined(CINTERFACE)
6522     
6523     MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")
6524     IDeckLinkVideoConversion : public IUnknown
6525     {
6526     public:
6527         virtual HRESULT STDMETHODCALLTYPE ConvertFrame( 
6528             /* [in] */ IDeckLinkVideoFrame *srcFrame,
6529             /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;
6530         
6531     };
6532     
6533 #else   /* C style interface */
6534
6535     typedef struct IDeckLinkVideoConversionVtbl
6536     {
6537         BEGIN_INTERFACE
6538         
6539         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6540             IDeckLinkVideoConversion * This,
6541             /* [in] */ REFIID riid,
6542             /* [annotation][iid_is][out] */ 
6543             __RPC__deref_out  void **ppvObject);
6544         
6545         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6546             IDeckLinkVideoConversion * This);
6547         
6548         ULONG ( STDMETHODCALLTYPE *Release )( 
6549             IDeckLinkVideoConversion * This);
6550         
6551         HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( 
6552             IDeckLinkVideoConversion * This,
6553             /* [in] */ IDeckLinkVideoFrame *srcFrame,
6554             /* [in] */ IDeckLinkVideoFrame *dstFrame);
6555         
6556         END_INTERFACE
6557     } IDeckLinkVideoConversionVtbl;
6558
6559     interface IDeckLinkVideoConversion
6560     {
6561         CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;
6562     };
6563
6564     
6565
6566 #ifdef COBJMACROS
6567
6568
6569 #define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject)    \
6570     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6571
6572 #define IDeckLinkVideoConversion_AddRef(This)   \
6573     ( (This)->lpVtbl -> AddRef(This) ) 
6574
6575 #define IDeckLinkVideoConversion_Release(This)  \
6576     ( (This)->lpVtbl -> Release(This) ) 
6577
6578
6579 #define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame)   \
6580     ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) 
6581
6582 #endif /* COBJMACROS */
6583
6584
6585 #endif  /* C style interface */
6586
6587
6588
6589
6590 #endif  /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */
6591
6592
6593 EXTERN_C const CLSID CLSID_CDeckLinkIterator;
6594
6595 #ifdef __cplusplus
6596
6597 class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")
6598 CDeckLinkIterator;
6599 #endif
6600
6601 EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;
6602
6603 #ifdef __cplusplus
6604
6605 class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")
6606 CDeckLinkAPIInformation;
6607 #endif
6608
6609 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;
6610
6611 #ifdef __cplusplus
6612
6613 class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")
6614 CDeckLinkGLScreenPreviewHelper;
6615 #endif
6616
6617 EXTERN_C const CLSID CLSID_CDeckLinkDX9ScreenPreviewHelper;
6618
6619 #ifdef __cplusplus
6620
6621 class DECLSPEC_UUID("CC010023-E01D-4525-9D59-80C8AB3DC7A0")
6622 CDeckLinkDX9ScreenPreviewHelper;
6623 #endif
6624
6625 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;
6626
6627 #ifdef __cplusplus
6628
6629 class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")
6630 CDeckLinkVideoConversion;
6631 #endif
6632
6633 #ifndef __IDeckLinkInput_v9_2_INTERFACE_DEFINED__
6634 #define __IDeckLinkInput_v9_2_INTERFACE_DEFINED__
6635
6636 /* interface IDeckLinkInput_v9_2 */
6637 /* [helpstring][uuid][object] */ 
6638
6639
6640 EXTERN_C const IID IID_IDeckLinkInput_v9_2;
6641
6642 #if defined(__cplusplus) && !defined(CINTERFACE)
6643     
6644     MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")
6645     IDeckLinkInput_v9_2 : public IUnknown
6646     {
6647     public:
6648         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
6649             /* [in] */ BMDDisplayMode displayMode,
6650             /* [in] */ BMDPixelFormat pixelFormat,
6651             /* [in] */ BMDVideoInputFlags flags,
6652             /* [out] */ BMDDisplayModeSupport *result,
6653             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
6654         
6655         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
6656             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
6657         
6658         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
6659             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
6660         
6661         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( 
6662             /* [in] */ BMDDisplayMode displayMode,
6663             /* [in] */ BMDPixelFormat pixelFormat,
6664             /* [in] */ BMDVideoInputFlags flags) = 0;
6665         
6666         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
6667         
6668         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( 
6669             /* [out] */ unsigned long *availableFrameCount) = 0;
6670         
6671         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( 
6672             /* [in] */ BMDAudioSampleRate sampleRate,
6673             /* [in] */ BMDAudioSampleType sampleType,
6674             /* [in] */ unsigned long channelCount) = 0;
6675         
6676         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
6677         
6678         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( 
6679             /* [out] */ unsigned long *availableSampleFrameCount) = 0;
6680         
6681         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
6682         
6683         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
6684         
6685         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
6686         
6687         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
6688         
6689         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
6690             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
6691         
6692         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
6693             /* [in] */ BMDTimeScale desiredTimeScale,
6694             /* [out] */ BMDTimeValue *hardwareTime,
6695             /* [out] */ BMDTimeValue *timeInFrame,
6696             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
6697         
6698     };
6699     
6700 #else   /* C style interface */
6701
6702     typedef struct IDeckLinkInput_v9_2Vtbl
6703     {
6704         BEGIN_INTERFACE
6705         
6706         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6707             IDeckLinkInput_v9_2 * This,
6708             /* [in] */ REFIID riid,
6709             /* [annotation][iid_is][out] */ 
6710             __RPC__deref_out  void **ppvObject);
6711         
6712         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6713             IDeckLinkInput_v9_2 * This);
6714         
6715         ULONG ( STDMETHODCALLTYPE *Release )( 
6716             IDeckLinkInput_v9_2 * This);
6717         
6718         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
6719             IDeckLinkInput_v9_2 * This,
6720             /* [in] */ BMDDisplayMode displayMode,
6721             /* [in] */ BMDPixelFormat pixelFormat,
6722             /* [in] */ BMDVideoInputFlags flags,
6723             /* [out] */ BMDDisplayModeSupport *result,
6724             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
6725         
6726         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
6727             IDeckLinkInput_v9_2 * This,
6728             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
6729         
6730         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
6731             IDeckLinkInput_v9_2 * This,
6732             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
6733         
6734         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( 
6735             IDeckLinkInput_v9_2 * This,
6736             /* [in] */ BMDDisplayMode displayMode,
6737             /* [in] */ BMDPixelFormat pixelFormat,
6738             /* [in] */ BMDVideoInputFlags flags);
6739         
6740         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( 
6741             IDeckLinkInput_v9_2 * This);
6742         
6743         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( 
6744             IDeckLinkInput_v9_2 * This,
6745             /* [out] */ unsigned long *availableFrameCount);
6746         
6747         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( 
6748             IDeckLinkInput_v9_2 * This,
6749             /* [in] */ BMDAudioSampleRate sampleRate,
6750             /* [in] */ BMDAudioSampleType sampleType,
6751             /* [in] */ unsigned long channelCount);
6752         
6753         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( 
6754             IDeckLinkInput_v9_2 * This);
6755         
6756         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( 
6757             IDeckLinkInput_v9_2 * This,
6758             /* [out] */ unsigned long *availableSampleFrameCount);
6759         
6760         HRESULT ( STDMETHODCALLTYPE *StartStreams )( 
6761             IDeckLinkInput_v9_2 * This);
6762         
6763         HRESULT ( STDMETHODCALLTYPE *StopStreams )( 
6764             IDeckLinkInput_v9_2 * This);
6765         
6766         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( 
6767             IDeckLinkInput_v9_2 * This);
6768         
6769         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( 
6770             IDeckLinkInput_v9_2 * This);
6771         
6772         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
6773             IDeckLinkInput_v9_2 * This,
6774             /* [in] */ IDeckLinkInputCallback *theCallback);
6775         
6776         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
6777             IDeckLinkInput_v9_2 * This,
6778             /* [in] */ BMDTimeScale desiredTimeScale,
6779             /* [out] */ BMDTimeValue *hardwareTime,
6780             /* [out] */ BMDTimeValue *timeInFrame,
6781             /* [out] */ BMDTimeValue *ticksPerFrame);
6782         
6783         END_INTERFACE
6784     } IDeckLinkInput_v9_2Vtbl;
6785
6786     interface IDeckLinkInput_v9_2
6787     {
6788         CONST_VTBL struct IDeckLinkInput_v9_2Vtbl *lpVtbl;
6789     };
6790
6791     
6792
6793 #ifdef COBJMACROS
6794
6795
6796 #define IDeckLinkInput_v9_2_QueryInterface(This,riid,ppvObject) \
6797     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6798
6799 #define IDeckLinkInput_v9_2_AddRef(This)        \
6800     ( (This)->lpVtbl -> AddRef(This) ) 
6801
6802 #define IDeckLinkInput_v9_2_Release(This)       \
6803     ( (This)->lpVtbl -> Release(This) ) 
6804
6805
6806 #define IDeckLinkInput_v9_2_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)   \
6807     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) 
6808
6809 #define IDeckLinkInput_v9_2_GetDisplayModeIterator(This,iterator)       \
6810     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
6811
6812 #define IDeckLinkInput_v9_2_SetScreenPreviewCallback(This,previewCallback)      \
6813     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
6814
6815 #define IDeckLinkInput_v9_2_EnableVideoInput(This,displayMode,pixelFormat,flags)        \
6816     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) 
6817
6818 #define IDeckLinkInput_v9_2_DisableVideoInput(This)     \
6819     ( (This)->lpVtbl -> DisableVideoInput(This) ) 
6820
6821 #define IDeckLinkInput_v9_2_GetAvailableVideoFrameCount(This,availableFrameCount)       \
6822     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) 
6823
6824 #define IDeckLinkInput_v9_2_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \
6825     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) 
6826
6827 #define IDeckLinkInput_v9_2_DisableAudioInput(This)     \
6828     ( (This)->lpVtbl -> DisableAudioInput(This) ) 
6829
6830 #define IDeckLinkInput_v9_2_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)   \
6831     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) 
6832
6833 #define IDeckLinkInput_v9_2_StartStreams(This)  \
6834     ( (This)->lpVtbl -> StartStreams(This) ) 
6835
6836 #define IDeckLinkInput_v9_2_StopStreams(This)   \
6837     ( (This)->lpVtbl -> StopStreams(This) ) 
6838
6839 #define IDeckLinkInput_v9_2_PauseStreams(This)  \
6840     ( (This)->lpVtbl -> PauseStreams(This) ) 
6841
6842 #define IDeckLinkInput_v9_2_FlushStreams(This)  \
6843     ( (This)->lpVtbl -> FlushStreams(This) ) 
6844
6845 #define IDeckLinkInput_v9_2_SetCallback(This,theCallback)       \
6846     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
6847
6848 #define IDeckLinkInput_v9_2_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)     \
6849     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) 
6850
6851 #endif /* COBJMACROS */
6852
6853
6854 #endif  /* C style interface */
6855
6856
6857
6858
6859 #endif  /* __IDeckLinkInput_v9_2_INTERFACE_DEFINED__ */
6860
6861
6862 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__
6863 #define __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__
6864
6865 /* interface IDeckLinkDeckControlStatusCallback_v8_1 */
6866 /* [helpstring][uuid][object] */ 
6867
6868
6869 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
6870
6871 #if defined(__cplusplus) && !defined(CINTERFACE)
6872     
6873     MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")
6874     IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown
6875     {
6876     public:
6877         virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( 
6878             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
6879         
6880         virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( 
6881             /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,
6882             /* [in] */ BMDDeckControlError error) = 0;
6883         
6884         virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( 
6885             /* [in] */ BMDDeckControlEvent event,
6886             /* [in] */ BMDDeckControlError error) = 0;
6887         
6888         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( 
6889             /* [in] */ BMDDeckControlStatusFlags flags,
6890             /* [in] */ unsigned long mask) = 0;
6891         
6892     };
6893     
6894 #else   /* C style interface */
6895
6896     typedef struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl
6897     {
6898         BEGIN_INTERFACE
6899         
6900         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6901             IDeckLinkDeckControlStatusCallback_v8_1 * This,
6902             /* [in] */ REFIID riid,
6903             /* [annotation][iid_is][out] */ 
6904             __RPC__deref_out  void **ppvObject);
6905         
6906         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6907             IDeckLinkDeckControlStatusCallback_v8_1 * This);
6908         
6909         ULONG ( STDMETHODCALLTYPE *Release )( 
6910             IDeckLinkDeckControlStatusCallback_v8_1 * This);
6911         
6912         HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( 
6913             IDeckLinkDeckControlStatusCallback_v8_1 * This,
6914             /* [in] */ BMDTimecodeBCD currentTimecode);
6915         
6916         HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( 
6917             IDeckLinkDeckControlStatusCallback_v8_1 * This,
6918             /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,
6919             /* [in] */ BMDDeckControlError error);
6920         
6921         HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( 
6922             IDeckLinkDeckControlStatusCallback_v8_1 * This,
6923             /* [in] */ BMDDeckControlEvent event,
6924             /* [in] */ BMDDeckControlError error);
6925         
6926         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( 
6927             IDeckLinkDeckControlStatusCallback_v8_1 * This,
6928             /* [in] */ BMDDeckControlStatusFlags flags,
6929             /* [in] */ unsigned long mask);
6930         
6931         END_INTERFACE
6932     } IDeckLinkDeckControlStatusCallback_v8_1Vtbl;
6933
6934     interface IDeckLinkDeckControlStatusCallback_v8_1
6935     {
6936         CONST_VTBL struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl *lpVtbl;
6937     };
6938
6939     
6940
6941 #ifdef COBJMACROS
6942
6943
6944 #define IDeckLinkDeckControlStatusCallback_v8_1_QueryInterface(This,riid,ppvObject)     \
6945     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6946
6947 #define IDeckLinkDeckControlStatusCallback_v8_1_AddRef(This)    \
6948     ( (This)->lpVtbl -> AddRef(This) ) 
6949
6950 #define IDeckLinkDeckControlStatusCallback_v8_1_Release(This)   \
6951     ( (This)->lpVtbl -> Release(This) ) 
6952
6953
6954 #define IDeckLinkDeckControlStatusCallback_v8_1_TimecodeUpdate(This,currentTimecode)    \
6955     ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) 
6956
6957 #define IDeckLinkDeckControlStatusCallback_v8_1_VTRControlStateChanged(This,newState,error)     \
6958     ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) 
6959
6960 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlEventReceived(This,event,error)      \
6961     ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) 
6962
6963 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlStatusChanged(This,flags,mask)       \
6964     ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) 
6965
6966 #endif /* COBJMACROS */
6967
6968
6969 #endif  /* C style interface */
6970
6971
6972
6973
6974 #endif  /* __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__ */
6975
6976
6977 #ifndef __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__
6978 #define __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__
6979
6980 /* interface IDeckLinkDeckControl_v8_1 */
6981 /* [helpstring][uuid][object] */ 
6982
6983
6984 EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
6985
6986 #if defined(__cplusplus) && !defined(CINTERFACE)
6987     
6988     MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")
6989     IDeckLinkDeckControl_v8_1 : public IUnknown
6990     {
6991     public:
6992         virtual HRESULT STDMETHODCALLTYPE Open( 
6993             /* [in] */ BMDTimeScale timeScale,
6994             /* [in] */ BMDTimeValue timeValue,
6995             /* [in] */ BOOL timecodeIsDropFrame,
6996             /* [out] */ BMDDeckControlError *error) = 0;
6997         
6998         virtual HRESULT STDMETHODCALLTYPE Close( 
6999             /* [in] */ BOOL standbyOn) = 0;
7000         
7001         virtual HRESULT STDMETHODCALLTYPE GetCurrentState( 
7002             /* [out] */ BMDDeckControlMode *mode,
7003             /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,
7004             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
7005         
7006         virtual HRESULT STDMETHODCALLTYPE SetStandby( 
7007             /* [in] */ BOOL standbyOn) = 0;
7008         
7009         virtual HRESULT STDMETHODCALLTYPE SendCommand( 
7010             /* [in] */ unsigned char *inBuffer,
7011             /* [in] */ unsigned long inBufferSize,
7012             /* [out] */ unsigned char *outBuffer,
7013             /* [out] */ unsigned long *outDataSize,
7014             /* [in] */ unsigned long outBufferSize,
7015             /* [out] */ BMDDeckControlError *error) = 0;
7016         
7017         virtual HRESULT STDMETHODCALLTYPE Play( 
7018             /* [out] */ BMDDeckControlError *error) = 0;
7019         
7020         virtual HRESULT STDMETHODCALLTYPE Stop( 
7021             /* [out] */ BMDDeckControlError *error) = 0;
7022         
7023         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( 
7024             /* [out] */ BMDDeckControlError *error) = 0;
7025         
7026         virtual HRESULT STDMETHODCALLTYPE Eject( 
7027             /* [out] */ BMDDeckControlError *error) = 0;
7028         
7029         virtual HRESULT STDMETHODCALLTYPE GoToTimecode( 
7030             /* [in] */ BMDTimecodeBCD timecode,
7031             /* [out] */ BMDDeckControlError *error) = 0;
7032         
7033         virtual HRESULT STDMETHODCALLTYPE FastForward( 
7034             /* [in] */ BOOL viewTape,
7035             /* [out] */ BMDDeckControlError *error) = 0;
7036         
7037         virtual HRESULT STDMETHODCALLTYPE Rewind( 
7038             /* [in] */ BOOL viewTape,
7039             /* [out] */ BMDDeckControlError *error) = 0;
7040         
7041         virtual HRESULT STDMETHODCALLTYPE StepForward( 
7042             /* [out] */ BMDDeckControlError *error) = 0;
7043         
7044         virtual HRESULT STDMETHODCALLTYPE StepBack( 
7045             /* [out] */ BMDDeckControlError *error) = 0;
7046         
7047         virtual HRESULT STDMETHODCALLTYPE Jog( 
7048             /* [in] */ double rate,
7049             /* [out] */ BMDDeckControlError *error) = 0;
7050         
7051         virtual HRESULT STDMETHODCALLTYPE Shuttle( 
7052             /* [in] */ double rate,
7053             /* [out] */ BMDDeckControlError *error) = 0;
7054         
7055         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( 
7056             /* [out] */ BSTR *currentTimeCode,
7057             /* [out] */ BMDDeckControlError *error) = 0;
7058         
7059         virtual HRESULT STDMETHODCALLTYPE GetTimecode( 
7060             /* [out] */ IDeckLinkTimecode **currentTimecode,
7061             /* [out] */ BMDDeckControlError *error) = 0;
7062         
7063         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( 
7064             /* [out] */ BMDTimecodeBCD *currentTimecode,
7065             /* [out] */ BMDDeckControlError *error) = 0;
7066         
7067         virtual HRESULT STDMETHODCALLTYPE SetPreroll( 
7068             /* [in] */ unsigned long prerollSeconds) = 0;
7069         
7070         virtual HRESULT STDMETHODCALLTYPE GetPreroll( 
7071             /* [out] */ unsigned long *prerollSeconds) = 0;
7072         
7073         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( 
7074             /* [in] */ long exportOffsetFields) = 0;
7075         
7076         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( 
7077             /* [out] */ long *exportOffsetFields) = 0;
7078         
7079         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( 
7080             /* [out] */ long *deckManualExportOffsetFields) = 0;
7081         
7082         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( 
7083             /* [in] */ long captureOffsetFields) = 0;
7084         
7085         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( 
7086             /* [out] */ long *captureOffsetFields) = 0;
7087         
7088         virtual HRESULT STDMETHODCALLTYPE StartExport( 
7089             /* [in] */ BMDTimecodeBCD inTimecode,
7090             /* [in] */ BMDTimecodeBCD outTimecode,
7091             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7092             /* [out] */ BMDDeckControlError *error) = 0;
7093         
7094         virtual HRESULT STDMETHODCALLTYPE StartCapture( 
7095             /* [in] */ BOOL useVITC,
7096             /* [in] */ BMDTimecodeBCD inTimecode,
7097             /* [in] */ BMDTimecodeBCD outTimecode,
7098             /* [out] */ BMDDeckControlError *error) = 0;
7099         
7100         virtual HRESULT STDMETHODCALLTYPE GetDeviceID( 
7101             /* [out] */ unsigned short *deviceId,
7102             /* [out] */ BMDDeckControlError *error) = 0;
7103         
7104         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
7105         
7106         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( 
7107             /* [out] */ BMDDeckControlError *error) = 0;
7108         
7109         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( 
7110             /* [out] */ BMDDeckControlError *error) = 0;
7111         
7112         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
7113             /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0;
7114         
7115     };
7116     
7117 #else   /* C style interface */
7118
7119     typedef struct IDeckLinkDeckControl_v8_1Vtbl
7120     {
7121         BEGIN_INTERFACE
7122         
7123         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
7124             IDeckLinkDeckControl_v8_1 * This,
7125             /* [in] */ REFIID riid,
7126             /* [annotation][iid_is][out] */ 
7127             __RPC__deref_out  void **ppvObject);
7128         
7129         ULONG ( STDMETHODCALLTYPE *AddRef )( 
7130             IDeckLinkDeckControl_v8_1 * This);
7131         
7132         ULONG ( STDMETHODCALLTYPE *Release )( 
7133             IDeckLinkDeckControl_v8_1 * This);
7134         
7135         HRESULT ( STDMETHODCALLTYPE *Open )( 
7136             IDeckLinkDeckControl_v8_1 * This,
7137             /* [in] */ BMDTimeScale timeScale,
7138             /* [in] */ BMDTimeValue timeValue,
7139             /* [in] */ BOOL timecodeIsDropFrame,
7140             /* [out] */ BMDDeckControlError *error);
7141         
7142         HRESULT ( STDMETHODCALLTYPE *Close )( 
7143             IDeckLinkDeckControl_v8_1 * This,
7144             /* [in] */ BOOL standbyOn);
7145         
7146         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( 
7147             IDeckLinkDeckControl_v8_1 * This,
7148             /* [out] */ BMDDeckControlMode *mode,
7149             /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,
7150             /* [out] */ BMDDeckControlStatusFlags *flags);
7151         
7152         HRESULT ( STDMETHODCALLTYPE *SetStandby )( 
7153             IDeckLinkDeckControl_v8_1 * This,
7154             /* [in] */ BOOL standbyOn);
7155         
7156         HRESULT ( STDMETHODCALLTYPE *SendCommand )( 
7157             IDeckLinkDeckControl_v8_1 * This,
7158             /* [in] */ unsigned char *inBuffer,
7159             /* [in] */ unsigned long inBufferSize,
7160             /* [out] */ unsigned char *outBuffer,
7161             /* [out] */ unsigned long *outDataSize,
7162             /* [in] */ unsigned long outBufferSize,
7163             /* [out] */ BMDDeckControlError *error);
7164         
7165         HRESULT ( STDMETHODCALLTYPE *Play )( 
7166             IDeckLinkDeckControl_v8_1 * This,
7167             /* [out] */ BMDDeckControlError *error);
7168         
7169         HRESULT ( STDMETHODCALLTYPE *Stop )( 
7170             IDeckLinkDeckControl_v8_1 * This,
7171             /* [out] */ BMDDeckControlError *error);
7172         
7173         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( 
7174             IDeckLinkDeckControl_v8_1 * This,
7175             /* [out] */ BMDDeckControlError *error);
7176         
7177         HRESULT ( STDMETHODCALLTYPE *Eject )( 
7178             IDeckLinkDeckControl_v8_1 * This,
7179             /* [out] */ BMDDeckControlError *error);
7180         
7181         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( 
7182             IDeckLinkDeckControl_v8_1 * This,
7183             /* [in] */ BMDTimecodeBCD timecode,
7184             /* [out] */ BMDDeckControlError *error);
7185         
7186         HRESULT ( STDMETHODCALLTYPE *FastForward )( 
7187             IDeckLinkDeckControl_v8_1 * This,
7188             /* [in] */ BOOL viewTape,
7189             /* [out] */ BMDDeckControlError *error);
7190         
7191         HRESULT ( STDMETHODCALLTYPE *Rewind )( 
7192             IDeckLinkDeckControl_v8_1 * This,
7193             /* [in] */ BOOL viewTape,
7194             /* [out] */ BMDDeckControlError *error);
7195         
7196         HRESULT ( STDMETHODCALLTYPE *StepForward )( 
7197             IDeckLinkDeckControl_v8_1 * This,
7198             /* [out] */ BMDDeckControlError *error);
7199         
7200         HRESULT ( STDMETHODCALLTYPE *StepBack )( 
7201             IDeckLinkDeckControl_v8_1 * This,
7202             /* [out] */ BMDDeckControlError *error);
7203         
7204         HRESULT ( STDMETHODCALLTYPE *Jog )( 
7205             IDeckLinkDeckControl_v8_1 * This,
7206             /* [in] */ double rate,
7207             /* [out] */ BMDDeckControlError *error);
7208         
7209         HRESULT ( STDMETHODCALLTYPE *Shuttle )( 
7210             IDeckLinkDeckControl_v8_1 * This,
7211             /* [in] */ double rate,
7212             /* [out] */ BMDDeckControlError *error);
7213         
7214         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( 
7215             IDeckLinkDeckControl_v8_1 * This,
7216             /* [out] */ BSTR *currentTimeCode,
7217             /* [out] */ BMDDeckControlError *error);
7218         
7219         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
7220             IDeckLinkDeckControl_v8_1 * This,
7221             /* [out] */ IDeckLinkTimecode **currentTimecode,
7222             /* [out] */ BMDDeckControlError *error);
7223         
7224         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( 
7225             IDeckLinkDeckControl_v8_1 * This,
7226             /* [out] */ BMDTimecodeBCD *currentTimecode,
7227             /* [out] */ BMDDeckControlError *error);
7228         
7229         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( 
7230             IDeckLinkDeckControl_v8_1 * This,
7231             /* [in] */ unsigned long prerollSeconds);
7232         
7233         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( 
7234             IDeckLinkDeckControl_v8_1 * This,
7235             /* [out] */ unsigned long *prerollSeconds);
7236         
7237         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( 
7238             IDeckLinkDeckControl_v8_1 * This,
7239             /* [in] */ long exportOffsetFields);
7240         
7241         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( 
7242             IDeckLinkDeckControl_v8_1 * This,
7243             /* [out] */ long *exportOffsetFields);
7244         
7245         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( 
7246             IDeckLinkDeckControl_v8_1 * This,
7247             /* [out] */ long *deckManualExportOffsetFields);
7248         
7249         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( 
7250             IDeckLinkDeckControl_v8_1 * This,
7251             /* [in] */ long captureOffsetFields);
7252         
7253         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( 
7254             IDeckLinkDeckControl_v8_1 * This,
7255             /* [out] */ long *captureOffsetFields);
7256         
7257         HRESULT ( STDMETHODCALLTYPE *StartExport )( 
7258             IDeckLinkDeckControl_v8_1 * This,
7259             /* [in] */ BMDTimecodeBCD inTimecode,
7260             /* [in] */ BMDTimecodeBCD outTimecode,
7261             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7262             /* [out] */ BMDDeckControlError *error);
7263         
7264         HRESULT ( STDMETHODCALLTYPE *StartCapture )( 
7265             IDeckLinkDeckControl_v8_1 * This,
7266             /* [in] */ BOOL useVITC,
7267             /* [in] */ BMDTimecodeBCD inTimecode,
7268             /* [in] */ BMDTimecodeBCD outTimecode,
7269             /* [out] */ BMDDeckControlError *error);
7270         
7271         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( 
7272             IDeckLinkDeckControl_v8_1 * This,
7273             /* [out] */ unsigned short *deviceId,
7274             /* [out] */ BMDDeckControlError *error);
7275         
7276         HRESULT ( STDMETHODCALLTYPE *Abort )( 
7277             IDeckLinkDeckControl_v8_1 * This);
7278         
7279         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( 
7280             IDeckLinkDeckControl_v8_1 * This,
7281             /* [out] */ BMDDeckControlError *error);
7282         
7283         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( 
7284             IDeckLinkDeckControl_v8_1 * This,
7285             /* [out] */ BMDDeckControlError *error);
7286         
7287         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
7288             IDeckLinkDeckControl_v8_1 * This,
7289             /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback);
7290         
7291         END_INTERFACE
7292     } IDeckLinkDeckControl_v8_1Vtbl;
7293
7294     interface IDeckLinkDeckControl_v8_1
7295     {
7296         CONST_VTBL struct IDeckLinkDeckControl_v8_1Vtbl *lpVtbl;
7297     };
7298
7299     
7300
7301 #ifdef COBJMACROS
7302
7303
7304 #define IDeckLinkDeckControl_v8_1_QueryInterface(This,riid,ppvObject)   \
7305     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
7306
7307 #define IDeckLinkDeckControl_v8_1_AddRef(This)  \
7308     ( (This)->lpVtbl -> AddRef(This) ) 
7309
7310 #define IDeckLinkDeckControl_v8_1_Release(This) \
7311     ( (This)->lpVtbl -> Release(This) ) 
7312
7313
7314 #define IDeckLinkDeckControl_v8_1_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)      \
7315     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) 
7316
7317 #define IDeckLinkDeckControl_v8_1_Close(This,standbyOn) \
7318     ( (This)->lpVtbl -> Close(This,standbyOn) ) 
7319
7320 #define IDeckLinkDeckControl_v8_1_GetCurrentState(This,mode,vtrControlState,flags)      \
7321     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) 
7322
7323 #define IDeckLinkDeckControl_v8_1_SetStandby(This,standbyOn)    \
7324     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) 
7325
7326 #define IDeckLinkDeckControl_v8_1_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)     \
7327     ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) 
7328
7329 #define IDeckLinkDeckControl_v8_1_Play(This,error)      \
7330     ( (This)->lpVtbl -> Play(This,error) ) 
7331
7332 #define IDeckLinkDeckControl_v8_1_Stop(This,error)      \
7333     ( (This)->lpVtbl -> Stop(This,error) ) 
7334
7335 #define IDeckLinkDeckControl_v8_1_TogglePlayStop(This,error)    \
7336     ( (This)->lpVtbl -> TogglePlayStop(This,error) ) 
7337
7338 #define IDeckLinkDeckControl_v8_1_Eject(This,error)     \
7339     ( (This)->lpVtbl -> Eject(This,error) ) 
7340
7341 #define IDeckLinkDeckControl_v8_1_GoToTimecode(This,timecode,error)     \
7342     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) 
7343
7344 #define IDeckLinkDeckControl_v8_1_FastForward(This,viewTape,error)      \
7345     ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) 
7346
7347 #define IDeckLinkDeckControl_v8_1_Rewind(This,viewTape,error)   \
7348     ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) 
7349
7350 #define IDeckLinkDeckControl_v8_1_StepForward(This,error)       \
7351     ( (This)->lpVtbl -> StepForward(This,error) ) 
7352
7353 #define IDeckLinkDeckControl_v8_1_StepBack(This,error)  \
7354     ( (This)->lpVtbl -> StepBack(This,error) ) 
7355
7356 #define IDeckLinkDeckControl_v8_1_Jog(This,rate,error)  \
7357     ( (This)->lpVtbl -> Jog(This,rate,error) ) 
7358
7359 #define IDeckLinkDeckControl_v8_1_Shuttle(This,rate,error)      \
7360     ( (This)->lpVtbl -> Shuttle(This,rate,error) ) 
7361
7362 #define IDeckLinkDeckControl_v8_1_GetTimecodeString(This,currentTimeCode,error) \
7363     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) 
7364
7365 #define IDeckLinkDeckControl_v8_1_GetTimecode(This,currentTimecode,error)       \
7366     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) 
7367
7368 #define IDeckLinkDeckControl_v8_1_GetTimecodeBCD(This,currentTimecode,error)    \
7369     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) 
7370
7371 #define IDeckLinkDeckControl_v8_1_SetPreroll(This,prerollSeconds)       \
7372     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) 
7373
7374 #define IDeckLinkDeckControl_v8_1_GetPreroll(This,prerollSeconds)       \
7375     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) 
7376
7377 #define IDeckLinkDeckControl_v8_1_SetExportOffset(This,exportOffsetFields)      \
7378     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) 
7379
7380 #define IDeckLinkDeckControl_v8_1_GetExportOffset(This,exportOffsetFields)      \
7381     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) 
7382
7383 #define IDeckLinkDeckControl_v8_1_GetManualExportOffset(This,deckManualExportOffsetFields)      \
7384     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) 
7385
7386 #define IDeckLinkDeckControl_v8_1_SetCaptureOffset(This,captureOffsetFields)    \
7387     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) 
7388
7389 #define IDeckLinkDeckControl_v8_1_GetCaptureOffset(This,captureOffsetFields)    \
7390     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) 
7391
7392 #define IDeckLinkDeckControl_v8_1_StartExport(This,inTimecode,outTimecode,exportModeOps,error)  \
7393     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) 
7394
7395 #define IDeckLinkDeckControl_v8_1_StartCapture(This,useVITC,inTimecode,outTimecode,error)       \
7396     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) 
7397
7398 #define IDeckLinkDeckControl_v8_1_GetDeviceID(This,deviceId,error)      \
7399     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) 
7400
7401 #define IDeckLinkDeckControl_v8_1_Abort(This)   \
7402     ( (This)->lpVtbl -> Abort(This) ) 
7403
7404 #define IDeckLinkDeckControl_v8_1_CrashRecordStart(This,error)  \
7405     ( (This)->lpVtbl -> CrashRecordStart(This,error) ) 
7406
7407 #define IDeckLinkDeckControl_v8_1_CrashRecordStop(This,error)   \
7408     ( (This)->lpVtbl -> CrashRecordStop(This,error) ) 
7409
7410 #define IDeckLinkDeckControl_v8_1_SetCallback(This,callback)    \
7411     ( (This)->lpVtbl -> SetCallback(This,callback) ) 
7412
7413 #endif /* COBJMACROS */
7414
7415
7416 #endif  /* C style interface */
7417
7418
7419
7420
7421 #endif  /* __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__ */
7422
7423
7424 #ifndef __IDeckLink_v8_0_INTERFACE_DEFINED__
7425 #define __IDeckLink_v8_0_INTERFACE_DEFINED__
7426
7427 /* interface IDeckLink_v8_0 */
7428 /* [helpstring][uuid][object] */ 
7429
7430
7431 EXTERN_C const IID IID_IDeckLink_v8_0;
7432
7433 #if defined(__cplusplus) && !defined(CINTERFACE)
7434     
7435     MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")
7436     IDeckLink_v8_0 : public IUnknown
7437     {
7438     public:
7439         virtual HRESULT STDMETHODCALLTYPE GetModelName( 
7440             /* [out] */ BSTR *modelName) = 0;
7441         
7442     };
7443     
7444 #else   /* C style interface */
7445
7446     typedef struct IDeckLink_v8_0Vtbl
7447     {
7448         BEGIN_INTERFACE
7449         
7450         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
7451             IDeckLink_v8_0 * This,
7452             /* [in] */ REFIID riid,
7453             /* [annotation][iid_is][out] */ 
7454             __RPC__deref_out  void **ppvObject);
7455         
7456         ULONG ( STDMETHODCALLTYPE *AddRef )( 
7457             IDeckLink_v8_0 * This);
7458         
7459         ULONG ( STDMETHODCALLTYPE *Release )( 
7460             IDeckLink_v8_0 * This);
7461         
7462         HRESULT ( STDMETHODCALLTYPE *GetModelName )( 
7463             IDeckLink_v8_0 * This,
7464             /* [out] */ BSTR *modelName);
7465         
7466         END_INTERFACE
7467     } IDeckLink_v8_0Vtbl;
7468
7469     interface IDeckLink_v8_0
7470     {
7471         CONST_VTBL struct IDeckLink_v8_0Vtbl *lpVtbl;
7472     };
7473
7474     
7475
7476 #ifdef COBJMACROS
7477
7478
7479 #define IDeckLink_v8_0_QueryInterface(This,riid,ppvObject)      \
7480     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
7481
7482 #define IDeckLink_v8_0_AddRef(This)     \
7483     ( (This)->lpVtbl -> AddRef(This) ) 
7484
7485 #define IDeckLink_v8_0_Release(This)    \
7486     ( (This)->lpVtbl -> Release(This) ) 
7487
7488
7489 #define IDeckLink_v8_0_GetModelName(This,modelName)     \
7490     ( (This)->lpVtbl -> GetModelName(This,modelName) ) 
7491
7492 #endif /* COBJMACROS */
7493
7494
7495 #endif  /* C style interface */
7496
7497
7498
7499
7500 #endif  /* __IDeckLink_v8_0_INTERFACE_DEFINED__ */
7501
7502
7503 #ifndef __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__
7504 #define __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__
7505
7506 /* interface IDeckLinkIterator_v8_0 */
7507 /* [helpstring][uuid][object] */ 
7508
7509
7510 EXTERN_C const IID IID_IDeckLinkIterator_v8_0;
7511
7512 #if defined(__cplusplus) && !defined(CINTERFACE)
7513     
7514     MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")
7515     IDeckLinkIterator_v8_0 : public IUnknown
7516     {
7517     public:
7518         virtual HRESULT STDMETHODCALLTYPE Next( 
7519             /* [out] */ IDeckLink_v8_0 **deckLinkInstance) = 0;
7520         
7521     };
7522     
7523 #else   /* C style interface */
7524
7525     typedef struct IDeckLinkIterator_v8_0Vtbl
7526     {
7527         BEGIN_INTERFACE
7528         
7529         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
7530             IDeckLinkIterator_v8_0 * This,
7531             /* [in] */ REFIID riid,
7532             /* [annotation][iid_is][out] */ 
7533             __RPC__deref_out  void **ppvObject);
7534         
7535         ULONG ( STDMETHODCALLTYPE *AddRef )( 
7536             IDeckLinkIterator_v8_0 * This);
7537         
7538         ULONG ( STDMETHODCALLTYPE *Release )( 
7539             IDeckLinkIterator_v8_0 * This);
7540         
7541         HRESULT ( STDMETHODCALLTYPE *Next )( 
7542             IDeckLinkIterator_v8_0 * This,
7543             /* [out] */ IDeckLink_v8_0 **deckLinkInstance);
7544         
7545         END_INTERFACE
7546     } IDeckLinkIterator_v8_0Vtbl;
7547
7548     interface IDeckLinkIterator_v8_0
7549     {
7550         CONST_VTBL struct IDeckLinkIterator_v8_0Vtbl *lpVtbl;
7551     };
7552
7553     
7554
7555 #ifdef COBJMACROS
7556
7557
7558 #define IDeckLinkIterator_v8_0_QueryInterface(This,riid,ppvObject)      \
7559     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
7560
7561 #define IDeckLinkIterator_v8_0_AddRef(This)     \
7562     ( (This)->lpVtbl -> AddRef(This) ) 
7563
7564 #define IDeckLinkIterator_v8_0_Release(This)    \
7565     ( (This)->lpVtbl -> Release(This) ) 
7566
7567
7568 #define IDeckLinkIterator_v8_0_Next(This,deckLinkInstance)      \
7569     ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) 
7570
7571 #endif /* COBJMACROS */
7572
7573
7574 #endif  /* C style interface */
7575
7576
7577
7578
7579 #endif  /* __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__ */
7580
7581
7582 EXTERN_C const CLSID CLSID_CDeckLinkIterator_v8_0;
7583
7584 #ifdef __cplusplus
7585
7586 class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")
7587 CDeckLinkIterator_v8_0;
7588 #endif
7589
7590 #ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__
7591 #define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__
7592
7593 /* interface IDeckLinkDeckControl_v7_9 */
7594 /* [helpstring][uuid][object] */ 
7595
7596
7597 EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
7598
7599 #if defined(__cplusplus) && !defined(CINTERFACE)
7600     
7601     MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")
7602     IDeckLinkDeckControl_v7_9 : public IUnknown
7603     {
7604     public:
7605         virtual HRESULT STDMETHODCALLTYPE Open( 
7606             /* [in] */ BMDTimeScale timeScale,
7607             /* [in] */ BMDTimeValue timeValue,
7608             /* [in] */ BOOL timecodeIsDropFrame,
7609             /* [out] */ BMDDeckControlError *error) = 0;
7610         
7611         virtual HRESULT STDMETHODCALLTYPE Close( 
7612             /* [in] */ BOOL standbyOn) = 0;
7613         
7614         virtual HRESULT STDMETHODCALLTYPE GetCurrentState( 
7615             /* [out] */ BMDDeckControlMode *mode,
7616             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
7617             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
7618         
7619         virtual HRESULT STDMETHODCALLTYPE SetStandby( 
7620             /* [in] */ BOOL standbyOn) = 0;
7621         
7622         virtual HRESULT STDMETHODCALLTYPE Play( 
7623             /* [out] */ BMDDeckControlError *error) = 0;
7624         
7625         virtual HRESULT STDMETHODCALLTYPE Stop( 
7626             /* [out] */ BMDDeckControlError *error) = 0;
7627         
7628         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( 
7629             /* [out] */ BMDDeckControlError *error) = 0;
7630         
7631         virtual HRESULT STDMETHODCALLTYPE Eject( 
7632             /* [out] */ BMDDeckControlError *error) = 0;
7633         
7634         virtual HRESULT STDMETHODCALLTYPE GoToTimecode( 
7635             /* [in] */ BMDTimecodeBCD timecode,
7636             /* [out] */ BMDDeckControlError *error) = 0;
7637         
7638         virtual HRESULT STDMETHODCALLTYPE FastForward( 
7639             /* [in] */ BOOL viewTape,
7640             /* [out] */ BMDDeckControlError *error) = 0;
7641         
7642         virtual HRESULT STDMETHODCALLTYPE Rewind( 
7643             /* [in] */ BOOL viewTape,
7644             /* [out] */ BMDDeckControlError *error) = 0;
7645         
7646         virtual HRESULT STDMETHODCALLTYPE StepForward( 
7647             /* [out] */ BMDDeckControlError *error) = 0;
7648         
7649         virtual HRESULT STDMETHODCALLTYPE StepBack( 
7650             /* [out] */ BMDDeckControlError *error) = 0;
7651         
7652         virtual HRESULT STDMETHODCALLTYPE Jog( 
7653             /* [in] */ double rate,
7654             /* [out] */ BMDDeckControlError *error) = 0;
7655         
7656         virtual HRESULT STDMETHODCALLTYPE Shuttle( 
7657             /* [in] */ double rate,
7658             /* [out] */ BMDDeckControlError *error) = 0;
7659         
7660         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( 
7661             /* [out] */ BSTR *currentTimeCode,
7662             /* [out] */ BMDDeckControlError *error) = 0;
7663         
7664         virtual HRESULT STDMETHODCALLTYPE GetTimecode( 
7665             /* [out] */ IDeckLinkTimecode **currentTimecode,
7666             /* [out] */ BMDDeckControlError *error) = 0;
7667         
7668         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( 
7669             /* [out] */ BMDTimecodeBCD *currentTimecode,
7670             /* [out] */ BMDDeckControlError *error) = 0;
7671         
7672         virtual HRESULT STDMETHODCALLTYPE SetPreroll( 
7673             /* [in] */ unsigned long prerollSeconds) = 0;
7674         
7675         virtual HRESULT STDMETHODCALLTYPE GetPreroll( 
7676             /* [out] */ unsigned long *prerollSeconds) = 0;
7677         
7678         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( 
7679             /* [in] */ long exportOffsetFields) = 0;
7680         
7681         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( 
7682             /* [out] */ long *exportOffsetFields) = 0;
7683         
7684         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( 
7685             /* [out] */ long *deckManualExportOffsetFields) = 0;
7686         
7687         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( 
7688             /* [in] */ long captureOffsetFields) = 0;
7689         
7690         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( 
7691             /* [out] */ long *captureOffsetFields) = 0;
7692         
7693         virtual HRESULT STDMETHODCALLTYPE StartExport( 
7694             /* [in] */ BMDTimecodeBCD inTimecode,
7695             /* [in] */ BMDTimecodeBCD outTimecode,
7696             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7697             /* [out] */ BMDDeckControlError *error) = 0;
7698         
7699         virtual HRESULT STDMETHODCALLTYPE StartCapture( 
7700             /* [in] */ BOOL useVITC,
7701             /* [in] */ BMDTimecodeBCD inTimecode,
7702             /* [in] */ BMDTimecodeBCD outTimecode,
7703             /* [out] */ BMDDeckControlError *error) = 0;
7704         
7705         virtual HRESULT STDMETHODCALLTYPE GetDeviceID( 
7706             /* [out] */ unsigned short *deviceId,
7707             /* [out] */ BMDDeckControlError *error) = 0;
7708         
7709         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
7710         
7711         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( 
7712             /* [out] */ BMDDeckControlError *error) = 0;
7713         
7714         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( 
7715             /* [out] */ BMDDeckControlError *error) = 0;
7716         
7717         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
7718             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
7719         
7720     };
7721     
7722 #else   /* C style interface */
7723
7724     typedef struct IDeckLinkDeckControl_v7_9Vtbl
7725     {
7726         BEGIN_INTERFACE
7727         
7728         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
7729             IDeckLinkDeckControl_v7_9 * This,
7730             /* [in] */ REFIID riid,
7731             /* [annotation][iid_is][out] */ 
7732             __RPC__deref_out  void **ppvObject);
7733         
7734         ULONG ( STDMETHODCALLTYPE *AddRef )( 
7735             IDeckLinkDeckControl_v7_9 * This);
7736         
7737         ULONG ( STDMETHODCALLTYPE *Release )( 
7738             IDeckLinkDeckControl_v7_9 * This);
7739         
7740         HRESULT ( STDMETHODCALLTYPE *Open )( 
7741             IDeckLinkDeckControl_v7_9 * This,
7742             /* [in] */ BMDTimeScale timeScale,
7743             /* [in] */ BMDTimeValue timeValue,
7744             /* [in] */ BOOL timecodeIsDropFrame,
7745             /* [out] */ BMDDeckControlError *error);
7746         
7747         HRESULT ( STDMETHODCALLTYPE *Close )( 
7748             IDeckLinkDeckControl_v7_9 * This,
7749             /* [in] */ BOOL standbyOn);
7750         
7751         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( 
7752             IDeckLinkDeckControl_v7_9 * This,
7753             /* [out] */ BMDDeckControlMode *mode,
7754             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
7755             /* [out] */ BMDDeckControlStatusFlags *flags);
7756         
7757         HRESULT ( STDMETHODCALLTYPE *SetStandby )( 
7758             IDeckLinkDeckControl_v7_9 * This,
7759             /* [in] */ BOOL standbyOn);
7760         
7761         HRESULT ( STDMETHODCALLTYPE *Play )( 
7762             IDeckLinkDeckControl_v7_9 * This,
7763             /* [out] */ BMDDeckControlError *error);
7764         
7765         HRESULT ( STDMETHODCALLTYPE *Stop )( 
7766             IDeckLinkDeckControl_v7_9 * This,
7767             /* [out] */ BMDDeckControlError *error);
7768         
7769         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( 
7770             IDeckLinkDeckControl_v7_9 * This,
7771             /* [out] */ BMDDeckControlError *error);
7772         
7773         HRESULT ( STDMETHODCALLTYPE *Eject )( 
7774             IDeckLinkDeckControl_v7_9 * This,
7775             /* [out] */ BMDDeckControlError *error);
7776         
7777         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( 
7778             IDeckLinkDeckControl_v7_9 * This,
7779             /* [in] */ BMDTimecodeBCD timecode,
7780             /* [out] */ BMDDeckControlError *error);
7781         
7782         HRESULT ( STDMETHODCALLTYPE *FastForward )( 
7783             IDeckLinkDeckControl_v7_9 * This,
7784             /* [in] */ BOOL viewTape,
7785             /* [out] */ BMDDeckControlError *error);
7786         
7787         HRESULT ( STDMETHODCALLTYPE *Rewind )( 
7788             IDeckLinkDeckControl_v7_9 * This,
7789             /* [in] */ BOOL viewTape,
7790             /* [out] */ BMDDeckControlError *error);
7791         
7792         HRESULT ( STDMETHODCALLTYPE *StepForward )( 
7793             IDeckLinkDeckControl_v7_9 * This,
7794             /* [out] */ BMDDeckControlError *error);
7795         
7796         HRESULT ( STDMETHODCALLTYPE *StepBack )( 
7797             IDeckLinkDeckControl_v7_9 * This,
7798             /* [out] */ BMDDeckControlError *error);
7799         
7800         HRESULT ( STDMETHODCALLTYPE *Jog )( 
7801             IDeckLinkDeckControl_v7_9 * This,
7802             /* [in] */ double rate,
7803             /* [out] */ BMDDeckControlError *error);
7804         
7805         HRESULT ( STDMETHODCALLTYPE *Shuttle )( 
7806             IDeckLinkDeckControl_v7_9 * This,
7807             /* [in] */ double rate,
7808             /* [out] */ BMDDeckControlError *error);
7809         
7810         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( 
7811             IDeckLinkDeckControl_v7_9 * This,
7812             /* [out] */ BSTR *currentTimeCode,
7813             /* [out] */ BMDDeckControlError *error);
7814         
7815         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
7816             IDeckLinkDeckControl_v7_9 * This,
7817             /* [out] */ IDeckLinkTimecode **currentTimecode,
7818             /* [out] */ BMDDeckControlError *error);
7819         
7820         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( 
7821             IDeckLinkDeckControl_v7_9 * This,
7822             /* [out] */ BMDTimecodeBCD *currentTimecode,
7823             /* [out] */ BMDDeckControlError *error);
7824         
7825         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( 
7826             IDeckLinkDeckControl_v7_9 * This,
7827             /* [in] */ unsigned long prerollSeconds);
7828         
7829         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( 
7830             IDeckLinkDeckControl_v7_9 * This,
7831             /* [out] */ unsigned long *prerollSeconds);
7832         
7833         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( 
7834             IDeckLinkDeckControl_v7_9 * This,
7835             /* [in] */ long exportOffsetFields);
7836         
7837         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( 
7838             IDeckLinkDeckControl_v7_9 * This,
7839             /* [out] */ long *exportOffsetFields);
7840         
7841         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( 
7842             IDeckLinkDeckControl_v7_9 * This,
7843             /* [out] */ long *deckManualExportOffsetFields);
7844         
7845         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( 
7846             IDeckLinkDeckControl_v7_9 * This,
7847             /* [in] */ long captureOffsetFields);
7848         
7849         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( 
7850             IDeckLinkDeckControl_v7_9 * This,
7851             /* [out] */ long *captureOffsetFields);
7852         
7853         HRESULT ( STDMETHODCALLTYPE *StartExport )( 
7854             IDeckLinkDeckControl_v7_9 * This,
7855             /* [in] */ BMDTimecodeBCD inTimecode,
7856             /* [in] */ BMDTimecodeBCD outTimecode,
7857             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7858             /* [out] */ BMDDeckControlError *error);
7859         
7860         HRESULT ( STDMETHODCALLTYPE *StartCapture )( 
7861             IDeckLinkDeckControl_v7_9 * This,
7862             /* [in] */ BOOL useVITC,
7863             /* [in] */ BMDTimecodeBCD inTimecode,
7864             /* [in] */ BMDTimecodeBCD outTimecode,
7865             /* [out] */ BMDDeckControlError *error);
7866         
7867         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( 
7868             IDeckLinkDeckControl_v7_9 * This,
7869             /* [out] */ unsigned short *deviceId,
7870             /* [out] */ BMDDeckControlError *error);
7871         
7872         HRESULT ( STDMETHODCALLTYPE *Abort )( 
7873             IDeckLinkDeckControl_v7_9 * This);
7874         
7875         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( 
7876             IDeckLinkDeckControl_v7_9 * This,
7877             /* [out] */ BMDDeckControlError *error);
7878         
7879         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( 
7880             IDeckLinkDeckControl_v7_9 * This,
7881             /* [out] */ BMDDeckControlError *error);
7882         
7883         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
7884             IDeckLinkDeckControl_v7_9 * This,
7885             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
7886         
7887         END_INTERFACE
7888     } IDeckLinkDeckControl_v7_9Vtbl;
7889
7890     interface IDeckLinkDeckControl_v7_9
7891     {
7892         CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;
7893     };
7894
7895     
7896
7897 #ifdef COBJMACROS
7898
7899
7900 #define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject)   \
7901     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
7902
7903 #define IDeckLinkDeckControl_v7_9_AddRef(This)  \
7904     ( (This)->lpVtbl -> AddRef(This) ) 
7905
7906 #define IDeckLinkDeckControl_v7_9_Release(This) \
7907     ( (This)->lpVtbl -> Release(This) ) 
7908
7909
7910 #define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)      \
7911     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) 
7912
7913 #define IDeckLinkDeckControl_v7_9_Close(This,standbyOn) \
7914     ( (This)->lpVtbl -> Close(This,standbyOn) ) 
7915
7916 #define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags)      \
7917     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) 
7918
7919 #define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn)    \
7920     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) 
7921
7922 #define IDeckLinkDeckControl_v7_9_Play(This,error)      \
7923     ( (This)->lpVtbl -> Play(This,error) ) 
7924
7925 #define IDeckLinkDeckControl_v7_9_Stop(This,error)      \
7926     ( (This)->lpVtbl -> Stop(This,error) ) 
7927
7928 #define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error)    \
7929     ( (This)->lpVtbl -> TogglePlayStop(This,error) ) 
7930
7931 #define IDeckLinkDeckControl_v7_9_Eject(This,error)     \
7932     ( (This)->lpVtbl -> Eject(This,error) ) 
7933
7934 #define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error)     \
7935     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) 
7936
7937 #define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error)      \
7938     ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) 
7939
7940 #define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error)   \
7941     ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) 
7942
7943 #define IDeckLinkDeckControl_v7_9_StepForward(This,error)       \
7944     ( (This)->lpVtbl -> StepForward(This,error) ) 
7945
7946 #define IDeckLinkDeckControl_v7_9_StepBack(This,error)  \
7947     ( (This)->lpVtbl -> StepBack(This,error) ) 
7948
7949 #define IDeckLinkDeckControl_v7_9_Jog(This,rate,error)  \
7950     ( (This)->lpVtbl -> Jog(This,rate,error) ) 
7951
7952 #define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error)      \
7953     ( (This)->lpVtbl -> Shuttle(This,rate,error) ) 
7954
7955 #define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error) \
7956     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) 
7957
7958 #define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error)       \
7959     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) 
7960
7961 #define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error)    \
7962     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) 
7963
7964 #define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds)       \
7965     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) 
7966
7967 #define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds)       \
7968     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) 
7969
7970 #define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields)      \
7971     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) 
7972
7973 #define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields)      \
7974     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) 
7975
7976 #define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields)      \
7977     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) 
7978
7979 #define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields)    \
7980     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) 
7981
7982 #define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields)    \
7983     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) 
7984
7985 #define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error)  \
7986     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) 
7987
7988 #define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error)       \
7989     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) 
7990
7991 #define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error)      \
7992     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) 
7993
7994 #define IDeckLinkDeckControl_v7_9_Abort(This)   \
7995     ( (This)->lpVtbl -> Abort(This) ) 
7996
7997 #define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error)  \
7998     ( (This)->lpVtbl -> CrashRecordStart(This,error) ) 
7999
8000 #define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error)   \
8001     ( (This)->lpVtbl -> CrashRecordStop(This,error) ) 
8002
8003 #define IDeckLinkDeckControl_v7_9_SetCallback(This,callback)    \
8004     ( (This)->lpVtbl -> SetCallback(This,callback) ) 
8005
8006 #endif /* COBJMACROS */
8007
8008
8009 #endif  /* C style interface */
8010
8011
8012
8013
8014 #endif  /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */
8015
8016
8017 #ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
8018 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
8019
8020 /* interface IDeckLinkDisplayModeIterator_v7_6 */
8021 /* [helpstring][uuid][object] */ 
8022
8023
8024 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;
8025
8026 #if defined(__cplusplus) && !defined(CINTERFACE)
8027     
8028     MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")
8029     IDeckLinkDisplayModeIterator_v7_6 : public IUnknown
8030     {
8031     public:
8032         virtual HRESULT STDMETHODCALLTYPE Next( 
8033             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;
8034         
8035     };
8036     
8037 #else   /* C style interface */
8038
8039     typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl
8040     {
8041         BEGIN_INTERFACE
8042         
8043         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8044             IDeckLinkDisplayModeIterator_v7_6 * This,
8045             /* [in] */ REFIID riid,
8046             /* [annotation][iid_is][out] */ 
8047             __RPC__deref_out  void **ppvObject);
8048         
8049         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8050             IDeckLinkDisplayModeIterator_v7_6 * This);
8051         
8052         ULONG ( STDMETHODCALLTYPE *Release )( 
8053             IDeckLinkDisplayModeIterator_v7_6 * This);
8054         
8055         HRESULT ( STDMETHODCALLTYPE *Next )( 
8056             IDeckLinkDisplayModeIterator_v7_6 * This,
8057             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);
8058         
8059         END_INTERFACE
8060     } IDeckLinkDisplayModeIterator_v7_6Vtbl;
8061
8062     interface IDeckLinkDisplayModeIterator_v7_6
8063     {
8064         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;
8065     };
8066
8067     
8068
8069 #ifdef COBJMACROS
8070
8071
8072 #define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject)   \
8073     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
8074
8075 #define IDeckLinkDisplayModeIterator_v7_6_AddRef(This)  \
8076     ( (This)->lpVtbl -> AddRef(This) ) 
8077
8078 #define IDeckLinkDisplayModeIterator_v7_6_Release(This) \
8079     ( (This)->lpVtbl -> Release(This) ) 
8080
8081
8082 #define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode)        \
8083     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) 
8084
8085 #endif /* COBJMACROS */
8086
8087
8088 #endif  /* C style interface */
8089
8090
8091
8092
8093 #endif  /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */
8094
8095
8096 #ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
8097 #define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
8098
8099 /* interface IDeckLinkDisplayMode_v7_6 */
8100 /* [helpstring][uuid][object] */ 
8101
8102
8103 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;
8104
8105 #if defined(__cplusplus) && !defined(CINTERFACE)
8106     
8107     MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")
8108     IDeckLinkDisplayMode_v7_6 : public IUnknown
8109     {
8110     public:
8111         virtual HRESULT STDMETHODCALLTYPE GetName( 
8112             /* [out] */ BSTR *name) = 0;
8113         
8114         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
8115         
8116         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
8117         
8118         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
8119         
8120         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( 
8121             /* [out] */ BMDTimeValue *frameDuration,
8122             /* [out] */ BMDTimeScale *timeScale) = 0;
8123         
8124         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
8125         
8126     };
8127     
8128 #else   /* C style interface */
8129
8130     typedef struct IDeckLinkDisplayMode_v7_6Vtbl
8131     {
8132         BEGIN_INTERFACE
8133         
8134         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8135             IDeckLinkDisplayMode_v7_6 * This,
8136             /* [in] */ REFIID riid,
8137             /* [annotation][iid_is][out] */ 
8138             __RPC__deref_out  void **ppvObject);
8139         
8140         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8141             IDeckLinkDisplayMode_v7_6 * This);
8142         
8143         ULONG ( STDMETHODCALLTYPE *Release )( 
8144             IDeckLinkDisplayMode_v7_6 * This);
8145         
8146         HRESULT ( STDMETHODCALLTYPE *GetName )( 
8147             IDeckLinkDisplayMode_v7_6 * This,
8148             /* [out] */ BSTR *name);
8149         
8150         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( 
8151             IDeckLinkDisplayMode_v7_6 * This);
8152         
8153         long ( STDMETHODCALLTYPE *GetWidth )( 
8154             IDeckLinkDisplayMode_v7_6 * This);
8155         
8156         long ( STDMETHODCALLTYPE *GetHeight )( 
8157             IDeckLinkDisplayMode_v7_6 * This);
8158         
8159         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( 
8160             IDeckLinkDisplayMode_v7_6 * This,
8161             /* [out] */ BMDTimeValue *frameDuration,
8162             /* [out] */ BMDTimeScale *timeScale);
8163         
8164         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( 
8165             IDeckLinkDisplayMode_v7_6 * This);
8166         
8167         END_INTERFACE
8168     } IDeckLinkDisplayMode_v7_6Vtbl;
8169
8170     interface IDeckLinkDisplayMode_v7_6
8171     {
8172         CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;
8173     };
8174
8175     
8176
8177 #ifdef COBJMACROS
8178
8179
8180 #define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject)   \
8181     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
8182
8183 #define IDeckLinkDisplayMode_v7_6_AddRef(This)  \
8184     ( (This)->lpVtbl -> AddRef(This) ) 
8185
8186 #define IDeckLinkDisplayMode_v7_6_Release(This) \
8187     ( (This)->lpVtbl -> Release(This) ) 
8188
8189
8190 #define IDeckLinkDisplayMode_v7_6_GetName(This,name)    \
8191     ( (This)->lpVtbl -> GetName(This,name) ) 
8192
8193 #define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This)  \
8194     ( (This)->lpVtbl -> GetDisplayMode(This) ) 
8195
8196 #define IDeckLinkDisplayMode_v7_6_GetWidth(This)        \
8197     ( (This)->lpVtbl -> GetWidth(This) ) 
8198
8199 #define IDeckLinkDisplayMode_v7_6_GetHeight(This)       \
8200     ( (This)->lpVtbl -> GetHeight(This) ) 
8201
8202 #define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale)    \
8203     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) 
8204
8205 #define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This)       \
8206     ( (This)->lpVtbl -> GetFieldDominance(This) ) 
8207
8208 #endif /* COBJMACROS */
8209
8210
8211 #endif  /* C style interface */
8212
8213
8214
8215
8216 #endif  /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */
8217
8218
8219 #ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
8220 #define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
8221
8222 /* interface IDeckLinkOutput_v7_6 */
8223 /* [helpstring][local][uuid][object] */ 
8224
8225
8226 EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
8227
8228 #if defined(__cplusplus) && !defined(CINTERFACE)
8229     
8230     MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")
8231     IDeckLinkOutput_v7_6 : public IUnknown
8232     {
8233     public:
8234         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
8235             BMDDisplayMode displayMode,
8236             BMDPixelFormat pixelFormat,
8237             /* [out] */ BMDDisplayModeSupport *result) = 0;
8238         
8239         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
8240             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
8241         
8242         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
8243             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
8244         
8245         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( 
8246             BMDDisplayMode displayMode,
8247             BMDVideoOutputFlags flags) = 0;
8248         
8249         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
8250         
8251         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( 
8252             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
8253         
8254         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( 
8255             long width,
8256             long height,
8257             long rowBytes,
8258             BMDPixelFormat pixelFormat,
8259             BMDFrameFlags flags,
8260             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
8261         
8262         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( 
8263             BMDPixelFormat pixelFormat,
8264             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
8265         
8266         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( 
8267             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
8268         
8269         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( 
8270             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
8271             BMDTimeValue displayTime,
8272             BMDTimeValue displayDuration,
8273             BMDTimeScale timeScale) = 0;
8274         
8275         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( 
8276             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;
8277         
8278         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( 
8279             /* [out] */ unsigned long *bufferedFrameCount) = 0;
8280         
8281         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( 
8282             BMDAudioSampleRate sampleRate,
8283             BMDAudioSampleType sampleType,
8284             unsigned long channelCount,
8285             BMDAudioOutputStreamType streamType) = 0;
8286         
8287         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
8288         
8289         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( 
8290             /* [in] */ void *buffer,
8291             unsigned long sampleFrameCount,
8292             /* [out] */ unsigned long *sampleFramesWritten) = 0;
8293         
8294         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
8295         
8296         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
8297         
8298         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( 
8299             /* [in] */ void *buffer,
8300             unsigned long sampleFrameCount,
8301             BMDTimeValue streamTime,
8302             BMDTimeScale timeScale,
8303             /* [out] */ unsigned long *sampleFramesWritten) = 0;
8304         
8305         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( 
8306             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
8307         
8308         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
8309         
8310         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( 
8311             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
8312         
8313         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( 
8314             BMDTimeValue playbackStartTime,
8315             BMDTimeScale timeScale,
8316             double playbackSpeed) = 0;
8317         
8318         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( 
8319             BMDTimeValue stopPlaybackAtTime,
8320             /* [out] */ BMDTimeValue *actualStopTime,
8321             BMDTimeScale timeScale) = 0;
8322         
8323         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( 
8324             /* [out] */ BOOL *active) = 0;
8325         
8326         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( 
8327             BMDTimeScale desiredTimeScale,
8328             /* [out] */ BMDTimeValue *streamTime,
8329             /* [out] */ double *playbackSpeed) = 0;
8330         
8331         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
8332             BMDTimeScale desiredTimeScale,
8333             /* [out] */ BMDTimeValue *hardwareTime,
8334             /* [out] */ BMDTimeValue *timeInFrame,
8335             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
8336         
8337     };
8338     
8339 #else   /* C style interface */
8340
8341     typedef struct IDeckLinkOutput_v7_6Vtbl
8342     {
8343         BEGIN_INTERFACE
8344         
8345         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8346             IDeckLinkOutput_v7_6 * This,
8347             /* [in] */ REFIID riid,
8348             /* [annotation][iid_is][out] */ 
8349             __RPC__deref_out  void **ppvObject);
8350         
8351         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8352             IDeckLinkOutput_v7_6 * This);
8353         
8354         ULONG ( STDMETHODCALLTYPE *Release )( 
8355             IDeckLinkOutput_v7_6 * This);
8356         
8357         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
8358             IDeckLinkOutput_v7_6 * This,
8359             BMDDisplayMode displayMode,
8360             BMDPixelFormat pixelFormat,
8361             /* [out] */ BMDDisplayModeSupport *result);
8362         
8363         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
8364             IDeckLinkOutput_v7_6 * This,
8365             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
8366         
8367         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
8368             IDeckLinkOutput_v7_6 * This,
8369             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
8370         
8371         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( 
8372             IDeckLinkOutput_v7_6 * This,
8373             BMDDisplayMode displayMode,
8374             BMDVideoOutputFlags flags);
8375         
8376         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( 
8377             IDeckLinkOutput_v7_6 * This);
8378         
8379         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( 
8380             IDeckLinkOutput_v7_6 * This,
8381             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
8382         
8383         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( 
8384             IDeckLinkOutput_v7_6 * This,
8385             long width,
8386             long height,
8387             long rowBytes,
8388             BMDPixelFormat pixelFormat,
8389             BMDFrameFlags flags,
8390             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
8391         
8392         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( 
8393             IDeckLinkOutput_v7_6 * This,
8394             BMDPixelFormat pixelFormat,
8395             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
8396         
8397         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( 
8398             IDeckLinkOutput_v7_6 * This,
8399             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
8400         
8401         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( 
8402             IDeckLinkOutput_v7_6 * This,
8403             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
8404             BMDTimeValue displayTime,
8405             BMDTimeValue displayDuration,
8406             BMDTimeScale timeScale);
8407         
8408         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( 
8409             IDeckLinkOutput_v7_6 * This,
8410             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);
8411         
8412         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( 
8413             IDeckLinkOutput_v7_6 * This,
8414             /* [out] */ unsigned long *bufferedFrameCount);
8415         
8416         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( 
8417             IDeckLinkOutput_v7_6 * This,
8418             BMDAudioSampleRate sampleRate,
8419             BMDAudioSampleType sampleType,
8420             unsigned long channelCount,
8421             BMDAudioOutputStreamType streamType);
8422         
8423         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( 
8424             IDeckLinkOutput_v7_6 * This);
8425         
8426         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( 
8427             IDeckLinkOutput_v7_6 * This,
8428             /* [in] */ void *buffer,
8429             unsigned long sampleFrameCount,
8430             /* [out] */ unsigned long *sampleFramesWritten);
8431         
8432         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( 
8433             IDeckLinkOutput_v7_6 * This);
8434         
8435         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( 
8436             IDeckLinkOutput_v7_6 * This);
8437         
8438         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( 
8439             IDeckLinkOutput_v7_6 * This,
8440             /* [in] */ void *buffer,
8441             unsigned long sampleFrameCount,
8442             BMDTimeValue streamTime,
8443             BMDTimeScale timeScale,
8444             /* [out] */ unsigned long *sampleFramesWritten);
8445         
8446         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( 
8447             IDeckLinkOutput_v7_6 * This,
8448             /* [out] */ unsigned long *bufferedSampleFrameCount);
8449         
8450         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( 
8451             IDeckLinkOutput_v7_6 * This);
8452         
8453         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( 
8454             IDeckLinkOutput_v7_6 * This,
8455             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
8456         
8457         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( 
8458             IDeckLinkOutput_v7_6 * This,
8459             BMDTimeValue playbackStartTime,
8460             BMDTimeScale timeScale,
8461             double playbackSpeed);
8462         
8463         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( 
8464             IDeckLinkOutput_v7_6 * This,
8465             BMDTimeValue stopPlaybackAtTime,
8466             /* [out] */ BMDTimeValue *actualStopTime,
8467             BMDTimeScale timeScale);
8468         
8469         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( 
8470             IDeckLinkOutput_v7_6 * This,
8471             /* [out] */ BOOL *active);
8472         
8473         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( 
8474             IDeckLinkOutput_v7_6 * This,
8475             BMDTimeScale desiredTimeScale,
8476             /* [out] */ BMDTimeValue *streamTime,
8477             /* [out] */ double *playbackSpeed);
8478         
8479         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
8480             IDeckLinkOutput_v7_6 * This,
8481             BMDTimeScale desiredTimeScale,
8482             /* [out] */ BMDTimeValue *hardwareTime,
8483             /* [out] */ BMDTimeValue *timeInFrame,
8484             /* [out] */ BMDTimeValue *ticksPerFrame);
8485         
8486         END_INTERFACE
8487     } IDeckLinkOutput_v7_6Vtbl;
8488
8489     interface IDeckLinkOutput_v7_6
8490     {
8491         CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;
8492     };
8493
8494     
8495
8496 #ifdef COBJMACROS
8497
8498
8499 #define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject)        \
8500     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
8501
8502 #define IDeckLinkOutput_v7_6_AddRef(This)       \
8503     ( (This)->lpVtbl -> AddRef(This) ) 
8504
8505 #define IDeckLinkOutput_v7_6_Release(This)      \
8506     ( (This)->lpVtbl -> Release(This) ) 
8507
8508
8509 #define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \
8510     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) 
8511
8512 #define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator)      \
8513     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
8514
8515 #define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback)     \
8516     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
8517
8518 #define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags)  \
8519     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) 
8520
8521 #define IDeckLinkOutput_v7_6_DisableVideoOutput(This)   \
8522     ( (This)->lpVtbl -> DisableVideoOutput(This) ) 
8523
8524 #define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \
8525     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) 
8526
8527 #define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \
8528     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) 
8529
8530 #define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer)    \
8531     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) 
8532
8533 #define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame)       \
8534     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) 
8535
8536 #define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \
8537     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) 
8538
8539 #define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback)      \
8540     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) 
8541
8542 #define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount)        \
8543     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) 
8544
8545 #define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)      \
8546     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) 
8547
8548 #define IDeckLinkOutput_v7_6_DisableAudioOutput(This)   \
8549     ( (This)->lpVtbl -> DisableAudioOutput(This) ) 
8550
8551 #define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \
8552     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) 
8553
8554 #define IDeckLinkOutput_v7_6_BeginAudioPreroll(This)    \
8555     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) 
8556
8557 #define IDeckLinkOutput_v7_6_EndAudioPreroll(This)      \
8558     ( (This)->lpVtbl -> EndAudioPreroll(This) ) 
8559
8560 #define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \
8561     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) 
8562
8563 #define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)    \
8564     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) 
8565
8566 #define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This)    \
8567     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) 
8568
8569 #define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback) \
8570     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) 
8571
8572 #define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \
8573     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) 
8574
8575 #define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \
8576     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) 
8577
8578 #define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active)    \
8579     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) 
8580
8581 #define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)     \
8582     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) 
8583
8584 #define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)    \
8585     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) 
8586
8587 #endif /* COBJMACROS */
8588
8589
8590 #endif  /* C style interface */
8591
8592
8593
8594
8595 #endif  /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */
8596
8597
8598 #ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
8599 #define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
8600
8601 /* interface IDeckLinkInput_v7_6 */
8602 /* [helpstring][uuid][object] */ 
8603
8604
8605 EXTERN_C const IID IID_IDeckLinkInput_v7_6;
8606
8607 #if defined(__cplusplus) && !defined(CINTERFACE)
8608     
8609     MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")
8610     IDeckLinkInput_v7_6 : public IUnknown
8611     {
8612     public:
8613         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
8614             BMDDisplayMode displayMode,
8615             BMDPixelFormat pixelFormat,
8616             /* [out] */ BMDDisplayModeSupport *result) = 0;
8617         
8618         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
8619             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
8620         
8621         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
8622             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
8623         
8624         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( 
8625             BMDDisplayMode displayMode,
8626             BMDPixelFormat pixelFormat,
8627             BMDVideoInputFlags flags) = 0;
8628         
8629         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
8630         
8631         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( 
8632             /* [out] */ unsigned long *availableFrameCount) = 0;
8633         
8634         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( 
8635             BMDAudioSampleRate sampleRate,
8636             BMDAudioSampleType sampleType,
8637             unsigned long channelCount) = 0;
8638         
8639         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
8640         
8641         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( 
8642             /* [out] */ unsigned long *availableSampleFrameCount) = 0;
8643         
8644         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
8645         
8646         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
8647         
8648         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
8649         
8650         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
8651         
8652         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
8653             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;
8654         
8655         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
8656             BMDTimeScale desiredTimeScale,
8657             /* [out] */ BMDTimeValue *hardwareTime,
8658             /* [out] */ BMDTimeValue *timeInFrame,
8659             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
8660         
8661     };
8662     
8663 #else   /* C style interface */
8664
8665     typedef struct IDeckLinkInput_v7_6Vtbl
8666     {
8667         BEGIN_INTERFACE
8668         
8669         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8670             IDeckLinkInput_v7_6 * This,
8671             /* [in] */ REFIID riid,
8672             /* [annotation][iid_is][out] */ 
8673             __RPC__deref_out  void **ppvObject);
8674         
8675         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8676             IDeckLinkInput_v7_6 * This);
8677         
8678         ULONG ( STDMETHODCALLTYPE *Release )( 
8679             IDeckLinkInput_v7_6 * This);
8680         
8681         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
8682             IDeckLinkInput_v7_6 * This,
8683             BMDDisplayMode displayMode,
8684             BMDPixelFormat pixelFormat,
8685             /* [out] */ BMDDisplayModeSupport *result);
8686         
8687         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
8688             IDeckLinkInput_v7_6 * This,
8689             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
8690         
8691         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
8692             IDeckLinkInput_v7_6 * This,
8693             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
8694         
8695         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( 
8696             IDeckLinkInput_v7_6 * This,
8697             BMDDisplayMode displayMode,
8698             BMDPixelFormat pixelFormat,
8699             BMDVideoInputFlags flags);
8700         
8701         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( 
8702             IDeckLinkInput_v7_6 * This);
8703         
8704         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( 
8705             IDeckLinkInput_v7_6 * This,
8706             /* [out] */ unsigned long *availableFrameCount);
8707         
8708         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( 
8709             IDeckLinkInput_v7_6 * This,
8710             BMDAudioSampleRate sampleRate,
8711             BMDAudioSampleType sampleType,
8712             unsigned long channelCount);
8713         
8714         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( 
8715             IDeckLinkInput_v7_6 * This);
8716         
8717         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( 
8718             IDeckLinkInput_v7_6 * This,
8719             /* [out] */ unsigned long *availableSampleFrameCount);
8720         
8721         HRESULT ( STDMETHODCALLTYPE *StartStreams )( 
8722             IDeckLinkInput_v7_6 * This);
8723         
8724         HRESULT ( STDMETHODCALLTYPE *StopStreams )( 
8725             IDeckLinkInput_v7_6 * This);
8726         
8727         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( 
8728             IDeckLinkInput_v7_6 * This);
8729         
8730         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( 
8731             IDeckLinkInput_v7_6 * This);
8732         
8733         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
8734             IDeckLinkInput_v7_6 * This,
8735             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);
8736         
8737         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
8738             IDeckLinkInput_v7_6 * This,
8739             BMDTimeScale desiredTimeScale,
8740             /* [out] */ BMDTimeValue *hardwareTime,
8741             /* [out] */ BMDTimeValue *timeInFrame,
8742             /* [out] */ BMDTimeValue *ticksPerFrame);
8743         
8744         END_INTERFACE
8745     } IDeckLinkInput_v7_6Vtbl;
8746
8747     interface IDeckLinkInput_v7_6
8748     {
8749         CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;
8750     };
8751
8752     
8753
8754 #ifdef COBJMACROS
8755
8756
8757 #define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject) \
8758     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
8759
8760 #define IDeckLinkInput_v7_6_AddRef(This)        \
8761     ( (This)->lpVtbl -> AddRef(This) ) 
8762
8763 #define IDeckLinkInput_v7_6_Release(This)       \
8764     ( (This)->lpVtbl -> Release(This) ) 
8765
8766
8767 #define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \
8768     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) 
8769
8770 #define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator)       \
8771     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
8772
8773 #define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback)      \
8774     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
8775
8776 #define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags)        \
8777     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) 
8778
8779 #define IDeckLinkInput_v7_6_DisableVideoInput(This)     \
8780     ( (This)->lpVtbl -> DisableVideoInput(This) ) 
8781
8782 #define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount)       \
8783     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) 
8784
8785 #define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \
8786     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) 
8787
8788 #define IDeckLinkInput_v7_6_DisableAudioInput(This)     \
8789     ( (This)->lpVtbl -> DisableAudioInput(This) ) 
8790
8791 #define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)   \
8792     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) 
8793
8794 #define IDeckLinkInput_v7_6_StartStreams(This)  \
8795     ( (This)->lpVtbl -> StartStreams(This) ) 
8796
8797 #define IDeckLinkInput_v7_6_StopStreams(This)   \
8798     ( (This)->lpVtbl -> StopStreams(This) ) 
8799
8800 #define IDeckLinkInput_v7_6_PauseStreams(This)  \
8801     ( (This)->lpVtbl -> PauseStreams(This) ) 
8802
8803 #define IDeckLinkInput_v7_6_FlushStreams(This)  \
8804     ( (This)->lpVtbl -> FlushStreams(This) ) 
8805
8806 #define IDeckLinkInput_v7_6_SetCallback(This,theCallback)       \
8807     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
8808
8809 #define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)     \
8810     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) 
8811
8812 #endif /* COBJMACROS */
8813
8814
8815 #endif  /* C style interface */
8816
8817
8818
8819
8820 #endif  /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */
8821
8822
8823 #ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
8824 #define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
8825
8826 /* interface IDeckLinkTimecode_v7_6 */
8827 /* [helpstring][uuid][object] */ 
8828
8829
8830 EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;
8831
8832 #if defined(__cplusplus) && !defined(CINTERFACE)
8833     
8834     MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")
8835     IDeckLinkTimecode_v7_6 : public IUnknown
8836     {
8837     public:
8838         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
8839         
8840         virtual HRESULT STDMETHODCALLTYPE GetComponents( 
8841             /* [out] */ unsigned char *hours,
8842             /* [out] */ unsigned char *minutes,
8843             /* [out] */ unsigned char *seconds,
8844             /* [out] */ unsigned char *frames) = 0;
8845         
8846         virtual HRESULT STDMETHODCALLTYPE GetString( 
8847             /* [out] */ BSTR *timecode) = 0;
8848         
8849         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
8850         
8851     };
8852     
8853 #else   /* C style interface */
8854
8855     typedef struct IDeckLinkTimecode_v7_6Vtbl
8856     {
8857         BEGIN_INTERFACE
8858         
8859         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8860             IDeckLinkTimecode_v7_6 * This,
8861             /* [in] */ REFIID riid,
8862             /* [annotation][iid_is][out] */ 
8863             __RPC__deref_out  void **ppvObject);
8864         
8865         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8866             IDeckLinkTimecode_v7_6 * This);
8867         
8868         ULONG ( STDMETHODCALLTYPE *Release )( 
8869             IDeckLinkTimecode_v7_6 * This);
8870         
8871         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( 
8872             IDeckLinkTimecode_v7_6 * This);
8873         
8874         HRESULT ( STDMETHODCALLTYPE *GetComponents )( 
8875             IDeckLinkTimecode_v7_6 * This,
8876             /* [out] */ unsigned char *hours,
8877             /* [out] */ unsigned char *minutes,
8878             /* [out] */ unsigned char *seconds,
8879             /* [out] */ unsigned char *frames);
8880         
8881         HRESULT ( STDMETHODCALLTYPE *GetString )( 
8882             IDeckLinkTimecode_v7_6 * This,
8883             /* [out] */ BSTR *timecode);
8884         
8885         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( 
8886             IDeckLinkTimecode_v7_6 * This);
8887         
8888         END_INTERFACE
8889     } IDeckLinkTimecode_v7_6Vtbl;
8890
8891     interface IDeckLinkTimecode_v7_6
8892     {
8893         CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;
8894     };
8895
8896     
8897
8898 #ifdef COBJMACROS
8899
8900
8901 #define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject)      \
8902     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
8903
8904 #define IDeckLinkTimecode_v7_6_AddRef(This)     \
8905     ( (This)->lpVtbl -> AddRef(This) ) 
8906
8907 #define IDeckLinkTimecode_v7_6_Release(This)    \
8908     ( (This)->lpVtbl -> Release(This) ) 
8909
8910
8911 #define IDeckLinkTimecode_v7_6_GetBCD(This)     \
8912     ( (This)->lpVtbl -> GetBCD(This) ) 
8913
8914 #define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames) \
8915     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) 
8916
8917 #define IDeckLinkTimecode_v7_6_GetString(This,timecode) \
8918     ( (This)->lpVtbl -> GetString(This,timecode) ) 
8919
8920 #define IDeckLinkTimecode_v7_6_GetFlags(This)   \
8921     ( (This)->lpVtbl -> GetFlags(This) ) 
8922
8923 #endif /* COBJMACROS */
8924
8925
8926 #endif  /* C style interface */
8927
8928
8929
8930
8931 #endif  /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */
8932
8933
8934 #ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
8935 #define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
8936
8937 /* interface IDeckLinkVideoFrame_v7_6 */
8938 /* [helpstring][local][uuid][object] */ 
8939
8940
8941 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;
8942
8943 #if defined(__cplusplus) && !defined(CINTERFACE)
8944     
8945     MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")
8946     IDeckLinkVideoFrame_v7_6 : public IUnknown
8947     {
8948     public:
8949         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
8950         
8951         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
8952         
8953         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
8954         
8955         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
8956         
8957         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
8958         
8959         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
8960             /* [out] */ void **buffer) = 0;
8961         
8962         virtual HRESULT STDMETHODCALLTYPE GetTimecode( 
8963             BMDTimecodeFormat format,
8964             /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;
8965         
8966         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( 
8967             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
8968         
8969     };
8970     
8971 #else   /* C style interface */
8972
8973     typedef struct IDeckLinkVideoFrame_v7_6Vtbl
8974     {
8975         BEGIN_INTERFACE
8976         
8977         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8978             IDeckLinkVideoFrame_v7_6 * This,
8979             /* [in] */ REFIID riid,
8980             /* [annotation][iid_is][out] */ 
8981             __RPC__deref_out  void **ppvObject);
8982         
8983         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8984             IDeckLinkVideoFrame_v7_6 * This);
8985         
8986         ULONG ( STDMETHODCALLTYPE *Release )( 
8987             IDeckLinkVideoFrame_v7_6 * This);
8988         
8989         long ( STDMETHODCALLTYPE *GetWidth )( 
8990             IDeckLinkVideoFrame_v7_6 * This);
8991         
8992         long ( STDMETHODCALLTYPE *GetHeight )( 
8993             IDeckLinkVideoFrame_v7_6 * This);
8994         
8995         long ( STDMETHODCALLTYPE *GetRowBytes )( 
8996             IDeckLinkVideoFrame_v7_6 * This);
8997         
8998         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
8999             IDeckLinkVideoFrame_v7_6 * This);
9000         
9001         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
9002             IDeckLinkVideoFrame_v7_6 * This);
9003         
9004         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
9005             IDeckLinkVideoFrame_v7_6 * This,
9006             /* [out] */ void **buffer);
9007         
9008         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
9009             IDeckLinkVideoFrame_v7_6 * This,
9010             BMDTimecodeFormat format,
9011             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
9012         
9013         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
9014             IDeckLinkVideoFrame_v7_6 * This,
9015             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
9016         
9017         END_INTERFACE
9018     } IDeckLinkVideoFrame_v7_6Vtbl;
9019
9020     interface IDeckLinkVideoFrame_v7_6
9021     {
9022         CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;
9023     };
9024
9025     
9026
9027 #ifdef COBJMACROS
9028
9029
9030 #define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)    \
9031     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9032
9033 #define IDeckLinkVideoFrame_v7_6_AddRef(This)   \
9034     ( (This)->lpVtbl -> AddRef(This) ) 
9035
9036 #define IDeckLinkVideoFrame_v7_6_Release(This)  \
9037     ( (This)->lpVtbl -> Release(This) ) 
9038
9039
9040 #define IDeckLinkVideoFrame_v7_6_GetWidth(This) \
9041     ( (This)->lpVtbl -> GetWidth(This) ) 
9042
9043 #define IDeckLinkVideoFrame_v7_6_GetHeight(This)        \
9044     ( (This)->lpVtbl -> GetHeight(This) ) 
9045
9046 #define IDeckLinkVideoFrame_v7_6_GetRowBytes(This)      \
9047     ( (This)->lpVtbl -> GetRowBytes(This) ) 
9048
9049 #define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This)   \
9050     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
9051
9052 #define IDeckLinkVideoFrame_v7_6_GetFlags(This) \
9053     ( (This)->lpVtbl -> GetFlags(This) ) 
9054
9055 #define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer)  \
9056     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
9057
9058 #define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode)      \
9059     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
9060
9061 #define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary)       \
9062     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
9063
9064 #endif /* COBJMACROS */
9065
9066
9067 #endif  /* C style interface */
9068
9069
9070
9071
9072 #endif  /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */
9073
9074
9075 #ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
9076 #define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
9077
9078 /* interface IDeckLinkMutableVideoFrame_v7_6 */
9079 /* [helpstring][local][uuid][object] */ 
9080
9081
9082 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
9083
9084 #if defined(__cplusplus) && !defined(CINTERFACE)
9085     
9086     MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")
9087     IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
9088     {
9089     public:
9090         virtual HRESULT STDMETHODCALLTYPE SetFlags( 
9091             BMDFrameFlags newFlags) = 0;
9092         
9093         virtual HRESULT STDMETHODCALLTYPE SetTimecode( 
9094             BMDTimecodeFormat format,
9095             /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;
9096         
9097         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( 
9098             BMDTimecodeFormat format,
9099             unsigned char hours,
9100             unsigned char minutes,
9101             unsigned char seconds,
9102             unsigned char frames,
9103             BMDTimecodeFlags flags) = 0;
9104         
9105         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( 
9106             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
9107         
9108     };
9109     
9110 #else   /* C style interface */
9111
9112     typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl
9113     {
9114         BEGIN_INTERFACE
9115         
9116         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9117             IDeckLinkMutableVideoFrame_v7_6 * This,
9118             /* [in] */ REFIID riid,
9119             /* [annotation][iid_is][out] */ 
9120             __RPC__deref_out  void **ppvObject);
9121         
9122         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9123             IDeckLinkMutableVideoFrame_v7_6 * This);
9124         
9125         ULONG ( STDMETHODCALLTYPE *Release )( 
9126             IDeckLinkMutableVideoFrame_v7_6 * This);
9127         
9128         long ( STDMETHODCALLTYPE *GetWidth )( 
9129             IDeckLinkMutableVideoFrame_v7_6 * This);
9130         
9131         long ( STDMETHODCALLTYPE *GetHeight )( 
9132             IDeckLinkMutableVideoFrame_v7_6 * This);
9133         
9134         long ( STDMETHODCALLTYPE *GetRowBytes )( 
9135             IDeckLinkMutableVideoFrame_v7_6 * This);
9136         
9137         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
9138             IDeckLinkMutableVideoFrame_v7_6 * This);
9139         
9140         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
9141             IDeckLinkMutableVideoFrame_v7_6 * This);
9142         
9143         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
9144             IDeckLinkMutableVideoFrame_v7_6 * This,
9145             /* [out] */ void **buffer);
9146         
9147         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
9148             IDeckLinkMutableVideoFrame_v7_6 * This,
9149             BMDTimecodeFormat format,
9150             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
9151         
9152         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
9153             IDeckLinkMutableVideoFrame_v7_6 * This,
9154             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
9155         
9156         HRESULT ( STDMETHODCALLTYPE *SetFlags )( 
9157             IDeckLinkMutableVideoFrame_v7_6 * This,
9158             BMDFrameFlags newFlags);
9159         
9160         HRESULT ( STDMETHODCALLTYPE *SetTimecode )( 
9161             IDeckLinkMutableVideoFrame_v7_6 * This,
9162             BMDTimecodeFormat format,
9163             /* [in] */ IDeckLinkTimecode_v7_6 *timecode);
9164         
9165         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( 
9166             IDeckLinkMutableVideoFrame_v7_6 * This,
9167             BMDTimecodeFormat format,
9168             unsigned char hours,
9169             unsigned char minutes,
9170             unsigned char seconds,
9171             unsigned char frames,
9172             BMDTimecodeFlags flags);
9173         
9174         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( 
9175             IDeckLinkMutableVideoFrame_v7_6 * This,
9176             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
9177         
9178         END_INTERFACE
9179     } IDeckLinkMutableVideoFrame_v7_6Vtbl;
9180
9181     interface IDeckLinkMutableVideoFrame_v7_6
9182     {
9183         CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;
9184     };
9185
9186     
9187
9188 #ifdef COBJMACROS
9189
9190
9191 #define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)     \
9192     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9193
9194 #define IDeckLinkMutableVideoFrame_v7_6_AddRef(This)    \
9195     ( (This)->lpVtbl -> AddRef(This) ) 
9196
9197 #define IDeckLinkMutableVideoFrame_v7_6_Release(This)   \
9198     ( (This)->lpVtbl -> Release(This) ) 
9199
9200
9201 #define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This)  \
9202     ( (This)->lpVtbl -> GetWidth(This) ) 
9203
9204 #define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This) \
9205     ( (This)->lpVtbl -> GetHeight(This) ) 
9206
9207 #define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This)       \
9208     ( (This)->lpVtbl -> GetRowBytes(This) ) 
9209
9210 #define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This)    \
9211     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
9212
9213 #define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This)  \
9214     ( (This)->lpVtbl -> GetFlags(This) ) 
9215
9216 #define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer)   \
9217     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
9218
9219 #define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode)       \
9220     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
9221
9222 #define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary)        \
9223     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
9224
9225
9226 #define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags) \
9227     ( (This)->lpVtbl -> SetFlags(This,newFlags) ) 
9228
9229 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode)       \
9230     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) 
9231
9232 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)       \
9233     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) 
9234
9235 #define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary)        \
9236     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) 
9237
9238 #endif /* COBJMACROS */
9239
9240
9241 #endif  /* C style interface */
9242
9243
9244
9245
9246 #endif  /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */
9247
9248
9249 #ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
9250 #define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
9251
9252 /* interface IDeckLinkVideoInputFrame_v7_6 */
9253 /* [helpstring][local][uuid][object] */ 
9254
9255
9256 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;
9257
9258 #if defined(__cplusplus) && !defined(CINTERFACE)
9259     
9260     MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")
9261     IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
9262     {
9263     public:
9264         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( 
9265             /* [out] */ BMDTimeValue *frameTime,
9266             /* [out] */ BMDTimeValue *frameDuration,
9267             BMDTimeScale timeScale) = 0;
9268         
9269         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( 
9270             BMDTimeScale timeScale,
9271             /* [out] */ BMDTimeValue *frameTime,
9272             /* [out] */ BMDTimeValue *frameDuration) = 0;
9273         
9274     };
9275     
9276 #else   /* C style interface */
9277
9278     typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl
9279     {
9280         BEGIN_INTERFACE
9281         
9282         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9283             IDeckLinkVideoInputFrame_v7_6 * This,
9284             /* [in] */ REFIID riid,
9285             /* [annotation][iid_is][out] */ 
9286             __RPC__deref_out  void **ppvObject);
9287         
9288         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9289             IDeckLinkVideoInputFrame_v7_6 * This);
9290         
9291         ULONG ( STDMETHODCALLTYPE *Release )( 
9292             IDeckLinkVideoInputFrame_v7_6 * This);
9293         
9294         long ( STDMETHODCALLTYPE *GetWidth )( 
9295             IDeckLinkVideoInputFrame_v7_6 * This);
9296         
9297         long ( STDMETHODCALLTYPE *GetHeight )( 
9298             IDeckLinkVideoInputFrame_v7_6 * This);
9299         
9300         long ( STDMETHODCALLTYPE *GetRowBytes )( 
9301             IDeckLinkVideoInputFrame_v7_6 * This);
9302         
9303         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
9304             IDeckLinkVideoInputFrame_v7_6 * This);
9305         
9306         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
9307             IDeckLinkVideoInputFrame_v7_6 * This);
9308         
9309         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
9310             IDeckLinkVideoInputFrame_v7_6 * This,
9311             /* [out] */ void **buffer);
9312         
9313         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
9314             IDeckLinkVideoInputFrame_v7_6 * This,
9315             BMDTimecodeFormat format,
9316             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
9317         
9318         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
9319             IDeckLinkVideoInputFrame_v7_6 * This,
9320             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
9321         
9322         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( 
9323             IDeckLinkVideoInputFrame_v7_6 * This,
9324             /* [out] */ BMDTimeValue *frameTime,
9325             /* [out] */ BMDTimeValue *frameDuration,
9326             BMDTimeScale timeScale);
9327         
9328         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( 
9329             IDeckLinkVideoInputFrame_v7_6 * This,
9330             BMDTimeScale timeScale,
9331             /* [out] */ BMDTimeValue *frameTime,
9332             /* [out] */ BMDTimeValue *frameDuration);
9333         
9334         END_INTERFACE
9335     } IDeckLinkVideoInputFrame_v7_6Vtbl;
9336
9337     interface IDeckLinkVideoInputFrame_v7_6
9338     {
9339         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;
9340     };
9341
9342     
9343
9344 #ifdef COBJMACROS
9345
9346
9347 #define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject)       \
9348     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9349
9350 #define IDeckLinkVideoInputFrame_v7_6_AddRef(This)      \
9351     ( (This)->lpVtbl -> AddRef(This) ) 
9352
9353 #define IDeckLinkVideoInputFrame_v7_6_Release(This)     \
9354     ( (This)->lpVtbl -> Release(This) ) 
9355
9356
9357 #define IDeckLinkVideoInputFrame_v7_6_GetWidth(This)    \
9358     ( (This)->lpVtbl -> GetWidth(This) ) 
9359
9360 #define IDeckLinkVideoInputFrame_v7_6_GetHeight(This)   \
9361     ( (This)->lpVtbl -> GetHeight(This) ) 
9362
9363 #define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This) \
9364     ( (This)->lpVtbl -> GetRowBytes(This) ) 
9365
9366 #define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This)      \
9367     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
9368
9369 #define IDeckLinkVideoInputFrame_v7_6_GetFlags(This)    \
9370     ( (This)->lpVtbl -> GetFlags(This) ) 
9371
9372 #define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer)     \
9373     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
9374
9375 #define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode) \
9376     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
9377
9378 #define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary)  \
9379     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
9380
9381
9382 #define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale)     \
9383     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) 
9384
9385 #define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)     \
9386     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) 
9387
9388 #endif /* COBJMACROS */
9389
9390
9391 #endif  /* C style interface */
9392
9393
9394
9395
9396 #endif  /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */
9397
9398
9399 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
9400 #define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
9401
9402 /* interface IDeckLinkScreenPreviewCallback_v7_6 */
9403 /* [helpstring][local][uuid][object] */ 
9404
9405
9406 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;
9407
9408 #if defined(__cplusplus) && !defined(CINTERFACE)
9409     
9410     MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")
9411     IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown
9412     {
9413     public:
9414         virtual HRESULT STDMETHODCALLTYPE DrawFrame( 
9415             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
9416         
9417     };
9418     
9419 #else   /* C style interface */
9420
9421     typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl
9422     {
9423         BEGIN_INTERFACE
9424         
9425         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9426             IDeckLinkScreenPreviewCallback_v7_6 * This,
9427             /* [in] */ REFIID riid,
9428             /* [annotation][iid_is][out] */ 
9429             __RPC__deref_out  void **ppvObject);
9430         
9431         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9432             IDeckLinkScreenPreviewCallback_v7_6 * This);
9433         
9434         ULONG ( STDMETHODCALLTYPE *Release )( 
9435             IDeckLinkScreenPreviewCallback_v7_6 * This);
9436         
9437         HRESULT ( STDMETHODCALLTYPE *DrawFrame )( 
9438             IDeckLinkScreenPreviewCallback_v7_6 * This,
9439             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
9440         
9441         END_INTERFACE
9442     } IDeckLinkScreenPreviewCallback_v7_6Vtbl;
9443
9444     interface IDeckLinkScreenPreviewCallback_v7_6
9445     {
9446         CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;
9447     };
9448
9449     
9450
9451 #ifdef COBJMACROS
9452
9453
9454 #define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject) \
9455     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9456
9457 #define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This)        \
9458     ( (This)->lpVtbl -> AddRef(This) ) 
9459
9460 #define IDeckLinkScreenPreviewCallback_v7_6_Release(This)       \
9461     ( (This)->lpVtbl -> Release(This) ) 
9462
9463
9464 #define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame)    \
9465     ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) 
9466
9467 #endif /* COBJMACROS */
9468
9469
9470 #endif  /* C style interface */
9471
9472
9473
9474
9475 #endif  /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */
9476
9477
9478 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
9479 #define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
9480
9481 /* interface IDeckLinkGLScreenPreviewHelper_v7_6 */
9482 /* [helpstring][local][uuid][object] */ 
9483
9484
9485 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;
9486
9487 #if defined(__cplusplus) && !defined(CINTERFACE)
9488     
9489     MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")
9490     IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown
9491     {
9492     public:
9493         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
9494         
9495         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
9496         
9497         virtual HRESULT STDMETHODCALLTYPE SetFrame( 
9498             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
9499         
9500     };
9501     
9502 #else   /* C style interface */
9503
9504     typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl
9505     {
9506         BEGIN_INTERFACE
9507         
9508         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9509             IDeckLinkGLScreenPreviewHelper_v7_6 * This,
9510             /* [in] */ REFIID riid,
9511             /* [annotation][iid_is][out] */ 
9512             __RPC__deref_out  void **ppvObject);
9513         
9514         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9515             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9516         
9517         ULONG ( STDMETHODCALLTYPE *Release )( 
9518             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9519         
9520         HRESULT ( STDMETHODCALLTYPE *InitializeGL )( 
9521             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9522         
9523         HRESULT ( STDMETHODCALLTYPE *PaintGL )( 
9524             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9525         
9526         HRESULT ( STDMETHODCALLTYPE *SetFrame )( 
9527             IDeckLinkGLScreenPreviewHelper_v7_6 * This,
9528             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
9529         
9530         END_INTERFACE
9531     } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;
9532
9533     interface IDeckLinkGLScreenPreviewHelper_v7_6
9534     {
9535         CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;
9536     };
9537
9538     
9539
9540 #ifdef COBJMACROS
9541
9542
9543 #define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject) \
9544     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9545
9546 #define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This)        \
9547     ( (This)->lpVtbl -> AddRef(This) ) 
9548
9549 #define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This)       \
9550     ( (This)->lpVtbl -> Release(This) ) 
9551
9552
9553 #define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This)  \
9554     ( (This)->lpVtbl -> InitializeGL(This) ) 
9555
9556 #define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This)       \
9557     ( (This)->lpVtbl -> PaintGL(This) ) 
9558
9559 #define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame)     \
9560     ( (This)->lpVtbl -> SetFrame(This,theFrame) ) 
9561
9562 #endif /* COBJMACROS */
9563
9564
9565 #endif  /* C style interface */
9566
9567
9568
9569
9570 #endif  /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */
9571
9572
9573 #ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
9574 #define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
9575
9576 /* interface IDeckLinkVideoConversion_v7_6 */
9577 /* [helpstring][local][uuid][object] */ 
9578
9579
9580 EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;
9581
9582 #if defined(__cplusplus) && !defined(CINTERFACE)
9583     
9584     MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")
9585     IDeckLinkVideoConversion_v7_6 : public IUnknown
9586     {
9587     public:
9588         virtual HRESULT STDMETHODCALLTYPE ConvertFrame( 
9589             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
9590             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;
9591         
9592     };
9593     
9594 #else   /* C style interface */
9595
9596     typedef struct IDeckLinkVideoConversion_v7_6Vtbl
9597     {
9598         BEGIN_INTERFACE
9599         
9600         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9601             IDeckLinkVideoConversion_v7_6 * This,
9602             /* [in] */ REFIID riid,
9603             /* [annotation][iid_is][out] */ 
9604             __RPC__deref_out  void **ppvObject);
9605         
9606         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9607             IDeckLinkVideoConversion_v7_6 * This);
9608         
9609         ULONG ( STDMETHODCALLTYPE *Release )( 
9610             IDeckLinkVideoConversion_v7_6 * This);
9611         
9612         HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( 
9613             IDeckLinkVideoConversion_v7_6 * This,
9614             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
9615             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);
9616         
9617         END_INTERFACE
9618     } IDeckLinkVideoConversion_v7_6Vtbl;
9619
9620     interface IDeckLinkVideoConversion_v7_6
9621     {
9622         CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;
9623     };
9624
9625     
9626
9627 #ifdef COBJMACROS
9628
9629
9630 #define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject)       \
9631     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9632
9633 #define IDeckLinkVideoConversion_v7_6_AddRef(This)      \
9634     ( (This)->lpVtbl -> AddRef(This) ) 
9635
9636 #define IDeckLinkVideoConversion_v7_6_Release(This)     \
9637     ( (This)->lpVtbl -> Release(This) ) 
9638
9639
9640 #define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame)      \
9641     ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) 
9642
9643 #endif /* COBJMACROS */
9644
9645
9646 #endif  /* C style interface */
9647
9648
9649
9650
9651 #endif  /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */
9652
9653
9654 #ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
9655 #define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
9656
9657 /* interface IDeckLinkConfiguration_v7_6 */
9658 /* [helpstring][uuid][object] */ 
9659
9660
9661 EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
9662
9663 #if defined(__cplusplus) && !defined(CINTERFACE)
9664     
9665     MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")
9666     IDeckLinkConfiguration_v7_6 : public IUnknown
9667     {
9668     public:
9669         virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( 
9670             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;
9671         
9672         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
9673         
9674         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( 
9675             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;
9676         
9677         virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( 
9678             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
9679             /* [out] */ BOOL *active) = 0;
9680         
9681         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( 
9682             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
9683         
9684         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( 
9685             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
9686         
9687         virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( 
9688             /* [in] */ BOOL enable) = 0;
9689         
9690         virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( 
9691             /* [out] */ BOOL *enabled) = 0;
9692         
9693         virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( 
9694             /* [in] */ BOOL enable444VideoOutput,
9695             /* [in] */ BOOL enable3GbsOutput) = 0;
9696         
9697         virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( 
9698             /* [out] */ BOOL *is444VideoOutputEnabled,
9699             /* [out] */ BOOL *threeGbsOutputEnabled) = 0;
9700         
9701         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( 
9702             /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;
9703         
9704         virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( 
9705             /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;
9706         
9707         virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( 
9708             /* [in] */ BOOL enable) = 0;
9709         
9710         virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( 
9711             /* [out] */ BOOL *enabled) = 0;
9712         
9713         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( 
9714             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;
9715         
9716         virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( 
9717             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;
9718         
9719         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( 
9720             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
9721         
9722         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( 
9723             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
9724         
9725         virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( 
9726             /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;
9727         
9728         virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( 
9729             /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;
9730         
9731         virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( 
9732             /* [in] */ BOOL blackOutInCapture) = 0;
9733         
9734         virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( 
9735             /* [out] */ BOOL *blackOutInCapture) = 0;
9736         
9737         virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( 
9738             /* [in] */ unsigned long aFrameTimecode) = 0;
9739         
9740         virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( 
9741             /* [out] */ unsigned long *aFrameTimecode) = 0;
9742         
9743         virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( 
9744             /* [in] */ unsigned long activeLine1VANCsource,
9745             /* [in] */ unsigned long activeLine2VANCsource,
9746             /* [in] */ unsigned long activeLine3VANCsource) = 0;
9747         
9748         virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( 
9749             /* [out] */ unsigned long *activeLine1VANCsource,
9750             /* [out] */ unsigned long *activeLine2VANCsource,
9751             /* [out] */ unsigned long *activeLine3VANCsource) = 0;
9752         
9753         virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( 
9754             /* [in] */ BMDAudioConnection audioInputFormat) = 0;
9755         
9756         virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( 
9757             /* [out] */ BMDAudioConnection *audioInputFormat) = 0;
9758         
9759     };
9760     
9761 #else   /* C style interface */
9762
9763     typedef struct IDeckLinkConfiguration_v7_6Vtbl
9764     {
9765         BEGIN_INTERFACE
9766         
9767         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9768             IDeckLinkConfiguration_v7_6 * This,
9769             /* [in] */ REFIID riid,
9770             /* [annotation][iid_is][out] */ 
9771             __RPC__deref_out  void **ppvObject);
9772         
9773         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9774             IDeckLinkConfiguration_v7_6 * This);
9775         
9776         ULONG ( STDMETHODCALLTYPE *Release )( 
9777             IDeckLinkConfiguration_v7_6 * This);
9778         
9779         HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )( 
9780             IDeckLinkConfiguration_v7_6 * This,
9781             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);
9782         
9783         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( 
9784             IDeckLinkConfiguration_v7_6 * This);
9785         
9786         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )( 
9787             IDeckLinkConfiguration_v7_6 * This,
9788             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);
9789         
9790         HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )( 
9791             IDeckLinkConfiguration_v7_6 * This,
9792             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
9793             /* [out] */ BOOL *active);
9794         
9795         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )( 
9796             IDeckLinkConfiguration_v7_6 * This,
9797             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
9798         
9799         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )( 
9800             IDeckLinkConfiguration_v7_6 * This,
9801             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
9802         
9803         HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )( 
9804             IDeckLinkConfiguration_v7_6 * This,
9805             /* [in] */ BOOL enable);
9806         
9807         HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )( 
9808             IDeckLinkConfiguration_v7_6 * This,
9809             /* [out] */ BOOL *enabled);
9810         
9811         HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )( 
9812             IDeckLinkConfiguration_v7_6 * This,
9813             /* [in] */ BOOL enable444VideoOutput,
9814             /* [in] */ BOOL enable3GbsOutput);
9815         
9816         HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )( 
9817             IDeckLinkConfiguration_v7_6 * This,
9818             /* [out] */ BOOL *is444VideoOutputEnabled,
9819             /* [out] */ BOOL *threeGbsOutputEnabled);
9820         
9821         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )( 
9822             IDeckLinkConfiguration_v7_6 * This,
9823             /* [in] */ BMDVideoOutputConversionMode conversionMode);
9824         
9825         HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )( 
9826             IDeckLinkConfiguration_v7_6 * This,
9827             /* [out] */ BMDVideoOutputConversionMode *conversionMode);
9828         
9829         HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )( 
9830             IDeckLinkConfiguration_v7_6 * This,
9831             /* [in] */ BOOL enable);
9832         
9833         HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )( 
9834             IDeckLinkConfiguration_v7_6 * This,
9835             /* [out] */ BOOL *enabled);
9836         
9837         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )( 
9838             IDeckLinkConfiguration_v7_6 * This,
9839             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);
9840         
9841         HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )( 
9842             IDeckLinkConfiguration_v7_6 * This,
9843             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);
9844         
9845         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )( 
9846             IDeckLinkConfiguration_v7_6 * This,
9847             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
9848         
9849         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )( 
9850             IDeckLinkConfiguration_v7_6 * This,
9851             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
9852         
9853         HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )( 
9854             IDeckLinkConfiguration_v7_6 * This,
9855             /* [in] */ BMDVideoInputConversionMode conversionMode);
9856         
9857         HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )( 
9858             IDeckLinkConfiguration_v7_6 * This,
9859             /* [out] */ BMDVideoInputConversionMode *conversionMode);
9860         
9861         HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )( 
9862             IDeckLinkConfiguration_v7_6 * This,
9863             /* [in] */ BOOL blackOutInCapture);
9864         
9865         HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )( 
9866             IDeckLinkConfiguration_v7_6 * This,
9867             /* [out] */ BOOL *blackOutInCapture);
9868         
9869         HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( 
9870             IDeckLinkConfiguration_v7_6 * This,
9871             /* [in] */ unsigned long aFrameTimecode);
9872         
9873         HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( 
9874             IDeckLinkConfiguration_v7_6 * This,
9875             /* [out] */ unsigned long *aFrameTimecode);
9876         
9877         HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )( 
9878             IDeckLinkConfiguration_v7_6 * This,
9879             /* [in] */ unsigned long activeLine1VANCsource,
9880             /* [in] */ unsigned long activeLine2VANCsource,
9881             /* [in] */ unsigned long activeLine3VANCsource);
9882         
9883         HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )( 
9884             IDeckLinkConfiguration_v7_6 * This,
9885             /* [out] */ unsigned long *activeLine1VANCsource,
9886             /* [out] */ unsigned long *activeLine2VANCsource,
9887             /* [out] */ unsigned long *activeLine3VANCsource);
9888         
9889         HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( 
9890             IDeckLinkConfiguration_v7_6 * This,
9891             /* [in] */ BMDAudioConnection audioInputFormat);
9892         
9893         HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )( 
9894             IDeckLinkConfiguration_v7_6 * This,
9895             /* [out] */ BMDAudioConnection *audioInputFormat);
9896         
9897         END_INTERFACE
9898     } IDeckLinkConfiguration_v7_6Vtbl;
9899
9900     interface IDeckLinkConfiguration_v7_6
9901     {
9902         CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;
9903     };
9904
9905     
9906
9907 #ifdef COBJMACROS
9908
9909
9910 #define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject) \
9911     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9912
9913 #define IDeckLinkConfiguration_v7_6_AddRef(This)        \
9914     ( (This)->lpVtbl -> AddRef(This) ) 
9915
9916 #define IDeckLinkConfiguration_v7_6_Release(This)       \
9917     ( (This)->lpVtbl -> Release(This) ) 
9918
9919
9920 #define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject)        \
9921     ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) ) 
9922
9923 #define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This)       \
9924     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) 
9925
9926 #define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection)    \
9927     ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) ) 
9928
9929 #define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active)      \
9930     ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) ) 
9931
9932 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags)    \
9933     ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) ) 
9934
9935 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags)    \
9936     ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) ) 
9937
9938 #define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable)    \
9939     ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) ) 
9940
9941 #define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled)        \
9942     ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) ) 
9943
9944 #define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput)       \
9945     ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) ) 
9946
9947 #define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled)       \
9948     ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) ) 
9949
9950 #define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode)   \
9951     ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) ) 
9952
9953 #define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode)   \
9954     ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) ) 
9955
9956 #define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable)        \
9957     ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) ) 
9958
9959 #define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled)       \
9960     ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) ) 
9961
9962 #define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat)  \
9963     ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) ) 
9964
9965 #define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat)  \
9966     ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) ) 
9967
9968 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags)     \
9969     ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) ) 
9970
9971 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags)     \
9972     ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) ) 
9973
9974 #define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode)    \
9975     ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) ) 
9976
9977 #define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode)    \
9978     ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) ) 
9979
9980 #define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture)    \
9981     ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) 
9982
9983 #define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture)    \
9984     ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) 
9985
9986 #define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)      \
9987     ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) 
9988
9989 #define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)      \
9990     ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) 
9991
9992 #define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)    \
9993     ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) 
9994
9995 #define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)    \
9996     ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) 
9997
9998 #define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat)  \
9999     ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) ) 
10000
10001 #define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat)  \
10002     ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) ) 
10003
10004 #endif /* COBJMACROS */
10005
10006
10007 #endif  /* C style interface */
10008
10009
10010
10011
10012 #endif  /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */
10013
10014
10015 #ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
10016 #define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
10017
10018 /* interface IDeckLinkVideoOutputCallback_v7_6 */
10019 /* [helpstring][uuid][object] */ 
10020
10021
10022 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;
10023
10024 #if defined(__cplusplus) && !defined(CINTERFACE)
10025     
10026     MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")
10027     IDeckLinkVideoOutputCallback_v7_6 : public IUnknown
10028     {
10029     public:
10030         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( 
10031             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
10032             /* [in] */ BMDOutputFrameCompletionResult result) = 0;
10033         
10034         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
10035         
10036     };
10037     
10038 #else   /* C style interface */
10039
10040     typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl
10041     {
10042         BEGIN_INTERFACE
10043         
10044         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10045             IDeckLinkVideoOutputCallback_v7_6 * This,
10046             /* [in] */ REFIID riid,
10047             /* [annotation][iid_is][out] */ 
10048             __RPC__deref_out  void **ppvObject);
10049         
10050         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10051             IDeckLinkVideoOutputCallback_v7_6 * This);
10052         
10053         ULONG ( STDMETHODCALLTYPE *Release )( 
10054             IDeckLinkVideoOutputCallback_v7_6 * This);
10055         
10056         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( 
10057             IDeckLinkVideoOutputCallback_v7_6 * This,
10058             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
10059             /* [in] */ BMDOutputFrameCompletionResult result);
10060         
10061         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( 
10062             IDeckLinkVideoOutputCallback_v7_6 * This);
10063         
10064         END_INTERFACE
10065     } IDeckLinkVideoOutputCallback_v7_6Vtbl;
10066
10067     interface IDeckLinkVideoOutputCallback_v7_6
10068     {
10069         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;
10070     };
10071
10072     
10073
10074 #ifdef COBJMACROS
10075
10076
10077 #define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject)   \
10078     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10079
10080 #define IDeckLinkVideoOutputCallback_v7_6_AddRef(This)  \
10081     ( (This)->lpVtbl -> AddRef(This) ) 
10082
10083 #define IDeckLinkVideoOutputCallback_v7_6_Release(This) \
10084     ( (This)->lpVtbl -> Release(This) ) 
10085
10086
10087 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result)   \
10088     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) 
10089
10090 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This)     \
10091     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) 
10092
10093 #endif /* COBJMACROS */
10094
10095
10096 #endif  /* C style interface */
10097
10098
10099
10100
10101 #endif  /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */
10102
10103
10104 #ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
10105 #define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
10106
10107 /* interface IDeckLinkInputCallback_v7_6 */
10108 /* [helpstring][uuid][object] */ 
10109
10110
10111 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;
10112
10113 #if defined(__cplusplus) && !defined(CINTERFACE)
10114     
10115     MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")
10116     IDeckLinkInputCallback_v7_6 : public IUnknown
10117     {
10118     public:
10119         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( 
10120             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10121             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10122             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
10123         
10124         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( 
10125             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
10126             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
10127         
10128     };
10129     
10130 #else   /* C style interface */
10131
10132     typedef struct IDeckLinkInputCallback_v7_6Vtbl
10133     {
10134         BEGIN_INTERFACE
10135         
10136         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10137             IDeckLinkInputCallback_v7_6 * This,
10138             /* [in] */ REFIID riid,
10139             /* [annotation][iid_is][out] */ 
10140             __RPC__deref_out  void **ppvObject);
10141         
10142         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10143             IDeckLinkInputCallback_v7_6 * This);
10144         
10145         ULONG ( STDMETHODCALLTYPE *Release )( 
10146             IDeckLinkInputCallback_v7_6 * This);
10147         
10148         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( 
10149             IDeckLinkInputCallback_v7_6 * This,
10150             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10151             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10152             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
10153         
10154         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( 
10155             IDeckLinkInputCallback_v7_6 * This,
10156             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
10157             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
10158         
10159         END_INTERFACE
10160     } IDeckLinkInputCallback_v7_6Vtbl;
10161
10162     interface IDeckLinkInputCallback_v7_6
10163     {
10164         CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;
10165     };
10166
10167     
10168
10169 #ifdef COBJMACROS
10170
10171
10172 #define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject) \
10173     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10174
10175 #define IDeckLinkInputCallback_v7_6_AddRef(This)        \
10176     ( (This)->lpVtbl -> AddRef(This) ) 
10177
10178 #define IDeckLinkInputCallback_v7_6_Release(This)       \
10179     ( (This)->lpVtbl -> Release(This) ) 
10180
10181
10182 #define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
10183     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) 
10184
10185 #define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket) \
10186     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) 
10187
10188 #endif /* COBJMACROS */
10189
10190
10191 #endif  /* C style interface */
10192
10193
10194
10195
10196 #endif  /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */
10197
10198
10199 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6;
10200
10201 #ifdef __cplusplus
10202
10203 class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")
10204 CDeckLinkGLScreenPreviewHelper_v7_6;
10205 #endif
10206
10207 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6;
10208
10209 #ifdef __cplusplus
10210
10211 class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B")
10212 CDeckLinkVideoConversion_v7_6;
10213 #endif
10214
10215 #ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
10216 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
10217
10218 /* interface IDeckLinkInputCallback_v7_3 */
10219 /* [helpstring][uuid][object] */ 
10220
10221
10222 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;
10223
10224 #if defined(__cplusplus) && !defined(CINTERFACE)
10225     
10226     MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")
10227     IDeckLinkInputCallback_v7_3 : public IUnknown
10228     {
10229     public:
10230         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( 
10231             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10232             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10233             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
10234         
10235         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( 
10236             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
10237             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
10238         
10239     };
10240     
10241 #else   /* C style interface */
10242
10243     typedef struct IDeckLinkInputCallback_v7_3Vtbl
10244     {
10245         BEGIN_INTERFACE
10246         
10247         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10248             IDeckLinkInputCallback_v7_3 * This,
10249             /* [in] */ REFIID riid,
10250             /* [annotation][iid_is][out] */ 
10251             __RPC__deref_out  void **ppvObject);
10252         
10253         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10254             IDeckLinkInputCallback_v7_3 * This);
10255         
10256         ULONG ( STDMETHODCALLTYPE *Release )( 
10257             IDeckLinkInputCallback_v7_3 * This);
10258         
10259         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( 
10260             IDeckLinkInputCallback_v7_3 * This,
10261             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10262             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10263             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
10264         
10265         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( 
10266             IDeckLinkInputCallback_v7_3 * This,
10267             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
10268             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
10269         
10270         END_INTERFACE
10271     } IDeckLinkInputCallback_v7_3Vtbl;
10272
10273     interface IDeckLinkInputCallback_v7_3
10274     {
10275         CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;
10276     };
10277
10278     
10279
10280 #ifdef COBJMACROS
10281
10282
10283 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) \
10284     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10285
10286 #define IDeckLinkInputCallback_v7_3_AddRef(This)        \
10287     ( (This)->lpVtbl -> AddRef(This) ) 
10288
10289 #define IDeckLinkInputCallback_v7_3_Release(This)       \
10290     ( (This)->lpVtbl -> Release(This) ) 
10291
10292
10293 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
10294     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) 
10295
10296 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) \
10297     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) 
10298
10299 #endif /* COBJMACROS */
10300
10301
10302 #endif  /* C style interface */
10303
10304
10305
10306
10307 #endif  /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */
10308
10309
10310 #ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
10311 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
10312
10313 /* interface IDeckLinkOutput_v7_3 */
10314 /* [helpstring][local][uuid][object] */ 
10315
10316
10317 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
10318
10319 #if defined(__cplusplus) && !defined(CINTERFACE)
10320     
10321     MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")
10322     IDeckLinkOutput_v7_3 : public IUnknown
10323     {
10324     public:
10325         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
10326             BMDDisplayMode displayMode,
10327             BMDPixelFormat pixelFormat,
10328             /* [out] */ BMDDisplayModeSupport *result) = 0;
10329         
10330         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
10331             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
10332         
10333         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
10334             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
10335         
10336         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( 
10337             BMDDisplayMode displayMode,
10338             BMDVideoOutputFlags flags) = 0;
10339         
10340         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
10341         
10342         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( 
10343             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
10344         
10345         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( 
10346             long width,
10347             long height,
10348             long rowBytes,
10349             BMDPixelFormat pixelFormat,
10350             BMDFrameFlags flags,
10351             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
10352         
10353         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( 
10354             BMDPixelFormat pixelFormat,
10355             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
10356         
10357         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( 
10358             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
10359         
10360         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( 
10361             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
10362             BMDTimeValue displayTime,
10363             BMDTimeValue displayDuration,
10364             BMDTimeScale timeScale) = 0;
10365         
10366         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( 
10367             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
10368         
10369         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( 
10370             /* [out] */ unsigned long *bufferedFrameCount) = 0;
10371         
10372         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( 
10373             BMDAudioSampleRate sampleRate,
10374             BMDAudioSampleType sampleType,
10375             unsigned long channelCount,
10376             BMDAudioOutputStreamType streamType) = 0;
10377         
10378         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
10379         
10380         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( 
10381             /* [in] */ void *buffer,
10382             unsigned long sampleFrameCount,
10383             /* [out] */ unsigned long *sampleFramesWritten) = 0;
10384         
10385         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
10386         
10387         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
10388         
10389         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( 
10390             /* [in] */ void *buffer,
10391             unsigned long sampleFrameCount,
10392             BMDTimeValue streamTime,
10393             BMDTimeScale timeScale,
10394             /* [out] */ unsigned long *sampleFramesWritten) = 0;
10395         
10396         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( 
10397             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
10398         
10399         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
10400         
10401         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( 
10402             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
10403         
10404         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( 
10405             BMDTimeValue playbackStartTime,
10406             BMDTimeScale timeScale,
10407             double playbackSpeed) = 0;
10408         
10409         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( 
10410             BMDTimeValue stopPlaybackAtTime,
10411             /* [out] */ BMDTimeValue *actualStopTime,
10412             BMDTimeScale timeScale) = 0;
10413         
10414         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( 
10415             /* [out] */ BOOL *active) = 0;
10416         
10417         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
10418             BMDTimeScale desiredTimeScale,
10419             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
10420         
10421     };
10422     
10423 #else   /* C style interface */
10424
10425     typedef struct IDeckLinkOutput_v7_3Vtbl
10426     {
10427         BEGIN_INTERFACE
10428         
10429         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10430             IDeckLinkOutput_v7_3 * This,
10431             /* [in] */ REFIID riid,
10432             /* [annotation][iid_is][out] */ 
10433             __RPC__deref_out  void **ppvObject);
10434         
10435         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10436             IDeckLinkOutput_v7_3 * This);
10437         
10438         ULONG ( STDMETHODCALLTYPE *Release )( 
10439             IDeckLinkOutput_v7_3 * This);
10440         
10441         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
10442             IDeckLinkOutput_v7_3 * This,
10443             BMDDisplayMode displayMode,
10444             BMDPixelFormat pixelFormat,
10445             /* [out] */ BMDDisplayModeSupport *result);
10446         
10447         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
10448             IDeckLinkOutput_v7_3 * This,
10449             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
10450         
10451         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
10452             IDeckLinkOutput_v7_3 * This,
10453             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
10454         
10455         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( 
10456             IDeckLinkOutput_v7_3 * This,
10457             BMDDisplayMode displayMode,
10458             BMDVideoOutputFlags flags);
10459         
10460         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( 
10461             IDeckLinkOutput_v7_3 * This);
10462         
10463         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( 
10464             IDeckLinkOutput_v7_3 * This,
10465             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
10466         
10467         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( 
10468             IDeckLinkOutput_v7_3 * This,
10469             long width,
10470             long height,
10471             long rowBytes,
10472             BMDPixelFormat pixelFormat,
10473             BMDFrameFlags flags,
10474             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
10475         
10476         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( 
10477             IDeckLinkOutput_v7_3 * This,
10478             BMDPixelFormat pixelFormat,
10479             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
10480         
10481         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( 
10482             IDeckLinkOutput_v7_3 * This,
10483             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
10484         
10485         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( 
10486             IDeckLinkOutput_v7_3 * This,
10487             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
10488             BMDTimeValue displayTime,
10489             BMDTimeValue displayDuration,
10490             BMDTimeScale timeScale);
10491         
10492         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( 
10493             IDeckLinkOutput_v7_3 * This,
10494             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
10495         
10496         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( 
10497             IDeckLinkOutput_v7_3 * This,
10498             /* [out] */ unsigned long *bufferedFrameCount);
10499         
10500         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( 
10501             IDeckLinkOutput_v7_3 * This,
10502             BMDAudioSampleRate sampleRate,
10503             BMDAudioSampleType sampleType,
10504             unsigned long channelCount,
10505             BMDAudioOutputStreamType streamType);
10506         
10507         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( 
10508             IDeckLinkOutput_v7_3 * This);
10509         
10510         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( 
10511             IDeckLinkOutput_v7_3 * This,
10512             /* [in] */ void *buffer,
10513             unsigned long sampleFrameCount,
10514             /* [out] */ unsigned long *sampleFramesWritten);
10515         
10516         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( 
10517             IDeckLinkOutput_v7_3 * This);
10518         
10519         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( 
10520             IDeckLinkOutput_v7_3 * This);
10521         
10522         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( 
10523             IDeckLinkOutput_v7_3 * This,
10524             /* [in] */ void *buffer,
10525             unsigned long sampleFrameCount,
10526             BMDTimeValue streamTime,
10527             BMDTimeScale timeScale,
10528             /* [out] */ unsigned long *sampleFramesWritten);
10529         
10530         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( 
10531             IDeckLinkOutput_v7_3 * This,
10532             /* [out] */ unsigned long *bufferedSampleFrameCount);
10533         
10534         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( 
10535             IDeckLinkOutput_v7_3 * This);
10536         
10537         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( 
10538             IDeckLinkOutput_v7_3 * This,
10539             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
10540         
10541         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( 
10542             IDeckLinkOutput_v7_3 * This,
10543             BMDTimeValue playbackStartTime,
10544             BMDTimeScale timeScale,
10545             double playbackSpeed);
10546         
10547         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( 
10548             IDeckLinkOutput_v7_3 * This,
10549             BMDTimeValue stopPlaybackAtTime,
10550             /* [out] */ BMDTimeValue *actualStopTime,
10551             BMDTimeScale timeScale);
10552         
10553         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( 
10554             IDeckLinkOutput_v7_3 * This,
10555             /* [out] */ BOOL *active);
10556         
10557         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
10558             IDeckLinkOutput_v7_3 * This,
10559             BMDTimeScale desiredTimeScale,
10560             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);
10561         
10562         END_INTERFACE
10563     } IDeckLinkOutput_v7_3Vtbl;
10564
10565     interface IDeckLinkOutput_v7_3
10566     {
10567         CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;
10568     };
10569
10570     
10571
10572 #ifdef COBJMACROS
10573
10574
10575 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject)        \
10576     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10577
10578 #define IDeckLinkOutput_v7_3_AddRef(This)       \
10579     ( (This)->lpVtbl -> AddRef(This) ) 
10580
10581 #define IDeckLinkOutput_v7_3_Release(This)      \
10582     ( (This)->lpVtbl -> Release(This) ) 
10583
10584
10585 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \
10586     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) 
10587
10588 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator)      \
10589     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
10590
10591 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback)     \
10592     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
10593
10594 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags)  \
10595     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) 
10596
10597 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This)   \
10598     ( (This)->lpVtbl -> DisableVideoOutput(This) ) 
10599
10600 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \
10601     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) 
10602
10603 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \
10604     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) 
10605
10606 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer)    \
10607     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) 
10608
10609 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame)       \
10610     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) 
10611
10612 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \
10613     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) 
10614
10615 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback)      \
10616     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) 
10617
10618 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount)        \
10619     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) 
10620
10621 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)      \
10622     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) 
10623
10624 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This)   \
10625     ( (This)->lpVtbl -> DisableAudioOutput(This) ) 
10626
10627 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \
10628     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) 
10629
10630 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This)    \
10631     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) 
10632
10633 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This)      \
10634     ( (This)->lpVtbl -> EndAudioPreroll(This) ) 
10635
10636 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \
10637     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) 
10638
10639 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)    \
10640     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) 
10641
10642 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This)    \
10643     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) 
10644
10645 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) \
10646     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) 
10647
10648 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \
10649     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) 
10650
10651 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \
10652     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) 
10653
10654 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active)    \
10655     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) 
10656
10657 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)    \
10658     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) 
10659
10660 #endif /* COBJMACROS */
10661
10662
10663 #endif  /* C style interface */
10664
10665
10666
10667
10668 #endif  /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */
10669
10670
10671 #ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
10672 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
10673
10674 /* interface IDeckLinkInput_v7_3 */
10675 /* [helpstring][uuid][object] */ 
10676
10677
10678 EXTERN_C const IID IID_IDeckLinkInput_v7_3;
10679
10680 #if defined(__cplusplus) && !defined(CINTERFACE)
10681     
10682     MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")
10683     IDeckLinkInput_v7_3 : public IUnknown
10684     {
10685     public:
10686         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
10687             BMDDisplayMode displayMode,
10688             BMDPixelFormat pixelFormat,
10689             /* [out] */ BMDDisplayModeSupport *result) = 0;
10690         
10691         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
10692             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
10693         
10694         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( 
10695             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
10696         
10697         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( 
10698             BMDDisplayMode displayMode,
10699             BMDPixelFormat pixelFormat,
10700             BMDVideoInputFlags flags) = 0;
10701         
10702         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
10703         
10704         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( 
10705             /* [out] */ unsigned long *availableFrameCount) = 0;
10706         
10707         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( 
10708             BMDAudioSampleRate sampleRate,
10709             BMDAudioSampleType sampleType,
10710             unsigned long channelCount) = 0;
10711         
10712         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
10713         
10714         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( 
10715             /* [out] */ unsigned long *availableSampleFrameCount) = 0;
10716         
10717         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
10718         
10719         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
10720         
10721         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
10722         
10723         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
10724         
10725         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
10726             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;
10727         
10728     };
10729     
10730 #else   /* C style interface */
10731
10732     typedef struct IDeckLinkInput_v7_3Vtbl
10733     {
10734         BEGIN_INTERFACE
10735         
10736         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10737             IDeckLinkInput_v7_3 * This,
10738             /* [in] */ REFIID riid,
10739             /* [annotation][iid_is][out] */ 
10740             __RPC__deref_out  void **ppvObject);
10741         
10742         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10743             IDeckLinkInput_v7_3 * This);
10744         
10745         ULONG ( STDMETHODCALLTYPE *Release )( 
10746             IDeckLinkInput_v7_3 * This);
10747         
10748         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
10749             IDeckLinkInput_v7_3 * This,
10750             BMDDisplayMode displayMode,
10751             BMDPixelFormat pixelFormat,
10752             /* [out] */ BMDDisplayModeSupport *result);
10753         
10754         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
10755             IDeckLinkInput_v7_3 * This,
10756             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
10757         
10758         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( 
10759             IDeckLinkInput_v7_3 * This,
10760             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
10761         
10762         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( 
10763             IDeckLinkInput_v7_3 * This,
10764             BMDDisplayMode displayMode,
10765             BMDPixelFormat pixelFormat,
10766             BMDVideoInputFlags flags);
10767         
10768         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( 
10769             IDeckLinkInput_v7_3 * This);
10770         
10771         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( 
10772             IDeckLinkInput_v7_3 * This,
10773             /* [out] */ unsigned long *availableFrameCount);
10774         
10775         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( 
10776             IDeckLinkInput_v7_3 * This,
10777             BMDAudioSampleRate sampleRate,
10778             BMDAudioSampleType sampleType,
10779             unsigned long channelCount);
10780         
10781         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( 
10782             IDeckLinkInput_v7_3 * This);
10783         
10784         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( 
10785             IDeckLinkInput_v7_3 * This,
10786             /* [out] */ unsigned long *availableSampleFrameCount);
10787         
10788         HRESULT ( STDMETHODCALLTYPE *StartStreams )( 
10789             IDeckLinkInput_v7_3 * This);
10790         
10791         HRESULT ( STDMETHODCALLTYPE *StopStreams )( 
10792             IDeckLinkInput_v7_3 * This);
10793         
10794         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( 
10795             IDeckLinkInput_v7_3 * This);
10796         
10797         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( 
10798             IDeckLinkInput_v7_3 * This);
10799         
10800         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
10801             IDeckLinkInput_v7_3 * This,
10802             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);
10803         
10804         END_INTERFACE
10805     } IDeckLinkInput_v7_3Vtbl;
10806
10807     interface IDeckLinkInput_v7_3
10808     {
10809         CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;
10810     };
10811
10812     
10813
10814 #ifdef COBJMACROS
10815
10816
10817 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) \
10818     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10819
10820 #define IDeckLinkInput_v7_3_AddRef(This)        \
10821     ( (This)->lpVtbl -> AddRef(This) ) 
10822
10823 #define IDeckLinkInput_v7_3_Release(This)       \
10824     ( (This)->lpVtbl -> Release(This) ) 
10825
10826
10827 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \
10828     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) 
10829
10830 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator)       \
10831     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
10832
10833 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback)      \
10834     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) 
10835
10836 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags)        \
10837     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) 
10838
10839 #define IDeckLinkInput_v7_3_DisableVideoInput(This)     \
10840     ( (This)->lpVtbl -> DisableVideoInput(This) ) 
10841
10842 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount)       \
10843     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) 
10844
10845 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \
10846     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) 
10847
10848 #define IDeckLinkInput_v7_3_DisableAudioInput(This)     \
10849     ( (This)->lpVtbl -> DisableAudioInput(This) ) 
10850
10851 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)   \
10852     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) 
10853
10854 #define IDeckLinkInput_v7_3_StartStreams(This)  \
10855     ( (This)->lpVtbl -> StartStreams(This) ) 
10856
10857 #define IDeckLinkInput_v7_3_StopStreams(This)   \
10858     ( (This)->lpVtbl -> StopStreams(This) ) 
10859
10860 #define IDeckLinkInput_v7_3_PauseStreams(This)  \
10861     ( (This)->lpVtbl -> PauseStreams(This) ) 
10862
10863 #define IDeckLinkInput_v7_3_FlushStreams(This)  \
10864     ( (This)->lpVtbl -> FlushStreams(This) ) 
10865
10866 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback)       \
10867     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
10868
10869 #endif /* COBJMACROS */
10870
10871
10872 #endif  /* C style interface */
10873
10874
10875
10876
10877 #endif  /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */
10878
10879
10880 #ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
10881 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
10882
10883 /* interface IDeckLinkVideoInputFrame_v7_3 */
10884 /* [helpstring][local][uuid][object] */ 
10885
10886
10887 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;
10888
10889 #if defined(__cplusplus) && !defined(CINTERFACE)
10890     
10891     MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")
10892     IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6
10893     {
10894     public:
10895         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( 
10896             /* [out] */ BMDTimeValue *frameTime,
10897             /* [out] */ BMDTimeValue *frameDuration,
10898             BMDTimeScale timeScale) = 0;
10899         
10900     };
10901     
10902 #else   /* C style interface */
10903
10904     typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl
10905     {
10906         BEGIN_INTERFACE
10907         
10908         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10909             IDeckLinkVideoInputFrame_v7_3 * This,
10910             /* [in] */ REFIID riid,
10911             /* [annotation][iid_is][out] */ 
10912             __RPC__deref_out  void **ppvObject);
10913         
10914         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10915             IDeckLinkVideoInputFrame_v7_3 * This);
10916         
10917         ULONG ( STDMETHODCALLTYPE *Release )( 
10918             IDeckLinkVideoInputFrame_v7_3 * This);
10919         
10920         long ( STDMETHODCALLTYPE *GetWidth )( 
10921             IDeckLinkVideoInputFrame_v7_3 * This);
10922         
10923         long ( STDMETHODCALLTYPE *GetHeight )( 
10924             IDeckLinkVideoInputFrame_v7_3 * This);
10925         
10926         long ( STDMETHODCALLTYPE *GetRowBytes )( 
10927             IDeckLinkVideoInputFrame_v7_3 * This);
10928         
10929         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
10930             IDeckLinkVideoInputFrame_v7_3 * This);
10931         
10932         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
10933             IDeckLinkVideoInputFrame_v7_3 * This);
10934         
10935         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
10936             IDeckLinkVideoInputFrame_v7_3 * This,
10937             /* [out] */ void **buffer);
10938         
10939         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
10940             IDeckLinkVideoInputFrame_v7_3 * This,
10941             BMDTimecodeFormat format,
10942             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
10943         
10944         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( 
10945             IDeckLinkVideoInputFrame_v7_3 * This,
10946             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
10947         
10948         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( 
10949             IDeckLinkVideoInputFrame_v7_3 * This,
10950             /* [out] */ BMDTimeValue *frameTime,
10951             /* [out] */ BMDTimeValue *frameDuration,
10952             BMDTimeScale timeScale);
10953         
10954         END_INTERFACE
10955     } IDeckLinkVideoInputFrame_v7_3Vtbl;
10956
10957     interface IDeckLinkVideoInputFrame_v7_3
10958     {
10959         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;
10960     };
10961
10962     
10963
10964 #ifdef COBJMACROS
10965
10966
10967 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject)       \
10968     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10969
10970 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This)      \
10971     ( (This)->lpVtbl -> AddRef(This) ) 
10972
10973 #define IDeckLinkVideoInputFrame_v7_3_Release(This)     \
10974     ( (This)->lpVtbl -> Release(This) ) 
10975
10976
10977 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This)    \
10978     ( (This)->lpVtbl -> GetWidth(This) ) 
10979
10980 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This)   \
10981     ( (This)->lpVtbl -> GetHeight(This) ) 
10982
10983 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) \
10984     ( (This)->lpVtbl -> GetRowBytes(This) ) 
10985
10986 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This)      \
10987     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
10988
10989 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This)    \
10990     ( (This)->lpVtbl -> GetFlags(This) ) 
10991
10992 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer)     \
10993     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
10994
10995 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) \
10996     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) 
10997
10998 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary)  \
10999     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) 
11000
11001
11002 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale)     \
11003     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) 
11004
11005 #endif /* COBJMACROS */
11006
11007
11008 #endif  /* C style interface */
11009
11010
11011
11012
11013 #endif  /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */
11014
11015
11016 #ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
11017 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
11018
11019 /* interface IDeckLinkDisplayModeIterator_v7_1 */
11020 /* [helpstring][uuid][object] */ 
11021
11022
11023 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;
11024
11025 #if defined(__cplusplus) && !defined(CINTERFACE)
11026     
11027     MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")
11028     IDeckLinkDisplayModeIterator_v7_1 : public IUnknown
11029     {
11030     public:
11031         virtual HRESULT STDMETHODCALLTYPE Next( 
11032             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;
11033         
11034     };
11035     
11036 #else   /* C style interface */
11037
11038     typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl
11039     {
11040         BEGIN_INTERFACE
11041         
11042         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11043             IDeckLinkDisplayModeIterator_v7_1 * This,
11044             /* [in] */ REFIID riid,
11045             /* [annotation][iid_is][out] */ 
11046             __RPC__deref_out  void **ppvObject);
11047         
11048         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11049             IDeckLinkDisplayModeIterator_v7_1 * This);
11050         
11051         ULONG ( STDMETHODCALLTYPE *Release )( 
11052             IDeckLinkDisplayModeIterator_v7_1 * This);
11053         
11054         HRESULT ( STDMETHODCALLTYPE *Next )( 
11055             IDeckLinkDisplayModeIterator_v7_1 * This,
11056             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);
11057         
11058         END_INTERFACE
11059     } IDeckLinkDisplayModeIterator_v7_1Vtbl;
11060
11061     interface IDeckLinkDisplayModeIterator_v7_1
11062     {
11063         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;
11064     };
11065
11066     
11067
11068 #ifdef COBJMACROS
11069
11070
11071 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject)   \
11072     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11073
11074 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This)  \
11075     ( (This)->lpVtbl -> AddRef(This) ) 
11076
11077 #define IDeckLinkDisplayModeIterator_v7_1_Release(This) \
11078     ( (This)->lpVtbl -> Release(This) ) 
11079
11080
11081 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode)        \
11082     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) 
11083
11084 #endif /* COBJMACROS */
11085
11086
11087 #endif  /* C style interface */
11088
11089
11090
11091
11092 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */
11093
11094
11095 #ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
11096 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
11097
11098 /* interface IDeckLinkDisplayMode_v7_1 */
11099 /* [helpstring][uuid][object] */ 
11100
11101
11102 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;
11103
11104 #if defined(__cplusplus) && !defined(CINTERFACE)
11105     
11106     MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")
11107     IDeckLinkDisplayMode_v7_1 : public IUnknown
11108     {
11109     public:
11110         virtual HRESULT STDMETHODCALLTYPE GetName( 
11111             /* [out] */ BSTR *name) = 0;
11112         
11113         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
11114         
11115         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
11116         
11117         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
11118         
11119         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( 
11120             /* [out] */ BMDTimeValue *frameDuration,
11121             /* [out] */ BMDTimeScale *timeScale) = 0;
11122         
11123     };
11124     
11125 #else   /* C style interface */
11126
11127     typedef struct IDeckLinkDisplayMode_v7_1Vtbl
11128     {
11129         BEGIN_INTERFACE
11130         
11131         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11132             IDeckLinkDisplayMode_v7_1 * This,
11133             /* [in] */ REFIID riid,
11134             /* [annotation][iid_is][out] */ 
11135             __RPC__deref_out  void **ppvObject);
11136         
11137         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11138             IDeckLinkDisplayMode_v7_1 * This);
11139         
11140         ULONG ( STDMETHODCALLTYPE *Release )( 
11141             IDeckLinkDisplayMode_v7_1 * This);
11142         
11143         HRESULT ( STDMETHODCALLTYPE *GetName )( 
11144             IDeckLinkDisplayMode_v7_1 * This,
11145             /* [out] */ BSTR *name);
11146         
11147         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( 
11148             IDeckLinkDisplayMode_v7_1 * This);
11149         
11150         long ( STDMETHODCALLTYPE *GetWidth )( 
11151             IDeckLinkDisplayMode_v7_1 * This);
11152         
11153         long ( STDMETHODCALLTYPE *GetHeight )( 
11154             IDeckLinkDisplayMode_v7_1 * This);
11155         
11156         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( 
11157             IDeckLinkDisplayMode_v7_1 * This,
11158             /* [out] */ BMDTimeValue *frameDuration,
11159             /* [out] */ BMDTimeScale *timeScale);
11160         
11161         END_INTERFACE
11162     } IDeckLinkDisplayMode_v7_1Vtbl;
11163
11164     interface IDeckLinkDisplayMode_v7_1
11165     {
11166         CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;
11167     };
11168
11169     
11170
11171 #ifdef COBJMACROS
11172
11173
11174 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject)   \
11175     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11176
11177 #define IDeckLinkDisplayMode_v7_1_AddRef(This)  \
11178     ( (This)->lpVtbl -> AddRef(This) ) 
11179
11180 #define IDeckLinkDisplayMode_v7_1_Release(This) \
11181     ( (This)->lpVtbl -> Release(This) ) 
11182
11183
11184 #define IDeckLinkDisplayMode_v7_1_GetName(This,name)    \
11185     ( (This)->lpVtbl -> GetName(This,name) ) 
11186
11187 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This)  \
11188     ( (This)->lpVtbl -> GetDisplayMode(This) ) 
11189
11190 #define IDeckLinkDisplayMode_v7_1_GetWidth(This)        \
11191     ( (This)->lpVtbl -> GetWidth(This) ) 
11192
11193 #define IDeckLinkDisplayMode_v7_1_GetHeight(This)       \
11194     ( (This)->lpVtbl -> GetHeight(This) ) 
11195
11196 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale)    \
11197     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) 
11198
11199 #endif /* COBJMACROS */
11200
11201
11202 #endif  /* C style interface */
11203
11204
11205
11206
11207 #endif  /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */
11208
11209
11210 #ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
11211 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
11212
11213 /* interface IDeckLinkVideoFrame_v7_1 */
11214 /* [helpstring][local][uuid][object] */ 
11215
11216
11217 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;
11218
11219 #if defined(__cplusplus) && !defined(CINTERFACE)
11220     
11221     MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")
11222     IDeckLinkVideoFrame_v7_1 : public IUnknown
11223     {
11224     public:
11225         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
11226         
11227         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
11228         
11229         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
11230         
11231         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
11232         
11233         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
11234         
11235         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
11236             void **buffer) = 0;
11237         
11238     };
11239     
11240 #else   /* C style interface */
11241
11242     typedef struct IDeckLinkVideoFrame_v7_1Vtbl
11243     {
11244         BEGIN_INTERFACE
11245         
11246         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11247             IDeckLinkVideoFrame_v7_1 * This,
11248             /* [in] */ REFIID riid,
11249             /* [annotation][iid_is][out] */ 
11250             __RPC__deref_out  void **ppvObject);
11251         
11252         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11253             IDeckLinkVideoFrame_v7_1 * This);
11254         
11255         ULONG ( STDMETHODCALLTYPE *Release )( 
11256             IDeckLinkVideoFrame_v7_1 * This);
11257         
11258         long ( STDMETHODCALLTYPE *GetWidth )( 
11259             IDeckLinkVideoFrame_v7_1 * This);
11260         
11261         long ( STDMETHODCALLTYPE *GetHeight )( 
11262             IDeckLinkVideoFrame_v7_1 * This);
11263         
11264         long ( STDMETHODCALLTYPE *GetRowBytes )( 
11265             IDeckLinkVideoFrame_v7_1 * This);
11266         
11267         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
11268             IDeckLinkVideoFrame_v7_1 * This);
11269         
11270         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
11271             IDeckLinkVideoFrame_v7_1 * This);
11272         
11273         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
11274             IDeckLinkVideoFrame_v7_1 * This,
11275             void **buffer);
11276         
11277         END_INTERFACE
11278     } IDeckLinkVideoFrame_v7_1Vtbl;
11279
11280     interface IDeckLinkVideoFrame_v7_1
11281     {
11282         CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;
11283     };
11284
11285     
11286
11287 #ifdef COBJMACROS
11288
11289
11290 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject)    \
11291     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11292
11293 #define IDeckLinkVideoFrame_v7_1_AddRef(This)   \
11294     ( (This)->lpVtbl -> AddRef(This) ) 
11295
11296 #define IDeckLinkVideoFrame_v7_1_Release(This)  \
11297     ( (This)->lpVtbl -> Release(This) ) 
11298
11299
11300 #define IDeckLinkVideoFrame_v7_1_GetWidth(This) \
11301     ( (This)->lpVtbl -> GetWidth(This) ) 
11302
11303 #define IDeckLinkVideoFrame_v7_1_GetHeight(This)        \
11304     ( (This)->lpVtbl -> GetHeight(This) ) 
11305
11306 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This)      \
11307     ( (This)->lpVtbl -> GetRowBytes(This) ) 
11308
11309 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This)   \
11310     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
11311
11312 #define IDeckLinkVideoFrame_v7_1_GetFlags(This) \
11313     ( (This)->lpVtbl -> GetFlags(This) ) 
11314
11315 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer)  \
11316     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
11317
11318 #endif /* COBJMACROS */
11319
11320
11321 #endif  /* C style interface */
11322
11323
11324
11325
11326 #endif  /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */
11327
11328
11329 #ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
11330 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
11331
11332 /* interface IDeckLinkVideoInputFrame_v7_1 */
11333 /* [helpstring][local][uuid][object] */ 
11334
11335
11336 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;
11337
11338 #if defined(__cplusplus) && !defined(CINTERFACE)
11339     
11340     MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")
11341     IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1
11342     {
11343     public:
11344         virtual HRESULT STDMETHODCALLTYPE GetFrameTime( 
11345             BMDTimeValue *frameTime,
11346             BMDTimeValue *frameDuration,
11347             BMDTimeScale timeScale) = 0;
11348         
11349     };
11350     
11351 #else   /* C style interface */
11352
11353     typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl
11354     {
11355         BEGIN_INTERFACE
11356         
11357         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11358             IDeckLinkVideoInputFrame_v7_1 * This,
11359             /* [in] */ REFIID riid,
11360             /* [annotation][iid_is][out] */ 
11361             __RPC__deref_out  void **ppvObject);
11362         
11363         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11364             IDeckLinkVideoInputFrame_v7_1 * This);
11365         
11366         ULONG ( STDMETHODCALLTYPE *Release )( 
11367             IDeckLinkVideoInputFrame_v7_1 * This);
11368         
11369         long ( STDMETHODCALLTYPE *GetWidth )( 
11370             IDeckLinkVideoInputFrame_v7_1 * This);
11371         
11372         long ( STDMETHODCALLTYPE *GetHeight )( 
11373             IDeckLinkVideoInputFrame_v7_1 * This);
11374         
11375         long ( STDMETHODCALLTYPE *GetRowBytes )( 
11376             IDeckLinkVideoInputFrame_v7_1 * This);
11377         
11378         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( 
11379             IDeckLinkVideoInputFrame_v7_1 * This);
11380         
11381         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( 
11382             IDeckLinkVideoInputFrame_v7_1 * This);
11383         
11384         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
11385             IDeckLinkVideoInputFrame_v7_1 * This,
11386             void **buffer);
11387         
11388         HRESULT ( STDMETHODCALLTYPE *GetFrameTime )( 
11389             IDeckLinkVideoInputFrame_v7_1 * This,
11390             BMDTimeValue *frameTime,
11391             BMDTimeValue *frameDuration,
11392             BMDTimeScale timeScale);
11393         
11394         END_INTERFACE
11395     } IDeckLinkVideoInputFrame_v7_1Vtbl;
11396
11397     interface IDeckLinkVideoInputFrame_v7_1
11398     {
11399         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;
11400     };
11401
11402     
11403
11404 #ifdef COBJMACROS
11405
11406
11407 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject)       \
11408     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11409
11410 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This)      \
11411     ( (This)->lpVtbl -> AddRef(This) ) 
11412
11413 #define IDeckLinkVideoInputFrame_v7_1_Release(This)     \
11414     ( (This)->lpVtbl -> Release(This) ) 
11415
11416
11417 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This)    \
11418     ( (This)->lpVtbl -> GetWidth(This) ) 
11419
11420 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This)   \
11421     ( (This)->lpVtbl -> GetHeight(This) ) 
11422
11423 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) \
11424     ( (This)->lpVtbl -> GetRowBytes(This) ) 
11425
11426 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This)      \
11427     ( (This)->lpVtbl -> GetPixelFormat(This) ) 
11428
11429 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This)    \
11430     ( (This)->lpVtbl -> GetFlags(This) ) 
11431
11432 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer)     \
11433     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
11434
11435
11436 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale)      \
11437     ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) ) 
11438
11439 #endif /* COBJMACROS */
11440
11441
11442 #endif  /* C style interface */
11443
11444
11445
11446
11447 #endif  /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */
11448
11449
11450 #ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
11451 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
11452
11453 /* interface IDeckLinkAudioInputPacket_v7_1 */
11454 /* [helpstring][local][uuid][object] */ 
11455
11456
11457 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;
11458
11459 #if defined(__cplusplus) && !defined(CINTERFACE)
11460     
11461     MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")
11462     IDeckLinkAudioInputPacket_v7_1 : public IUnknown
11463     {
11464     public:
11465         virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;
11466         
11467         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
11468             void **buffer) = 0;
11469         
11470         virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( 
11471             BMDTimeValue *packetTime,
11472             BMDTimeScale timeScale) = 0;
11473         
11474     };
11475     
11476 #else   /* C style interface */
11477
11478     typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl
11479     {
11480         BEGIN_INTERFACE
11481         
11482         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11483             IDeckLinkAudioInputPacket_v7_1 * This,
11484             /* [in] */ REFIID riid,
11485             /* [annotation][iid_is][out] */ 
11486             __RPC__deref_out  void **ppvObject);
11487         
11488         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11489             IDeckLinkAudioInputPacket_v7_1 * This);
11490         
11491         ULONG ( STDMETHODCALLTYPE *Release )( 
11492             IDeckLinkAudioInputPacket_v7_1 * This);
11493         
11494         long ( STDMETHODCALLTYPE *GetSampleCount )( 
11495             IDeckLinkAudioInputPacket_v7_1 * This);
11496         
11497         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
11498             IDeckLinkAudioInputPacket_v7_1 * This,
11499             void **buffer);
11500         
11501         HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )( 
11502             IDeckLinkAudioInputPacket_v7_1 * This,
11503             BMDTimeValue *packetTime,
11504             BMDTimeScale timeScale);
11505         
11506         END_INTERFACE
11507     } IDeckLinkAudioInputPacket_v7_1Vtbl;
11508
11509     interface IDeckLinkAudioInputPacket_v7_1
11510     {
11511         CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;
11512     };
11513
11514     
11515
11516 #ifdef COBJMACROS
11517
11518
11519 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject)      \
11520     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11521
11522 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This)     \
11523     ( (This)->lpVtbl -> AddRef(This) ) 
11524
11525 #define IDeckLinkAudioInputPacket_v7_1_Release(This)    \
11526     ( (This)->lpVtbl -> Release(This) ) 
11527
11528
11529 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This)     \
11530     ( (This)->lpVtbl -> GetSampleCount(This) ) 
11531
11532 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer)    \
11533     ( (This)->lpVtbl -> GetBytes(This,buffer) ) 
11534
11535 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale)    \
11536     ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) ) 
11537
11538 #endif /* COBJMACROS */
11539
11540
11541 #endif  /* C style interface */
11542
11543
11544
11545
11546 #endif  /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */
11547
11548
11549 #ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
11550 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
11551
11552 /* interface IDeckLinkVideoOutputCallback_v7_1 */
11553 /* [helpstring][uuid][object] */ 
11554
11555
11556 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;
11557
11558 #if defined(__cplusplus) && !defined(CINTERFACE)
11559     
11560     MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")
11561     IDeckLinkVideoOutputCallback_v7_1 : public IUnknown
11562     {
11563     public:
11564         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( 
11565             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
11566             /* [in] */ BMDOutputFrameCompletionResult result) = 0;
11567         
11568     };
11569     
11570 #else   /* C style interface */
11571
11572     typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl
11573     {
11574         BEGIN_INTERFACE
11575         
11576         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11577             IDeckLinkVideoOutputCallback_v7_1 * This,
11578             /* [in] */ REFIID riid,
11579             /* [annotation][iid_is][out] */ 
11580             __RPC__deref_out  void **ppvObject);
11581         
11582         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11583             IDeckLinkVideoOutputCallback_v7_1 * This);
11584         
11585         ULONG ( STDMETHODCALLTYPE *Release )( 
11586             IDeckLinkVideoOutputCallback_v7_1 * This);
11587         
11588         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( 
11589             IDeckLinkVideoOutputCallback_v7_1 * This,
11590             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
11591             /* [in] */ BMDOutputFrameCompletionResult result);
11592         
11593         END_INTERFACE
11594     } IDeckLinkVideoOutputCallback_v7_1Vtbl;
11595
11596     interface IDeckLinkVideoOutputCallback_v7_1
11597     {
11598         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;
11599     };
11600
11601     
11602
11603 #ifdef COBJMACROS
11604
11605
11606 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject)   \
11607     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11608
11609 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This)  \
11610     ( (This)->lpVtbl -> AddRef(This) ) 
11611
11612 #define IDeckLinkVideoOutputCallback_v7_1_Release(This) \
11613     ( (This)->lpVtbl -> Release(This) ) 
11614
11615
11616 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result)   \
11617     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) 
11618
11619 #endif /* COBJMACROS */
11620
11621
11622 #endif  /* C style interface */
11623
11624
11625
11626
11627 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */
11628
11629
11630 #ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
11631 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
11632
11633 /* interface IDeckLinkInputCallback_v7_1 */
11634 /* [helpstring][uuid][object] */ 
11635
11636
11637 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;
11638
11639 #if defined(__cplusplus) && !defined(CINTERFACE)
11640     
11641     MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")
11642     IDeckLinkInputCallback_v7_1 : public IUnknown
11643     {
11644     public:
11645         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( 
11646             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
11647             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;
11648         
11649     };
11650     
11651 #else   /* C style interface */
11652
11653     typedef struct IDeckLinkInputCallback_v7_1Vtbl
11654     {
11655         BEGIN_INTERFACE
11656         
11657         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11658             IDeckLinkInputCallback_v7_1 * This,
11659             /* [in] */ REFIID riid,
11660             /* [annotation][iid_is][out] */ 
11661             __RPC__deref_out  void **ppvObject);
11662         
11663         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11664             IDeckLinkInputCallback_v7_1 * This);
11665         
11666         ULONG ( STDMETHODCALLTYPE *Release )( 
11667             IDeckLinkInputCallback_v7_1 * This);
11668         
11669         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( 
11670             IDeckLinkInputCallback_v7_1 * This,
11671             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
11672             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);
11673         
11674         END_INTERFACE
11675     } IDeckLinkInputCallback_v7_1Vtbl;
11676
11677     interface IDeckLinkInputCallback_v7_1
11678     {
11679         CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;
11680     };
11681
11682     
11683
11684 #ifdef COBJMACROS
11685
11686
11687 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) \
11688     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11689
11690 #define IDeckLinkInputCallback_v7_1_AddRef(This)        \
11691     ( (This)->lpVtbl -> AddRef(This) ) 
11692
11693 #define IDeckLinkInputCallback_v7_1_Release(This)       \
11694     ( (This)->lpVtbl -> Release(This) ) 
11695
11696
11697 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) \
11698     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) 
11699
11700 #endif /* COBJMACROS */
11701
11702
11703 #endif  /* C style interface */
11704
11705
11706
11707
11708 #endif  /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */
11709
11710
11711 #ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
11712 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
11713
11714 /* interface IDeckLinkOutput_v7_1 */
11715 /* [helpstring][local][uuid][object] */ 
11716
11717
11718 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
11719
11720 #if defined(__cplusplus) && !defined(CINTERFACE)
11721     
11722     MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")
11723     IDeckLinkOutput_v7_1 : public IUnknown
11724     {
11725     public:
11726         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
11727             BMDDisplayMode displayMode,
11728             BMDPixelFormat pixelFormat,
11729             /* [out] */ BMDDisplayModeSupport *result) = 0;
11730         
11731         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
11732             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
11733         
11734         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( 
11735             BMDDisplayMode displayMode) = 0;
11736         
11737         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
11738         
11739         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( 
11740             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
11741         
11742         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( 
11743             long width,
11744             long height,
11745             long rowBytes,
11746             BMDPixelFormat pixelFormat,
11747             BMDFrameFlags flags,
11748             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
11749         
11750         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( 
11751             void *buffer,
11752             long width,
11753             long height,
11754             long rowBytes,
11755             BMDPixelFormat pixelFormat,
11756             BMDFrameFlags flags,
11757             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
11758         
11759         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( 
11760             IDeckLinkVideoFrame_v7_1 *theFrame) = 0;
11761         
11762         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( 
11763             IDeckLinkVideoFrame_v7_1 *theFrame,
11764             BMDTimeValue displayTime,
11765             BMDTimeValue displayDuration,
11766             BMDTimeScale timeScale) = 0;
11767         
11768         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( 
11769             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;
11770         
11771         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( 
11772             BMDAudioSampleRate sampleRate,
11773             BMDAudioSampleType sampleType,
11774             unsigned long channelCount) = 0;
11775         
11776         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
11777         
11778         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( 
11779             void *buffer,
11780             unsigned long sampleFrameCount,
11781             /* [out] */ unsigned long *sampleFramesWritten) = 0;
11782         
11783         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
11784         
11785         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
11786         
11787         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( 
11788             void *buffer,
11789             unsigned long sampleFrameCount,
11790             BMDTimeValue streamTime,
11791             BMDTimeScale timeScale,
11792             /* [out] */ unsigned long *sampleFramesWritten) = 0;
11793         
11794         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( 
11795             /* [out] */ unsigned long *bufferedSampleCount) = 0;
11796         
11797         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
11798         
11799         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( 
11800             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
11801         
11802         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( 
11803             BMDTimeValue playbackStartTime,
11804             BMDTimeScale timeScale,
11805             double playbackSpeed) = 0;
11806         
11807         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( 
11808             BMDTimeValue stopPlaybackAtTime,
11809             BMDTimeValue *actualStopTime,
11810             BMDTimeScale timeScale) = 0;
11811         
11812         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( 
11813             BMDTimeScale desiredTimeScale,
11814             BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
11815         
11816     };
11817     
11818 #else   /* C style interface */
11819
11820     typedef struct IDeckLinkOutput_v7_1Vtbl
11821     {
11822         BEGIN_INTERFACE
11823         
11824         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11825             IDeckLinkOutput_v7_1 * This,
11826             /* [in] */ REFIID riid,
11827             /* [annotation][iid_is][out] */ 
11828             __RPC__deref_out  void **ppvObject);
11829         
11830         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11831             IDeckLinkOutput_v7_1 * This);
11832         
11833         ULONG ( STDMETHODCALLTYPE *Release )( 
11834             IDeckLinkOutput_v7_1 * This);
11835         
11836         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
11837             IDeckLinkOutput_v7_1 * This,
11838             BMDDisplayMode displayMode,
11839             BMDPixelFormat pixelFormat,
11840             /* [out] */ BMDDisplayModeSupport *result);
11841         
11842         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
11843             IDeckLinkOutput_v7_1 * This,
11844             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
11845         
11846         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( 
11847             IDeckLinkOutput_v7_1 * This,
11848             BMDDisplayMode displayMode);
11849         
11850         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( 
11851             IDeckLinkOutput_v7_1 * This);
11852         
11853         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( 
11854             IDeckLinkOutput_v7_1 * This,
11855             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
11856         
11857         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( 
11858             IDeckLinkOutput_v7_1 * This,
11859             long width,
11860             long height,
11861             long rowBytes,
11862             BMDPixelFormat pixelFormat,
11863             BMDFrameFlags flags,
11864             IDeckLinkVideoFrame_v7_1 **outFrame);
11865         
11866         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( 
11867             IDeckLinkOutput_v7_1 * This,
11868             void *buffer,
11869             long width,
11870             long height,
11871             long rowBytes,
11872             BMDPixelFormat pixelFormat,
11873             BMDFrameFlags flags,
11874             IDeckLinkVideoFrame_v7_1 **outFrame);
11875         
11876         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( 
11877             IDeckLinkOutput_v7_1 * This,
11878             IDeckLinkVideoFrame_v7_1 *theFrame);
11879         
11880         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( 
11881             IDeckLinkOutput_v7_1 * This,
11882             IDeckLinkVideoFrame_v7_1 *theFrame,
11883             BMDTimeValue displayTime,
11884             BMDTimeValue displayDuration,
11885             BMDTimeScale timeScale);
11886         
11887         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( 
11888             IDeckLinkOutput_v7_1 * This,
11889             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);
11890         
11891         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( 
11892             IDeckLinkOutput_v7_1 * This,
11893             BMDAudioSampleRate sampleRate,
11894             BMDAudioSampleType sampleType,
11895             unsigned long channelCount);
11896         
11897         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( 
11898             IDeckLinkOutput_v7_1 * This);
11899         
11900         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( 
11901             IDeckLinkOutput_v7_1 * This,
11902             void *buffer,
11903             unsigned long sampleFrameCount,
11904             /* [out] */ unsigned long *sampleFramesWritten);
11905         
11906         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( 
11907             IDeckLinkOutput_v7_1 * This);
11908         
11909         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( 
11910             IDeckLinkOutput_v7_1 * This);
11911         
11912         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( 
11913             IDeckLinkOutput_v7_1 * This,
11914             void *buffer,
11915             unsigned long sampleFrameCount,
11916             BMDTimeValue streamTime,
11917             BMDTimeScale timeScale,
11918             /* [out] */ unsigned long *sampleFramesWritten);
11919         
11920         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( 
11921             IDeckLinkOutput_v7_1 * This,
11922             /* [out] */ unsigned long *bufferedSampleCount);
11923         
11924         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( 
11925             IDeckLinkOutput_v7_1 * This);
11926         
11927         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( 
11928             IDeckLinkOutput_v7_1 * This,
11929             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
11930         
11931         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( 
11932             IDeckLinkOutput_v7_1 * This,
11933             BMDTimeValue playbackStartTime,
11934             BMDTimeScale timeScale,
11935             double playbackSpeed);
11936         
11937         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( 
11938             IDeckLinkOutput_v7_1 * This,
11939             BMDTimeValue stopPlaybackAtTime,
11940             BMDTimeValue *actualStopTime,
11941             BMDTimeScale timeScale);
11942         
11943         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( 
11944             IDeckLinkOutput_v7_1 * This,
11945             BMDTimeScale desiredTimeScale,
11946             BMDTimeValue *elapsedTimeSinceSchedulerBegan);
11947         
11948         END_INTERFACE
11949     } IDeckLinkOutput_v7_1Vtbl;
11950
11951     interface IDeckLinkOutput_v7_1
11952     {
11953         CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;
11954     };
11955
11956     
11957
11958 #ifdef COBJMACROS
11959
11960
11961 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject)        \
11962     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11963
11964 #define IDeckLinkOutput_v7_1_AddRef(This)       \
11965     ( (This)->lpVtbl -> AddRef(This) ) 
11966
11967 #define IDeckLinkOutput_v7_1_Release(This)      \
11968     ( (This)->lpVtbl -> Release(This) ) 
11969
11970
11971 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \
11972     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) 
11973
11974 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator)      \
11975     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
11976
11977 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode)        \
11978     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) ) 
11979
11980 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This)   \
11981     ( (This)->lpVtbl -> DisableVideoOutput(This) ) 
11982
11983 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \
11984     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) 
11985
11986 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \
11987     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) 
11988
11989 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame)   \
11990     ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) ) 
11991
11992 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame)       \
11993     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) 
11994
11995 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \
11996     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) 
11997
11998 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback)      \
11999     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) 
12000
12001 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) \
12002     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) ) 
12003
12004 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This)   \
12005     ( (This)->lpVtbl -> DisableAudioOutput(This) ) 
12006
12007 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \
12008     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) 
12009
12010 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This)    \
12011     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) 
12012
12013 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This)      \
12014     ( (This)->lpVtbl -> EndAudioPreroll(This) ) 
12015
12016 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \
12017     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) 
12018
12019 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \
12020     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) 
12021
12022 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This)    \
12023     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) 
12024
12025 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) \
12026     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) 
12027
12028 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \
12029     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) 
12030
12031 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \
12032     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) 
12033
12034 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)    \
12035     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) 
12036
12037 #endif /* COBJMACROS */
12038
12039
12040 #endif  /* C style interface */
12041
12042
12043
12044
12045 #endif  /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */
12046
12047
12048 #ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
12049 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
12050
12051 /* interface IDeckLinkInput_v7_1 */
12052 /* [helpstring][uuid][object] */ 
12053
12054
12055 EXTERN_C const IID IID_IDeckLinkInput_v7_1;
12056
12057 #if defined(__cplusplus) && !defined(CINTERFACE)
12058     
12059     MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")
12060     IDeckLinkInput_v7_1 : public IUnknown
12061     {
12062     public:
12063         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( 
12064             BMDDisplayMode displayMode,
12065             BMDPixelFormat pixelFormat,
12066             /* [out] */ BMDDisplayModeSupport *result) = 0;
12067         
12068         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( 
12069             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
12070         
12071         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( 
12072             BMDDisplayMode displayMode,
12073             BMDPixelFormat pixelFormat,
12074             BMDVideoInputFlags flags) = 0;
12075         
12076         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
12077         
12078         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( 
12079             BMDAudioSampleRate sampleRate,
12080             BMDAudioSampleType sampleType,
12081             unsigned long channelCount) = 0;
12082         
12083         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
12084         
12085         virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( 
12086             void *buffer,
12087             unsigned long sampleFrameCount,
12088             /* [out] */ unsigned long *sampleFramesRead,
12089             /* [out] */ BMDTimeValue *audioPacketTime,
12090             BMDTimeScale timeScale) = 0;
12091         
12092         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( 
12093             /* [out] */ unsigned long *bufferedSampleCount) = 0;
12094         
12095         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
12096         
12097         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
12098         
12099         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
12100         
12101         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
12102             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;
12103         
12104     };
12105     
12106 #else   /* C style interface */
12107
12108     typedef struct IDeckLinkInput_v7_1Vtbl
12109     {
12110         BEGIN_INTERFACE
12111         
12112         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
12113             IDeckLinkInput_v7_1 * This,
12114             /* [in] */ REFIID riid,
12115             /* [annotation][iid_is][out] */ 
12116             __RPC__deref_out  void **ppvObject);
12117         
12118         ULONG ( STDMETHODCALLTYPE *AddRef )( 
12119             IDeckLinkInput_v7_1 * This);
12120         
12121         ULONG ( STDMETHODCALLTYPE *Release )( 
12122             IDeckLinkInput_v7_1 * This);
12123         
12124         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( 
12125             IDeckLinkInput_v7_1 * This,
12126             BMDDisplayMode displayMode,
12127             BMDPixelFormat pixelFormat,
12128             /* [out] */ BMDDisplayModeSupport *result);
12129         
12130         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( 
12131             IDeckLinkInput_v7_1 * This,
12132             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
12133         
12134         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( 
12135             IDeckLinkInput_v7_1 * This,
12136             BMDDisplayMode displayMode,
12137             BMDPixelFormat pixelFormat,
12138             BMDVideoInputFlags flags);
12139         
12140         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( 
12141             IDeckLinkInput_v7_1 * This);
12142         
12143         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( 
12144             IDeckLinkInput_v7_1 * This,
12145             BMDAudioSampleRate sampleRate,
12146             BMDAudioSampleType sampleType,
12147             unsigned long channelCount);
12148         
12149         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( 
12150             IDeckLinkInput_v7_1 * This);
12151         
12152         HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( 
12153             IDeckLinkInput_v7_1 * This,
12154             void *buffer,
12155             unsigned long sampleFrameCount,
12156             /* [out] */ unsigned long *sampleFramesRead,
12157             /* [out] */ BMDTimeValue *audioPacketTime,
12158             BMDTimeScale timeScale);
12159         
12160         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( 
12161             IDeckLinkInput_v7_1 * This,
12162             /* [out] */ unsigned long *bufferedSampleCount);
12163         
12164         HRESULT ( STDMETHODCALLTYPE *StartStreams )( 
12165             IDeckLinkInput_v7_1 * This);
12166         
12167         HRESULT ( STDMETHODCALLTYPE *StopStreams )( 
12168             IDeckLinkInput_v7_1 * This);
12169         
12170         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( 
12171             IDeckLinkInput_v7_1 * This);
12172         
12173         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
12174             IDeckLinkInput_v7_1 * This,
12175             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);
12176         
12177         END_INTERFACE
12178     } IDeckLinkInput_v7_1Vtbl;
12179
12180     interface IDeckLinkInput_v7_1
12181     {
12182         CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;
12183     };
12184
12185     
12186
12187 #ifdef COBJMACROS
12188
12189
12190 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) \
12191     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
12192
12193 #define IDeckLinkInput_v7_1_AddRef(This)        \
12194     ( (This)->lpVtbl -> AddRef(This) ) 
12195
12196 #define IDeckLinkInput_v7_1_Release(This)       \
12197     ( (This)->lpVtbl -> Release(This) ) 
12198
12199
12200 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \
12201     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) 
12202
12203 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator)       \
12204     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) 
12205
12206 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags)        \
12207     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) 
12208
12209 #define IDeckLinkInput_v7_1_DisableVideoInput(This)     \
12210     ( (This)->lpVtbl -> DisableVideoInput(This) ) 
12211
12212 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \
12213     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) 
12214
12215 #define IDeckLinkInput_v7_1_DisableAudioInput(This)     \
12216     ( (This)->lpVtbl -> DisableAudioInput(This) ) 
12217
12218 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale)   \
12219     ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) ) 
12220
12221 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)  \
12222     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) 
12223
12224 #define IDeckLinkInput_v7_1_StartStreams(This)  \
12225     ( (This)->lpVtbl -> StartStreams(This) ) 
12226
12227 #define IDeckLinkInput_v7_1_StopStreams(This)   \
12228     ( (This)->lpVtbl -> StopStreams(This) ) 
12229
12230 #define IDeckLinkInput_v7_1_PauseStreams(This)  \
12231     ( (This)->lpVtbl -> PauseStreams(This) ) 
12232
12233 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback)       \
12234     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
12235
12236 #endif /* COBJMACROS */
12237
12238
12239 #endif  /* C style interface */
12240
12241
12242
12243
12244 #endif  /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */
12245
12246 #endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */
12247
12248 /* Additional Prototypes for ALL interfaces */
12249
12250 /* end of Additional Prototypes */
12251
12252 #ifdef __cplusplus
12253 }
12254 #endif
12255
12256 #endif
12257
12258