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