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