• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
4 
5 
6  /* File created by MIDL compiler version 8.01.0622 */
7 /* at Tue Jan 19 12:14:07 2038
8  */
9 /* Compiler settings for ..\..\Blackmagic\DeckLink_SDK_10.11.4\Win\include\DeckLinkAPI.idl:
10     Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
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__
38 #define __DeckLinkAPI_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 __IDeckLinkHDMIInputEDID_FWD_DEFINED__
267 #define __IDeckLinkHDMIInputEDID_FWD_DEFINED__
268 typedef interface IDeckLinkHDMIInputEDID IDeckLinkHDMIInputEDID;
269 
270 #endif 	/* __IDeckLinkHDMIInputEDID_FWD_DEFINED__ */
271 
272 
273 #ifndef __IDeckLinkEncoderInput_FWD_DEFINED__
274 #define __IDeckLinkEncoderInput_FWD_DEFINED__
275 typedef interface IDeckLinkEncoderInput IDeckLinkEncoderInput;
276 
277 #endif 	/* __IDeckLinkEncoderInput_FWD_DEFINED__ */
278 
279 
280 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__
281 #define __IDeckLinkVideoFrame_FWD_DEFINED__
282 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;
283 
284 #endif 	/* __IDeckLinkVideoFrame_FWD_DEFINED__ */
285 
286 
287 #ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__
288 #define __IDeckLinkMutableVideoFrame_FWD_DEFINED__
289 typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;
290 
291 #endif 	/* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */
292 
293 
294 #ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
295 #define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
296 typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;
297 
298 #endif 	/* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */
299 
300 
301 #ifndef __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__
302 #define __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__
303 typedef interface IDeckLinkVideoFrameMetadataExtensions IDeckLinkVideoFrameMetadataExtensions;
304 
305 #endif 	/* __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__ */
306 
307 
308 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__
309 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__
310 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;
311 
312 #endif 	/* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */
313 
314 
315 #ifndef __IDeckLinkAncillaryPacket_FWD_DEFINED__
316 #define __IDeckLinkAncillaryPacket_FWD_DEFINED__
317 typedef interface IDeckLinkAncillaryPacket IDeckLinkAncillaryPacket;
318 
319 #endif 	/* __IDeckLinkAncillaryPacket_FWD_DEFINED__ */
320 
321 
322 #ifndef __IDeckLinkAncillaryPacketIterator_FWD_DEFINED__
323 #define __IDeckLinkAncillaryPacketIterator_FWD_DEFINED__
324 typedef interface IDeckLinkAncillaryPacketIterator IDeckLinkAncillaryPacketIterator;
325 
326 #endif 	/* __IDeckLinkAncillaryPacketIterator_FWD_DEFINED__ */
327 
328 
329 #ifndef __IDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__
330 #define __IDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__
331 typedef interface IDeckLinkVideoFrameAncillaryPackets IDeckLinkVideoFrameAncillaryPackets;
332 
333 #endif 	/* __IDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__ */
334 
335 
336 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
337 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
338 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;
339 
340 #endif 	/* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */
341 
342 
343 #ifndef __IDeckLinkEncoderPacket_FWD_DEFINED__
344 #define __IDeckLinkEncoderPacket_FWD_DEFINED__
345 typedef interface IDeckLinkEncoderPacket IDeckLinkEncoderPacket;
346 
347 #endif 	/* __IDeckLinkEncoderPacket_FWD_DEFINED__ */
348 
349 
350 #ifndef __IDeckLinkEncoderVideoPacket_FWD_DEFINED__
351 #define __IDeckLinkEncoderVideoPacket_FWD_DEFINED__
352 typedef interface IDeckLinkEncoderVideoPacket IDeckLinkEncoderVideoPacket;
353 
354 #endif 	/* __IDeckLinkEncoderVideoPacket_FWD_DEFINED__ */
355 
356 
357 #ifndef __IDeckLinkEncoderAudioPacket_FWD_DEFINED__
358 #define __IDeckLinkEncoderAudioPacket_FWD_DEFINED__
359 typedef interface IDeckLinkEncoderAudioPacket IDeckLinkEncoderAudioPacket;
360 
361 #endif 	/* __IDeckLinkEncoderAudioPacket_FWD_DEFINED__ */
362 
363 
364 #ifndef __IDeckLinkH265NALPacket_FWD_DEFINED__
365 #define __IDeckLinkH265NALPacket_FWD_DEFINED__
366 typedef interface IDeckLinkH265NALPacket IDeckLinkH265NALPacket;
367 
368 #endif 	/* __IDeckLinkH265NALPacket_FWD_DEFINED__ */
369 
370 
371 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__
372 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__
373 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;
374 
375 #endif 	/* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */
376 
377 
378 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
379 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
380 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;
381 
382 #endif 	/* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */
383 
384 
385 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
386 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
387 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;
388 
389 #endif 	/* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
390 
391 
392 #ifndef __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
393 #define __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
394 typedef interface IDeckLinkDX9ScreenPreviewHelper IDeckLinkDX9ScreenPreviewHelper;
395 
396 #endif 	/* __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
397 
398 
399 #ifndef __IDeckLinkNotificationCallback_FWD_DEFINED__
400 #define __IDeckLinkNotificationCallback_FWD_DEFINED__
401 typedef interface IDeckLinkNotificationCallback IDeckLinkNotificationCallback;
402 
403 #endif 	/* __IDeckLinkNotificationCallback_FWD_DEFINED__ */
404 
405 
406 #ifndef __IDeckLinkNotification_FWD_DEFINED__
407 #define __IDeckLinkNotification_FWD_DEFINED__
408 typedef interface IDeckLinkNotification IDeckLinkNotification;
409 
410 #endif 	/* __IDeckLinkNotification_FWD_DEFINED__ */
411 
412 
413 #ifndef __IDeckLinkProfileAttributes_FWD_DEFINED__
414 #define __IDeckLinkProfileAttributes_FWD_DEFINED__
415 typedef interface IDeckLinkProfileAttributes IDeckLinkProfileAttributes;
416 
417 #endif 	/* __IDeckLinkProfileAttributes_FWD_DEFINED__ */
418 
419 
420 #ifndef __IDeckLinkProfileIterator_FWD_DEFINED__
421 #define __IDeckLinkProfileIterator_FWD_DEFINED__
422 typedef interface IDeckLinkProfileIterator IDeckLinkProfileIterator;
423 
424 #endif 	/* __IDeckLinkProfileIterator_FWD_DEFINED__ */
425 
426 
427 #ifndef __IDeckLinkProfile_FWD_DEFINED__
428 #define __IDeckLinkProfile_FWD_DEFINED__
429 typedef interface IDeckLinkProfile IDeckLinkProfile;
430 
431 #endif 	/* __IDeckLinkProfile_FWD_DEFINED__ */
432 
433 
434 #ifndef __IDeckLinkProfileCallback_FWD_DEFINED__
435 #define __IDeckLinkProfileCallback_FWD_DEFINED__
436 typedef interface IDeckLinkProfileCallback IDeckLinkProfileCallback;
437 
438 #endif 	/* __IDeckLinkProfileCallback_FWD_DEFINED__ */
439 
440 
441 #ifndef __IDeckLinkProfileManager_FWD_DEFINED__
442 #define __IDeckLinkProfileManager_FWD_DEFINED__
443 typedef interface IDeckLinkProfileManager IDeckLinkProfileManager;
444 
445 #endif 	/* __IDeckLinkProfileManager_FWD_DEFINED__ */
446 
447 
448 #ifndef __IDeckLinkStatus_FWD_DEFINED__
449 #define __IDeckLinkStatus_FWD_DEFINED__
450 typedef interface IDeckLinkStatus IDeckLinkStatus;
451 
452 #endif 	/* __IDeckLinkStatus_FWD_DEFINED__ */
453 
454 
455 #ifndef __IDeckLinkKeyer_FWD_DEFINED__
456 #define __IDeckLinkKeyer_FWD_DEFINED__
457 typedef interface IDeckLinkKeyer IDeckLinkKeyer;
458 
459 #endif 	/* __IDeckLinkKeyer_FWD_DEFINED__ */
460 
461 
462 #ifndef __IDeckLinkVideoConversion_FWD_DEFINED__
463 #define __IDeckLinkVideoConversion_FWD_DEFINED__
464 typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;
465 
466 #endif 	/* __IDeckLinkVideoConversion_FWD_DEFINED__ */
467 
468 
469 #ifndef __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__
470 #define __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__
471 typedef interface IDeckLinkDeviceNotificationCallback IDeckLinkDeviceNotificationCallback;
472 
473 #endif 	/* __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__ */
474 
475 
476 #ifndef __IDeckLinkDiscovery_FWD_DEFINED__
477 #define __IDeckLinkDiscovery_FWD_DEFINED__
478 typedef interface IDeckLinkDiscovery IDeckLinkDiscovery;
479 
480 #endif 	/* __IDeckLinkDiscovery_FWD_DEFINED__ */
481 
482 
483 #ifndef __CDeckLinkIterator_FWD_DEFINED__
484 #define __CDeckLinkIterator_FWD_DEFINED__
485 
486 #ifdef __cplusplus
487 typedef class CDeckLinkIterator CDeckLinkIterator;
488 #else
489 typedef struct CDeckLinkIterator CDeckLinkIterator;
490 #endif /* __cplusplus */
491 
492 #endif 	/* __CDeckLinkIterator_FWD_DEFINED__ */
493 
494 
495 #ifndef __CDeckLinkAPIInformation_FWD_DEFINED__
496 #define __CDeckLinkAPIInformation_FWD_DEFINED__
497 
498 #ifdef __cplusplus
499 typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;
500 #else
501 typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;
502 #endif /* __cplusplus */
503 
504 #endif 	/* __CDeckLinkAPIInformation_FWD_DEFINED__ */
505 
506 
507 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
508 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
509 
510 #ifdef __cplusplus
511 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
512 #else
513 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
514 #endif /* __cplusplus */
515 
516 #endif 	/* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
517 
518 
519 #ifndef __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
520 #define __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
521 
522 #ifdef __cplusplus
523 typedef class CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
524 #else
525 typedef struct CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
526 #endif /* __cplusplus */
527 
528 #endif 	/* __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
529 
530 
531 #ifndef __CDeckLinkVideoConversion_FWD_DEFINED__
532 #define __CDeckLinkVideoConversion_FWD_DEFINED__
533 
534 #ifdef __cplusplus
535 typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;
536 #else
537 typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;
538 #endif /* __cplusplus */
539 
540 #endif 	/* __CDeckLinkVideoConversion_FWD_DEFINED__ */
541 
542 
543 #ifndef __CDeckLinkDiscovery_FWD_DEFINED__
544 #define __CDeckLinkDiscovery_FWD_DEFINED__
545 
546 #ifdef __cplusplus
547 typedef class CDeckLinkDiscovery CDeckLinkDiscovery;
548 #else
549 typedef struct CDeckLinkDiscovery CDeckLinkDiscovery;
550 #endif /* __cplusplus */
551 
552 #endif 	/* __CDeckLinkDiscovery_FWD_DEFINED__ */
553 
554 
555 #ifndef __CDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__
556 #define __CDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__
557 
558 #ifdef __cplusplus
559 typedef class CDeckLinkVideoFrameAncillaryPackets CDeckLinkVideoFrameAncillaryPackets;
560 #else
561 typedef struct CDeckLinkVideoFrameAncillaryPackets CDeckLinkVideoFrameAncillaryPackets;
562 #endif /* __cplusplus */
563 
564 #endif 	/* __CDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__ */
565 
566 
567 #ifndef __IDeckLinkConfiguration_v10_11_FWD_DEFINED__
568 #define __IDeckLinkConfiguration_v10_11_FWD_DEFINED__
569 typedef interface IDeckLinkConfiguration_v10_11 IDeckLinkConfiguration_v10_11;
570 
571 #endif 	/* __IDeckLinkConfiguration_v10_11_FWD_DEFINED__ */
572 
573 
574 #ifndef __IDeckLinkAttributes_v10_11_FWD_DEFINED__
575 #define __IDeckLinkAttributes_v10_11_FWD_DEFINED__
576 typedef interface IDeckLinkAttributes_v10_11 IDeckLinkAttributes_v10_11;
577 
578 #endif 	/* __IDeckLinkAttributes_v10_11_FWD_DEFINED__ */
579 
580 
581 #ifndef __IDeckLinkNotification_v10_11_FWD_DEFINED__
582 #define __IDeckLinkNotification_v10_11_FWD_DEFINED__
583 typedef interface IDeckLinkNotification_v10_11 IDeckLinkNotification_v10_11;
584 
585 #endif 	/* __IDeckLinkNotification_v10_11_FWD_DEFINED__ */
586 
587 
588 #ifndef __IDeckLinkOutput_v10_11_FWD_DEFINED__
589 #define __IDeckLinkOutput_v10_11_FWD_DEFINED__
590 typedef interface IDeckLinkOutput_v10_11 IDeckLinkOutput_v10_11;
591 
592 #endif 	/* __IDeckLinkOutput_v10_11_FWD_DEFINED__ */
593 
594 
595 #ifndef __IDeckLinkInput_v10_11_FWD_DEFINED__
596 #define __IDeckLinkInput_v10_11_FWD_DEFINED__
597 typedef interface IDeckLinkInput_v10_11 IDeckLinkInput_v10_11;
598 
599 #endif 	/* __IDeckLinkInput_v10_11_FWD_DEFINED__ */
600 
601 
602 #ifndef __IDeckLinkEncoderInput_v10_11_FWD_DEFINED__
603 #define __IDeckLinkEncoderInput_v10_11_FWD_DEFINED__
604 typedef interface IDeckLinkEncoderInput_v10_11 IDeckLinkEncoderInput_v10_11;
605 
606 #endif 	/* __IDeckLinkEncoderInput_v10_11_FWD_DEFINED__ */
607 
608 
609 #ifndef __CDeckLinkIterator_v10_11_FWD_DEFINED__
610 #define __CDeckLinkIterator_v10_11_FWD_DEFINED__
611 
612 #ifdef __cplusplus
613 typedef class CDeckLinkIterator_v10_11 CDeckLinkIterator_v10_11;
614 #else
615 typedef struct CDeckLinkIterator_v10_11 CDeckLinkIterator_v10_11;
616 #endif /* __cplusplus */
617 
618 #endif 	/* __CDeckLinkIterator_v10_11_FWD_DEFINED__ */
619 
620 
621 #ifndef __CDeckLinkDiscovery_v10_11_FWD_DEFINED__
622 #define __CDeckLinkDiscovery_v10_11_FWD_DEFINED__
623 
624 #ifdef __cplusplus
625 typedef class CDeckLinkDiscovery_v10_11 CDeckLinkDiscovery_v10_11;
626 #else
627 typedef struct CDeckLinkDiscovery_v10_11 CDeckLinkDiscovery_v10_11;
628 #endif /* __cplusplus */
629 
630 #endif 	/* __CDeckLinkDiscovery_v10_11_FWD_DEFINED__ */
631 
632 
633 #ifndef __IDeckLinkConfiguration_v10_9_FWD_DEFINED__
634 #define __IDeckLinkConfiguration_v10_9_FWD_DEFINED__
635 typedef interface IDeckLinkConfiguration_v10_9 IDeckLinkConfiguration_v10_9;
636 
637 #endif 	/* __IDeckLinkConfiguration_v10_9_FWD_DEFINED__ */
638 
639 
640 #ifndef __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__
641 #define __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__
642 
643 #ifdef __cplusplus
644 typedef class CBMDStreamingDiscovery_v10_8 CBMDStreamingDiscovery_v10_8;
645 #else
646 typedef struct CBMDStreamingDiscovery_v10_8 CBMDStreamingDiscovery_v10_8;
647 #endif /* __cplusplus */
648 
649 #endif 	/* __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__ */
650 
651 
652 #ifndef __CDeckLinkIterator_v10_8_FWD_DEFINED__
653 #define __CDeckLinkIterator_v10_8_FWD_DEFINED__
654 
655 #ifdef __cplusplus
656 typedef class CDeckLinkIterator_v10_8 CDeckLinkIterator_v10_8;
657 #else
658 typedef struct CDeckLinkIterator_v10_8 CDeckLinkIterator_v10_8;
659 #endif /* __cplusplus */
660 
661 #endif 	/* __CDeckLinkIterator_v10_8_FWD_DEFINED__ */
662 
663 
664 #ifndef __CDeckLinkDiscovery_v10_8_FWD_DEFINED__
665 #define __CDeckLinkDiscovery_v10_8_FWD_DEFINED__
666 
667 #ifdef __cplusplus
668 typedef class CDeckLinkDiscovery_v10_8 CDeckLinkDiscovery_v10_8;
669 #else
670 typedef struct CDeckLinkDiscovery_v10_8 CDeckLinkDiscovery_v10_8;
671 #endif /* __cplusplus */
672 
673 #endif 	/* __CDeckLinkDiscovery_v10_8_FWD_DEFINED__ */
674 
675 
676 #ifndef __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__
677 #define __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__
678 typedef interface IDeckLinkEncoderConfiguration_v10_5 IDeckLinkEncoderConfiguration_v10_5;
679 
680 #endif 	/* __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ */
681 
682 
683 #ifndef __IDeckLinkConfiguration_v10_4_FWD_DEFINED__
684 #define __IDeckLinkConfiguration_v10_4_FWD_DEFINED__
685 typedef interface IDeckLinkConfiguration_v10_4 IDeckLinkConfiguration_v10_4;
686 
687 #endif 	/* __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ */
688 
689 
690 #ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__
691 #define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__
692 typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2;
693 
694 #endif 	/* __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ */
695 
696 
697 #ifndef __IDeckLinkOutput_v9_9_FWD_DEFINED__
698 #define __IDeckLinkOutput_v9_9_FWD_DEFINED__
699 typedef interface IDeckLinkOutput_v9_9 IDeckLinkOutput_v9_9;
700 
701 #endif 	/* __IDeckLinkOutput_v9_9_FWD_DEFINED__ */
702 
703 
704 #ifndef __IDeckLinkInput_v9_2_FWD_DEFINED__
705 #define __IDeckLinkInput_v9_2_FWD_DEFINED__
706 typedef interface IDeckLinkInput_v9_2 IDeckLinkInput_v9_2;
707 
708 #endif 	/* __IDeckLinkInput_v9_2_FWD_DEFINED__ */
709 
710 
711 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
712 #define __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
713 typedef interface IDeckLinkDeckControlStatusCallback_v8_1 IDeckLinkDeckControlStatusCallback_v8_1;
714 
715 #endif 	/* __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__ */
716 
717 
718 #ifndef __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
719 #define __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
720 typedef interface IDeckLinkDeckControl_v8_1 IDeckLinkDeckControl_v8_1;
721 
722 #endif 	/* __IDeckLinkDeckControl_v8_1_FWD_DEFINED__ */
723 
724 
725 #ifndef __IDeckLink_v8_0_FWD_DEFINED__
726 #define __IDeckLink_v8_0_FWD_DEFINED__
727 typedef interface IDeckLink_v8_0 IDeckLink_v8_0;
728 
729 #endif 	/* __IDeckLink_v8_0_FWD_DEFINED__ */
730 
731 
732 #ifndef __IDeckLinkIterator_v8_0_FWD_DEFINED__
733 #define __IDeckLinkIterator_v8_0_FWD_DEFINED__
734 typedef interface IDeckLinkIterator_v8_0 IDeckLinkIterator_v8_0;
735 
736 #endif 	/* __IDeckLinkIterator_v8_0_FWD_DEFINED__ */
737 
738 
739 #ifndef __CDeckLinkIterator_v8_0_FWD_DEFINED__
740 #define __CDeckLinkIterator_v8_0_FWD_DEFINED__
741 
742 #ifdef __cplusplus
743 typedef class CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
744 #else
745 typedef struct CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
746 #endif /* __cplusplus */
747 
748 #endif 	/* __CDeckLinkIterator_v8_0_FWD_DEFINED__ */
749 
750 
751 #ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
752 #define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
753 typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;
754 
755 #endif 	/* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */
756 
757 
758 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
759 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
760 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;
761 
762 #endif 	/* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */
763 
764 
765 #ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
766 #define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
767 typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;
768 
769 #endif 	/* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */
770 
771 
772 #ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__
773 #define __IDeckLinkOutput_v7_6_FWD_DEFINED__
774 typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;
775 
776 #endif 	/* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */
777 
778 
779 #ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__
780 #define __IDeckLinkInput_v7_6_FWD_DEFINED__
781 typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;
782 
783 #endif 	/* __IDeckLinkInput_v7_6_FWD_DEFINED__ */
784 
785 
786 #ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__
787 #define __IDeckLinkTimecode_v7_6_FWD_DEFINED__
788 typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;
789 
790 #endif 	/* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */
791 
792 
793 #ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
794 #define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
795 typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;
796 
797 #endif 	/* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */
798 
799 
800 #ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
801 #define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
802 typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;
803 
804 #endif 	/* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */
805 
806 
807 #ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
808 #define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
809 typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;
810 
811 #endif 	/* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */
812 
813 
814 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
815 #define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
816 typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;
817 
818 #endif 	/* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */
819 
820 
821 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
822 #define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
823 typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;
824 
825 #endif 	/* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
826 
827 
828 #ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
829 #define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
830 typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;
831 
832 #endif 	/* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
833 
834 
835 #ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
836 #define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
837 typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;
838 
839 #endif 	/* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */
840 
841 
842 #ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
843 #define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
844 typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;
845 
846 #endif 	/* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */
847 
848 
849 #ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
850 #define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
851 typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;
852 
853 #endif 	/* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */
854 
855 
856 #ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
857 #define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
858 
859 #ifdef __cplusplus
860 typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
861 #else
862 typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
863 #endif /* __cplusplus */
864 
865 #endif 	/* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
866 
867 
868 #ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
869 #define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
870 
871 #ifdef __cplusplus
872 typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
873 #else
874 typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
875 #endif /* __cplusplus */
876 
877 #endif 	/* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
878 
879 
880 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
881 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
882 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;
883 
884 #endif 	/* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */
885 
886 
887 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__
888 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__
889 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;
890 
891 #endif 	/* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */
892 
893 
894 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__
895 #define __IDeckLinkInput_v7_3_FWD_DEFINED__
896 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;
897 
898 #endif 	/* __IDeckLinkInput_v7_3_FWD_DEFINED__ */
899 
900 
901 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
902 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
903 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;
904 
905 #endif 	/* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */
906 
907 
908 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
909 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
910 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;
911 
912 #endif 	/* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */
913 
914 
915 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
916 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
917 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;
918 
919 #endif 	/* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */
920 
921 
922 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
923 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
924 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;
925 
926 #endif 	/* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */
927 
928 
929 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
930 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
931 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;
932 
933 #endif 	/* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */
934 
935 
936 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
937 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
938 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;
939 
940 #endif 	/* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */
941 
942 
943 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
944 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
945 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;
946 
947 #endif 	/* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */
948 
949 
950 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
951 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
952 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;
953 
954 #endif 	/* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */
955 
956 
957 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__
958 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__
959 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;
960 
961 #endif 	/* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */
962 
963 
964 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__
965 #define __IDeckLinkInput_v7_1_FWD_DEFINED__
966 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;
967 
968 #endif 	/* __IDeckLinkInput_v7_1_FWD_DEFINED__ */
969 
970 
971 /* header files for imported files */
972 #include "unknwn.h"
973 
974 #ifdef __cplusplus
975 extern "C"{
976 #endif
977 
978 
979 
980 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__
981 #define __DeckLinkAPI_LIBRARY_DEFINED__
982 
983 /* library DeckLinkAPI */
984 /* [helpstring][version][uuid] */
985 
986 typedef LONGLONG BMDTimeValue;
987 
988 typedef LONGLONG BMDTimeScale;
989 
990 typedef unsigned int BMDTimecodeBCD;
991 
992 typedef unsigned int BMDTimecodeUserBits;
993 
994 typedef unsigned int BMDTimecodeFlags;
995 #if 0
996 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;
997 
998 #endif
999 /* [v1_enum] */
1000 enum _BMDTimecodeFlags
1001     {
1002         bmdTimecodeFlagDefault	= 0,
1003         bmdTimecodeIsDropFrame	= ( 1 << 0 ) ,
1004         bmdTimecodeFieldMark	= ( 1 << 1 ) ,
1005         bmdTimecodeColorFrame	= ( 1 << 2 ) ,
1006         bmdTimecodeEmbedRecordingTrigger	= ( 1 << 3 ) ,
1007         bmdTimecodeRecordingTriggered	= ( 1 << 4 )
1008     } ;
1009 typedef /* [v1_enum] */
1010 enum _BMDVideoConnection
1011     {
1012         bmdVideoConnectionUnspecified	= 0,
1013         bmdVideoConnectionSDI	= ( 1 << 0 ) ,
1014         bmdVideoConnectionHDMI	= ( 1 << 1 ) ,
1015         bmdVideoConnectionOpticalSDI	= ( 1 << 2 ) ,
1016         bmdVideoConnectionComponent	= ( 1 << 3 ) ,
1017         bmdVideoConnectionComposite	= ( 1 << 4 ) ,
1018         bmdVideoConnectionSVideo	= ( 1 << 5 )
1019     } 	BMDVideoConnection;
1020 
1021 typedef /* [v1_enum] */
1022 enum _BMDAudioConnection
1023     {
1024         bmdAudioConnectionEmbedded	= ( 1 << 0 ) ,
1025         bmdAudioConnectionAESEBU	= ( 1 << 1 ) ,
1026         bmdAudioConnectionAnalog	= ( 1 << 2 ) ,
1027         bmdAudioConnectionAnalogXLR	= ( 1 << 3 ) ,
1028         bmdAudioConnectionAnalogRCA	= ( 1 << 4 ) ,
1029         bmdAudioConnectionMicrophone	= ( 1 << 5 ) ,
1030         bmdAudioConnectionHeadphones	= ( 1 << 6 )
1031     } 	BMDAudioConnection;
1032 
1033 typedef /* [v1_enum] */
1034 enum _BMDDeckControlConnection
1035     {
1036         bmdDeckControlConnectionRS422Remote1	= ( 1 << 0 ) ,
1037         bmdDeckControlConnectionRS422Remote2	= ( 1 << 1 )
1038     } 	BMDDeckControlConnection;
1039 
1040 
1041 typedef unsigned int BMDDisplayModeFlags;
1042 #if 0
1043 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;
1044 
1045 #endif
1046 typedef /* [v1_enum] */
1047 enum _BMDDisplayMode
1048     {
1049         bmdModeNTSC	= 0x6e747363,
1050         bmdModeNTSC2398	= 0x6e743233,
1051         bmdModePAL	= 0x70616c20,
1052         bmdModeNTSCp	= 0x6e747370,
1053         bmdModePALp	= 0x70616c70,
1054         bmdModeHD1080p2398	= 0x32337073,
1055         bmdModeHD1080p24	= 0x32347073,
1056         bmdModeHD1080p25	= 0x48703235,
1057         bmdModeHD1080p2997	= 0x48703239,
1058         bmdModeHD1080p30	= 0x48703330,
1059         bmdModeHD1080p4795	= 0x48703437,
1060         bmdModeHD1080p48	= 0x48703438,
1061         bmdModeHD1080p50	= 0x48703530,
1062         bmdModeHD1080p5994	= 0x48703539,
1063         bmdModeHD1080p6000	= 0x48703630,
1064         bmdModeHD1080p9590	= 0x48703935,
1065         bmdModeHD1080p96	= 0x48703936,
1066         bmdModeHD1080p100	= 0x48703130,
1067         bmdModeHD1080p11988	= 0x48703131,
1068         bmdModeHD1080p120	= 0x48703132,
1069         bmdModeHD1080i50	= 0x48693530,
1070         bmdModeHD1080i5994	= 0x48693539,
1071         bmdModeHD1080i6000	= 0x48693630,
1072         bmdModeHD720p50	= 0x68703530,
1073         bmdModeHD720p5994	= 0x68703539,
1074         bmdModeHD720p60	= 0x68703630,
1075         bmdMode2k2398	= 0x326b3233,
1076         bmdMode2k24	= 0x326b3234,
1077         bmdMode2k25	= 0x326b3235,
1078         bmdMode2kDCI2398	= 0x32643233,
1079         bmdMode2kDCI24	= 0x32643234,
1080         bmdMode2kDCI25	= 0x32643235,
1081         bmdMode2kDCI2997	= 0x32643239,
1082         bmdMode2kDCI30	= 0x32643330,
1083         bmdMode2kDCI4795	= 0x32643437,
1084         bmdMode2kDCI48	= 0x32643438,
1085         bmdMode2kDCI50	= 0x32643530,
1086         bmdMode2kDCI5994	= 0x32643539,
1087         bmdMode2kDCI60	= 0x32643630,
1088         bmdMode2kDCI9590	= 0x32643935,
1089         bmdMode2kDCI96	= 0x32643936,
1090         bmdMode2kDCI100	= 0x32643130,
1091         bmdMode2kDCI11988	= 0x32643131,
1092         bmdMode2kDCI120	= 0x32643132,
1093         bmdMode4K2160p2398	= 0x346b3233,
1094         bmdMode4K2160p24	= 0x346b3234,
1095         bmdMode4K2160p25	= 0x346b3235,
1096         bmdMode4K2160p2997	= 0x346b3239,
1097         bmdMode4K2160p30	= 0x346b3330,
1098         bmdMode4K2160p4795	= 0x346b3437,
1099         bmdMode4K2160p48	= 0x346b3438,
1100         bmdMode4K2160p50	= 0x346b3530,
1101         bmdMode4K2160p5994	= 0x346b3539,
1102         bmdMode4K2160p60	= 0x346b3630,
1103         bmdMode4K2160p9590	= 0x346b3935,
1104         bmdMode4K2160p96	= 0x346b3936,
1105         bmdMode4K2160p100	= 0x346b3130,
1106         bmdMode4K2160p11988	= 0x346b3131,
1107         bmdMode4K2160p120	= 0x346b3132,
1108         bmdMode4kDCI2398	= 0x34643233,
1109         bmdMode4kDCI24	= 0x34643234,
1110         bmdMode4kDCI25	= 0x34643235,
1111         bmdMode4kDCI2997	= 0x34643239,
1112         bmdMode4kDCI30	= 0x34643330,
1113         bmdMode4kDCI4795	= 0x34643437,
1114         bmdMode4kDCI48	= 0x34643438,
1115         bmdMode4kDCI50	= 0x34643530,
1116         bmdMode4kDCI5994	= 0x34643539,
1117         bmdMode4kDCI60	= 0x34643630,
1118         bmdMode4kDCI9590	= 0x34643935,
1119         bmdMode4kDCI96	= 0x34643936,
1120         bmdMode4kDCI100	= 0x34643130,
1121         bmdMode4kDCI11988	= 0x34643131,
1122         bmdMode4kDCI120	= 0x34643132,
1123         bmdMode8K4320p2398	= 0x386b3233,
1124         bmdMode8K4320p24	= 0x386b3234,
1125         bmdMode8K4320p25	= 0x386b3235,
1126         bmdMode8K4320p2997	= 0x386b3239,
1127         bmdMode8K4320p30	= 0x386b3330,
1128         bmdMode8K4320p4795	= 0x386b3437,
1129         bmdMode8K4320p48	= 0x386b3438,
1130         bmdMode8K4320p50	= 0x386b3530,
1131         bmdMode8K4320p5994	= 0x386b3539,
1132         bmdMode8K4320p60	= 0x386b3630,
1133         bmdMode8kDCI2398	= 0x38643233,
1134         bmdMode8kDCI24	= 0x38643234,
1135         bmdMode8kDCI25	= 0x38643235,
1136         bmdMode8kDCI2997	= 0x38643239,
1137         bmdMode8kDCI30	= 0x38643330,
1138         bmdMode8kDCI4795	= 0x38643437,
1139         bmdMode8kDCI48	= 0x38643438,
1140         bmdMode8kDCI50	= 0x38643530,
1141         bmdMode8kDCI5994	= 0x38643539,
1142         bmdMode8kDCI60	= 0x38643630,
1143         bmdMode640x480p60	= 0x76676136,
1144         bmdMode800x600p60	= 0x73766736,
1145         bmdMode1440x900p50	= 0x77786735,
1146         bmdMode1440x900p60	= 0x77786736,
1147         bmdMode1440x1080p50	= 0x73786735,
1148         bmdMode1440x1080p60	= 0x73786736,
1149         bmdMode1600x1200p50	= 0x75786735,
1150         bmdMode1600x1200p60	= 0x75786736,
1151         bmdMode1920x1200p50	= 0x77757835,
1152         bmdMode1920x1200p60	= 0x77757836,
1153         bmdMode1920x1440p50	= 0x31393435,
1154         bmdMode1920x1440p60	= 0x31393436,
1155         bmdMode2560x1440p50	= 0x77716835,
1156         bmdMode2560x1440p60	= 0x77716836,
1157         bmdMode2560x1600p50	= 0x77717835,
1158         bmdMode2560x1600p60	= 0x77717836,
1159         bmdModeCintelRAW	= 0x72776369,
1160         bmdModeCintelCompressedRAW	= 0x72776363,
1161         bmdModeUnknown	= 0x69756e6b
1162     } 	BMDDisplayMode;
1163 
1164 typedef /* [v1_enum] */
1165 enum _BMDFieldDominance
1166     {
1167         bmdUnknownFieldDominance	= 0,
1168         bmdLowerFieldFirst	= 0x6c6f7772,
1169         bmdUpperFieldFirst	= 0x75707072,
1170         bmdProgressiveFrame	= 0x70726f67,
1171         bmdProgressiveSegmentedFrame	= 0x70736620
1172     } 	BMDFieldDominance;
1173 
1174 typedef /* [v1_enum] */
1175 enum _BMDPixelFormat
1176     {
1177         bmdFormatUnspecified	= 0,
1178         bmdFormat8BitYUV	= 0x32767579,
1179         bmdFormat10BitYUV	= 0x76323130,
1180         bmdFormat8BitARGB	= 32,
1181         bmdFormat8BitBGRA	= 0x42475241,
1182         bmdFormat10BitRGB	= 0x72323130,
1183         bmdFormat12BitRGB	= 0x52313242,
1184         bmdFormat12BitRGBLE	= 0x5231324c,
1185         bmdFormat10BitRGBXLE	= 0x5231306c,
1186         bmdFormat10BitRGBX	= 0x52313062,
1187         bmdFormatH265	= 0x68657631,
1188         bmdFormatDNxHR	= 0x41566468,
1189         bmdFormat12BitRAWGRBG	= 0x72313270,
1190         bmdFormat12BitRAWJPEG	= 0x72313670
1191     } 	BMDPixelFormat;
1192 
1193 /* [v1_enum] */
1194 enum _BMDDisplayModeFlags
1195     {
1196         bmdDisplayModeSupports3D	= ( 1 << 0 ) ,
1197         bmdDisplayModeColorspaceRec601	= ( 1 << 1 ) ,
1198         bmdDisplayModeColorspaceRec709	= ( 1 << 2 ) ,
1199         bmdDisplayModeColorspaceRec2020	= ( 1 << 3 )
1200     } ;
1201 
1202 
1203 #if 0
1204 #endif
1205 
1206 #if 0
1207 #endif
1208 typedef /* [v1_enum] */
1209 enum _BMDDeckLinkConfigurationID
1210     {
1211         bmdDeckLinkConfigSwapSerialRxTx	= 0x73737274,
1212         bmdDeckLinkConfigHDMI3DPackingFormat	= 0x33647066,
1213         bmdDeckLinkConfigBypass	= 0x62797073,
1214         bmdDeckLinkConfigClockTimingAdjustment	= 0x63746164,
1215         bmdDeckLinkConfigAnalogAudioConsumerLevels	= 0x6161636c,
1216         bmdDeckLinkConfigFieldFlickerRemoval	= 0x66646672,
1217         bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion	= 0x746f3539,
1218         bmdDeckLinkConfig444SDIVideoOutput	= 0x3434346f,
1219         bmdDeckLinkConfigBlackVideoOutputDuringCapture	= 0x62766f63,
1220         bmdDeckLinkConfigLowLatencyVideoOutput	= 0x6c6c766f,
1221         bmdDeckLinkConfigDownConversionOnAllAnalogOutput	= 0x6361616f,
1222         bmdDeckLinkConfigSMPTELevelAOutput	= 0x736d7461,
1223         bmdDeckLinkConfigRec2020Output	= 0x72656332,
1224         bmdDeckLinkConfigQuadLinkSDIVideoOutputSquareDivisionSplit	= 0x53445153,
1225         bmdDeckLinkConfigOutput1080pAsPsF	= 0x70667072,
1226         bmdDeckLinkConfigVideoOutputConnection	= 0x766f636e,
1227         bmdDeckLinkConfigVideoOutputConversionMode	= 0x766f636d,
1228         bmdDeckLinkConfigAnalogVideoOutputFlags	= 0x61766f66,
1229         bmdDeckLinkConfigReferenceInputTimingOffset	= 0x676c6f74,
1230         bmdDeckLinkConfigVideoOutputIdleOperation	= 0x766f696f,
1231         bmdDeckLinkConfigDefaultVideoOutputMode	= 0x64766f6d,
1232         bmdDeckLinkConfigDefaultVideoOutputModeFlags	= 0x64766f66,
1233         bmdDeckLinkConfigSDIOutputLinkConfiguration	= 0x736f6c63,
1234         bmdDeckLinkConfigHDMITimecodePacking	= 0x6874706b,
1235         bmdDeckLinkConfigPlaybackGroup	= 0x706c6772,
1236         bmdDeckLinkConfigVideoOutputComponentLumaGain	= 0x6f636c67,
1237         bmdDeckLinkConfigVideoOutputComponentChromaBlueGain	= 0x6f636362,
1238         bmdDeckLinkConfigVideoOutputComponentChromaRedGain	= 0x6f636372,
1239         bmdDeckLinkConfigVideoOutputCompositeLumaGain	= 0x6f696c67,
1240         bmdDeckLinkConfigVideoOutputCompositeChromaGain	= 0x6f696367,
1241         bmdDeckLinkConfigVideoOutputSVideoLumaGain	= 0x6f736c67,
1242         bmdDeckLinkConfigVideoOutputSVideoChromaGain	= 0x6f736367,
1243         bmdDeckLinkConfigVideoInputScanning	= 0x76697363,
1244         bmdDeckLinkConfigUseDedicatedLTCInput	= 0x646c7463,
1245         bmdDeckLinkConfigSDIInput3DPayloadOverride	= 0x33646473,
1246         bmdDeckLinkConfigCapture1080pAsPsF	= 0x63667072,
1247         bmdDeckLinkConfigVideoInputConnection	= 0x7669636e,
1248         bmdDeckLinkConfigAnalogVideoInputFlags	= 0x61766966,
1249         bmdDeckLinkConfigVideoInputConversionMode	= 0x7669636d,
1250         bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame	= 0x70646966,
1251         bmdDeckLinkConfigVANCSourceLine1Mapping	= 0x76736c31,
1252         bmdDeckLinkConfigVANCSourceLine2Mapping	= 0x76736c32,
1253         bmdDeckLinkConfigVANCSourceLine3Mapping	= 0x76736c33,
1254         bmdDeckLinkConfigCapturePassThroughMode	= 0x6370746d,
1255         bmdDeckLinkConfigCaptureGroup	= 0x63706772,
1256         bmdDeckLinkConfigVideoInputComponentLumaGain	= 0x69636c67,
1257         bmdDeckLinkConfigVideoInputComponentChromaBlueGain	= 0x69636362,
1258         bmdDeckLinkConfigVideoInputComponentChromaRedGain	= 0x69636372,
1259         bmdDeckLinkConfigVideoInputCompositeLumaGain	= 0x69696c67,
1260         bmdDeckLinkConfigVideoInputCompositeChromaGain	= 0x69696367,
1261         bmdDeckLinkConfigVideoInputSVideoLumaGain	= 0x69736c67,
1262         bmdDeckLinkConfigVideoInputSVideoChromaGain	= 0x69736367,
1263         bmdDeckLinkConfigMicrophonePhantomPower	= 0x6d706870,
1264         bmdDeckLinkConfigAudioInputConnection	= 0x6169636e,
1265         bmdDeckLinkConfigAnalogAudioInputScaleChannel1	= 0x61697331,
1266         bmdDeckLinkConfigAnalogAudioInputScaleChannel2	= 0x61697332,
1267         bmdDeckLinkConfigAnalogAudioInputScaleChannel3	= 0x61697333,
1268         bmdDeckLinkConfigAnalogAudioInputScaleChannel4	= 0x61697334,
1269         bmdDeckLinkConfigDigitalAudioInputScale	= 0x64616973,
1270         bmdDeckLinkConfigMicrophoneInputGain	= 0x6d696367,
1271         bmdDeckLinkConfigAudioOutputAESAnalogSwitch	= 0x616f6161,
1272         bmdDeckLinkConfigAnalogAudioOutputScaleChannel1	= 0x616f7331,
1273         bmdDeckLinkConfigAnalogAudioOutputScaleChannel2	= 0x616f7332,
1274         bmdDeckLinkConfigAnalogAudioOutputScaleChannel3	= 0x616f7333,
1275         bmdDeckLinkConfigAnalogAudioOutputScaleChannel4	= 0x616f7334,
1276         bmdDeckLinkConfigDigitalAudioOutputScale	= 0x64616f73,
1277         bmdDeckLinkConfigHeadphoneVolume	= 0x68766f6c,
1278         bmdDeckLinkConfigDeviceInformationLabel	= 0x64696c61,
1279         bmdDeckLinkConfigDeviceInformationSerialNumber	= 0x6469736e,
1280         bmdDeckLinkConfigDeviceInformationCompany	= 0x6469636f,
1281         bmdDeckLinkConfigDeviceInformationPhone	= 0x64697068,
1282         bmdDeckLinkConfigDeviceInformationEmail	= 0x6469656d,
1283         bmdDeckLinkConfigDeviceInformationDate	= 0x64696461,
1284         bmdDeckLinkConfigDeckControlConnection	= 0x6463636f
1285     } 	BMDDeckLinkConfigurationID;
1286 
1287 typedef /* [v1_enum] */
1288 enum _BMDDeckLinkEncoderConfigurationID
1289     {
1290         bmdDeckLinkEncoderConfigPreferredBitDepth	= 0x65706272,
1291         bmdDeckLinkEncoderConfigFrameCodingMode	= 0x6566636d,
1292         bmdDeckLinkEncoderConfigH265TargetBitrate	= 0x68746272,
1293         bmdDeckLinkEncoderConfigDNxHRCompressionID	= 0x64636964,
1294         bmdDeckLinkEncoderConfigDNxHRLevel	= 0x646c6576,
1295         bmdDeckLinkEncoderConfigMPEG4SampleDescription	= 0x73747345,
1296         bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc	= 0x65736473
1297     } 	BMDDeckLinkEncoderConfigurationID;
1298 
1299 
1300 
1301 typedef unsigned int BMDDeckControlStatusFlags;
1302 typedef unsigned int BMDDeckControlExportModeOpsFlags;
1303 #if 0
1304 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;
1305 
1306 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;
1307 
1308 #endif
1309 typedef /* [v1_enum] */
1310 enum _BMDDeckControlMode
1311     {
1312         bmdDeckControlNotOpened	= 0x6e746f70,
1313         bmdDeckControlVTRControlMode	= 0x76747263,
1314         bmdDeckControlExportMode	= 0x6578706d,
1315         bmdDeckControlCaptureMode	= 0x6361706d
1316     } 	BMDDeckControlMode;
1317 
1318 typedef /* [v1_enum] */
1319 enum _BMDDeckControlEvent
1320     {
1321         bmdDeckControlAbortedEvent	= 0x61627465,
1322         bmdDeckControlPrepareForExportEvent	= 0x70666565,
1323         bmdDeckControlExportCompleteEvent	= 0x65786365,
1324         bmdDeckControlPrepareForCaptureEvent	= 0x70666365,
1325         bmdDeckControlCaptureCompleteEvent	= 0x63636576
1326     } 	BMDDeckControlEvent;
1327 
1328 typedef /* [v1_enum] */
1329 enum _BMDDeckControlVTRControlState
1330     {
1331         bmdDeckControlNotInVTRControlMode	= 0x6e76636d,
1332         bmdDeckControlVTRControlPlaying	= 0x76747270,
1333         bmdDeckControlVTRControlRecording	= 0x76747272,
1334         bmdDeckControlVTRControlStill	= 0x76747261,
1335         bmdDeckControlVTRControlShuttleForward	= 0x76747366,
1336         bmdDeckControlVTRControlShuttleReverse	= 0x76747372,
1337         bmdDeckControlVTRControlJogForward	= 0x76746a66,
1338         bmdDeckControlVTRControlJogReverse	= 0x76746a72,
1339         bmdDeckControlVTRControlStopped	= 0x7674726f
1340     } 	BMDDeckControlVTRControlState;
1341 
1342 /* [v1_enum] */
1343 enum _BMDDeckControlStatusFlags
1344     {
1345         bmdDeckControlStatusDeckConnected	= ( 1 << 0 ) ,
1346         bmdDeckControlStatusRemoteMode	= ( 1 << 1 ) ,
1347         bmdDeckControlStatusRecordInhibited	= ( 1 << 2 ) ,
1348         bmdDeckControlStatusCassetteOut	= ( 1 << 3 )
1349     } ;
1350 /* [v1_enum] */
1351 enum _BMDDeckControlExportModeOpsFlags
1352     {
1353         bmdDeckControlExportModeInsertVideo	= ( 1 << 0 ) ,
1354         bmdDeckControlExportModeInsertAudio1	= ( 1 << 1 ) ,
1355         bmdDeckControlExportModeInsertAudio2	= ( 1 << 2 ) ,
1356         bmdDeckControlExportModeInsertAudio3	= ( 1 << 3 ) ,
1357         bmdDeckControlExportModeInsertAudio4	= ( 1 << 4 ) ,
1358         bmdDeckControlExportModeInsertAudio5	= ( 1 << 5 ) ,
1359         bmdDeckControlExportModeInsertAudio6	= ( 1 << 6 ) ,
1360         bmdDeckControlExportModeInsertAudio7	= ( 1 << 7 ) ,
1361         bmdDeckControlExportModeInsertAudio8	= ( 1 << 8 ) ,
1362         bmdDeckControlExportModeInsertAudio9	= ( 1 << 9 ) ,
1363         bmdDeckControlExportModeInsertAudio10	= ( 1 << 10 ) ,
1364         bmdDeckControlExportModeInsertAudio11	= ( 1 << 11 ) ,
1365         bmdDeckControlExportModeInsertAudio12	= ( 1 << 12 ) ,
1366         bmdDeckControlExportModeInsertTimeCode	= ( 1 << 13 ) ,
1367         bmdDeckControlExportModeInsertAssemble	= ( 1 << 14 ) ,
1368         bmdDeckControlExportModeInsertPreview	= ( 1 << 15 ) ,
1369         bmdDeckControlUseManualExport	= ( 1 << 16 )
1370     } ;
1371 typedef /* [v1_enum] */
1372 enum _BMDDeckControlError
1373     {
1374         bmdDeckControlNoError	= 0x6e6f6572,
1375         bmdDeckControlModeError	= 0x6d6f6572,
1376         bmdDeckControlMissedInPointError	= 0x6d696572,
1377         bmdDeckControlDeckTimeoutError	= 0x64746572,
1378         bmdDeckControlCommandFailedError	= 0x63666572,
1379         bmdDeckControlDeviceAlreadyOpenedError	= 0x64616c6f,
1380         bmdDeckControlFailedToOpenDeviceError	= 0x66646572,
1381         bmdDeckControlInLocalModeError	= 0x6c6d6572,
1382         bmdDeckControlEndOfTapeError	= 0x65746572,
1383         bmdDeckControlUserAbortError	= 0x75616572,
1384         bmdDeckControlNoTapeInDeckError	= 0x6e746572,
1385         bmdDeckControlNoVideoFromCardError	= 0x6e766663,
1386         bmdDeckControlNoCommunicationError	= 0x6e636f6d,
1387         bmdDeckControlBufferTooSmallError	= 0x6274736d,
1388         bmdDeckControlBadChecksumError	= 0x63686b73,
1389         bmdDeckControlUnknownError	= 0x756e6572
1390     } 	BMDDeckControlError;
1391 
1392 
1393 
1394 #if 0
1395 #endif
1396 typedef /* [v1_enum] */
1397 enum _BMDStreamingDeviceMode
1398     {
1399         bmdStreamingDeviceIdle	= 0x69646c65,
1400         bmdStreamingDeviceEncoding	= 0x656e636f,
1401         bmdStreamingDeviceStopping	= 0x73746f70,
1402         bmdStreamingDeviceUnknown	= 0x6d756e6b
1403     } 	BMDStreamingDeviceMode;
1404 
1405 typedef /* [v1_enum] */
1406 enum _BMDStreamingEncodingFrameRate
1407     {
1408         bmdStreamingEncodedFrameRate50i	= 0x65353069,
1409         bmdStreamingEncodedFrameRate5994i	= 0x65353969,
1410         bmdStreamingEncodedFrameRate60i	= 0x65363069,
1411         bmdStreamingEncodedFrameRate2398p	= 0x65323370,
1412         bmdStreamingEncodedFrameRate24p	= 0x65323470,
1413         bmdStreamingEncodedFrameRate25p	= 0x65323570,
1414         bmdStreamingEncodedFrameRate2997p	= 0x65323970,
1415         bmdStreamingEncodedFrameRate30p	= 0x65333070,
1416         bmdStreamingEncodedFrameRate50p	= 0x65353070,
1417         bmdStreamingEncodedFrameRate5994p	= 0x65353970,
1418         bmdStreamingEncodedFrameRate60p	= 0x65363070
1419     } 	BMDStreamingEncodingFrameRate;
1420 
1421 typedef /* [v1_enum] */
1422 enum _BMDStreamingEncodingSupport
1423     {
1424         bmdStreamingEncodingModeNotSupported	= 0,
1425         bmdStreamingEncodingModeSupported	= ( bmdStreamingEncodingModeNotSupported + 1 ) ,
1426         bmdStreamingEncodingModeSupportedWithChanges	= ( bmdStreamingEncodingModeSupported + 1 )
1427     } 	BMDStreamingEncodingSupport;
1428 
1429 typedef /* [v1_enum] */
1430 enum _BMDStreamingVideoCodec
1431     {
1432         bmdStreamingVideoCodecH264	= 0x48323634
1433     } 	BMDStreamingVideoCodec;
1434 
1435 typedef /* [v1_enum] */
1436 enum _BMDStreamingH264Profile
1437     {
1438         bmdStreamingH264ProfileHigh	= 0x68696768,
1439         bmdStreamingH264ProfileMain	= 0x6d61696e,
1440         bmdStreamingH264ProfileBaseline	= 0x62617365
1441     } 	BMDStreamingH264Profile;
1442 
1443 typedef /* [v1_enum] */
1444 enum _BMDStreamingH264Level
1445     {
1446         bmdStreamingH264Level12	= 0x6c763132,
1447         bmdStreamingH264Level13	= 0x6c763133,
1448         bmdStreamingH264Level2	= 0x6c763220,
1449         bmdStreamingH264Level21	= 0x6c763231,
1450         bmdStreamingH264Level22	= 0x6c763232,
1451         bmdStreamingH264Level3	= 0x6c763320,
1452         bmdStreamingH264Level31	= 0x6c763331,
1453         bmdStreamingH264Level32	= 0x6c763332,
1454         bmdStreamingH264Level4	= 0x6c763420,
1455         bmdStreamingH264Level41	= 0x6c763431,
1456         bmdStreamingH264Level42	= 0x6c763432
1457     } 	BMDStreamingH264Level;
1458 
1459 typedef /* [v1_enum] */
1460 enum _BMDStreamingH264EntropyCoding
1461     {
1462         bmdStreamingH264EntropyCodingCAVLC	= 0x45564c43,
1463         bmdStreamingH264EntropyCodingCABAC	= 0x45424143
1464     } 	BMDStreamingH264EntropyCoding;
1465 
1466 typedef /* [v1_enum] */
1467 enum _BMDStreamingAudioCodec
1468     {
1469         bmdStreamingAudioCodecAAC	= 0x41414320
1470     } 	BMDStreamingAudioCodec;
1471 
1472 typedef /* [v1_enum] */
1473 enum _BMDStreamingEncodingModePropertyID
1474     {
1475         bmdStreamingEncodingPropertyVideoFrameRate	= 0x76667274,
1476         bmdStreamingEncodingPropertyVideoBitRateKbps	= 0x76627274,
1477         bmdStreamingEncodingPropertyH264Profile	= 0x68707266,
1478         bmdStreamingEncodingPropertyH264Level	= 0x686c766c,
1479         bmdStreamingEncodingPropertyH264EntropyCoding	= 0x68656e74,
1480         bmdStreamingEncodingPropertyH264HasBFrames	= 0x68426672,
1481         bmdStreamingEncodingPropertyAudioCodec	= 0x61636463,
1482         bmdStreamingEncodingPropertyAudioSampleRate	= 0x61737274,
1483         bmdStreamingEncodingPropertyAudioChannelCount	= 0x61636863,
1484         bmdStreamingEncodingPropertyAudioBitRateKbps	= 0x61627274
1485     } 	BMDStreamingEncodingModePropertyID;
1486 
1487 
1488 
1489 
1490 
1491 
1492 
1493 
1494 
1495 
1496 
1497 
1498 typedef unsigned int BMDFrameFlags;
1499 typedef unsigned int BMDVideoInputFlags;
1500 typedef unsigned int BMDVideoInputFormatChangedEvents;
1501 typedef unsigned int BMDDetectedVideoInputFormatFlags;
1502 typedef unsigned int BMDDeckLinkCapturePassthroughMode;
1503 typedef unsigned int BMDAnalogVideoFlags;
1504 typedef unsigned int BMDDeviceBusyState;
1505 #if 0
1506 typedef enum _BMDFrameFlags BMDFrameFlags;
1507 
1508 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;
1509 
1510 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;
1511 
1512 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;
1513 
1514 typedef enum _BMDDeckLinkCapturePassthroughMode BMDDeckLinkCapturePassthroughMode;
1515 
1516 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;
1517 
1518 typedef enum _BMDDeviceBusyState BMDDeviceBusyState;
1519 
1520 #endif
1521 typedef /* [v1_enum] */
1522 enum _BMDVideoOutputFlags
1523     {
1524         bmdVideoOutputFlagDefault	= 0,
1525         bmdVideoOutputVANC	= ( 1 << 0 ) ,
1526         bmdVideoOutputVITC	= ( 1 << 1 ) ,
1527         bmdVideoOutputRP188	= ( 1 << 2 ) ,
1528         bmdVideoOutputDualStream3D	= ( 1 << 4 ) ,
1529         bmdVideoOutputSynchronizeToPlaybackGroup	= ( 1 << 6 )
1530     } 	BMDVideoOutputFlags;
1531 
1532 typedef /* [v1_enum] */
1533 enum _BMDSupportedVideoModeFlags
1534     {
1535         bmdSupportedVideoModeDefault	= 0,
1536         bmdSupportedVideoModeKeying	= ( 1 << 0 ) ,
1537         bmdSupportedVideoModeDualStream3D	= ( 1 << 1 ) ,
1538         bmdSupportedVideoModeSDISingleLink	= ( 1 << 2 ) ,
1539         bmdSupportedVideoModeSDIDualLink	= ( 1 << 3 ) ,
1540         bmdSupportedVideoModeSDIQuadLink	= ( 1 << 4 ) ,
1541         bmdSupportedVideoModeInAnyProfile	= ( 1 << 5 )
1542     } 	BMDSupportedVideoModeFlags;
1543 
1544 typedef /* [v1_enum] */
1545 enum _BMDPacketType
1546     {
1547         bmdPacketTypeStreamInterruptedMarker	= 0x73696e74,
1548         bmdPacketTypeStreamData	= 0x73646174
1549     } 	BMDPacketType;
1550 
1551 /* [v1_enum] */
1552 enum _BMDFrameFlags
1553     {
1554         bmdFrameFlagDefault	= 0,
1555         bmdFrameFlagFlipVertical	= ( 1 << 0 ) ,
1556         bmdFrameContainsHDRMetadata	= ( 1 << 1 ) ,
1557         bmdFrameContainsCintelMetadata	= ( 1 << 2 ) ,
1558         bmdFrameCapturedAsPsF	= ( 1 << 30 ) ,
1559         bmdFrameHasNoInputSource	= ( 1 << 31 )
1560     } ;
1561 /* [v1_enum] */
1562 enum _BMDVideoInputFlags
1563     {
1564         bmdVideoInputFlagDefault	= 0,
1565         bmdVideoInputEnableFormatDetection	= ( 1 << 0 ) ,
1566         bmdVideoInputDualStream3D	= ( 1 << 1 ) ,
1567         bmdVideoInputSynchronizeToCaptureGroup	= ( 1 << 2 )
1568     } ;
1569 /* [v1_enum] */
1570 enum _BMDVideoInputFormatChangedEvents
1571     {
1572         bmdVideoInputDisplayModeChanged	= ( 1 << 0 ) ,
1573         bmdVideoInputFieldDominanceChanged	= ( 1 << 1 ) ,
1574         bmdVideoInputColorspaceChanged	= ( 1 << 2 )
1575     } ;
1576 /* [v1_enum] */
1577 enum _BMDDetectedVideoInputFormatFlags
1578     {
1579         bmdDetectedVideoInputYCbCr422	= ( 1 << 0 ) ,
1580         bmdDetectedVideoInputRGB444	= ( 1 << 1 ) ,
1581         bmdDetectedVideoInputDualStream3D	= ( 1 << 2 )
1582     } ;
1583 /* [v1_enum] */
1584 enum _BMDDeckLinkCapturePassthroughMode
1585     {
1586         bmdDeckLinkCapturePassthroughModeDisabled	= 0x70646973,
1587         bmdDeckLinkCapturePassthroughModeDirect	= 0x70646972,
1588         bmdDeckLinkCapturePassthroughModeCleanSwitch	= 0x70636c6e
1589     } ;
1590 typedef /* [v1_enum] */
1591 enum _BMDOutputFrameCompletionResult
1592     {
1593         bmdOutputFrameCompleted	= 0,
1594         bmdOutputFrameDisplayedLate	= ( bmdOutputFrameCompleted + 1 ) ,
1595         bmdOutputFrameDropped	= ( bmdOutputFrameDisplayedLate + 1 ) ,
1596         bmdOutputFrameFlushed	= ( bmdOutputFrameDropped + 1 )
1597     } 	BMDOutputFrameCompletionResult;
1598 
1599 typedef /* [v1_enum] */
1600 enum _BMDReferenceStatus
1601     {
1602         bmdReferenceNotSupportedByHardware	= ( 1 << 0 ) ,
1603         bmdReferenceLocked	= ( 1 << 1 )
1604     } 	BMDReferenceStatus;
1605 
1606 typedef /* [v1_enum] */
1607 enum _BMDAudioFormat
1608     {
1609         bmdAudioFormatPCM	= 0x6c70636d
1610     } 	BMDAudioFormat;
1611 
1612 typedef /* [v1_enum] */
1613 enum _BMDAudioSampleRate
1614     {
1615         bmdAudioSampleRate48kHz	= 48000
1616     } 	BMDAudioSampleRate;
1617 
1618 typedef /* [v1_enum] */
1619 enum _BMDAudioSampleType
1620     {
1621         bmdAudioSampleType16bitInteger	= 16,
1622         bmdAudioSampleType32bitInteger	= 32
1623     } 	BMDAudioSampleType;
1624 
1625 typedef /* [v1_enum] */
1626 enum _BMDAudioOutputStreamType
1627     {
1628         bmdAudioOutputStreamContinuous	= 0,
1629         bmdAudioOutputStreamContinuousDontResample	= ( bmdAudioOutputStreamContinuous + 1 ) ,
1630         bmdAudioOutputStreamTimestamped	= ( bmdAudioOutputStreamContinuousDontResample + 1 )
1631     } 	BMDAudioOutputStreamType;
1632 
1633 typedef /* [v1_enum] */
1634 enum _BMDAncillaryPacketFormat
1635     {
1636         bmdAncillaryPacketFormatUInt8	= 0x75693038,
1637         bmdAncillaryPacketFormatUInt16	= 0x75693136,
1638         bmdAncillaryPacketFormatYCbCr10	= 0x76323130
1639     } 	BMDAncillaryPacketFormat;
1640 
1641 typedef /* [v1_enum] */
1642 enum _BMDTimecodeFormat
1643     {
1644         bmdTimecodeRP188VITC1	= 0x72707631,
1645         bmdTimecodeRP188VITC2	= 0x72703132,
1646         bmdTimecodeRP188LTC	= 0x72706c74,
1647         bmdTimecodeRP188HighFrameRate	= 0x72706872,
1648         bmdTimecodeRP188Any	= 0x72703138,
1649         bmdTimecodeVITC	= 0x76697463,
1650         bmdTimecodeVITCField2	= 0x76697432,
1651         bmdTimecodeSerial	= 0x73657269
1652     } 	BMDTimecodeFormat;
1653 
1654 /* [v1_enum] */
1655 enum _BMDAnalogVideoFlags
1656     {
1657         bmdAnalogVideoFlagCompositeSetup75	= ( 1 << 0 ) ,
1658         bmdAnalogVideoFlagComponentBetacamLevels	= ( 1 << 1 )
1659     } ;
1660 typedef /* [v1_enum] */
1661 enum _BMDAudioOutputAnalogAESSwitch
1662     {
1663         bmdAudioOutputSwitchAESEBU	= 0x61657320,
1664         bmdAudioOutputSwitchAnalog	= 0x616e6c67
1665     } 	BMDAudioOutputAnalogAESSwitch;
1666 
1667 typedef /* [v1_enum] */
1668 enum _BMDVideoOutputConversionMode
1669     {
1670         bmdNoVideoOutputConversion	= 0x6e6f6e65,
1671         bmdVideoOutputLetterboxDownconversion	= 0x6c746278,
1672         bmdVideoOutputAnamorphicDownconversion	= 0x616d7068,
1673         bmdVideoOutputHD720toHD1080Conversion	= 0x37323063,
1674         bmdVideoOutputHardwareLetterboxDownconversion	= 0x48576c62,
1675         bmdVideoOutputHardwareAnamorphicDownconversion	= 0x4857616d,
1676         bmdVideoOutputHardwareCenterCutDownconversion	= 0x48576363,
1677         bmdVideoOutputHardware720p1080pCrossconversion	= 0x78636170,
1678         bmdVideoOutputHardwareAnamorphic720pUpconversion	= 0x75613770,
1679         bmdVideoOutputHardwareAnamorphic1080iUpconversion	= 0x75613169,
1680         bmdVideoOutputHardwareAnamorphic149To720pUpconversion	= 0x75343770,
1681         bmdVideoOutputHardwareAnamorphic149To1080iUpconversion	= 0x75343169,
1682         bmdVideoOutputHardwarePillarbox720pUpconversion	= 0x75703770,
1683         bmdVideoOutputHardwarePillarbox1080iUpconversion	= 0x75703169
1684     } 	BMDVideoOutputConversionMode;
1685 
1686 typedef /* [v1_enum] */
1687 enum _BMDVideoInputConversionMode
1688     {
1689         bmdNoVideoInputConversion	= 0x6e6f6e65,
1690         bmdVideoInputLetterboxDownconversionFromHD1080	= 0x31306c62,
1691         bmdVideoInputAnamorphicDownconversionFromHD1080	= 0x3130616d,
1692         bmdVideoInputLetterboxDownconversionFromHD720	= 0x37326c62,
1693         bmdVideoInputAnamorphicDownconversionFromHD720	= 0x3732616d,
1694         bmdVideoInputLetterboxUpconversion	= 0x6c627570,
1695         bmdVideoInputAnamorphicUpconversion	= 0x616d7570
1696     } 	BMDVideoInputConversionMode;
1697 
1698 typedef /* [v1_enum] */
1699 enum _BMDVideo3DPackingFormat
1700     {
1701         bmdVideo3DPackingSidebySideHalf	= 0x73627368,
1702         bmdVideo3DPackingLinebyLine	= 0x6c62796c,
1703         bmdVideo3DPackingTopAndBottom	= 0x7461626f,
1704         bmdVideo3DPackingFramePacking	= 0x6672706b,
1705         bmdVideo3DPackingLeftOnly	= 0x6c656674,
1706         bmdVideo3DPackingRightOnly	= 0x72696768
1707     } 	BMDVideo3DPackingFormat;
1708 
1709 typedef /* [v1_enum] */
1710 enum _BMDIdleVideoOutputOperation
1711     {
1712         bmdIdleVideoOutputBlack	= 0x626c6163,
1713         bmdIdleVideoOutputLastFrame	= 0x6c616661
1714     } 	BMDIdleVideoOutputOperation;
1715 
1716 typedef /* [v1_enum] */
1717 enum _BMDVideoEncoderFrameCodingMode
1718     {
1719         bmdVideoEncoderFrameCodingModeInter	= 0x696e7465,
1720         bmdVideoEncoderFrameCodingModeIntra	= 0x696e7472
1721     } 	BMDVideoEncoderFrameCodingMode;
1722 
1723 typedef /* [v1_enum] */
1724 enum _BMDDNxHRLevel
1725     {
1726         bmdDNxHRLevelSQ	= 0x646e7371,
1727         bmdDNxHRLevelLB	= 0x646e6c62,
1728         bmdDNxHRLevelHQ	= 0x646e6871,
1729         bmdDNxHRLevelHQX	= 0x64687178,
1730         bmdDNxHRLevel444	= 0x64343434
1731     } 	BMDDNxHRLevel;
1732 
1733 typedef /* [v1_enum] */
1734 enum _BMDLinkConfiguration
1735     {
1736         bmdLinkConfigurationSingleLink	= 0x6c63736c,
1737         bmdLinkConfigurationDualLink	= 0x6c63646c,
1738         bmdLinkConfigurationQuadLink	= 0x6c63716c
1739     } 	BMDLinkConfiguration;
1740 
1741 typedef /* [v1_enum] */
1742 enum _BMDDeviceInterface
1743     {
1744         bmdDeviceInterfacePCI	= 0x70636920,
1745         bmdDeviceInterfaceUSB	= 0x75736220,
1746         bmdDeviceInterfaceThunderbolt	= 0x7468756e
1747     } 	BMDDeviceInterface;
1748 
1749 typedef /* [v1_enum] */
1750 enum _BMDColorspace
1751     {
1752         bmdColorspaceRec601	= 0x72363031,
1753         bmdColorspaceRec709	= 0x72373039,
1754         bmdColorspaceRec2020	= 0x32303230
1755     } 	BMDColorspace;
1756 
1757 typedef /* [v1_enum] */
1758 enum _BMDDynamicRange
1759     {
1760         bmdDynamicRangeSDR	= 0,
1761         bmdDynamicRangeHDRStaticPQ	= ( 1 << 29 ) ,
1762         bmdDynamicRangeHDRStaticHLG	= ( 1 << 30 )
1763     } 	BMDDynamicRange;
1764 
1765 typedef /* [v1_enum] */
1766 enum _BMDDeckLinkHDMIInputEDIDID
1767     {
1768         bmdDeckLinkHDMIInputEDIDDynamicRange	= 0x48494479
1769     } 	BMDDeckLinkHDMIInputEDIDID;
1770 
1771 typedef /* [v1_enum] */
1772 enum _BMDDeckLinkFrameMetadataID
1773     {
1774         bmdDeckLinkFrameMetadataColorspace	= 0x63737063,
1775         bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc	= 0x656f7466,
1776         bmdDeckLinkFrameMetadataCintelFilmType	= 0x63667479,
1777         bmdDeckLinkFrameMetadataCintelFilmGauge	= 0x63666761,
1778         bmdDeckLinkFrameMetadataCintelKeykodeLow	= 0x636b6b6c,
1779         bmdDeckLinkFrameMetadataCintelKeykodeHigh	= 0x636b6b68,
1780         bmdDeckLinkFrameMetadataCintelTile1Size	= 0x63743173,
1781         bmdDeckLinkFrameMetadataCintelTile2Size	= 0x63743273,
1782         bmdDeckLinkFrameMetadataCintelTile3Size	= 0x63743373,
1783         bmdDeckLinkFrameMetadataCintelTile4Size	= 0x63743473,
1784         bmdDeckLinkFrameMetadataCintelImageWidth	= 0x49575078,
1785         bmdDeckLinkFrameMetadataCintelImageHeight	= 0x49485078,
1786         bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed	= 0x6d726972,
1787         bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed	= 0x6d676972,
1788         bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed	= 0x6d626972,
1789         bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen	= 0x6d726967,
1790         bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen	= 0x6d676967,
1791         bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen	= 0x6d626967,
1792         bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue	= 0x6d726962,
1793         bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue	= 0x6d676962,
1794         bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue	= 0x6d626962,
1795         bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed	= 0x6d6c7272,
1796         bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed	= 0x6d6c6772,
1797         bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed	= 0x6d6c6272,
1798         bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen	= 0x6d6c7267,
1799         bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen	= 0x6d6c6767,
1800         bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen	= 0x6d6c6267,
1801         bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue	= 0x6d6c7262,
1802         bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue	= 0x6d6c6762,
1803         bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue	= 0x6d6c6262,
1804         bmdDeckLinkFrameMetadataCintelFilmFrameRate	= 0x63666672,
1805         bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX	= 0x68647278,
1806         bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY	= 0x68647279,
1807         bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX	= 0x68646778,
1808         bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY	= 0x68646779,
1809         bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX	= 0x68646278,
1810         bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY	= 0x68646279,
1811         bmdDeckLinkFrameMetadataHDRWhitePointX	= 0x68647778,
1812         bmdDeckLinkFrameMetadataHDRWhitePointY	= 0x68647779,
1813         bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance	= 0x68646d6c,
1814         bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance	= 0x686d696c,
1815         bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel	= 0x6d636c6c,
1816         bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel	= 0x66616c6c,
1817         bmdDeckLinkFrameMetadataCintelOffsetToApplyHorizontal	= 0x6f746168,
1818         bmdDeckLinkFrameMetadataCintelOffsetToApplyVertical	= 0x6f746176,
1819         bmdDeckLinkFrameMetadataCintelGainRed	= 0x4c665264,
1820         bmdDeckLinkFrameMetadataCintelGainGreen	= 0x4c664772,
1821         bmdDeckLinkFrameMetadataCintelGainBlue	= 0x4c66426c,
1822         bmdDeckLinkFrameMetadataCintelLiftRed	= 0x476e5264,
1823         bmdDeckLinkFrameMetadataCintelLiftGreen	= 0x476e4772,
1824         bmdDeckLinkFrameMetadataCintelLiftBlue	= 0x476e426c,
1825         bmdDeckLinkFrameMetadataCintelHDRGainRed	= 0x48475264,
1826         bmdDeckLinkFrameMetadataCintelHDRGainGreen	= 0x48474772,
1827         bmdDeckLinkFrameMetadataCintelHDRGainBlue	= 0x4847426c
1828     } 	BMDDeckLinkFrameMetadataID;
1829 
1830 typedef /* [v1_enum] */
1831 enum _BMDProfileID
1832     {
1833         bmdProfileOneSubDeviceFullDuplex	= 0x31646664,
1834         bmdProfileOneSubDeviceHalfDuplex	= 0x31646864,
1835         bmdProfileTwoSubDevicesFullDuplex	= 0x32646664,
1836         bmdProfileTwoSubDevicesHalfDuplex	= 0x32646864,
1837         bmdProfileFourSubDevicesHalfDuplex	= 0x34646864
1838     } 	BMDProfileID;
1839 
1840 typedef /* [v1_enum] */
1841 enum _BMDHDMITimecodePacking
1842     {
1843         bmdHDMITimecodePackingIEEEOUI000085	= 0x8500,
1844         bmdHDMITimecodePackingIEEEOUI080046	= 0x8004601,
1845         bmdHDMITimecodePackingIEEEOUI5CF9F0	= 0x5cf9f003
1846     } 	BMDHDMITimecodePacking;
1847 
1848 typedef /* [v1_enum] */
1849 enum _BMDDeckLinkAttributeID
1850     {
1851         BMDDeckLinkSupportsInternalKeying	= 0x6b657969,
1852         BMDDeckLinkSupportsExternalKeying	= 0x6b657965,
1853         BMDDeckLinkSupportsInputFormatDetection	= 0x696e6664,
1854         BMDDeckLinkHasReferenceInput	= 0x6872696e,
1855         BMDDeckLinkHasSerialPort	= 0x68737074,
1856         BMDDeckLinkHasAnalogVideoOutputGain	= 0x61766f67,
1857         BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain	= 0x6f766f67,
1858         BMDDeckLinkHasVideoInputAntiAliasingFilter	= 0x6161666c,
1859         BMDDeckLinkHasBypass	= 0x62797073,
1860         BMDDeckLinkSupportsClockTimingAdjustment	= 0x63746164,
1861         BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset	= 0x6672696e,
1862         BMDDeckLinkSupportsSMPTELevelAOutput	= 0x6c766c61,
1863         BMDDeckLinkSupportsDualLinkSDI	= 0x73646c73,
1864         BMDDeckLinkSupportsQuadLinkSDI	= 0x73716c73,
1865         BMDDeckLinkSupportsIdleOutput	= 0x69646f75,
1866         BMDDeckLinkVANCRequires10BitYUVVideoFrames	= 0x76696f59,
1867         BMDDeckLinkHasLTCTimecodeInput	= 0x686c7463,
1868         BMDDeckLinkSupportsHDRMetadata	= 0x6864726d,
1869         BMDDeckLinkSupportsColorspaceMetadata	= 0x636d6574,
1870         BMDDeckLinkSupportsHDMITimecode	= 0x6874696d,
1871         BMDDeckLinkSupportsHighFrameRateTimecode	= 0x48465254,
1872         BMDDeckLinkSupportsSynchronizeToCaptureGroup	= 0x73746367,
1873         BMDDeckLinkSupportsSynchronizeToPlaybackGroup	= 0x73747067,
1874         BMDDeckLinkMaximumAudioChannels	= 0x6d616368,
1875         BMDDeckLinkMaximumAnalogAudioInputChannels	= 0x69616368,
1876         BMDDeckLinkMaximumAnalogAudioOutputChannels	= 0x61616368,
1877         BMDDeckLinkNumberOfSubDevices	= 0x6e736264,
1878         BMDDeckLinkSubDeviceIndex	= 0x73756269,
1879         BMDDeckLinkPersistentID	= 0x70656964,
1880         BMDDeckLinkDeviceGroupID	= 0x64676964,
1881         BMDDeckLinkTopologicalID	= 0x746f6964,
1882         BMDDeckLinkVideoOutputConnections	= 0x766f636e,
1883         BMDDeckLinkVideoInputConnections	= 0x7669636e,
1884         BMDDeckLinkAudioOutputConnections	= 0x616f636e,
1885         BMDDeckLinkAudioInputConnections	= 0x6169636e,
1886         BMDDeckLinkVideoIOSupport	= 0x76696f73,
1887         BMDDeckLinkDeckControlConnections	= 0x6463636e,
1888         BMDDeckLinkDeviceInterface	= 0x64627573,
1889         BMDDeckLinkAudioInputRCAChannelCount	= 0x61697263,
1890         BMDDeckLinkAudioInputXLRChannelCount	= 0x61697863,
1891         BMDDeckLinkAudioOutputRCAChannelCount	= 0x616f7263,
1892         BMDDeckLinkAudioOutputXLRChannelCount	= 0x616f7863,
1893         BMDDeckLinkProfileID	= 0x70726964,
1894         BMDDeckLinkDuplex	= 0x64757078,
1895         BMDDeckLinkVideoInputGainMinimum	= 0x7669676d,
1896         BMDDeckLinkVideoInputGainMaximum	= 0x76696778,
1897         BMDDeckLinkVideoOutputGainMinimum	= 0x766f676d,
1898         BMDDeckLinkVideoOutputGainMaximum	= 0x766f6778,
1899         BMDDeckLinkMicrophoneInputGainMinimum	= 0x6d69676d,
1900         BMDDeckLinkMicrophoneInputGainMaximum	= 0x6d696778,
1901         BMDDeckLinkSerialPortDeviceName	= 0x736c706e,
1902         BMDDeckLinkVendorName	= 0x766e6472,
1903         BMDDeckLinkDisplayName	= 0x6473706e,
1904         BMDDeckLinkModelName	= 0x6d646c6e,
1905         BMDDeckLinkDeviceHandle	= 0x64657668
1906     } 	BMDDeckLinkAttributeID;
1907 
1908 typedef /* [v1_enum] */
1909 enum _BMDDeckLinkAPIInformationID
1910     {
1911         BMDDeckLinkAPIVersion	= 0x76657273
1912     } 	BMDDeckLinkAPIInformationID;
1913 
1914 typedef /* [v1_enum] */
1915 enum _BMDDeckLinkStatusID
1916     {
1917         bmdDeckLinkStatusDetectedVideoInputMode	= 0x6476696d,
1918         bmdDeckLinkStatusDetectedVideoInputFlags	= 0x64766966,
1919         bmdDeckLinkStatusCurrentVideoInputMode	= 0x6376696d,
1920         bmdDeckLinkStatusCurrentVideoInputPixelFormat	= 0x63766970,
1921         bmdDeckLinkStatusCurrentVideoInputFlags	= 0x63766966,
1922         bmdDeckLinkStatusCurrentVideoOutputMode	= 0x63766f6d,
1923         bmdDeckLinkStatusCurrentVideoOutputFlags	= 0x63766f66,
1924         bmdDeckLinkStatusPCIExpressLinkWidth	= 0x70776964,
1925         bmdDeckLinkStatusPCIExpressLinkSpeed	= 0x706c6e6b,
1926         bmdDeckLinkStatusLastVideoOutputPixelFormat	= 0x6f706978,
1927         bmdDeckLinkStatusReferenceSignalMode	= 0x7265666d,
1928         bmdDeckLinkStatusReferenceSignalFlags	= 0x72656666,
1929         bmdDeckLinkStatusBusy	= 0x62757379,
1930         bmdDeckLinkStatusInterchangeablePanelType	= 0x69637074,
1931         bmdDeckLinkStatusDeviceTemperature	= 0x64746d70,
1932         bmdDeckLinkStatusVideoInputSignalLocked	= 0x7669736c,
1933         bmdDeckLinkStatusReferenceSignalLocked	= 0x7265666c,
1934         bmdDeckLinkStatusReceivedEDID	= 0x65646964
1935     } 	BMDDeckLinkStatusID;
1936 
1937 typedef /* [v1_enum] */
1938 enum _BMDDeckLinkVideoStatusFlags
1939     {
1940         bmdDeckLinkVideoStatusPsF	= ( 1 << 0 ) ,
1941         bmdDeckLinkVideoStatusDualStream3D	= ( 1 << 1 )
1942     } 	BMDDeckLinkVideoStatusFlags;
1943 
1944 typedef /* [v1_enum] */
1945 enum _BMDDuplexMode
1946     {
1947         bmdDuplexFull	= 0x64786675,
1948         bmdDuplexHalf	= 0x64786861,
1949         bmdDuplexSimplex	= 0x64787370,
1950         bmdDuplexInactive	= 0x6478696e
1951     } 	BMDDuplexMode;
1952 
1953 typedef /* [v1_enum] */
1954 enum _BMDPanelType
1955     {
1956         bmdPanelNotDetected	= 0x6e706e6c,
1957         bmdPanelTeranexMiniSmartPanel	= 0x746d736d
1958     } 	BMDPanelType;
1959 
1960 /* [v1_enum] */
1961 enum _BMDDeviceBusyState
1962     {
1963         bmdDeviceCaptureBusy	= ( 1 << 0 ) ,
1964         bmdDevicePlaybackBusy	= ( 1 << 1 ) ,
1965         bmdDeviceSerialPortBusy	= ( 1 << 2 )
1966     } ;
1967 typedef /* [v1_enum] */
1968 enum _BMDVideoIOSupport
1969     {
1970         bmdDeviceSupportsCapture	= ( 1 << 0 ) ,
1971         bmdDeviceSupportsPlayback	= ( 1 << 1 )
1972     } 	BMDVideoIOSupport;
1973 
1974 typedef /* [v1_enum] */
1975 enum _BMD3DPreviewFormat
1976     {
1977         bmd3DPreviewFormatDefault	= 0x64656661,
1978         bmd3DPreviewFormatLeftOnly	= 0x6c656674,
1979         bmd3DPreviewFormatRightOnly	= 0x72696768,
1980         bmd3DPreviewFormatSideBySide	= 0x73696465,
1981         bmd3DPreviewFormatTopBottom	= 0x746f7062
1982     } 	BMD3DPreviewFormat;
1983 
1984 typedef /* [v1_enum] */
1985 enum _BMDNotifications
1986     {
1987         bmdPreferencesChanged	= 0x70726566,
1988         bmdStatusChanged	= 0x73746174
1989     } 	BMDNotifications;
1990 
1991 
1992 
1993 
1994 
1995 
1996 
1997 
1998 
1999 
2000 
2001 
2002 
2003 
2004 
2005 
2006 
2007 
2008 
2009 
2010 
2011 
2012 
2013 
2014 
2015 
2016 
2017 
2018 
2019 
2020 
2021 
2022 
2023 
2024 
2025 
2026 
2027 
2028 
2029 
2030 
2031 typedef /* [v1_enum] */
2032 enum _BMDDisplayModeSupport_v10_11
2033     {
2034         bmdDisplayModeNotSupported_v10_11	= 0,
2035         bmdDisplayModeSupported_v10_11	= ( bmdDisplayModeNotSupported_v10_11 + 1 ) ,
2036         bmdDisplayModeSupportedWithConversion_v10_11	= ( bmdDisplayModeSupported_v10_11 + 1 )
2037     } 	BMDDisplayModeSupport_v10_11;
2038 
2039 typedef /* [v1_enum] */
2040 enum _BMDDuplexMode_v10_11
2041     {
2042         bmdDuplexModeFull_v10_11	= 0x66647570,
2043         bmdDuplexModeHalf_v10_11	= 0x68647570
2044     } 	BMDDuplexMode_v10_11;
2045 
2046 typedef /* [v1_enum] */
2047 enum _BMDDeckLinkConfigurationID_v10_11
2048     {
2049         bmdDeckLinkConfigDuplexMode_v10_11	= 0x64757078
2050     } 	BMDDeckLinkConfigurationID_v10_11;
2051 
2052 typedef /* [v1_enum] */
2053 enum _BMDDeckLinkAttributeID_v10_11
2054     {
2055         BMDDeckLinkSupportsDuplexModeConfiguration_v10_11	= 0x64757078,
2056         BMDDeckLinkSupportsHDKeying_v10_11	= 0x6b657968,
2057         BMDDeckLinkPairedDevicePersistentID_v10_11	= 0x70706964,
2058         BMDDeckLinkSupportsFullDuplex_v10_11	= 0x66647570
2059     } 	BMDDeckLinkAttributeID_v10_11;
2060 
2061 typedef /* [v1_enum] */
2062 enum _BMDDeckLinkStatusID_v10_11
2063     {
2064         bmdDeckLinkStatusDuplexMode_v10_11	= 0x64757078
2065     } 	BMDDeckLinkStatusID_v10_11;
2066 
2067 typedef /* [v1_enum] */
2068 enum _BMDDuplexStatus_v10_11
2069     {
2070         bmdDuplexFullDuplex_v10_11	= 0x66647570,
2071         bmdDuplexHalfDuplex_v10_11	= 0x68647570,
2072         bmdDuplexSimplex_v10_11	= 0x73706c78,
2073         bmdDuplexInactive_v10_11	= 0x696e6163
2074     } 	BMDDuplexStatus_v10_11;
2075 
2076 
2077 
2078 
2079 typedef /* [v1_enum] */
2080 enum _BMDDeckLinkConfigurationID_v10_9
2081     {
2082         bmdDeckLinkConfig1080pNotPsF_v10_9	= 0x6670726f
2083     } 	BMDDeckLinkConfigurationID_v10_9;
2084 
2085 
2086 typedef /* [v1_enum] */
2087 enum _BMDDeckLinkAttributeID_v10_6
2088     {
2089         BMDDeckLinkSupportsDesktopDisplay_v10_6	= 0x65787464
2090     } 	BMDDeckLinkAttributeID_v10_6;
2091 
2092 typedef /* [v1_enum] */
2093 enum _BMDIdleVideoOutputOperation_v10_6
2094     {
2095         bmdIdleVideoOutputDesktop_v10_6	= 0x6465736b
2096     } 	BMDIdleVideoOutputOperation_v10_6;
2097 
2098 typedef /* [v1_enum] */
2099 enum _BMDDeckLinkAttributeID_v10_5
2100     {
2101         BMDDeckLinkDeviceBusyState_v10_5	= 0x64627374
2102     } 	BMDDeckLinkAttributeID_v10_5;
2103 
2104 
2105 typedef /* [v1_enum] */
2106 enum _BMDDeckLinkConfigurationID_v10_4
2107     {
2108         bmdDeckLinkConfigSingleLinkVideoOutput_v10_4	= 0x73676c6f
2109     } 	BMDDeckLinkConfigurationID_v10_4;
2110 
2111 
2112 typedef /* [v1_enum] */
2113 enum _BMDDeckLinkConfigurationID_v10_2
2114     {
2115         bmdDeckLinkConfig3GBpsVideoOutput_v10_2	= 0x33676273
2116     } 	BMDDeckLinkConfigurationID_v10_2;
2117 
2118 typedef /* [v1_enum] */
2119 enum _BMDAudioConnection_v10_2
2120     {
2121         bmdAudioConnectionEmbedded_v10_2	= 0x656d6264,
2122         bmdAudioConnectionAESEBU_v10_2	= 0x61657320,
2123         bmdAudioConnectionAnalog_v10_2	= 0x616e6c67,
2124         bmdAudioConnectionAnalogXLR_v10_2	= 0x61786c72,
2125         bmdAudioConnectionAnalogRCA_v10_2	= 0x61726361
2126     } 	BMDAudioConnection_v10_2;
2127 
2128 
2129 typedef /* [v1_enum] */
2130 enum _BMDDeckControlVTRControlState_v8_1
2131     {
2132         bmdDeckControlNotInVTRControlMode_v8_1	= 0x6e76636d,
2133         bmdDeckControlVTRControlPlaying_v8_1	= 0x76747270,
2134         bmdDeckControlVTRControlRecording_v8_1	= 0x76747272,
2135         bmdDeckControlVTRControlStill_v8_1	= 0x76747261,
2136         bmdDeckControlVTRControlSeeking_v8_1	= 0x76747273,
2137         bmdDeckControlVTRControlStopped_v8_1	= 0x7674726f
2138     } 	BMDDeckControlVTRControlState_v8_1;
2139 
2140 
2141 
2142 typedef /* [v1_enum] */
2143 enum _BMDVideoConnection_v7_6
2144     {
2145         bmdVideoConnectionSDI_v7_6	= 0x73646920,
2146         bmdVideoConnectionHDMI_v7_6	= 0x68646d69,
2147         bmdVideoConnectionOpticalSDI_v7_6	= 0x6f707469,
2148         bmdVideoConnectionComponent_v7_6	= 0x63706e74,
2149         bmdVideoConnectionComposite_v7_6	= 0x636d7374,
2150         bmdVideoConnectionSVideo_v7_6	= 0x73766964
2151     } 	BMDVideoConnection_v7_6;
2152 
2153 
2154 
2155 
2156 
2157 
2158 
2159 
2160 
2161 
2162 
2163 
2164 
2165 
2166 
2167 
2168 
2169 
2170 
2171 
2172 
2173 
2174 
2175 EXTERN_C const IID LIBID_DeckLinkAPI;
2176 
2177 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__
2178 #define __IDeckLinkTimecode_INTERFACE_DEFINED__
2179 
2180 /* interface IDeckLinkTimecode */
2181 /* [helpstring][uuid][object] */
2182 
2183 
2184 EXTERN_C const IID IID_IDeckLinkTimecode;
2185 
2186 #if defined(__cplusplus) && !defined(CINTERFACE)
2187 
2188     MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")
2189     IDeckLinkTimecode : public IUnknown
2190     {
2191     public:
2192         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
2193 
2194         virtual HRESULT STDMETHODCALLTYPE GetComponents(
2195             /* [out] */ unsigned char *hours,
2196             /* [out] */ unsigned char *minutes,
2197             /* [out] */ unsigned char *seconds,
2198             /* [out] */ unsigned char *frames) = 0;
2199 
2200         virtual HRESULT STDMETHODCALLTYPE GetString(
2201             /* [out] */ BSTR *timecode) = 0;
2202 
2203         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
2204 
2205         virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits(
2206             /* [out] */ BMDTimecodeUserBits *userBits) = 0;
2207 
2208     };
2209 
2210 
2211 #else 	/* C style interface */
2212 
2213     typedef struct IDeckLinkTimecodeVtbl
2214     {
2215         BEGIN_INTERFACE
2216 
2217         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2218             IDeckLinkTimecode * This,
2219             /* [in] */ REFIID riid,
2220             /* [annotation][iid_is][out] */
2221             _COM_Outptr_  void **ppvObject);
2222 
2223         ULONG ( STDMETHODCALLTYPE *AddRef )(
2224             IDeckLinkTimecode * This);
2225 
2226         ULONG ( STDMETHODCALLTYPE *Release )(
2227             IDeckLinkTimecode * This);
2228 
2229         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(
2230             IDeckLinkTimecode * This);
2231 
2232         HRESULT ( STDMETHODCALLTYPE *GetComponents )(
2233             IDeckLinkTimecode * This,
2234             /* [out] */ unsigned char *hours,
2235             /* [out] */ unsigned char *minutes,
2236             /* [out] */ unsigned char *seconds,
2237             /* [out] */ unsigned char *frames);
2238 
2239         HRESULT ( STDMETHODCALLTYPE *GetString )(
2240             IDeckLinkTimecode * This,
2241             /* [out] */ BSTR *timecode);
2242 
2243         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(
2244             IDeckLinkTimecode * This);
2245 
2246         HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )(
2247             IDeckLinkTimecode * This,
2248             /* [out] */ BMDTimecodeUserBits *userBits);
2249 
2250         END_INTERFACE
2251     } IDeckLinkTimecodeVtbl;
2252 
2253     interface IDeckLinkTimecode
2254     {
2255         CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;
2256     };
2257 
2258 
2259 
2260 #ifdef COBJMACROS
2261 
2262 
2263 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)	\
2264     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2265 
2266 #define IDeckLinkTimecode_AddRef(This)	\
2267     ( (This)->lpVtbl -> AddRef(This) )
2268 
2269 #define IDeckLinkTimecode_Release(This)	\
2270     ( (This)->lpVtbl -> Release(This) )
2271 
2272 
2273 #define IDeckLinkTimecode_GetBCD(This)	\
2274     ( (This)->lpVtbl -> GetBCD(This) )
2275 
2276 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)	\
2277     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )
2278 
2279 #define IDeckLinkTimecode_GetString(This,timecode)	\
2280     ( (This)->lpVtbl -> GetString(This,timecode) )
2281 
2282 #define IDeckLinkTimecode_GetFlags(This)	\
2283     ( (This)->lpVtbl -> GetFlags(This) )
2284 
2285 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits)	\
2286     ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) )
2287 
2288 #endif /* COBJMACROS */
2289 
2290 
2291 #endif 	/* C style interface */
2292 
2293 
2294 
2295 
2296 #endif 	/* __IDeckLinkTimecode_INTERFACE_DEFINED__ */
2297 
2298 
2299 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
2300 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
2301 
2302 /* interface IDeckLinkDisplayModeIterator */
2303 /* [helpstring][uuid][object] */
2304 
2305 
2306 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
2307 
2308 #if defined(__cplusplus) && !defined(CINTERFACE)
2309 
2310     MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")
2311     IDeckLinkDisplayModeIterator : public IUnknown
2312     {
2313     public:
2314         virtual HRESULT STDMETHODCALLTYPE Next(
2315             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
2316 
2317     };
2318 
2319 
2320 #else 	/* C style interface */
2321 
2322     typedef struct IDeckLinkDisplayModeIteratorVtbl
2323     {
2324         BEGIN_INTERFACE
2325 
2326         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2327             IDeckLinkDisplayModeIterator * This,
2328             /* [in] */ REFIID riid,
2329             /* [annotation][iid_is][out] */
2330             _COM_Outptr_  void **ppvObject);
2331 
2332         ULONG ( STDMETHODCALLTYPE *AddRef )(
2333             IDeckLinkDisplayModeIterator * This);
2334 
2335         ULONG ( STDMETHODCALLTYPE *Release )(
2336             IDeckLinkDisplayModeIterator * This);
2337 
2338         HRESULT ( STDMETHODCALLTYPE *Next )(
2339             IDeckLinkDisplayModeIterator * This,
2340             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);
2341 
2342         END_INTERFACE
2343     } IDeckLinkDisplayModeIteratorVtbl;
2344 
2345     interface IDeckLinkDisplayModeIterator
2346     {
2347         CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;
2348     };
2349 
2350 
2351 
2352 #ifdef COBJMACROS
2353 
2354 
2355 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)	\
2356     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2357 
2358 #define IDeckLinkDisplayModeIterator_AddRef(This)	\
2359     ( (This)->lpVtbl -> AddRef(This) )
2360 
2361 #define IDeckLinkDisplayModeIterator_Release(This)	\
2362     ( (This)->lpVtbl -> Release(This) )
2363 
2364 
2365 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)	\
2366     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
2367 
2368 #endif /* COBJMACROS */
2369 
2370 
2371 #endif 	/* C style interface */
2372 
2373 
2374 
2375 
2376 #endif 	/* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */
2377 
2378 
2379 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__
2380 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__
2381 
2382 /* interface IDeckLinkDisplayMode */
2383 /* [helpstring][uuid][object] */
2384 
2385 
2386 EXTERN_C const IID IID_IDeckLinkDisplayMode;
2387 
2388 #if defined(__cplusplus) && !defined(CINTERFACE)
2389 
2390     MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")
2391     IDeckLinkDisplayMode : public IUnknown
2392     {
2393     public:
2394         virtual HRESULT STDMETHODCALLTYPE GetName(
2395             /* [out] */ BSTR *name) = 0;
2396 
2397         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
2398 
2399         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
2400 
2401         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
2402 
2403         virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
2404             /* [out] */ BMDTimeValue *frameDuration,
2405             /* [out] */ BMDTimeScale *timeScale) = 0;
2406 
2407         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
2408 
2409         virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
2410 
2411     };
2412 
2413 
2414 #else 	/* C style interface */
2415 
2416     typedef struct IDeckLinkDisplayModeVtbl
2417     {
2418         BEGIN_INTERFACE
2419 
2420         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2421             IDeckLinkDisplayMode * This,
2422             /* [in] */ REFIID riid,
2423             /* [annotation][iid_is][out] */
2424             _COM_Outptr_  void **ppvObject);
2425 
2426         ULONG ( STDMETHODCALLTYPE *AddRef )(
2427             IDeckLinkDisplayMode * This);
2428 
2429         ULONG ( STDMETHODCALLTYPE *Release )(
2430             IDeckLinkDisplayMode * This);
2431 
2432         HRESULT ( STDMETHODCALLTYPE *GetName )(
2433             IDeckLinkDisplayMode * This,
2434             /* [out] */ BSTR *name);
2435 
2436         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
2437             IDeckLinkDisplayMode * This);
2438 
2439         long ( STDMETHODCALLTYPE *GetWidth )(
2440             IDeckLinkDisplayMode * This);
2441 
2442         long ( STDMETHODCALLTYPE *GetHeight )(
2443             IDeckLinkDisplayMode * This);
2444 
2445         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
2446             IDeckLinkDisplayMode * This,
2447             /* [out] */ BMDTimeValue *frameDuration,
2448             /* [out] */ BMDTimeScale *timeScale);
2449 
2450         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(
2451             IDeckLinkDisplayMode * This);
2452 
2453         BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )(
2454             IDeckLinkDisplayMode * This);
2455 
2456         END_INTERFACE
2457     } IDeckLinkDisplayModeVtbl;
2458 
2459     interface IDeckLinkDisplayMode
2460     {
2461         CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;
2462     };
2463 
2464 
2465 
2466 #ifdef COBJMACROS
2467 
2468 
2469 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)	\
2470     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2471 
2472 #define IDeckLinkDisplayMode_AddRef(This)	\
2473     ( (This)->lpVtbl -> AddRef(This) )
2474 
2475 #define IDeckLinkDisplayMode_Release(This)	\
2476     ( (This)->lpVtbl -> Release(This) )
2477 
2478 
2479 #define IDeckLinkDisplayMode_GetName(This,name)	\
2480     ( (This)->lpVtbl -> GetName(This,name) )
2481 
2482 #define IDeckLinkDisplayMode_GetDisplayMode(This)	\
2483     ( (This)->lpVtbl -> GetDisplayMode(This) )
2484 
2485 #define IDeckLinkDisplayMode_GetWidth(This)	\
2486     ( (This)->lpVtbl -> GetWidth(This) )
2487 
2488 #define IDeckLinkDisplayMode_GetHeight(This)	\
2489     ( (This)->lpVtbl -> GetHeight(This) )
2490 
2491 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale)	\
2492     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
2493 
2494 #define IDeckLinkDisplayMode_GetFieldDominance(This)	\
2495     ( (This)->lpVtbl -> GetFieldDominance(This) )
2496 
2497 #define IDeckLinkDisplayMode_GetFlags(This)	\
2498     ( (This)->lpVtbl -> GetFlags(This) )
2499 
2500 #endif /* COBJMACROS */
2501 
2502 
2503 #endif 	/* C style interface */
2504 
2505 
2506 
2507 
2508 #endif 	/* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */
2509 
2510 
2511 #ifndef __IDeckLink_INTERFACE_DEFINED__
2512 #define __IDeckLink_INTERFACE_DEFINED__
2513 
2514 /* interface IDeckLink */
2515 /* [helpstring][uuid][object] */
2516 
2517 
2518 EXTERN_C const IID IID_IDeckLink;
2519 
2520 #if defined(__cplusplus) && !defined(CINTERFACE)
2521 
2522     MIDL_INTERFACE("C418FBDD-0587-48ED-8FE5-640F0A14AF91")
2523     IDeckLink : public IUnknown
2524     {
2525     public:
2526         virtual HRESULT STDMETHODCALLTYPE GetModelName(
2527             /* [out] */ BSTR *modelName) = 0;
2528 
2529         virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
2530             /* [out] */ BSTR *displayName) = 0;
2531 
2532     };
2533 
2534 
2535 #else 	/* C style interface */
2536 
2537     typedef struct IDeckLinkVtbl
2538     {
2539         BEGIN_INTERFACE
2540 
2541         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2542             IDeckLink * This,
2543             /* [in] */ REFIID riid,
2544             /* [annotation][iid_is][out] */
2545             _COM_Outptr_  void **ppvObject);
2546 
2547         ULONG ( STDMETHODCALLTYPE *AddRef )(
2548             IDeckLink * This);
2549 
2550         ULONG ( STDMETHODCALLTYPE *Release )(
2551             IDeckLink * This);
2552 
2553         HRESULT ( STDMETHODCALLTYPE *GetModelName )(
2554             IDeckLink * This,
2555             /* [out] */ BSTR *modelName);
2556 
2557         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
2558             IDeckLink * This,
2559             /* [out] */ BSTR *displayName);
2560 
2561         END_INTERFACE
2562     } IDeckLinkVtbl;
2563 
2564     interface IDeckLink
2565     {
2566         CONST_VTBL struct IDeckLinkVtbl *lpVtbl;
2567     };
2568 
2569 
2570 
2571 #ifdef COBJMACROS
2572 
2573 
2574 #define IDeckLink_QueryInterface(This,riid,ppvObject)	\
2575     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2576 
2577 #define IDeckLink_AddRef(This)	\
2578     ( (This)->lpVtbl -> AddRef(This) )
2579 
2580 #define IDeckLink_Release(This)	\
2581     ( (This)->lpVtbl -> Release(This) )
2582 
2583 
2584 #define IDeckLink_GetModelName(This,modelName)	\
2585     ( (This)->lpVtbl -> GetModelName(This,modelName) )
2586 
2587 #define IDeckLink_GetDisplayName(This,displayName)	\
2588     ( (This)->lpVtbl -> GetDisplayName(This,displayName) )
2589 
2590 #endif /* COBJMACROS */
2591 
2592 
2593 #endif 	/* C style interface */
2594 
2595 
2596 
2597 
2598 #endif 	/* __IDeckLink_INTERFACE_DEFINED__ */
2599 
2600 
2601 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__
2602 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__
2603 
2604 /* interface IDeckLinkConfiguration */
2605 /* [helpstring][local][uuid][object] */
2606 
2607 
2608 EXTERN_C const IID IID_IDeckLinkConfiguration;
2609 
2610 #if defined(__cplusplus) && !defined(CINTERFACE)
2611 
2612     MIDL_INTERFACE("912F634B-2D4E-40A4-8AAB-8D80B73F1289")
2613     IDeckLinkConfiguration : public IUnknown
2614     {
2615     public:
2616         virtual HRESULT STDMETHODCALLTYPE SetFlag(
2617             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2618             /* [in] */ BOOL value) = 0;
2619 
2620         virtual HRESULT STDMETHODCALLTYPE GetFlag(
2621             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2622             /* [out] */ BOOL *value) = 0;
2623 
2624         virtual HRESULT STDMETHODCALLTYPE SetInt(
2625             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2626             /* [in] */ LONGLONG value) = 0;
2627 
2628         virtual HRESULT STDMETHODCALLTYPE GetInt(
2629             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2630             /* [out] */ LONGLONG *value) = 0;
2631 
2632         virtual HRESULT STDMETHODCALLTYPE SetFloat(
2633             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2634             /* [in] */ double value) = 0;
2635 
2636         virtual HRESULT STDMETHODCALLTYPE GetFloat(
2637             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2638             /* [out] */ double *value) = 0;
2639 
2640         virtual HRESULT STDMETHODCALLTYPE SetString(
2641             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2642             /* [in] */ BSTR value) = 0;
2643 
2644         virtual HRESULT STDMETHODCALLTYPE GetString(
2645             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2646             /* [out] */ BSTR *value) = 0;
2647 
2648         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
2649 
2650     };
2651 
2652 
2653 #else 	/* C style interface */
2654 
2655     typedef struct IDeckLinkConfigurationVtbl
2656     {
2657         BEGIN_INTERFACE
2658 
2659         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2660             IDeckLinkConfiguration * This,
2661             /* [in] */ REFIID riid,
2662             /* [annotation][iid_is][out] */
2663             _COM_Outptr_  void **ppvObject);
2664 
2665         ULONG ( STDMETHODCALLTYPE *AddRef )(
2666             IDeckLinkConfiguration * This);
2667 
2668         ULONG ( STDMETHODCALLTYPE *Release )(
2669             IDeckLinkConfiguration * This);
2670 
2671         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
2672             IDeckLinkConfiguration * This,
2673             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2674             /* [in] */ BOOL value);
2675 
2676         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
2677             IDeckLinkConfiguration * This,
2678             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2679             /* [out] */ BOOL *value);
2680 
2681         HRESULT ( STDMETHODCALLTYPE *SetInt )(
2682             IDeckLinkConfiguration * This,
2683             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2684             /* [in] */ LONGLONG value);
2685 
2686         HRESULT ( STDMETHODCALLTYPE *GetInt )(
2687             IDeckLinkConfiguration * This,
2688             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2689             /* [out] */ LONGLONG *value);
2690 
2691         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
2692             IDeckLinkConfiguration * This,
2693             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2694             /* [in] */ double value);
2695 
2696         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
2697             IDeckLinkConfiguration * This,
2698             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2699             /* [out] */ double *value);
2700 
2701         HRESULT ( STDMETHODCALLTYPE *SetString )(
2702             IDeckLinkConfiguration * This,
2703             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2704             /* [in] */ BSTR value);
2705 
2706         HRESULT ( STDMETHODCALLTYPE *GetString )(
2707             IDeckLinkConfiguration * This,
2708             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2709             /* [out] */ BSTR *value);
2710 
2711         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
2712             IDeckLinkConfiguration * This);
2713 
2714         END_INTERFACE
2715     } IDeckLinkConfigurationVtbl;
2716 
2717     interface IDeckLinkConfiguration
2718     {
2719         CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;
2720     };
2721 
2722 
2723 
2724 #ifdef COBJMACROS
2725 
2726 
2727 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)	\
2728     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2729 
2730 #define IDeckLinkConfiguration_AddRef(This)	\
2731     ( (This)->lpVtbl -> AddRef(This) )
2732 
2733 #define IDeckLinkConfiguration_Release(This)	\
2734     ( (This)->lpVtbl -> Release(This) )
2735 
2736 
2737 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value)	\
2738     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
2739 
2740 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value)	\
2741     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
2742 
2743 #define IDeckLinkConfiguration_SetInt(This,cfgID,value)	\
2744     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
2745 
2746 #define IDeckLinkConfiguration_GetInt(This,cfgID,value)	\
2747     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
2748 
2749 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value)	\
2750     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
2751 
2752 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value)	\
2753     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
2754 
2755 #define IDeckLinkConfiguration_SetString(This,cfgID,value)	\
2756     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
2757 
2758 #define IDeckLinkConfiguration_GetString(This,cfgID,value)	\
2759     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
2760 
2761 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)	\
2762     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
2763 
2764 #endif /* COBJMACROS */
2765 
2766 
2767 #endif 	/* C style interface */
2768 
2769 
2770 
2771 
2772 #endif 	/* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */
2773 
2774 
2775 #ifndef __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__
2776 #define __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__
2777 
2778 /* interface IDeckLinkEncoderConfiguration */
2779 /* [helpstring][local][uuid][object] */
2780 
2781 
2782 EXTERN_C const IID IID_IDeckLinkEncoderConfiguration;
2783 
2784 #if defined(__cplusplus) && !defined(CINTERFACE)
2785 
2786     MIDL_INTERFACE("138050E5-C60A-4552-BF3F-0F358049327E")
2787     IDeckLinkEncoderConfiguration : public IUnknown
2788     {
2789     public:
2790         virtual HRESULT STDMETHODCALLTYPE SetFlag(
2791             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2792             /* [in] */ BOOL value) = 0;
2793 
2794         virtual HRESULT STDMETHODCALLTYPE GetFlag(
2795             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2796             /* [out] */ BOOL *value) = 0;
2797 
2798         virtual HRESULT STDMETHODCALLTYPE SetInt(
2799             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2800             /* [in] */ LONGLONG value) = 0;
2801 
2802         virtual HRESULT STDMETHODCALLTYPE GetInt(
2803             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2804             /* [out] */ LONGLONG *value) = 0;
2805 
2806         virtual HRESULT STDMETHODCALLTYPE SetFloat(
2807             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2808             /* [in] */ double value) = 0;
2809 
2810         virtual HRESULT STDMETHODCALLTYPE GetFloat(
2811             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2812             /* [out] */ double *value) = 0;
2813 
2814         virtual HRESULT STDMETHODCALLTYPE SetString(
2815             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2816             /* [in] */ BSTR value) = 0;
2817 
2818         virtual HRESULT STDMETHODCALLTYPE GetString(
2819             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2820             /* [out] */ BSTR *value) = 0;
2821 
2822         virtual HRESULT STDMETHODCALLTYPE GetBytes(
2823             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2824             /* [out] */ void *buffer,
2825             /* [out][in] */ unsigned int *bufferSize) = 0;
2826 
2827     };
2828 
2829 
2830 #else 	/* C style interface */
2831 
2832     typedef struct IDeckLinkEncoderConfigurationVtbl
2833     {
2834         BEGIN_INTERFACE
2835 
2836         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2837             IDeckLinkEncoderConfiguration * This,
2838             /* [in] */ REFIID riid,
2839             /* [annotation][iid_is][out] */
2840             _COM_Outptr_  void **ppvObject);
2841 
2842         ULONG ( STDMETHODCALLTYPE *AddRef )(
2843             IDeckLinkEncoderConfiguration * This);
2844 
2845         ULONG ( STDMETHODCALLTYPE *Release )(
2846             IDeckLinkEncoderConfiguration * This);
2847 
2848         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
2849             IDeckLinkEncoderConfiguration * This,
2850             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2851             /* [in] */ BOOL value);
2852 
2853         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
2854             IDeckLinkEncoderConfiguration * This,
2855             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2856             /* [out] */ BOOL *value);
2857 
2858         HRESULT ( STDMETHODCALLTYPE *SetInt )(
2859             IDeckLinkEncoderConfiguration * This,
2860             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2861             /* [in] */ LONGLONG value);
2862 
2863         HRESULT ( STDMETHODCALLTYPE *GetInt )(
2864             IDeckLinkEncoderConfiguration * This,
2865             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2866             /* [out] */ LONGLONG *value);
2867 
2868         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
2869             IDeckLinkEncoderConfiguration * This,
2870             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2871             /* [in] */ double value);
2872 
2873         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
2874             IDeckLinkEncoderConfiguration * This,
2875             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2876             /* [out] */ double *value);
2877 
2878         HRESULT ( STDMETHODCALLTYPE *SetString )(
2879             IDeckLinkEncoderConfiguration * This,
2880             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2881             /* [in] */ BSTR value);
2882 
2883         HRESULT ( STDMETHODCALLTYPE *GetString )(
2884             IDeckLinkEncoderConfiguration * This,
2885             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2886             /* [out] */ BSTR *value);
2887 
2888         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
2889             IDeckLinkEncoderConfiguration * This,
2890             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
2891             /* [out] */ void *buffer,
2892             /* [out][in] */ unsigned int *bufferSize);
2893 
2894         END_INTERFACE
2895     } IDeckLinkEncoderConfigurationVtbl;
2896 
2897     interface IDeckLinkEncoderConfiguration
2898     {
2899         CONST_VTBL struct IDeckLinkEncoderConfigurationVtbl *lpVtbl;
2900     };
2901 
2902 
2903 
2904 #ifdef COBJMACROS
2905 
2906 
2907 #define IDeckLinkEncoderConfiguration_QueryInterface(This,riid,ppvObject)	\
2908     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2909 
2910 #define IDeckLinkEncoderConfiguration_AddRef(This)	\
2911     ( (This)->lpVtbl -> AddRef(This) )
2912 
2913 #define IDeckLinkEncoderConfiguration_Release(This)	\
2914     ( (This)->lpVtbl -> Release(This) )
2915 
2916 
2917 #define IDeckLinkEncoderConfiguration_SetFlag(This,cfgID,value)	\
2918     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
2919 
2920 #define IDeckLinkEncoderConfiguration_GetFlag(This,cfgID,value)	\
2921     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
2922 
2923 #define IDeckLinkEncoderConfiguration_SetInt(This,cfgID,value)	\
2924     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
2925 
2926 #define IDeckLinkEncoderConfiguration_GetInt(This,cfgID,value)	\
2927     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
2928 
2929 #define IDeckLinkEncoderConfiguration_SetFloat(This,cfgID,value)	\
2930     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
2931 
2932 #define IDeckLinkEncoderConfiguration_GetFloat(This,cfgID,value)	\
2933     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
2934 
2935 #define IDeckLinkEncoderConfiguration_SetString(This,cfgID,value)	\
2936     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
2937 
2938 #define IDeckLinkEncoderConfiguration_GetString(This,cfgID,value)	\
2939     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
2940 
2941 #define IDeckLinkEncoderConfiguration_GetBytes(This,cfgID,buffer,bufferSize)	\
2942     ( (This)->lpVtbl -> GetBytes(This,cfgID,buffer,bufferSize) )
2943 
2944 #endif /* COBJMACROS */
2945 
2946 
2947 #endif 	/* C style interface */
2948 
2949 
2950 
2951 
2952 #endif 	/* __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__ */
2953 
2954 
2955 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
2956 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
2957 
2958 /* interface IDeckLinkDeckControlStatusCallback */
2959 /* [helpstring][uuid][object] */
2960 
2961 
2962 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
2963 
2964 #if defined(__cplusplus) && !defined(CINTERFACE)
2965 
2966     MIDL_INTERFACE("53436FFB-B434-4906-BADC-AE3060FFE8EF")
2967     IDeckLinkDeckControlStatusCallback : public IUnknown
2968     {
2969     public:
2970         virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(
2971             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
2972 
2973         virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(
2974             /* [in] */ BMDDeckControlVTRControlState newState,
2975             /* [in] */ BMDDeckControlError error) = 0;
2976 
2977         virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(
2978             /* [in] */ BMDDeckControlEvent event,
2979             /* [in] */ BMDDeckControlError error) = 0;
2980 
2981         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(
2982             /* [in] */ BMDDeckControlStatusFlags flags,
2983             /* [in] */ unsigned int mask) = 0;
2984 
2985     };
2986 
2987 
2988 #else 	/* C style interface */
2989 
2990     typedef struct IDeckLinkDeckControlStatusCallbackVtbl
2991     {
2992         BEGIN_INTERFACE
2993 
2994         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2995             IDeckLinkDeckControlStatusCallback * This,
2996             /* [in] */ REFIID riid,
2997             /* [annotation][iid_is][out] */
2998             _COM_Outptr_  void **ppvObject);
2999 
3000         ULONG ( STDMETHODCALLTYPE *AddRef )(
3001             IDeckLinkDeckControlStatusCallback * This);
3002 
3003         ULONG ( STDMETHODCALLTYPE *Release )(
3004             IDeckLinkDeckControlStatusCallback * This);
3005 
3006         HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(
3007             IDeckLinkDeckControlStatusCallback * This,
3008             /* [in] */ BMDTimecodeBCD currentTimecode);
3009 
3010         HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(
3011             IDeckLinkDeckControlStatusCallback * This,
3012             /* [in] */ BMDDeckControlVTRControlState newState,
3013             /* [in] */ BMDDeckControlError error);
3014 
3015         HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(
3016             IDeckLinkDeckControlStatusCallback * This,
3017             /* [in] */ BMDDeckControlEvent event,
3018             /* [in] */ BMDDeckControlError error);
3019 
3020         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(
3021             IDeckLinkDeckControlStatusCallback * This,
3022             /* [in] */ BMDDeckControlStatusFlags flags,
3023             /* [in] */ unsigned int mask);
3024 
3025         END_INTERFACE
3026     } IDeckLinkDeckControlStatusCallbackVtbl;
3027 
3028     interface IDeckLinkDeckControlStatusCallback
3029     {
3030         CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;
3031     };
3032 
3033 
3034 
3035 #ifdef COBJMACROS
3036 
3037 
3038 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject)	\
3039     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3040 
3041 #define IDeckLinkDeckControlStatusCallback_AddRef(This)	\
3042     ( (This)->lpVtbl -> AddRef(This) )
3043 
3044 #define IDeckLinkDeckControlStatusCallback_Release(This)	\
3045     ( (This)->lpVtbl -> Release(This) )
3046 
3047 
3048 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode)	\
3049     ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )
3050 
3051 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error)	\
3052     ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )
3053 
3054 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error)	\
3055     ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )
3056 
3057 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask)	\
3058     ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )
3059 
3060 #endif /* COBJMACROS */
3061 
3062 
3063 #endif 	/* C style interface */
3064 
3065 
3066 
3067 
3068 #endif 	/* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */
3069 
3070 
3071 #ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__
3072 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__
3073 
3074 /* interface IDeckLinkDeckControl */
3075 /* [helpstring][uuid][object] */
3076 
3077 
3078 EXTERN_C const IID IID_IDeckLinkDeckControl;
3079 
3080 #if defined(__cplusplus) && !defined(CINTERFACE)
3081 
3082     MIDL_INTERFACE("8E1C3ACE-19C7-4E00-8B92-D80431D958BE")
3083     IDeckLinkDeckControl : public IUnknown
3084     {
3085     public:
3086         virtual HRESULT STDMETHODCALLTYPE Open(
3087             /* [in] */ BMDTimeScale timeScale,
3088             /* [in] */ BMDTimeValue timeValue,
3089             /* [in] */ BOOL timecodeIsDropFrame,
3090             /* [out] */ BMDDeckControlError *error) = 0;
3091 
3092         virtual HRESULT STDMETHODCALLTYPE Close(
3093             /* [in] */ BOOL standbyOn) = 0;
3094 
3095         virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
3096             /* [out] */ BMDDeckControlMode *mode,
3097             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
3098             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
3099 
3100         virtual HRESULT STDMETHODCALLTYPE SetStandby(
3101             /* [in] */ BOOL standbyOn) = 0;
3102 
3103         virtual HRESULT STDMETHODCALLTYPE SendCommand(
3104             /* [in] */ unsigned char *inBuffer,
3105             /* [in] */ unsigned int inBufferSize,
3106             /* [out] */ unsigned char *outBuffer,
3107             /* [out] */ unsigned int *outDataSize,
3108             /* [in] */ unsigned int outBufferSize,
3109             /* [out] */ BMDDeckControlError *error) = 0;
3110 
3111         virtual HRESULT STDMETHODCALLTYPE Play(
3112             /* [out] */ BMDDeckControlError *error) = 0;
3113 
3114         virtual HRESULT STDMETHODCALLTYPE Stop(
3115             /* [out] */ BMDDeckControlError *error) = 0;
3116 
3117         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
3118             /* [out] */ BMDDeckControlError *error) = 0;
3119 
3120         virtual HRESULT STDMETHODCALLTYPE Eject(
3121             /* [out] */ BMDDeckControlError *error) = 0;
3122 
3123         virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
3124             /* [in] */ BMDTimecodeBCD timecode,
3125             /* [out] */ BMDDeckControlError *error) = 0;
3126 
3127         virtual HRESULT STDMETHODCALLTYPE FastForward(
3128             /* [in] */ BOOL viewTape,
3129             /* [out] */ BMDDeckControlError *error) = 0;
3130 
3131         virtual HRESULT STDMETHODCALLTYPE Rewind(
3132             /* [in] */ BOOL viewTape,
3133             /* [out] */ BMDDeckControlError *error) = 0;
3134 
3135         virtual HRESULT STDMETHODCALLTYPE StepForward(
3136             /* [out] */ BMDDeckControlError *error) = 0;
3137 
3138         virtual HRESULT STDMETHODCALLTYPE StepBack(
3139             /* [out] */ BMDDeckControlError *error) = 0;
3140 
3141         virtual HRESULT STDMETHODCALLTYPE Jog(
3142             /* [in] */ double rate,
3143             /* [out] */ BMDDeckControlError *error) = 0;
3144 
3145         virtual HRESULT STDMETHODCALLTYPE Shuttle(
3146             /* [in] */ double rate,
3147             /* [out] */ BMDDeckControlError *error) = 0;
3148 
3149         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
3150             /* [out] */ BSTR *currentTimeCode,
3151             /* [out] */ BMDDeckControlError *error) = 0;
3152 
3153         virtual HRESULT STDMETHODCALLTYPE GetTimecode(
3154             /* [out] */ IDeckLinkTimecode **currentTimecode,
3155             /* [out] */ BMDDeckControlError *error) = 0;
3156 
3157         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
3158             /* [out] */ BMDTimecodeBCD *currentTimecode,
3159             /* [out] */ BMDDeckControlError *error) = 0;
3160 
3161         virtual HRESULT STDMETHODCALLTYPE SetPreroll(
3162             /* [in] */ unsigned int prerollSeconds) = 0;
3163 
3164         virtual HRESULT STDMETHODCALLTYPE GetPreroll(
3165             /* [out] */ unsigned int *prerollSeconds) = 0;
3166 
3167         virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
3168             /* [in] */ int exportOffsetFields) = 0;
3169 
3170         virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
3171             /* [out] */ int *exportOffsetFields) = 0;
3172 
3173         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
3174             /* [out] */ int *deckManualExportOffsetFields) = 0;
3175 
3176         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
3177             /* [in] */ int captureOffsetFields) = 0;
3178 
3179         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
3180             /* [out] */ int *captureOffsetFields) = 0;
3181 
3182         virtual HRESULT STDMETHODCALLTYPE StartExport(
3183             /* [in] */ BMDTimecodeBCD inTimecode,
3184             /* [in] */ BMDTimecodeBCD outTimecode,
3185             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
3186             /* [out] */ BMDDeckControlError *error) = 0;
3187 
3188         virtual HRESULT STDMETHODCALLTYPE StartCapture(
3189             /* [in] */ BOOL useVITC,
3190             /* [in] */ BMDTimecodeBCD inTimecode,
3191             /* [in] */ BMDTimecodeBCD outTimecode,
3192             /* [out] */ BMDDeckControlError *error) = 0;
3193 
3194         virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
3195             /* [out] */ unsigned short *deviceId,
3196             /* [out] */ BMDDeckControlError *error) = 0;
3197 
3198         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
3199 
3200         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
3201             /* [out] */ BMDDeckControlError *error) = 0;
3202 
3203         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
3204             /* [out] */ BMDDeckControlError *error) = 0;
3205 
3206         virtual HRESULT STDMETHODCALLTYPE SetCallback(
3207             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
3208 
3209     };
3210 
3211 
3212 #else 	/* C style interface */
3213 
3214     typedef struct IDeckLinkDeckControlVtbl
3215     {
3216         BEGIN_INTERFACE
3217 
3218         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3219             IDeckLinkDeckControl * This,
3220             /* [in] */ REFIID riid,
3221             /* [annotation][iid_is][out] */
3222             _COM_Outptr_  void **ppvObject);
3223 
3224         ULONG ( STDMETHODCALLTYPE *AddRef )(
3225             IDeckLinkDeckControl * This);
3226 
3227         ULONG ( STDMETHODCALLTYPE *Release )(
3228             IDeckLinkDeckControl * This);
3229 
3230         HRESULT ( STDMETHODCALLTYPE *Open )(
3231             IDeckLinkDeckControl * This,
3232             /* [in] */ BMDTimeScale timeScale,
3233             /* [in] */ BMDTimeValue timeValue,
3234             /* [in] */ BOOL timecodeIsDropFrame,
3235             /* [out] */ BMDDeckControlError *error);
3236 
3237         HRESULT ( STDMETHODCALLTYPE *Close )(
3238             IDeckLinkDeckControl * This,
3239             /* [in] */ BOOL standbyOn);
3240 
3241         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
3242             IDeckLinkDeckControl * This,
3243             /* [out] */ BMDDeckControlMode *mode,
3244             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
3245             /* [out] */ BMDDeckControlStatusFlags *flags);
3246 
3247         HRESULT ( STDMETHODCALLTYPE *SetStandby )(
3248             IDeckLinkDeckControl * This,
3249             /* [in] */ BOOL standbyOn);
3250 
3251         HRESULT ( STDMETHODCALLTYPE *SendCommand )(
3252             IDeckLinkDeckControl * This,
3253             /* [in] */ unsigned char *inBuffer,
3254             /* [in] */ unsigned int inBufferSize,
3255             /* [out] */ unsigned char *outBuffer,
3256             /* [out] */ unsigned int *outDataSize,
3257             /* [in] */ unsigned int outBufferSize,
3258             /* [out] */ BMDDeckControlError *error);
3259 
3260         HRESULT ( STDMETHODCALLTYPE *Play )(
3261             IDeckLinkDeckControl * This,
3262             /* [out] */ BMDDeckControlError *error);
3263 
3264         HRESULT ( STDMETHODCALLTYPE *Stop )(
3265             IDeckLinkDeckControl * This,
3266             /* [out] */ BMDDeckControlError *error);
3267 
3268         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
3269             IDeckLinkDeckControl * This,
3270             /* [out] */ BMDDeckControlError *error);
3271 
3272         HRESULT ( STDMETHODCALLTYPE *Eject )(
3273             IDeckLinkDeckControl * This,
3274             /* [out] */ BMDDeckControlError *error);
3275 
3276         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
3277             IDeckLinkDeckControl * This,
3278             /* [in] */ BMDTimecodeBCD timecode,
3279             /* [out] */ BMDDeckControlError *error);
3280 
3281         HRESULT ( STDMETHODCALLTYPE *FastForward )(
3282             IDeckLinkDeckControl * This,
3283             /* [in] */ BOOL viewTape,
3284             /* [out] */ BMDDeckControlError *error);
3285 
3286         HRESULT ( STDMETHODCALLTYPE *Rewind )(
3287             IDeckLinkDeckControl * This,
3288             /* [in] */ BOOL viewTape,
3289             /* [out] */ BMDDeckControlError *error);
3290 
3291         HRESULT ( STDMETHODCALLTYPE *StepForward )(
3292             IDeckLinkDeckControl * This,
3293             /* [out] */ BMDDeckControlError *error);
3294 
3295         HRESULT ( STDMETHODCALLTYPE *StepBack )(
3296             IDeckLinkDeckControl * This,
3297             /* [out] */ BMDDeckControlError *error);
3298 
3299         HRESULT ( STDMETHODCALLTYPE *Jog )(
3300             IDeckLinkDeckControl * This,
3301             /* [in] */ double rate,
3302             /* [out] */ BMDDeckControlError *error);
3303 
3304         HRESULT ( STDMETHODCALLTYPE *Shuttle )(
3305             IDeckLinkDeckControl * This,
3306             /* [in] */ double rate,
3307             /* [out] */ BMDDeckControlError *error);
3308 
3309         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
3310             IDeckLinkDeckControl * This,
3311             /* [out] */ BSTR *currentTimeCode,
3312             /* [out] */ BMDDeckControlError *error);
3313 
3314         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
3315             IDeckLinkDeckControl * This,
3316             /* [out] */ IDeckLinkTimecode **currentTimecode,
3317             /* [out] */ BMDDeckControlError *error);
3318 
3319         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
3320             IDeckLinkDeckControl * This,
3321             /* [out] */ BMDTimecodeBCD *currentTimecode,
3322             /* [out] */ BMDDeckControlError *error);
3323 
3324         HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
3325             IDeckLinkDeckControl * This,
3326             /* [in] */ unsigned int prerollSeconds);
3327 
3328         HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
3329             IDeckLinkDeckControl * This,
3330             /* [out] */ unsigned int *prerollSeconds);
3331 
3332         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
3333             IDeckLinkDeckControl * This,
3334             /* [in] */ int exportOffsetFields);
3335 
3336         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
3337             IDeckLinkDeckControl * This,
3338             /* [out] */ int *exportOffsetFields);
3339 
3340         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
3341             IDeckLinkDeckControl * This,
3342             /* [out] */ int *deckManualExportOffsetFields);
3343 
3344         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
3345             IDeckLinkDeckControl * This,
3346             /* [in] */ int captureOffsetFields);
3347 
3348         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
3349             IDeckLinkDeckControl * This,
3350             /* [out] */ int *captureOffsetFields);
3351 
3352         HRESULT ( STDMETHODCALLTYPE *StartExport )(
3353             IDeckLinkDeckControl * This,
3354             /* [in] */ BMDTimecodeBCD inTimecode,
3355             /* [in] */ BMDTimecodeBCD outTimecode,
3356             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
3357             /* [out] */ BMDDeckControlError *error);
3358 
3359         HRESULT ( STDMETHODCALLTYPE *StartCapture )(
3360             IDeckLinkDeckControl * This,
3361             /* [in] */ BOOL useVITC,
3362             /* [in] */ BMDTimecodeBCD inTimecode,
3363             /* [in] */ BMDTimecodeBCD outTimecode,
3364             /* [out] */ BMDDeckControlError *error);
3365 
3366         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
3367             IDeckLinkDeckControl * This,
3368             /* [out] */ unsigned short *deviceId,
3369             /* [out] */ BMDDeckControlError *error);
3370 
3371         HRESULT ( STDMETHODCALLTYPE *Abort )(
3372             IDeckLinkDeckControl * This);
3373 
3374         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
3375             IDeckLinkDeckControl * This,
3376             /* [out] */ BMDDeckControlError *error);
3377 
3378         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
3379             IDeckLinkDeckControl * This,
3380             /* [out] */ BMDDeckControlError *error);
3381 
3382         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
3383             IDeckLinkDeckControl * This,
3384             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
3385 
3386         END_INTERFACE
3387     } IDeckLinkDeckControlVtbl;
3388 
3389     interface IDeckLinkDeckControl
3390     {
3391         CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;
3392     };
3393 
3394 
3395 
3396 #ifdef COBJMACROS
3397 
3398 
3399 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject)	\
3400     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3401 
3402 #define IDeckLinkDeckControl_AddRef(This)	\
3403     ( (This)->lpVtbl -> AddRef(This) )
3404 
3405 #define IDeckLinkDeckControl_Release(This)	\
3406     ( (This)->lpVtbl -> Release(This) )
3407 
3408 
3409 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)	\
3410     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
3411 
3412 #define IDeckLinkDeckControl_Close(This,standbyOn)	\
3413     ( (This)->lpVtbl -> Close(This,standbyOn) )
3414 
3415 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags)	\
3416     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
3417 
3418 #define IDeckLinkDeckControl_SetStandby(This,standbyOn)	\
3419     ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
3420 
3421 #define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)	\
3422     ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) )
3423 
3424 #define IDeckLinkDeckControl_Play(This,error)	\
3425     ( (This)->lpVtbl -> Play(This,error) )
3426 
3427 #define IDeckLinkDeckControl_Stop(This,error)	\
3428     ( (This)->lpVtbl -> Stop(This,error) )
3429 
3430 #define IDeckLinkDeckControl_TogglePlayStop(This,error)	\
3431     ( (This)->lpVtbl -> TogglePlayStop(This,error) )
3432 
3433 #define IDeckLinkDeckControl_Eject(This,error)	\
3434     ( (This)->lpVtbl -> Eject(This,error) )
3435 
3436 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error)	\
3437     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
3438 
3439 #define IDeckLinkDeckControl_FastForward(This,viewTape,error)	\
3440     ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
3441 
3442 #define IDeckLinkDeckControl_Rewind(This,viewTape,error)	\
3443     ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
3444 
3445 #define IDeckLinkDeckControl_StepForward(This,error)	\
3446     ( (This)->lpVtbl -> StepForward(This,error) )
3447 
3448 #define IDeckLinkDeckControl_StepBack(This,error)	\
3449     ( (This)->lpVtbl -> StepBack(This,error) )
3450 
3451 #define IDeckLinkDeckControl_Jog(This,rate,error)	\
3452     ( (This)->lpVtbl -> Jog(This,rate,error) )
3453 
3454 #define IDeckLinkDeckControl_Shuttle(This,rate,error)	\
3455     ( (This)->lpVtbl -> Shuttle(This,rate,error) )
3456 
3457 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error)	\
3458     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
3459 
3460 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error)	\
3461     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
3462 
3463 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error)	\
3464     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
3465 
3466 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds)	\
3467     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
3468 
3469 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds)	\
3470     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
3471 
3472 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields)	\
3473     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
3474 
3475 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields)	\
3476     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
3477 
3478 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields)	\
3479     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
3480 
3481 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields)	\
3482     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
3483 
3484 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields)	\
3485     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
3486 
3487 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error)	\
3488     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
3489 
3490 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error)	\
3491     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
3492 
3493 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error)	\
3494     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
3495 
3496 #define IDeckLinkDeckControl_Abort(This)	\
3497     ( (This)->lpVtbl -> Abort(This) )
3498 
3499 #define IDeckLinkDeckControl_CrashRecordStart(This,error)	\
3500     ( (This)->lpVtbl -> CrashRecordStart(This,error) )
3501 
3502 #define IDeckLinkDeckControl_CrashRecordStop(This,error)	\
3503     ( (This)->lpVtbl -> CrashRecordStop(This,error) )
3504 
3505 #define IDeckLinkDeckControl_SetCallback(This,callback)	\
3506     ( (This)->lpVtbl -> SetCallback(This,callback) )
3507 
3508 #endif /* COBJMACROS */
3509 
3510 
3511 #endif 	/* C style interface */
3512 
3513 
3514 
3515 
3516 #endif 	/* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */
3517 
3518 
3519 #ifndef __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
3520 #define __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
3521 
3522 /* interface IBMDStreamingDeviceNotificationCallback */
3523 /* [helpstring][uuid][object] */
3524 
3525 
3526 EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;
3527 
3528 #if defined(__cplusplus) && !defined(CINTERFACE)
3529 
3530     MIDL_INTERFACE("F9531D64-3305-4B29-A387-7F74BB0D0E84")
3531     IBMDStreamingDeviceNotificationCallback : public IUnknown
3532     {
3533     public:
3534         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived(
3535             /* [in] */ IDeckLink *device) = 0;
3536 
3537         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved(
3538             /* [in] */ IDeckLink *device) = 0;
3539 
3540         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged(
3541             /* [in] */ IDeckLink *device,
3542             /* [in] */ BMDStreamingDeviceMode mode) = 0;
3543 
3544     };
3545 
3546 
3547 #else 	/* C style interface */
3548 
3549     typedef struct IBMDStreamingDeviceNotificationCallbackVtbl
3550     {
3551         BEGIN_INTERFACE
3552 
3553         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3554             IBMDStreamingDeviceNotificationCallback * This,
3555             /* [in] */ REFIID riid,
3556             /* [annotation][iid_is][out] */
3557             _COM_Outptr_  void **ppvObject);
3558 
3559         ULONG ( STDMETHODCALLTYPE *AddRef )(
3560             IBMDStreamingDeviceNotificationCallback * This);
3561 
3562         ULONG ( STDMETHODCALLTYPE *Release )(
3563             IBMDStreamingDeviceNotificationCallback * This);
3564 
3565         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceArrived )(
3566             IBMDStreamingDeviceNotificationCallback * This,
3567             /* [in] */ IDeckLink *device);
3568 
3569         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceRemoved )(
3570             IBMDStreamingDeviceNotificationCallback * This,
3571             /* [in] */ IDeckLink *device);
3572 
3573         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceModeChanged )(
3574             IBMDStreamingDeviceNotificationCallback * This,
3575             /* [in] */ IDeckLink *device,
3576             /* [in] */ BMDStreamingDeviceMode mode);
3577 
3578         END_INTERFACE
3579     } IBMDStreamingDeviceNotificationCallbackVtbl;
3580 
3581     interface IBMDStreamingDeviceNotificationCallback
3582     {
3583         CONST_VTBL struct IBMDStreamingDeviceNotificationCallbackVtbl *lpVtbl;
3584     };
3585 
3586 
3587 
3588 #ifdef COBJMACROS
3589 
3590 
3591 #define IBMDStreamingDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)	\
3592     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3593 
3594 #define IBMDStreamingDeviceNotificationCallback_AddRef(This)	\
3595     ( (This)->lpVtbl -> AddRef(This) )
3596 
3597 #define IBMDStreamingDeviceNotificationCallback_Release(This)	\
3598     ( (This)->lpVtbl -> Release(This) )
3599 
3600 
3601 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(This,device)	\
3602     ( (This)->lpVtbl -> StreamingDeviceArrived(This,device) )
3603 
3604 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(This,device)	\
3605     ( (This)->lpVtbl -> StreamingDeviceRemoved(This,device) )
3606 
3607 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(This,device,mode)	\
3608     ( (This)->lpVtbl -> StreamingDeviceModeChanged(This,device,mode) )
3609 
3610 #endif /* COBJMACROS */
3611 
3612 
3613 #endif 	/* C style interface */
3614 
3615 
3616 
3617 
3618 #endif 	/* __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ */
3619 
3620 
3621 #ifndef __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
3622 #define __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
3623 
3624 /* interface IBMDStreamingH264InputCallback */
3625 /* [helpstring][uuid][object] */
3626 
3627 
3628 EXTERN_C const IID IID_IBMDStreamingH264InputCallback;
3629 
3630 #if defined(__cplusplus) && !defined(CINTERFACE)
3631 
3632     MIDL_INTERFACE("823C475F-55AE-46F9-890C-537CC5CEDCCA")
3633     IBMDStreamingH264InputCallback : public IUnknown
3634     {
3635     public:
3636         virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived(
3637             /* [in] */ IBMDStreamingH264NALPacket *nalPacket) = 0;
3638 
3639         virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived(
3640             /* [in] */ IBMDStreamingAudioPacket *audioPacket) = 0;
3641 
3642         virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived(
3643             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket) = 0;
3644 
3645         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorScanningChanged( void) = 0;
3646 
3647         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorChanged( void) = 0;
3648 
3649         virtual HRESULT STDMETHODCALLTYPE H264VideoInputModeChanged( void) = 0;
3650 
3651     };
3652 
3653 
3654 #else 	/* C style interface */
3655 
3656     typedef struct IBMDStreamingH264InputCallbackVtbl
3657     {
3658         BEGIN_INTERFACE
3659 
3660         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3661             IBMDStreamingH264InputCallback * This,
3662             /* [in] */ REFIID riid,
3663             /* [annotation][iid_is][out] */
3664             _COM_Outptr_  void **ppvObject);
3665 
3666         ULONG ( STDMETHODCALLTYPE *AddRef )(
3667             IBMDStreamingH264InputCallback * This);
3668 
3669         ULONG ( STDMETHODCALLTYPE *Release )(
3670             IBMDStreamingH264InputCallback * This);
3671 
3672         HRESULT ( STDMETHODCALLTYPE *H264NALPacketArrived )(
3673             IBMDStreamingH264InputCallback * This,
3674             /* [in] */ IBMDStreamingH264NALPacket *nalPacket);
3675 
3676         HRESULT ( STDMETHODCALLTYPE *H264AudioPacketArrived )(
3677             IBMDStreamingH264InputCallback * This,
3678             /* [in] */ IBMDStreamingAudioPacket *audioPacket);
3679 
3680         HRESULT ( STDMETHODCALLTYPE *MPEG2TSPacketArrived )(
3681             IBMDStreamingH264InputCallback * This,
3682             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket);
3683 
3684         HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged )(
3685             IBMDStreamingH264InputCallback * This);
3686 
3687         HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorChanged )(
3688             IBMDStreamingH264InputCallback * This);
3689 
3690         HRESULT ( STDMETHODCALLTYPE *H264VideoInputModeChanged )(
3691             IBMDStreamingH264InputCallback * This);
3692 
3693         END_INTERFACE
3694     } IBMDStreamingH264InputCallbackVtbl;
3695 
3696     interface IBMDStreamingH264InputCallback
3697     {
3698         CONST_VTBL struct IBMDStreamingH264InputCallbackVtbl *lpVtbl;
3699     };
3700 
3701 
3702 
3703 #ifdef COBJMACROS
3704 
3705 
3706 #define IBMDStreamingH264InputCallback_QueryInterface(This,riid,ppvObject)	\
3707     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3708 
3709 #define IBMDStreamingH264InputCallback_AddRef(This)	\
3710     ( (This)->lpVtbl -> AddRef(This) )
3711 
3712 #define IBMDStreamingH264InputCallback_Release(This)	\
3713     ( (This)->lpVtbl -> Release(This) )
3714 
3715 
3716 #define IBMDStreamingH264InputCallback_H264NALPacketArrived(This,nalPacket)	\
3717     ( (This)->lpVtbl -> H264NALPacketArrived(This,nalPacket) )
3718 
3719 #define IBMDStreamingH264InputCallback_H264AudioPacketArrived(This,audioPacket)	\
3720     ( (This)->lpVtbl -> H264AudioPacketArrived(This,audioPacket) )
3721 
3722 #define IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(This,tsPacket)	\
3723     ( (This)->lpVtbl -> MPEG2TSPacketArrived(This,tsPacket) )
3724 
3725 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(This)	\
3726     ( (This)->lpVtbl -> H264VideoInputConnectorScanningChanged(This) )
3727 
3728 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(This)	\
3729     ( (This)->lpVtbl -> H264VideoInputConnectorChanged(This) )
3730 
3731 #define IBMDStreamingH264InputCallback_H264VideoInputModeChanged(This)	\
3732     ( (This)->lpVtbl -> H264VideoInputModeChanged(This) )
3733 
3734 #endif /* COBJMACROS */
3735 
3736 
3737 #endif 	/* C style interface */
3738 
3739 
3740 
3741 
3742 #endif 	/* __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ */
3743 
3744 
3745 #ifndef __IBMDStreamingDiscovery_INTERFACE_DEFINED__
3746 #define __IBMDStreamingDiscovery_INTERFACE_DEFINED__
3747 
3748 /* interface IBMDStreamingDiscovery */
3749 /* [helpstring][uuid][object] */
3750 
3751 
3752 EXTERN_C const IID IID_IBMDStreamingDiscovery;
3753 
3754 #if defined(__cplusplus) && !defined(CINTERFACE)
3755 
3756     MIDL_INTERFACE("2C837444-F989-4D87-901A-47C8A36D096D")
3757     IBMDStreamingDiscovery : public IUnknown
3758     {
3759     public:
3760         virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications(
3761             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback) = 0;
3762 
3763         virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;
3764 
3765     };
3766 
3767 
3768 #else 	/* C style interface */
3769 
3770     typedef struct IBMDStreamingDiscoveryVtbl
3771     {
3772         BEGIN_INTERFACE
3773 
3774         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3775             IBMDStreamingDiscovery * This,
3776             /* [in] */ REFIID riid,
3777             /* [annotation][iid_is][out] */
3778             _COM_Outptr_  void **ppvObject);
3779 
3780         ULONG ( STDMETHODCALLTYPE *AddRef )(
3781             IBMDStreamingDiscovery * This);
3782 
3783         ULONG ( STDMETHODCALLTYPE *Release )(
3784             IBMDStreamingDiscovery * This);
3785 
3786         HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )(
3787             IBMDStreamingDiscovery * This,
3788             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback);
3789 
3790         HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )(
3791             IBMDStreamingDiscovery * This);
3792 
3793         END_INTERFACE
3794     } IBMDStreamingDiscoveryVtbl;
3795 
3796     interface IBMDStreamingDiscovery
3797     {
3798         CONST_VTBL struct IBMDStreamingDiscoveryVtbl *lpVtbl;
3799     };
3800 
3801 
3802 
3803 #ifdef COBJMACROS
3804 
3805 
3806 #define IBMDStreamingDiscovery_QueryInterface(This,riid,ppvObject)	\
3807     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3808 
3809 #define IBMDStreamingDiscovery_AddRef(This)	\
3810     ( (This)->lpVtbl -> AddRef(This) )
3811 
3812 #define IBMDStreamingDiscovery_Release(This)	\
3813     ( (This)->lpVtbl -> Release(This) )
3814 
3815 
3816 #define IBMDStreamingDiscovery_InstallDeviceNotifications(This,theCallback)	\
3817     ( (This)->lpVtbl -> InstallDeviceNotifications(This,theCallback) )
3818 
3819 #define IBMDStreamingDiscovery_UninstallDeviceNotifications(This)	\
3820     ( (This)->lpVtbl -> UninstallDeviceNotifications(This) )
3821 
3822 #endif /* COBJMACROS */
3823 
3824 
3825 #endif 	/* C style interface */
3826 
3827 
3828 
3829 
3830 #endif 	/* __IBMDStreamingDiscovery_INTERFACE_DEFINED__ */
3831 
3832 
3833 #ifndef __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
3834 #define __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
3835 
3836 /* interface IBMDStreamingVideoEncodingMode */
3837 /* [helpstring][uuid][object] */
3838 
3839 
3840 EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;
3841 
3842 #if defined(__cplusplus) && !defined(CINTERFACE)
3843 
3844     MIDL_INTERFACE("1AB8035B-CD13-458D-B6DF-5E8F7C2141D9")
3845     IBMDStreamingVideoEncodingMode : public IUnknown
3846     {
3847     public:
3848         virtual HRESULT STDMETHODCALLTYPE GetName(
3849             /* [out] */ BSTR *name) = 0;
3850 
3851         virtual unsigned int STDMETHODCALLTYPE GetPresetID( void) = 0;
3852 
3853         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionX( void) = 0;
3854 
3855         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionY( void) = 0;
3856 
3857         virtual unsigned int STDMETHODCALLTYPE GetSourceWidth( void) = 0;
3858 
3859         virtual unsigned int STDMETHODCALLTYPE GetSourceHeight( void) = 0;
3860 
3861         virtual unsigned int STDMETHODCALLTYPE GetDestWidth( void) = 0;
3862 
3863         virtual unsigned int STDMETHODCALLTYPE GetDestHeight( void) = 0;
3864 
3865         virtual HRESULT STDMETHODCALLTYPE GetFlag(
3866             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3867             /* [out] */ BOOL *value) = 0;
3868 
3869         virtual HRESULT STDMETHODCALLTYPE GetInt(
3870             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3871             /* [out] */ LONGLONG *value) = 0;
3872 
3873         virtual HRESULT STDMETHODCALLTYPE GetFloat(
3874             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3875             /* [out] */ double *value) = 0;
3876 
3877         virtual HRESULT STDMETHODCALLTYPE GetString(
3878             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3879             /* [out] */ BSTR *value) = 0;
3880 
3881         virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode(
3882             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode) = 0;
3883 
3884     };
3885 
3886 
3887 #else 	/* C style interface */
3888 
3889     typedef struct IBMDStreamingVideoEncodingModeVtbl
3890     {
3891         BEGIN_INTERFACE
3892 
3893         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3894             IBMDStreamingVideoEncodingMode * This,
3895             /* [in] */ REFIID riid,
3896             /* [annotation][iid_is][out] */
3897             _COM_Outptr_  void **ppvObject);
3898 
3899         ULONG ( STDMETHODCALLTYPE *AddRef )(
3900             IBMDStreamingVideoEncodingMode * This);
3901 
3902         ULONG ( STDMETHODCALLTYPE *Release )(
3903             IBMDStreamingVideoEncodingMode * This);
3904 
3905         HRESULT ( STDMETHODCALLTYPE *GetName )(
3906             IBMDStreamingVideoEncodingMode * This,
3907             /* [out] */ BSTR *name);
3908 
3909         unsigned int ( STDMETHODCALLTYPE *GetPresetID )(
3910             IBMDStreamingVideoEncodingMode * This);
3911 
3912         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )(
3913             IBMDStreamingVideoEncodingMode * This);
3914 
3915         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )(
3916             IBMDStreamingVideoEncodingMode * This);
3917 
3918         unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )(
3919             IBMDStreamingVideoEncodingMode * This);
3920 
3921         unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )(
3922             IBMDStreamingVideoEncodingMode * This);
3923 
3924         unsigned int ( STDMETHODCALLTYPE *GetDestWidth )(
3925             IBMDStreamingVideoEncodingMode * This);
3926 
3927         unsigned int ( STDMETHODCALLTYPE *GetDestHeight )(
3928             IBMDStreamingVideoEncodingMode * This);
3929 
3930         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
3931             IBMDStreamingVideoEncodingMode * This,
3932             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3933             /* [out] */ BOOL *value);
3934 
3935         HRESULT ( STDMETHODCALLTYPE *GetInt )(
3936             IBMDStreamingVideoEncodingMode * This,
3937             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3938             /* [out] */ LONGLONG *value);
3939 
3940         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
3941             IBMDStreamingVideoEncodingMode * This,
3942             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3943             /* [out] */ double *value);
3944 
3945         HRESULT ( STDMETHODCALLTYPE *GetString )(
3946             IBMDStreamingVideoEncodingMode * This,
3947             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3948             /* [out] */ BSTR *value);
3949 
3950         HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )(
3951             IBMDStreamingVideoEncodingMode * This,
3952             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
3953 
3954         END_INTERFACE
3955     } IBMDStreamingVideoEncodingModeVtbl;
3956 
3957     interface IBMDStreamingVideoEncodingMode
3958     {
3959         CONST_VTBL struct IBMDStreamingVideoEncodingModeVtbl *lpVtbl;
3960     };
3961 
3962 
3963 
3964 #ifdef COBJMACROS
3965 
3966 
3967 #define IBMDStreamingVideoEncodingMode_QueryInterface(This,riid,ppvObject)	\
3968     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3969 
3970 #define IBMDStreamingVideoEncodingMode_AddRef(This)	\
3971     ( (This)->lpVtbl -> AddRef(This) )
3972 
3973 #define IBMDStreamingVideoEncodingMode_Release(This)	\
3974     ( (This)->lpVtbl -> Release(This) )
3975 
3976 
3977 #define IBMDStreamingVideoEncodingMode_GetName(This,name)	\
3978     ( (This)->lpVtbl -> GetName(This,name) )
3979 
3980 #define IBMDStreamingVideoEncodingMode_GetPresetID(This)	\
3981     ( (This)->lpVtbl -> GetPresetID(This) )
3982 
3983 #define IBMDStreamingVideoEncodingMode_GetSourcePositionX(This)	\
3984     ( (This)->lpVtbl -> GetSourcePositionX(This) )
3985 
3986 #define IBMDStreamingVideoEncodingMode_GetSourcePositionY(This)	\
3987     ( (This)->lpVtbl -> GetSourcePositionY(This) )
3988 
3989 #define IBMDStreamingVideoEncodingMode_GetSourceWidth(This)	\
3990     ( (This)->lpVtbl -> GetSourceWidth(This) )
3991 
3992 #define IBMDStreamingVideoEncodingMode_GetSourceHeight(This)	\
3993     ( (This)->lpVtbl -> GetSourceHeight(This) )
3994 
3995 #define IBMDStreamingVideoEncodingMode_GetDestWidth(This)	\
3996     ( (This)->lpVtbl -> GetDestWidth(This) )
3997 
3998 #define IBMDStreamingVideoEncodingMode_GetDestHeight(This)	\
3999     ( (This)->lpVtbl -> GetDestHeight(This) )
4000 
4001 #define IBMDStreamingVideoEncodingMode_GetFlag(This,cfgID,value)	\
4002     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
4003 
4004 #define IBMDStreamingVideoEncodingMode_GetInt(This,cfgID,value)	\
4005     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
4006 
4007 #define IBMDStreamingVideoEncodingMode_GetFloat(This,cfgID,value)	\
4008     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
4009 
4010 #define IBMDStreamingVideoEncodingMode_GetString(This,cfgID,value)	\
4011     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
4012 
4013 #define IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)	\
4014     ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) )
4015 
4016 #endif /* COBJMACROS */
4017 
4018 
4019 #endif 	/* C style interface */
4020 
4021 
4022 
4023 
4024 #endif 	/* __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ */
4025 
4026 
4027 #ifndef __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
4028 #define __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
4029 
4030 /* interface IBMDStreamingMutableVideoEncodingMode */
4031 /* [helpstring][uuid][object] */
4032 
4033 
4034 EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
4035 
4036 #if defined(__cplusplus) && !defined(CINTERFACE)
4037 
4038     MIDL_INTERFACE("19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D")
4039     IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode
4040     {
4041     public:
4042         virtual HRESULT STDMETHODCALLTYPE SetSourceRect(
4043             /* [in] */ unsigned int posX,
4044             /* [in] */ unsigned int posY,
4045             /* [in] */ unsigned int width,
4046             /* [in] */ unsigned int height) = 0;
4047 
4048         virtual HRESULT STDMETHODCALLTYPE SetDestSize(
4049             /* [in] */ unsigned int width,
4050             /* [in] */ unsigned int height) = 0;
4051 
4052         virtual HRESULT STDMETHODCALLTYPE SetFlag(
4053             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4054             /* [in] */ BOOL value) = 0;
4055 
4056         virtual HRESULT STDMETHODCALLTYPE SetInt(
4057             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4058             /* [in] */ LONGLONG value) = 0;
4059 
4060         virtual HRESULT STDMETHODCALLTYPE SetFloat(
4061             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4062             /* [in] */ double value) = 0;
4063 
4064         virtual HRESULT STDMETHODCALLTYPE SetString(
4065             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4066             /* [in] */ BSTR value) = 0;
4067 
4068     };
4069 
4070 
4071 #else 	/* C style interface */
4072 
4073     typedef struct IBMDStreamingMutableVideoEncodingModeVtbl
4074     {
4075         BEGIN_INTERFACE
4076 
4077         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4078             IBMDStreamingMutableVideoEncodingMode * This,
4079             /* [in] */ REFIID riid,
4080             /* [annotation][iid_is][out] */
4081             _COM_Outptr_  void **ppvObject);
4082 
4083         ULONG ( STDMETHODCALLTYPE *AddRef )(
4084             IBMDStreamingMutableVideoEncodingMode * This);
4085 
4086         ULONG ( STDMETHODCALLTYPE *Release )(
4087             IBMDStreamingMutableVideoEncodingMode * This);
4088 
4089         HRESULT ( STDMETHODCALLTYPE *GetName )(
4090             IBMDStreamingMutableVideoEncodingMode * This,
4091             /* [out] */ BSTR *name);
4092 
4093         unsigned int ( STDMETHODCALLTYPE *GetPresetID )(
4094             IBMDStreamingMutableVideoEncodingMode * This);
4095 
4096         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )(
4097             IBMDStreamingMutableVideoEncodingMode * This);
4098 
4099         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )(
4100             IBMDStreamingMutableVideoEncodingMode * This);
4101 
4102         unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )(
4103             IBMDStreamingMutableVideoEncodingMode * This);
4104 
4105         unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )(
4106             IBMDStreamingMutableVideoEncodingMode * This);
4107 
4108         unsigned int ( STDMETHODCALLTYPE *GetDestWidth )(
4109             IBMDStreamingMutableVideoEncodingMode * This);
4110 
4111         unsigned int ( STDMETHODCALLTYPE *GetDestHeight )(
4112             IBMDStreamingMutableVideoEncodingMode * This);
4113 
4114         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
4115             IBMDStreamingMutableVideoEncodingMode * This,
4116             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4117             /* [out] */ BOOL *value);
4118 
4119         HRESULT ( STDMETHODCALLTYPE *GetInt )(
4120             IBMDStreamingMutableVideoEncodingMode * This,
4121             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4122             /* [out] */ LONGLONG *value);
4123 
4124         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
4125             IBMDStreamingMutableVideoEncodingMode * This,
4126             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4127             /* [out] */ double *value);
4128 
4129         HRESULT ( STDMETHODCALLTYPE *GetString )(
4130             IBMDStreamingMutableVideoEncodingMode * This,
4131             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4132             /* [out] */ BSTR *value);
4133 
4134         HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )(
4135             IBMDStreamingMutableVideoEncodingMode * This,
4136             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
4137 
4138         HRESULT ( STDMETHODCALLTYPE *SetSourceRect )(
4139             IBMDStreamingMutableVideoEncodingMode * This,
4140             /* [in] */ unsigned int posX,
4141             /* [in] */ unsigned int posY,
4142             /* [in] */ unsigned int width,
4143             /* [in] */ unsigned int height);
4144 
4145         HRESULT ( STDMETHODCALLTYPE *SetDestSize )(
4146             IBMDStreamingMutableVideoEncodingMode * This,
4147             /* [in] */ unsigned int width,
4148             /* [in] */ unsigned int height);
4149 
4150         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
4151             IBMDStreamingMutableVideoEncodingMode * This,
4152             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4153             /* [in] */ BOOL value);
4154 
4155         HRESULT ( STDMETHODCALLTYPE *SetInt )(
4156             IBMDStreamingMutableVideoEncodingMode * This,
4157             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4158             /* [in] */ LONGLONG value);
4159 
4160         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
4161             IBMDStreamingMutableVideoEncodingMode * This,
4162             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4163             /* [in] */ double value);
4164 
4165         HRESULT ( STDMETHODCALLTYPE *SetString )(
4166             IBMDStreamingMutableVideoEncodingMode * This,
4167             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
4168             /* [in] */ BSTR value);
4169 
4170         END_INTERFACE
4171     } IBMDStreamingMutableVideoEncodingModeVtbl;
4172 
4173     interface IBMDStreamingMutableVideoEncodingMode
4174     {
4175         CONST_VTBL struct IBMDStreamingMutableVideoEncodingModeVtbl *lpVtbl;
4176     };
4177 
4178 
4179 
4180 #ifdef COBJMACROS
4181 
4182 
4183 #define IBMDStreamingMutableVideoEncodingMode_QueryInterface(This,riid,ppvObject)	\
4184     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4185 
4186 #define IBMDStreamingMutableVideoEncodingMode_AddRef(This)	\
4187     ( (This)->lpVtbl -> AddRef(This) )
4188 
4189 #define IBMDStreamingMutableVideoEncodingMode_Release(This)	\
4190     ( (This)->lpVtbl -> Release(This) )
4191 
4192 
4193 #define IBMDStreamingMutableVideoEncodingMode_GetName(This,name)	\
4194     ( (This)->lpVtbl -> GetName(This,name) )
4195 
4196 #define IBMDStreamingMutableVideoEncodingMode_GetPresetID(This)	\
4197     ( (This)->lpVtbl -> GetPresetID(This) )
4198 
4199 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(This)	\
4200     ( (This)->lpVtbl -> GetSourcePositionX(This) )
4201 
4202 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(This)	\
4203     ( (This)->lpVtbl -> GetSourcePositionY(This) )
4204 
4205 #define IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(This)	\
4206     ( (This)->lpVtbl -> GetSourceWidth(This) )
4207 
4208 #define IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(This)	\
4209     ( (This)->lpVtbl -> GetSourceHeight(This) )
4210 
4211 #define IBMDStreamingMutableVideoEncodingMode_GetDestWidth(This)	\
4212     ( (This)->lpVtbl -> GetDestWidth(This) )
4213 
4214 #define IBMDStreamingMutableVideoEncodingMode_GetDestHeight(This)	\
4215     ( (This)->lpVtbl -> GetDestHeight(This) )
4216 
4217 #define IBMDStreamingMutableVideoEncodingMode_GetFlag(This,cfgID,value)	\
4218     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
4219 
4220 #define IBMDStreamingMutableVideoEncodingMode_GetInt(This,cfgID,value)	\
4221     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
4222 
4223 #define IBMDStreamingMutableVideoEncodingMode_GetFloat(This,cfgID,value)	\
4224     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
4225 
4226 #define IBMDStreamingMutableVideoEncodingMode_GetString(This,cfgID,value)	\
4227     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
4228 
4229 #define IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)	\
4230     ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) )
4231 
4232 
4233 #define IBMDStreamingMutableVideoEncodingMode_SetSourceRect(This,posX,posY,width,height)	\
4234     ( (This)->lpVtbl -> SetSourceRect(This,posX,posY,width,height) )
4235 
4236 #define IBMDStreamingMutableVideoEncodingMode_SetDestSize(This,width,height)	\
4237     ( (This)->lpVtbl -> SetDestSize(This,width,height) )
4238 
4239 #define IBMDStreamingMutableVideoEncodingMode_SetFlag(This,cfgID,value)	\
4240     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
4241 
4242 #define IBMDStreamingMutableVideoEncodingMode_SetInt(This,cfgID,value)	\
4243     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
4244 
4245 #define IBMDStreamingMutableVideoEncodingMode_SetFloat(This,cfgID,value)	\
4246     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
4247 
4248 #define IBMDStreamingMutableVideoEncodingMode_SetString(This,cfgID,value)	\
4249     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
4250 
4251 #endif /* COBJMACROS */
4252 
4253 
4254 #endif 	/* C style interface */
4255 
4256 
4257 
4258 
4259 #endif 	/* __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ */
4260 
4261 
4262 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
4263 #define __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
4264 
4265 /* interface IBMDStreamingVideoEncodingModePresetIterator */
4266 /* [helpstring][uuid][object] */
4267 
4268 
4269 EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;
4270 
4271 #if defined(__cplusplus) && !defined(CINTERFACE)
4272 
4273     MIDL_INTERFACE("7AC731A3-C950-4AD0-804A-8377AA51C6C4")
4274     IBMDStreamingVideoEncodingModePresetIterator : public IUnknown
4275     {
4276     public:
4277         virtual HRESULT STDMETHODCALLTYPE Next(
4278             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode) = 0;
4279 
4280     };
4281 
4282 
4283 #else 	/* C style interface */
4284 
4285     typedef struct IBMDStreamingVideoEncodingModePresetIteratorVtbl
4286     {
4287         BEGIN_INTERFACE
4288 
4289         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4290             IBMDStreamingVideoEncodingModePresetIterator * This,
4291             /* [in] */ REFIID riid,
4292             /* [annotation][iid_is][out] */
4293             _COM_Outptr_  void **ppvObject);
4294 
4295         ULONG ( STDMETHODCALLTYPE *AddRef )(
4296             IBMDStreamingVideoEncodingModePresetIterator * This);
4297 
4298         ULONG ( STDMETHODCALLTYPE *Release )(
4299             IBMDStreamingVideoEncodingModePresetIterator * This);
4300 
4301         HRESULT ( STDMETHODCALLTYPE *Next )(
4302             IBMDStreamingVideoEncodingModePresetIterator * This,
4303             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode);
4304 
4305         END_INTERFACE
4306     } IBMDStreamingVideoEncodingModePresetIteratorVtbl;
4307 
4308     interface IBMDStreamingVideoEncodingModePresetIterator
4309     {
4310         CONST_VTBL struct IBMDStreamingVideoEncodingModePresetIteratorVtbl *lpVtbl;
4311     };
4312 
4313 
4314 
4315 #ifdef COBJMACROS
4316 
4317 
4318 #define IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(This,riid,ppvObject)	\
4319     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4320 
4321 #define IBMDStreamingVideoEncodingModePresetIterator_AddRef(This)	\
4322     ( (This)->lpVtbl -> AddRef(This) )
4323 
4324 #define IBMDStreamingVideoEncodingModePresetIterator_Release(This)	\
4325     ( (This)->lpVtbl -> Release(This) )
4326 
4327 
4328 #define IBMDStreamingVideoEncodingModePresetIterator_Next(This,videoEncodingMode)	\
4329     ( (This)->lpVtbl -> Next(This,videoEncodingMode) )
4330 
4331 #endif /* COBJMACROS */
4332 
4333 
4334 #endif 	/* C style interface */
4335 
4336 
4337 
4338 
4339 #endif 	/* __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ */
4340 
4341 
4342 #ifndef __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
4343 #define __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
4344 
4345 /* interface IBMDStreamingDeviceInput */
4346 /* [helpstring][uuid][object] */
4347 
4348 
4349 EXTERN_C const IID IID_IBMDStreamingDeviceInput;
4350 
4351 #if defined(__cplusplus) && !defined(CINTERFACE)
4352 
4353     MIDL_INTERFACE("24B6B6EC-1727-44BB-9818-34FF086ACF98")
4354     IBMDStreamingDeviceInput : public IUnknown
4355     {
4356     public:
4357         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode(
4358             /* [in] */ BMDDisplayMode inputMode,
4359             /* [out] */ BOOL *result) = 0;
4360 
4361         virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator(
4362             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
4363 
4364         virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode(
4365             /* [in] */ BMDDisplayMode inputMode) = 0;
4366 
4367         virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode(
4368             /* [out] */ BMDDisplayMode *detectedMode) = 0;
4369 
4370         virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode(
4371             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode) = 0;
4372 
4373         virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator(
4374             /* [in] */ BMDDisplayMode inputMode,
4375             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator) = 0;
4376 
4377         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode(
4378             /* [in] */ BMDDisplayMode inputMode,
4379             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
4380             /* [out] */ BMDStreamingEncodingSupport *result,
4381             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode) = 0;
4382 
4383         virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode(
4384             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode) = 0;
4385 
4386         virtual HRESULT STDMETHODCALLTYPE StartCapture( void) = 0;
4387 
4388         virtual HRESULT STDMETHODCALLTYPE StopCapture( void) = 0;
4389 
4390         virtual HRESULT STDMETHODCALLTYPE SetCallback(
4391             /* [in] */ IUnknown *theCallback) = 0;
4392 
4393     };
4394 
4395 
4396 #else 	/* C style interface */
4397 
4398     typedef struct IBMDStreamingDeviceInputVtbl
4399     {
4400         BEGIN_INTERFACE
4401 
4402         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4403             IBMDStreamingDeviceInput * This,
4404             /* [in] */ REFIID riid,
4405             /* [annotation][iid_is][out] */
4406             _COM_Outptr_  void **ppvObject);
4407 
4408         ULONG ( STDMETHODCALLTYPE *AddRef )(
4409             IBMDStreamingDeviceInput * This);
4410 
4411         ULONG ( STDMETHODCALLTYPE *Release )(
4412             IBMDStreamingDeviceInput * This);
4413 
4414         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoInputMode )(
4415             IBMDStreamingDeviceInput * This,
4416             /* [in] */ BMDDisplayMode inputMode,
4417             /* [out] */ BOOL *result);
4418 
4419         HRESULT ( STDMETHODCALLTYPE *GetVideoInputModeIterator )(
4420             IBMDStreamingDeviceInput * This,
4421             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
4422 
4423         HRESULT ( STDMETHODCALLTYPE *SetVideoInputMode )(
4424             IBMDStreamingDeviceInput * This,
4425             /* [in] */ BMDDisplayMode inputMode);
4426 
4427         HRESULT ( STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode )(
4428             IBMDStreamingDeviceInput * This,
4429             /* [out] */ BMDDisplayMode *detectedMode);
4430 
4431         HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingMode )(
4432             IBMDStreamingDeviceInput * This,
4433             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode);
4434 
4435         HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator )(
4436             IBMDStreamingDeviceInput * This,
4437             /* [in] */ BMDDisplayMode inputMode,
4438             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator);
4439 
4440         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoEncodingMode )(
4441             IBMDStreamingDeviceInput * This,
4442             /* [in] */ BMDDisplayMode inputMode,
4443             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
4444             /* [out] */ BMDStreamingEncodingSupport *result,
4445             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode);
4446 
4447         HRESULT ( STDMETHODCALLTYPE *SetVideoEncodingMode )(
4448             IBMDStreamingDeviceInput * This,
4449             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode);
4450 
4451         HRESULT ( STDMETHODCALLTYPE *StartCapture )(
4452             IBMDStreamingDeviceInput * This);
4453 
4454         HRESULT ( STDMETHODCALLTYPE *StopCapture )(
4455             IBMDStreamingDeviceInput * This);
4456 
4457         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
4458             IBMDStreamingDeviceInput * This,
4459             /* [in] */ IUnknown *theCallback);
4460 
4461         END_INTERFACE
4462     } IBMDStreamingDeviceInputVtbl;
4463 
4464     interface IBMDStreamingDeviceInput
4465     {
4466         CONST_VTBL struct IBMDStreamingDeviceInputVtbl *lpVtbl;
4467     };
4468 
4469 
4470 
4471 #ifdef COBJMACROS
4472 
4473 
4474 #define IBMDStreamingDeviceInput_QueryInterface(This,riid,ppvObject)	\
4475     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4476 
4477 #define IBMDStreamingDeviceInput_AddRef(This)	\
4478     ( (This)->lpVtbl -> AddRef(This) )
4479 
4480 #define IBMDStreamingDeviceInput_Release(This)	\
4481     ( (This)->lpVtbl -> Release(This) )
4482 
4483 
4484 #define IBMDStreamingDeviceInput_DoesSupportVideoInputMode(This,inputMode,result)	\
4485     ( (This)->lpVtbl -> DoesSupportVideoInputMode(This,inputMode,result) )
4486 
4487 #define IBMDStreamingDeviceInput_GetVideoInputModeIterator(This,iterator)	\
4488     ( (This)->lpVtbl -> GetVideoInputModeIterator(This,iterator) )
4489 
4490 #define IBMDStreamingDeviceInput_SetVideoInputMode(This,inputMode)	\
4491     ( (This)->lpVtbl -> SetVideoInputMode(This,inputMode) )
4492 
4493 #define IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(This,detectedMode)	\
4494     ( (This)->lpVtbl -> GetCurrentDetectedVideoInputMode(This,detectedMode) )
4495 
4496 #define IBMDStreamingDeviceInput_GetVideoEncodingMode(This,encodingMode)	\
4497     ( (This)->lpVtbl -> GetVideoEncodingMode(This,encodingMode) )
4498 
4499 #define IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(This,inputMode,iterator)	\
4500     ( (This)->lpVtbl -> GetVideoEncodingModePresetIterator(This,inputMode,iterator) )
4501 
4502 #define IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode)	\
4503     ( (This)->lpVtbl -> DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) )
4504 
4505 #define IBMDStreamingDeviceInput_SetVideoEncodingMode(This,encodingMode)	\
4506     ( (This)->lpVtbl -> SetVideoEncodingMode(This,encodingMode) )
4507 
4508 #define IBMDStreamingDeviceInput_StartCapture(This)	\
4509     ( (This)->lpVtbl -> StartCapture(This) )
4510 
4511 #define IBMDStreamingDeviceInput_StopCapture(This)	\
4512     ( (This)->lpVtbl -> StopCapture(This) )
4513 
4514 #define IBMDStreamingDeviceInput_SetCallback(This,theCallback)	\
4515     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
4516 
4517 #endif /* COBJMACROS */
4518 
4519 
4520 #endif 	/* C style interface */
4521 
4522 
4523 
4524 
4525 #endif 	/* __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ */
4526 
4527 
4528 #ifndef __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
4529 #define __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
4530 
4531 /* interface IBMDStreamingH264NALPacket */
4532 /* [helpstring][uuid][object] */
4533 
4534 
4535 EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
4536 
4537 #if defined(__cplusplus) && !defined(CINTERFACE)
4538 
4539     MIDL_INTERFACE("E260E955-14BE-4395-9775-9F02CC0A9D89")
4540     IBMDStreamingH264NALPacket : public IUnknown
4541     {
4542     public:
4543         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
4544 
4545         virtual HRESULT STDMETHODCALLTYPE GetBytes(
4546             /* [out] */ void **buffer) = 0;
4547 
4548         virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix(
4549             /* [out] */ void **buffer) = 0;
4550 
4551         virtual HRESULT STDMETHODCALLTYPE GetDisplayTime(
4552             /* [in] */ ULONGLONG requestedTimeScale,
4553             /* [out] */ ULONGLONG *displayTime) = 0;
4554 
4555         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex(
4556             /* [out] */ unsigned int *packetIndex) = 0;
4557 
4558     };
4559 
4560 
4561 #else 	/* C style interface */
4562 
4563     typedef struct IBMDStreamingH264NALPacketVtbl
4564     {
4565         BEGIN_INTERFACE
4566 
4567         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4568             IBMDStreamingH264NALPacket * This,
4569             /* [in] */ REFIID riid,
4570             /* [annotation][iid_is][out] */
4571             _COM_Outptr_  void **ppvObject);
4572 
4573         ULONG ( STDMETHODCALLTYPE *AddRef )(
4574             IBMDStreamingH264NALPacket * This);
4575 
4576         ULONG ( STDMETHODCALLTYPE *Release )(
4577             IBMDStreamingH264NALPacket * This);
4578 
4579         long ( STDMETHODCALLTYPE *GetPayloadSize )(
4580             IBMDStreamingH264NALPacket * This);
4581 
4582         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
4583             IBMDStreamingH264NALPacket * This,
4584             /* [out] */ void **buffer);
4585 
4586         HRESULT ( STDMETHODCALLTYPE *GetBytesWithSizePrefix )(
4587             IBMDStreamingH264NALPacket * This,
4588             /* [out] */ void **buffer);
4589 
4590         HRESULT ( STDMETHODCALLTYPE *GetDisplayTime )(
4591             IBMDStreamingH264NALPacket * This,
4592             /* [in] */ ULONGLONG requestedTimeScale,
4593             /* [out] */ ULONGLONG *displayTime);
4594 
4595         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )(
4596             IBMDStreamingH264NALPacket * This,
4597             /* [out] */ unsigned int *packetIndex);
4598 
4599         END_INTERFACE
4600     } IBMDStreamingH264NALPacketVtbl;
4601 
4602     interface IBMDStreamingH264NALPacket
4603     {
4604         CONST_VTBL struct IBMDStreamingH264NALPacketVtbl *lpVtbl;
4605     };
4606 
4607 
4608 
4609 #ifdef COBJMACROS
4610 
4611 
4612 #define IBMDStreamingH264NALPacket_QueryInterface(This,riid,ppvObject)	\
4613     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4614 
4615 #define IBMDStreamingH264NALPacket_AddRef(This)	\
4616     ( (This)->lpVtbl -> AddRef(This) )
4617 
4618 #define IBMDStreamingH264NALPacket_Release(This)	\
4619     ( (This)->lpVtbl -> Release(This) )
4620 
4621 
4622 #define IBMDStreamingH264NALPacket_GetPayloadSize(This)	\
4623     ( (This)->lpVtbl -> GetPayloadSize(This) )
4624 
4625 #define IBMDStreamingH264NALPacket_GetBytes(This,buffer)	\
4626     ( (This)->lpVtbl -> GetBytes(This,buffer) )
4627 
4628 #define IBMDStreamingH264NALPacket_GetBytesWithSizePrefix(This,buffer)	\
4629     ( (This)->lpVtbl -> GetBytesWithSizePrefix(This,buffer) )
4630 
4631 #define IBMDStreamingH264NALPacket_GetDisplayTime(This,requestedTimeScale,displayTime)	\
4632     ( (This)->lpVtbl -> GetDisplayTime(This,requestedTimeScale,displayTime) )
4633 
4634 #define IBMDStreamingH264NALPacket_GetPacketIndex(This,packetIndex)	\
4635     ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) )
4636 
4637 #endif /* COBJMACROS */
4638 
4639 
4640 #endif 	/* C style interface */
4641 
4642 
4643 
4644 
4645 #endif 	/* __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__ */
4646 
4647 
4648 #ifndef __IBMDStreamingAudioPacket_INTERFACE_DEFINED__
4649 #define __IBMDStreamingAudioPacket_INTERFACE_DEFINED__
4650 
4651 /* interface IBMDStreamingAudioPacket */
4652 /* [helpstring][uuid][object] */
4653 
4654 
4655 EXTERN_C const IID IID_IBMDStreamingAudioPacket;
4656 
4657 #if defined(__cplusplus) && !defined(CINTERFACE)
4658 
4659     MIDL_INTERFACE("D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19")
4660     IBMDStreamingAudioPacket : public IUnknown
4661     {
4662     public:
4663         virtual BMDStreamingAudioCodec STDMETHODCALLTYPE GetCodec( void) = 0;
4664 
4665         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
4666 
4667         virtual HRESULT STDMETHODCALLTYPE GetBytes(
4668             /* [out] */ void **buffer) = 0;
4669 
4670         virtual HRESULT STDMETHODCALLTYPE GetPlayTime(
4671             /* [in] */ ULONGLONG requestedTimeScale,
4672             /* [out] */ ULONGLONG *playTime) = 0;
4673 
4674         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex(
4675             /* [out] */ unsigned int *packetIndex) = 0;
4676 
4677     };
4678 
4679 
4680 #else 	/* C style interface */
4681 
4682     typedef struct IBMDStreamingAudioPacketVtbl
4683     {
4684         BEGIN_INTERFACE
4685 
4686         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4687             IBMDStreamingAudioPacket * This,
4688             /* [in] */ REFIID riid,
4689             /* [annotation][iid_is][out] */
4690             _COM_Outptr_  void **ppvObject);
4691 
4692         ULONG ( STDMETHODCALLTYPE *AddRef )(
4693             IBMDStreamingAudioPacket * This);
4694 
4695         ULONG ( STDMETHODCALLTYPE *Release )(
4696             IBMDStreamingAudioPacket * This);
4697 
4698         BMDStreamingAudioCodec ( STDMETHODCALLTYPE *GetCodec )(
4699             IBMDStreamingAudioPacket * This);
4700 
4701         long ( STDMETHODCALLTYPE *GetPayloadSize )(
4702             IBMDStreamingAudioPacket * This);
4703 
4704         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
4705             IBMDStreamingAudioPacket * This,
4706             /* [out] */ void **buffer);
4707 
4708         HRESULT ( STDMETHODCALLTYPE *GetPlayTime )(
4709             IBMDStreamingAudioPacket * This,
4710             /* [in] */ ULONGLONG requestedTimeScale,
4711             /* [out] */ ULONGLONG *playTime);
4712 
4713         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )(
4714             IBMDStreamingAudioPacket * This,
4715             /* [out] */ unsigned int *packetIndex);
4716 
4717         END_INTERFACE
4718     } IBMDStreamingAudioPacketVtbl;
4719 
4720     interface IBMDStreamingAudioPacket
4721     {
4722         CONST_VTBL struct IBMDStreamingAudioPacketVtbl *lpVtbl;
4723     };
4724 
4725 
4726 
4727 #ifdef COBJMACROS
4728 
4729 
4730 #define IBMDStreamingAudioPacket_QueryInterface(This,riid,ppvObject)	\
4731     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4732 
4733 #define IBMDStreamingAudioPacket_AddRef(This)	\
4734     ( (This)->lpVtbl -> AddRef(This) )
4735 
4736 #define IBMDStreamingAudioPacket_Release(This)	\
4737     ( (This)->lpVtbl -> Release(This) )
4738 
4739 
4740 #define IBMDStreamingAudioPacket_GetCodec(This)	\
4741     ( (This)->lpVtbl -> GetCodec(This) )
4742 
4743 #define IBMDStreamingAudioPacket_GetPayloadSize(This)	\
4744     ( (This)->lpVtbl -> GetPayloadSize(This) )
4745 
4746 #define IBMDStreamingAudioPacket_GetBytes(This,buffer)	\
4747     ( (This)->lpVtbl -> GetBytes(This,buffer) )
4748 
4749 #define IBMDStreamingAudioPacket_GetPlayTime(This,requestedTimeScale,playTime)	\
4750     ( (This)->lpVtbl -> GetPlayTime(This,requestedTimeScale,playTime) )
4751 
4752 #define IBMDStreamingAudioPacket_GetPacketIndex(This,packetIndex)	\
4753     ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) )
4754 
4755 #endif /* COBJMACROS */
4756 
4757 
4758 #endif 	/* C style interface */
4759 
4760 
4761 
4762 
4763 #endif 	/* __IBMDStreamingAudioPacket_INTERFACE_DEFINED__ */
4764 
4765 
4766 #ifndef __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__
4767 #define __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__
4768 
4769 /* interface IBMDStreamingMPEG2TSPacket */
4770 /* [helpstring][uuid][object] */
4771 
4772 
4773 EXTERN_C const IID IID_IBMDStreamingMPEG2TSPacket;
4774 
4775 #if defined(__cplusplus) && !defined(CINTERFACE)
4776 
4777     MIDL_INTERFACE("91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C")
4778     IBMDStreamingMPEG2TSPacket : public IUnknown
4779     {
4780     public:
4781         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
4782 
4783         virtual HRESULT STDMETHODCALLTYPE GetBytes(
4784             /* [out] */ void **buffer) = 0;
4785 
4786     };
4787 
4788 
4789 #else 	/* C style interface */
4790 
4791     typedef struct IBMDStreamingMPEG2TSPacketVtbl
4792     {
4793         BEGIN_INTERFACE
4794 
4795         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4796             IBMDStreamingMPEG2TSPacket * This,
4797             /* [in] */ REFIID riid,
4798             /* [annotation][iid_is][out] */
4799             _COM_Outptr_  void **ppvObject);
4800 
4801         ULONG ( STDMETHODCALLTYPE *AddRef )(
4802             IBMDStreamingMPEG2TSPacket * This);
4803 
4804         ULONG ( STDMETHODCALLTYPE *Release )(
4805             IBMDStreamingMPEG2TSPacket * This);
4806 
4807         long ( STDMETHODCALLTYPE *GetPayloadSize )(
4808             IBMDStreamingMPEG2TSPacket * This);
4809 
4810         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
4811             IBMDStreamingMPEG2TSPacket * This,
4812             /* [out] */ void **buffer);
4813 
4814         END_INTERFACE
4815     } IBMDStreamingMPEG2TSPacketVtbl;
4816 
4817     interface IBMDStreamingMPEG2TSPacket
4818     {
4819         CONST_VTBL struct IBMDStreamingMPEG2TSPacketVtbl *lpVtbl;
4820     };
4821 
4822 
4823 
4824 #ifdef COBJMACROS
4825 
4826 
4827 #define IBMDStreamingMPEG2TSPacket_QueryInterface(This,riid,ppvObject)	\
4828     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4829 
4830 #define IBMDStreamingMPEG2TSPacket_AddRef(This)	\
4831     ( (This)->lpVtbl -> AddRef(This) )
4832 
4833 #define IBMDStreamingMPEG2TSPacket_Release(This)	\
4834     ( (This)->lpVtbl -> Release(This) )
4835 
4836 
4837 #define IBMDStreamingMPEG2TSPacket_GetPayloadSize(This)	\
4838     ( (This)->lpVtbl -> GetPayloadSize(This) )
4839 
4840 #define IBMDStreamingMPEG2TSPacket_GetBytes(This,buffer)	\
4841     ( (This)->lpVtbl -> GetBytes(This,buffer) )
4842 
4843 #endif /* COBJMACROS */
4844 
4845 
4846 #endif 	/* C style interface */
4847 
4848 
4849 
4850 
4851 #endif 	/* __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__ */
4852 
4853 
4854 #ifndef __IBMDStreamingH264NALParser_INTERFACE_DEFINED__
4855 #define __IBMDStreamingH264NALParser_INTERFACE_DEFINED__
4856 
4857 /* interface IBMDStreamingH264NALParser */
4858 /* [helpstring][uuid][object] */
4859 
4860 
4861 EXTERN_C const IID IID_IBMDStreamingH264NALParser;
4862 
4863 #if defined(__cplusplus) && !defined(CINTERFACE)
4864 
4865     MIDL_INTERFACE("5867F18C-5BFA-4CCC-B2A7-9DFD140417D2")
4866     IBMDStreamingH264NALParser : public IUnknown
4867     {
4868     public:
4869         virtual HRESULT STDMETHODCALLTYPE IsNALSequenceParameterSet(
4870             /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;
4871 
4872         virtual HRESULT STDMETHODCALLTYPE IsNALPictureParameterSet(
4873             /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;
4874 
4875         virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS(
4876             /* [in] */ IBMDStreamingH264NALPacket *nal,
4877             /* [out] */ unsigned int *profileIdc,
4878             /* [out] */ unsigned int *profileCompatability,
4879             /* [out] */ unsigned int *levelIdc) = 0;
4880 
4881     };
4882 
4883 
4884 #else 	/* C style interface */
4885 
4886     typedef struct IBMDStreamingH264NALParserVtbl
4887     {
4888         BEGIN_INTERFACE
4889 
4890         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4891             IBMDStreamingH264NALParser * This,
4892             /* [in] */ REFIID riid,
4893             /* [annotation][iid_is][out] */
4894             _COM_Outptr_  void **ppvObject);
4895 
4896         ULONG ( STDMETHODCALLTYPE *AddRef )(
4897             IBMDStreamingH264NALParser * This);
4898 
4899         ULONG ( STDMETHODCALLTYPE *Release )(
4900             IBMDStreamingH264NALParser * This);
4901 
4902         HRESULT ( STDMETHODCALLTYPE *IsNALSequenceParameterSet )(
4903             IBMDStreamingH264NALParser * This,
4904             /* [in] */ IBMDStreamingH264NALPacket *nal);
4905 
4906         HRESULT ( STDMETHODCALLTYPE *IsNALPictureParameterSet )(
4907             IBMDStreamingH264NALParser * This,
4908             /* [in] */ IBMDStreamingH264NALPacket *nal);
4909 
4910         HRESULT ( STDMETHODCALLTYPE *GetProfileAndLevelFromSPS )(
4911             IBMDStreamingH264NALParser * This,
4912             /* [in] */ IBMDStreamingH264NALPacket *nal,
4913             /* [out] */ unsigned int *profileIdc,
4914             /* [out] */ unsigned int *profileCompatability,
4915             /* [out] */ unsigned int *levelIdc);
4916 
4917         END_INTERFACE
4918     } IBMDStreamingH264NALParserVtbl;
4919 
4920     interface IBMDStreamingH264NALParser
4921     {
4922         CONST_VTBL struct IBMDStreamingH264NALParserVtbl *lpVtbl;
4923     };
4924 
4925 
4926 
4927 #ifdef COBJMACROS
4928 
4929 
4930 #define IBMDStreamingH264NALParser_QueryInterface(This,riid,ppvObject)	\
4931     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4932 
4933 #define IBMDStreamingH264NALParser_AddRef(This)	\
4934     ( (This)->lpVtbl -> AddRef(This) )
4935 
4936 #define IBMDStreamingH264NALParser_Release(This)	\
4937     ( (This)->lpVtbl -> Release(This) )
4938 
4939 
4940 #define IBMDStreamingH264NALParser_IsNALSequenceParameterSet(This,nal)	\
4941     ( (This)->lpVtbl -> IsNALSequenceParameterSet(This,nal) )
4942 
4943 #define IBMDStreamingH264NALParser_IsNALPictureParameterSet(This,nal)	\
4944     ( (This)->lpVtbl -> IsNALPictureParameterSet(This,nal) )
4945 
4946 #define IBMDStreamingH264NALParser_GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc)	\
4947     ( (This)->lpVtbl -> GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) )
4948 
4949 #endif /* COBJMACROS */
4950 
4951 
4952 #endif 	/* C style interface */
4953 
4954 
4955 
4956 
4957 #endif 	/* __IBMDStreamingH264NALParser_INTERFACE_DEFINED__ */
4958 
4959 
4960 EXTERN_C const CLSID CLSID_CBMDStreamingDiscovery;
4961 
4962 #ifdef __cplusplus
4963 
4964 class DECLSPEC_UUID("23A4EDF5-A0E5-432C-94EF-3BABB5F81C82")
4965 CBMDStreamingDiscovery;
4966 #endif
4967 
4968 EXTERN_C const CLSID CLSID_CBMDStreamingH264NALParser;
4969 
4970 #ifdef __cplusplus
4971 
4972 class DECLSPEC_UUID("7753EFBD-951C-407C-97A5-23C737B73B52")
4973 CBMDStreamingH264NALParser;
4974 #endif
4975 
4976 #ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
4977 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
4978 
4979 /* interface IDeckLinkVideoOutputCallback */
4980 /* [helpstring][uuid][object] */
4981 
4982 
4983 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;
4984 
4985 #if defined(__cplusplus) && !defined(CINTERFACE)
4986 
4987     MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")
4988     IDeckLinkVideoOutputCallback : public IUnknown
4989     {
4990     public:
4991         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
4992             /* [in] */ IDeckLinkVideoFrame *completedFrame,
4993             /* [in] */ BMDOutputFrameCompletionResult result) = 0;
4994 
4995         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
4996 
4997     };
4998 
4999 
5000 #else 	/* C style interface */
5001 
5002     typedef struct IDeckLinkVideoOutputCallbackVtbl
5003     {
5004         BEGIN_INTERFACE
5005 
5006         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5007             IDeckLinkVideoOutputCallback * This,
5008             /* [in] */ REFIID riid,
5009             /* [annotation][iid_is][out] */
5010             _COM_Outptr_  void **ppvObject);
5011 
5012         ULONG ( STDMETHODCALLTYPE *AddRef )(
5013             IDeckLinkVideoOutputCallback * This);
5014 
5015         ULONG ( STDMETHODCALLTYPE *Release )(
5016             IDeckLinkVideoOutputCallback * This);
5017 
5018         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
5019             IDeckLinkVideoOutputCallback * This,
5020             /* [in] */ IDeckLinkVideoFrame *completedFrame,
5021             /* [in] */ BMDOutputFrameCompletionResult result);
5022 
5023         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(
5024             IDeckLinkVideoOutputCallback * This);
5025 
5026         END_INTERFACE
5027     } IDeckLinkVideoOutputCallbackVtbl;
5028 
5029     interface IDeckLinkVideoOutputCallback
5030     {
5031         CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;
5032     };
5033 
5034 
5035 
5036 #ifdef COBJMACROS
5037 
5038 
5039 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject)	\
5040     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5041 
5042 #define IDeckLinkVideoOutputCallback_AddRef(This)	\
5043     ( (This)->lpVtbl -> AddRef(This) )
5044 
5045 #define IDeckLinkVideoOutputCallback_Release(This)	\
5046     ( (This)->lpVtbl -> Release(This) )
5047 
5048 
5049 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result)	\
5050     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
5051 
5052 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This)	\
5053     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )
5054 
5055 #endif /* COBJMACROS */
5056 
5057 
5058 #endif 	/* C style interface */
5059 
5060 
5061 
5062 
5063 #endif 	/* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */
5064 
5065 
5066 #ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__
5067 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__
5068 
5069 /* interface IDeckLinkInputCallback */
5070 /* [helpstring][uuid][object] */
5071 
5072 
5073 EXTERN_C const IID IID_IDeckLinkInputCallback;
5074 
5075 #if defined(__cplusplus) && !defined(CINTERFACE)
5076 
5077     MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")
5078     IDeckLinkInputCallback : public IUnknown
5079     {
5080     public:
5081         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
5082             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
5083             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
5084             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
5085 
5086         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
5087             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
5088             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
5089 
5090     };
5091 
5092 
5093 #else 	/* C style interface */
5094 
5095     typedef struct IDeckLinkInputCallbackVtbl
5096     {
5097         BEGIN_INTERFACE
5098 
5099         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5100             IDeckLinkInputCallback * This,
5101             /* [in] */ REFIID riid,
5102             /* [annotation][iid_is][out] */
5103             _COM_Outptr_  void **ppvObject);
5104 
5105         ULONG ( STDMETHODCALLTYPE *AddRef )(
5106             IDeckLinkInputCallback * This);
5107 
5108         ULONG ( STDMETHODCALLTYPE *Release )(
5109             IDeckLinkInputCallback * This);
5110 
5111         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
5112             IDeckLinkInputCallback * This,
5113             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
5114             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
5115             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
5116 
5117         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
5118             IDeckLinkInputCallback * This,
5119             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
5120             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
5121 
5122         END_INTERFACE
5123     } IDeckLinkInputCallbackVtbl;
5124 
5125     interface IDeckLinkInputCallback
5126     {
5127         CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;
5128     };
5129 
5130 
5131 
5132 #ifdef COBJMACROS
5133 
5134 
5135 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject)	\
5136     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5137 
5138 #define IDeckLinkInputCallback_AddRef(This)	\
5139     ( (This)->lpVtbl -> AddRef(This) )
5140 
5141 #define IDeckLinkInputCallback_Release(This)	\
5142     ( (This)->lpVtbl -> Release(This) )
5143 
5144 
5145 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)	\
5146     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
5147 
5148 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket)	\
5149     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
5150 
5151 #endif /* COBJMACROS */
5152 
5153 
5154 #endif 	/* C style interface */
5155 
5156 
5157 
5158 
5159 #endif 	/* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */
5160 
5161 
5162 #ifndef __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__
5163 #define __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__
5164 
5165 /* interface IDeckLinkEncoderInputCallback */
5166 /* [helpstring][uuid][object] */
5167 
5168 
5169 EXTERN_C const IID IID_IDeckLinkEncoderInputCallback;
5170 
5171 #if defined(__cplusplus) && !defined(CINTERFACE)
5172 
5173     MIDL_INTERFACE("ACF13E61-F4A0-4974-A6A7-59AFF6268B31")
5174     IDeckLinkEncoderInputCallback : public IUnknown
5175     {
5176     public:
5177         virtual HRESULT STDMETHODCALLTYPE VideoInputSignalChanged(
5178             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
5179             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
5180             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
5181 
5182         virtual HRESULT STDMETHODCALLTYPE VideoPacketArrived(
5183             /* [in] */ IDeckLinkEncoderVideoPacket *videoPacket) = 0;
5184 
5185         virtual HRESULT STDMETHODCALLTYPE AudioPacketArrived(
5186             /* [in] */ IDeckLinkEncoderAudioPacket *audioPacket) = 0;
5187 
5188     };
5189 
5190 
5191 #else 	/* C style interface */
5192 
5193     typedef struct IDeckLinkEncoderInputCallbackVtbl
5194     {
5195         BEGIN_INTERFACE
5196 
5197         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5198             IDeckLinkEncoderInputCallback * This,
5199             /* [in] */ REFIID riid,
5200             /* [annotation][iid_is][out] */
5201             _COM_Outptr_  void **ppvObject);
5202 
5203         ULONG ( STDMETHODCALLTYPE *AddRef )(
5204             IDeckLinkEncoderInputCallback * This);
5205 
5206         ULONG ( STDMETHODCALLTYPE *Release )(
5207             IDeckLinkEncoderInputCallback * This);
5208 
5209         HRESULT ( STDMETHODCALLTYPE *VideoInputSignalChanged )(
5210             IDeckLinkEncoderInputCallback * This,
5211             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
5212             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
5213             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
5214 
5215         HRESULT ( STDMETHODCALLTYPE *VideoPacketArrived )(
5216             IDeckLinkEncoderInputCallback * This,
5217             /* [in] */ IDeckLinkEncoderVideoPacket *videoPacket);
5218 
5219         HRESULT ( STDMETHODCALLTYPE *AudioPacketArrived )(
5220             IDeckLinkEncoderInputCallback * This,
5221             /* [in] */ IDeckLinkEncoderAudioPacket *audioPacket);
5222 
5223         END_INTERFACE
5224     } IDeckLinkEncoderInputCallbackVtbl;
5225 
5226     interface IDeckLinkEncoderInputCallback
5227     {
5228         CONST_VTBL struct IDeckLinkEncoderInputCallbackVtbl *lpVtbl;
5229     };
5230 
5231 
5232 
5233 #ifdef COBJMACROS
5234 
5235 
5236 #define IDeckLinkEncoderInputCallback_QueryInterface(This,riid,ppvObject)	\
5237     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5238 
5239 #define IDeckLinkEncoderInputCallback_AddRef(This)	\
5240     ( (This)->lpVtbl -> AddRef(This) )
5241 
5242 #define IDeckLinkEncoderInputCallback_Release(This)	\
5243     ( (This)->lpVtbl -> Release(This) )
5244 
5245 
5246 #define IDeckLinkEncoderInputCallback_VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)	\
5247     ( (This)->lpVtbl -> VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
5248 
5249 #define IDeckLinkEncoderInputCallback_VideoPacketArrived(This,videoPacket)	\
5250     ( (This)->lpVtbl -> VideoPacketArrived(This,videoPacket) )
5251 
5252 #define IDeckLinkEncoderInputCallback_AudioPacketArrived(This,audioPacket)	\
5253     ( (This)->lpVtbl -> AudioPacketArrived(This,audioPacket) )
5254 
5255 #endif /* COBJMACROS */
5256 
5257 
5258 #endif 	/* C style interface */
5259 
5260 
5261 
5262 
5263 #endif 	/* __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__ */
5264 
5265 
5266 #ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
5267 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
5268 
5269 /* interface IDeckLinkMemoryAllocator */
5270 /* [helpstring][local][uuid][object] */
5271 
5272 
5273 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
5274 
5275 #if defined(__cplusplus) && !defined(CINTERFACE)
5276 
5277     MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")
5278     IDeckLinkMemoryAllocator : public IUnknown
5279     {
5280     public:
5281         virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(
5282             /* [in] */ unsigned int bufferSize,
5283             /* [out] */ void **allocatedBuffer) = 0;
5284 
5285         virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
5286             /* [in] */ void *buffer) = 0;
5287 
5288         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
5289 
5290         virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;
5291 
5292     };
5293 
5294 
5295 #else 	/* C style interface */
5296 
5297     typedef struct IDeckLinkMemoryAllocatorVtbl
5298     {
5299         BEGIN_INTERFACE
5300 
5301         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5302             IDeckLinkMemoryAllocator * This,
5303             /* [in] */ REFIID riid,
5304             /* [annotation][iid_is][out] */
5305             _COM_Outptr_  void **ppvObject);
5306 
5307         ULONG ( STDMETHODCALLTYPE *AddRef )(
5308             IDeckLinkMemoryAllocator * This);
5309 
5310         ULONG ( STDMETHODCALLTYPE *Release )(
5311             IDeckLinkMemoryAllocator * This);
5312 
5313         HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )(
5314             IDeckLinkMemoryAllocator * This,
5315             /* [in] */ unsigned int bufferSize,
5316             /* [out] */ void **allocatedBuffer);
5317 
5318         HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
5319             IDeckLinkMemoryAllocator * This,
5320             /* [in] */ void *buffer);
5321 
5322         HRESULT ( STDMETHODCALLTYPE *Commit )(
5323             IDeckLinkMemoryAllocator * This);
5324 
5325         HRESULT ( STDMETHODCALLTYPE *Decommit )(
5326             IDeckLinkMemoryAllocator * This);
5327 
5328         END_INTERFACE
5329     } IDeckLinkMemoryAllocatorVtbl;
5330 
5331     interface IDeckLinkMemoryAllocator
5332     {
5333         CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;
5334     };
5335 
5336 
5337 
5338 #ifdef COBJMACROS
5339 
5340 
5341 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)	\
5342     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5343 
5344 #define IDeckLinkMemoryAllocator_AddRef(This)	\
5345     ( (This)->lpVtbl -> AddRef(This) )
5346 
5347 #define IDeckLinkMemoryAllocator_Release(This)	\
5348     ( (This)->lpVtbl -> Release(This) )
5349 
5350 
5351 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer)	\
5352     ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) )
5353 
5354 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer)	\
5355     ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) )
5356 
5357 #define IDeckLinkMemoryAllocator_Commit(This)	\
5358     ( (This)->lpVtbl -> Commit(This) )
5359 
5360 #define IDeckLinkMemoryAllocator_Decommit(This)	\
5361     ( (This)->lpVtbl -> Decommit(This) )
5362 
5363 #endif /* COBJMACROS */
5364 
5365 
5366 #endif 	/* C style interface */
5367 
5368 
5369 
5370 
5371 #endif 	/* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */
5372 
5373 
5374 #ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
5375 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
5376 
5377 /* interface IDeckLinkAudioOutputCallback */
5378 /* [helpstring][local][uuid][object] */
5379 
5380 
5381 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;
5382 
5383 #if defined(__cplusplus) && !defined(CINTERFACE)
5384 
5385     MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")
5386     IDeckLinkAudioOutputCallback : public IUnknown
5387     {
5388     public:
5389         virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples(
5390             /* [in] */ BOOL preroll) = 0;
5391 
5392     };
5393 
5394 
5395 #else 	/* C style interface */
5396 
5397     typedef struct IDeckLinkAudioOutputCallbackVtbl
5398     {
5399         BEGIN_INTERFACE
5400 
5401         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5402             IDeckLinkAudioOutputCallback * This,
5403             /* [in] */ REFIID riid,
5404             /* [annotation][iid_is][out] */
5405             _COM_Outptr_  void **ppvObject);
5406 
5407         ULONG ( STDMETHODCALLTYPE *AddRef )(
5408             IDeckLinkAudioOutputCallback * This);
5409 
5410         ULONG ( STDMETHODCALLTYPE *Release )(
5411             IDeckLinkAudioOutputCallback * This);
5412 
5413         HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )(
5414             IDeckLinkAudioOutputCallback * This,
5415             /* [in] */ BOOL preroll);
5416 
5417         END_INTERFACE
5418     } IDeckLinkAudioOutputCallbackVtbl;
5419 
5420     interface IDeckLinkAudioOutputCallback
5421     {
5422         CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;
5423     };
5424 
5425 
5426 
5427 #ifdef COBJMACROS
5428 
5429 
5430 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject)	\
5431     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5432 
5433 #define IDeckLinkAudioOutputCallback_AddRef(This)	\
5434     ( (This)->lpVtbl -> AddRef(This) )
5435 
5436 #define IDeckLinkAudioOutputCallback_Release(This)	\
5437     ( (This)->lpVtbl -> Release(This) )
5438 
5439 
5440 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll)	\
5441     ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) )
5442 
5443 #endif /* COBJMACROS */
5444 
5445 
5446 #endif 	/* C style interface */
5447 
5448 
5449 
5450 
5451 #endif 	/* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */
5452 
5453 
5454 #ifndef __IDeckLinkIterator_INTERFACE_DEFINED__
5455 #define __IDeckLinkIterator_INTERFACE_DEFINED__
5456 
5457 /* interface IDeckLinkIterator */
5458 /* [helpstring][uuid][object] */
5459 
5460 
5461 EXTERN_C const IID IID_IDeckLinkIterator;
5462 
5463 #if defined(__cplusplus) && !defined(CINTERFACE)
5464 
5465     MIDL_INTERFACE("50FB36CD-3063-4B73-BDBB-958087F2D8BA")
5466     IDeckLinkIterator : public IUnknown
5467     {
5468     public:
5469         virtual HRESULT STDMETHODCALLTYPE Next(
5470             /* [out] */ IDeckLink **deckLinkInstance) = 0;
5471 
5472     };
5473 
5474 
5475 #else 	/* C style interface */
5476 
5477     typedef struct IDeckLinkIteratorVtbl
5478     {
5479         BEGIN_INTERFACE
5480 
5481         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5482             IDeckLinkIterator * This,
5483             /* [in] */ REFIID riid,
5484             /* [annotation][iid_is][out] */
5485             _COM_Outptr_  void **ppvObject);
5486 
5487         ULONG ( STDMETHODCALLTYPE *AddRef )(
5488             IDeckLinkIterator * This);
5489 
5490         ULONG ( STDMETHODCALLTYPE *Release )(
5491             IDeckLinkIterator * This);
5492 
5493         HRESULT ( STDMETHODCALLTYPE *Next )(
5494             IDeckLinkIterator * This,
5495             /* [out] */ IDeckLink **deckLinkInstance);
5496 
5497         END_INTERFACE
5498     } IDeckLinkIteratorVtbl;
5499 
5500     interface IDeckLinkIterator
5501     {
5502         CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;
5503     };
5504 
5505 
5506 
5507 #ifdef COBJMACROS
5508 
5509 
5510 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject)	\
5511     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5512 
5513 #define IDeckLinkIterator_AddRef(This)	\
5514     ( (This)->lpVtbl -> AddRef(This) )
5515 
5516 #define IDeckLinkIterator_Release(This)	\
5517     ( (This)->lpVtbl -> Release(This) )
5518 
5519 
5520 #define IDeckLinkIterator_Next(This,deckLinkInstance)	\
5521     ( (This)->lpVtbl -> Next(This,deckLinkInstance) )
5522 
5523 #endif /* COBJMACROS */
5524 
5525 
5526 #endif 	/* C style interface */
5527 
5528 
5529 
5530 
5531 #endif 	/* __IDeckLinkIterator_INTERFACE_DEFINED__ */
5532 
5533 
5534 #ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__
5535 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__
5536 
5537 /* interface IDeckLinkAPIInformation */
5538 /* [helpstring][uuid][object] */
5539 
5540 
5541 EXTERN_C const IID IID_IDeckLinkAPIInformation;
5542 
5543 #if defined(__cplusplus) && !defined(CINTERFACE)
5544 
5545     MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")
5546     IDeckLinkAPIInformation : public IUnknown
5547     {
5548     public:
5549         virtual HRESULT STDMETHODCALLTYPE GetFlag(
5550             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5551             /* [out] */ BOOL *value) = 0;
5552 
5553         virtual HRESULT STDMETHODCALLTYPE GetInt(
5554             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5555             /* [out] */ LONGLONG *value) = 0;
5556 
5557         virtual HRESULT STDMETHODCALLTYPE GetFloat(
5558             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5559             /* [out] */ double *value) = 0;
5560 
5561         virtual HRESULT STDMETHODCALLTYPE GetString(
5562             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5563             /* [out] */ BSTR *value) = 0;
5564 
5565     };
5566 
5567 
5568 #else 	/* C style interface */
5569 
5570     typedef struct IDeckLinkAPIInformationVtbl
5571     {
5572         BEGIN_INTERFACE
5573 
5574         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5575             IDeckLinkAPIInformation * This,
5576             /* [in] */ REFIID riid,
5577             /* [annotation][iid_is][out] */
5578             _COM_Outptr_  void **ppvObject);
5579 
5580         ULONG ( STDMETHODCALLTYPE *AddRef )(
5581             IDeckLinkAPIInformation * This);
5582 
5583         ULONG ( STDMETHODCALLTYPE *Release )(
5584             IDeckLinkAPIInformation * This);
5585 
5586         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
5587             IDeckLinkAPIInformation * This,
5588             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5589             /* [out] */ BOOL *value);
5590 
5591         HRESULT ( STDMETHODCALLTYPE *GetInt )(
5592             IDeckLinkAPIInformation * This,
5593             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5594             /* [out] */ LONGLONG *value);
5595 
5596         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
5597             IDeckLinkAPIInformation * This,
5598             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5599             /* [out] */ double *value);
5600 
5601         HRESULT ( STDMETHODCALLTYPE *GetString )(
5602             IDeckLinkAPIInformation * This,
5603             /* [in] */ BMDDeckLinkAPIInformationID cfgID,
5604             /* [out] */ BSTR *value);
5605 
5606         END_INTERFACE
5607     } IDeckLinkAPIInformationVtbl;
5608 
5609     interface IDeckLinkAPIInformation
5610     {
5611         CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;
5612     };
5613 
5614 
5615 
5616 #ifdef COBJMACROS
5617 
5618 
5619 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject)	\
5620     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5621 
5622 #define IDeckLinkAPIInformation_AddRef(This)	\
5623     ( (This)->lpVtbl -> AddRef(This) )
5624 
5625 #define IDeckLinkAPIInformation_Release(This)	\
5626     ( (This)->lpVtbl -> Release(This) )
5627 
5628 
5629 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value)	\
5630     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
5631 
5632 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value)	\
5633     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
5634 
5635 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value)	\
5636     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
5637 
5638 #define IDeckLinkAPIInformation_GetString(This,cfgID,value)	\
5639     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
5640 
5641 #endif /* COBJMACROS */
5642 
5643 
5644 #endif 	/* C style interface */
5645 
5646 
5647 
5648 
5649 #endif 	/* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */
5650 
5651 
5652 #ifndef __IDeckLinkOutput_INTERFACE_DEFINED__
5653 #define __IDeckLinkOutput_INTERFACE_DEFINED__
5654 
5655 /* interface IDeckLinkOutput */
5656 /* [helpstring][local][uuid][object] */
5657 
5658 
5659 EXTERN_C const IID IID_IDeckLinkOutput;
5660 
5661 #if defined(__cplusplus) && !defined(CINTERFACE)
5662 
5663     MIDL_INTERFACE("065A0F6C-C508-4D0D-B919-F5EB0EBFC96B")
5664     IDeckLinkOutput : public IUnknown
5665     {
5666     public:
5667         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
5668             /* [in] */ BMDVideoConnection connection,
5669             /* [in] */ BMDDisplayMode requestedMode,
5670             /* [in] */ BMDPixelFormat requestedPixelFormat,
5671             /* [in] */ BMDSupportedVideoModeFlags flags,
5672             /* [out] */ BMDDisplayMode *actualMode,
5673             /* [out] */ BOOL *supported) = 0;
5674 
5675         virtual HRESULT STDMETHODCALLTYPE GetDisplayMode(
5676             /* [in] */ BMDDisplayMode displayMode,
5677             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
5678 
5679         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
5680             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
5681 
5682         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
5683             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
5684 
5685         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
5686             /* [in] */ BMDDisplayMode displayMode,
5687             /* [in] */ BMDVideoOutputFlags flags) = 0;
5688 
5689         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
5690 
5691         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
5692             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
5693 
5694         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
5695             /* [in] */ int width,
5696             /* [in] */ int height,
5697             /* [in] */ int rowBytes,
5698             /* [in] */ BMDPixelFormat pixelFormat,
5699             /* [in] */ BMDFrameFlags flags,
5700             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;
5701 
5702         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
5703             /* [in] */ BMDPixelFormat pixelFormat,
5704             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
5705 
5706         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
5707             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
5708 
5709         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
5710             /* [in] */ IDeckLinkVideoFrame *theFrame,
5711             /* [in] */ BMDTimeValue displayTime,
5712             /* [in] */ BMDTimeValue displayDuration,
5713             /* [in] */ BMDTimeScale timeScale) = 0;
5714 
5715         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
5716             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
5717 
5718         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
5719             /* [out] */ unsigned int *bufferedFrameCount) = 0;
5720 
5721         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
5722             /* [in] */ BMDAudioSampleRate sampleRate,
5723             /* [in] */ BMDAudioSampleType sampleType,
5724             /* [in] */ unsigned int channelCount,
5725             /* [in] */ BMDAudioOutputStreamType streamType) = 0;
5726 
5727         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
5728 
5729         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
5730             /* [in] */ void *buffer,
5731             /* [in] */ unsigned int sampleFrameCount,
5732             /* [out] */ unsigned int *sampleFramesWritten) = 0;
5733 
5734         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
5735 
5736         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
5737 
5738         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
5739             /* [in] */ void *buffer,
5740             /* [in] */ unsigned int sampleFrameCount,
5741             /* [in] */ BMDTimeValue streamTime,
5742             /* [in] */ BMDTimeScale timeScale,
5743             /* [out] */ unsigned int *sampleFramesWritten) = 0;
5744 
5745         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
5746             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;
5747 
5748         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
5749 
5750         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
5751             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
5752 
5753         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
5754             /* [in] */ BMDTimeValue playbackStartTime,
5755             /* [in] */ BMDTimeScale timeScale,
5756             /* [in] */ double playbackSpeed) = 0;
5757 
5758         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
5759             /* [in] */ BMDTimeValue stopPlaybackAtTime,
5760             /* [out] */ BMDTimeValue *actualStopTime,
5761             /* [in] */ BMDTimeScale timeScale) = 0;
5762 
5763         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
5764             /* [out] */ BOOL *active) = 0;
5765 
5766         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
5767             /* [in] */ BMDTimeScale desiredTimeScale,
5768             /* [out] */ BMDTimeValue *streamTime,
5769             /* [out] */ double *playbackSpeed) = 0;
5770 
5771         virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(
5772             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;
5773 
5774         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
5775             /* [in] */ BMDTimeScale desiredTimeScale,
5776             /* [out] */ BMDTimeValue *hardwareTime,
5777             /* [out] */ BMDTimeValue *timeInFrame,
5778             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
5779 
5780         virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp(
5781             /* [in] */ IDeckLinkVideoFrame *theFrame,
5782             /* [in] */ BMDTimeScale desiredTimeScale,
5783             /* [out] */ BMDTimeValue *frameCompletionTimestamp) = 0;
5784 
5785     };
5786 
5787 
5788 #else 	/* C style interface */
5789 
5790     typedef struct IDeckLinkOutputVtbl
5791     {
5792         BEGIN_INTERFACE
5793 
5794         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5795             IDeckLinkOutput * This,
5796             /* [in] */ REFIID riid,
5797             /* [annotation][iid_is][out] */
5798             _COM_Outptr_  void **ppvObject);
5799 
5800         ULONG ( STDMETHODCALLTYPE *AddRef )(
5801             IDeckLinkOutput * This);
5802 
5803         ULONG ( STDMETHODCALLTYPE *Release )(
5804             IDeckLinkOutput * This);
5805 
5806         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
5807             IDeckLinkOutput * This,
5808             /* [in] */ BMDVideoConnection connection,
5809             /* [in] */ BMDDisplayMode requestedMode,
5810             /* [in] */ BMDPixelFormat requestedPixelFormat,
5811             /* [in] */ BMDSupportedVideoModeFlags flags,
5812             /* [out] */ BMDDisplayMode *actualMode,
5813             /* [out] */ BOOL *supported);
5814 
5815         HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )(
5816             IDeckLinkOutput * This,
5817             /* [in] */ BMDDisplayMode displayMode,
5818             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
5819 
5820         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
5821             IDeckLinkOutput * This,
5822             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
5823 
5824         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
5825             IDeckLinkOutput * This,
5826             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
5827 
5828         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
5829             IDeckLinkOutput * This,
5830             /* [in] */ BMDDisplayMode displayMode,
5831             /* [in] */ BMDVideoOutputFlags flags);
5832 
5833         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
5834             IDeckLinkOutput * This);
5835 
5836         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
5837             IDeckLinkOutput * This,
5838             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
5839 
5840         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
5841             IDeckLinkOutput * This,
5842             /* [in] */ int width,
5843             /* [in] */ int height,
5844             /* [in] */ int rowBytes,
5845             /* [in] */ BMDPixelFormat pixelFormat,
5846             /* [in] */ BMDFrameFlags flags,
5847             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);
5848 
5849         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
5850             IDeckLinkOutput * This,
5851             /* [in] */ BMDPixelFormat pixelFormat,
5852             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
5853 
5854         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
5855             IDeckLinkOutput * This,
5856             /* [in] */ IDeckLinkVideoFrame *theFrame);
5857 
5858         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
5859             IDeckLinkOutput * This,
5860             /* [in] */ IDeckLinkVideoFrame *theFrame,
5861             /* [in] */ BMDTimeValue displayTime,
5862             /* [in] */ BMDTimeValue displayDuration,
5863             /* [in] */ BMDTimeScale timeScale);
5864 
5865         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
5866             IDeckLinkOutput * This,
5867             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
5868 
5869         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
5870             IDeckLinkOutput * This,
5871             /* [out] */ unsigned int *bufferedFrameCount);
5872 
5873         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
5874             IDeckLinkOutput * This,
5875             /* [in] */ BMDAudioSampleRate sampleRate,
5876             /* [in] */ BMDAudioSampleType sampleType,
5877             /* [in] */ unsigned int channelCount,
5878             /* [in] */ BMDAudioOutputStreamType streamType);
5879 
5880         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
5881             IDeckLinkOutput * This);
5882 
5883         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
5884             IDeckLinkOutput * This,
5885             /* [in] */ void *buffer,
5886             /* [in] */ unsigned int sampleFrameCount,
5887             /* [out] */ unsigned int *sampleFramesWritten);
5888 
5889         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
5890             IDeckLinkOutput * This);
5891 
5892         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
5893             IDeckLinkOutput * This);
5894 
5895         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
5896             IDeckLinkOutput * This,
5897             /* [in] */ void *buffer,
5898             /* [in] */ unsigned int sampleFrameCount,
5899             /* [in] */ BMDTimeValue streamTime,
5900             /* [in] */ BMDTimeScale timeScale,
5901             /* [out] */ unsigned int *sampleFramesWritten);
5902 
5903         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
5904             IDeckLinkOutput * This,
5905             /* [out] */ unsigned int *bufferedSampleFrameCount);
5906 
5907         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
5908             IDeckLinkOutput * This);
5909 
5910         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
5911             IDeckLinkOutput * This,
5912             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
5913 
5914         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
5915             IDeckLinkOutput * This,
5916             /* [in] */ BMDTimeValue playbackStartTime,
5917             /* [in] */ BMDTimeScale timeScale,
5918             /* [in] */ double playbackSpeed);
5919 
5920         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
5921             IDeckLinkOutput * This,
5922             /* [in] */ BMDTimeValue stopPlaybackAtTime,
5923             /* [out] */ BMDTimeValue *actualStopTime,
5924             /* [in] */ BMDTimeScale timeScale);
5925 
5926         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
5927             IDeckLinkOutput * This,
5928             /* [out] */ BOOL *active);
5929 
5930         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
5931             IDeckLinkOutput * This,
5932             /* [in] */ BMDTimeScale desiredTimeScale,
5933             /* [out] */ BMDTimeValue *streamTime,
5934             /* [out] */ double *playbackSpeed);
5935 
5936         HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(
5937             IDeckLinkOutput * This,
5938             /* [out] */ BMDReferenceStatus *referenceStatus);
5939 
5940         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
5941             IDeckLinkOutput * This,
5942             /* [in] */ BMDTimeScale desiredTimeScale,
5943             /* [out] */ BMDTimeValue *hardwareTime,
5944             /* [out] */ BMDTimeValue *timeInFrame,
5945             /* [out] */ BMDTimeValue *ticksPerFrame);
5946 
5947         HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )(
5948             IDeckLinkOutput * This,
5949             /* [in] */ IDeckLinkVideoFrame *theFrame,
5950             /* [in] */ BMDTimeScale desiredTimeScale,
5951             /* [out] */ BMDTimeValue *frameCompletionTimestamp);
5952 
5953         END_INTERFACE
5954     } IDeckLinkOutputVtbl;
5955 
5956     interface IDeckLinkOutput
5957     {
5958         CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;
5959     };
5960 
5961 
5962 
5963 #ifdef COBJMACROS
5964 
5965 
5966 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject)	\
5967     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5968 
5969 #define IDeckLinkOutput_AddRef(This)	\
5970     ( (This)->lpVtbl -> AddRef(This) )
5971 
5972 #define IDeckLinkOutput_Release(This)	\
5973     ( (This)->lpVtbl -> Release(This) )
5974 
5975 
5976 #define IDeckLinkOutput_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,actualMode,supported)	\
5977     ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,actualMode,supported) )
5978 
5979 #define IDeckLinkOutput_GetDisplayMode(This,displayMode,resultDisplayMode)	\
5980     ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) )
5981 
5982 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator)	\
5983     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
5984 
5985 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback)	\
5986     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
5987 
5988 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags)	\
5989     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
5990 
5991 #define IDeckLinkOutput_DisableVideoOutput(This)	\
5992     ( (This)->lpVtbl -> DisableVideoOutput(This) )
5993 
5994 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator)	\
5995     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
5996 
5997 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)	\
5998     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
5999 
6000 #define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer)	\
6001     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
6002 
6003 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame)	\
6004     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
6005 
6006 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)	\
6007     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
6008 
6009 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback)	\
6010     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
6011 
6012 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount)	\
6013     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
6014 
6015 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)	\
6016     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
6017 
6018 #define IDeckLinkOutput_DisableAudioOutput(This)	\
6019     ( (This)->lpVtbl -> DisableAudioOutput(This) )
6020 
6021 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)	\
6022     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
6023 
6024 #define IDeckLinkOutput_BeginAudioPreroll(This)	\
6025     ( (This)->lpVtbl -> BeginAudioPreroll(This) )
6026 
6027 #define IDeckLinkOutput_EndAudioPreroll(This)	\
6028     ( (This)->lpVtbl -> EndAudioPreroll(This) )
6029 
6030 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)	\
6031     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
6032 
6033 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)	\
6034     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
6035 
6036 #define IDeckLinkOutput_FlushBufferedAudioSamples(This)	\
6037     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
6038 
6039 #define IDeckLinkOutput_SetAudioCallback(This,theCallback)	\
6040     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
6041 
6042 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)	\
6043     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
6044 
6045 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)	\
6046     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
6047 
6048 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active)	\
6049     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
6050 
6051 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)	\
6052     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
6053 
6054 #define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus)	\
6055     ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )
6056 
6057 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
6058     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
6059 
6060 #define IDeckLinkOutput_GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp)	\
6061     ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) )
6062 
6063 #endif /* COBJMACROS */
6064 
6065 
6066 #endif 	/* C style interface */
6067 
6068 
6069 
6070 
6071 #endif 	/* __IDeckLinkOutput_INTERFACE_DEFINED__ */
6072 
6073 
6074 #ifndef __IDeckLinkInput_INTERFACE_DEFINED__
6075 #define __IDeckLinkInput_INTERFACE_DEFINED__
6076 
6077 /* interface IDeckLinkInput */
6078 /* [helpstring][uuid][object] */
6079 
6080 
6081 EXTERN_C const IID IID_IDeckLinkInput;
6082 
6083 #if defined(__cplusplus) && !defined(CINTERFACE)
6084 
6085     MIDL_INTERFACE("2A88CF76-F494-4216-A7EF-DC74EEB83882")
6086     IDeckLinkInput : public IUnknown
6087     {
6088     public:
6089         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
6090             /* [in] */ BMDVideoConnection connection,
6091             /* [in] */ BMDDisplayMode requestedMode,
6092             /* [in] */ BMDPixelFormat requestedPixelFormat,
6093             /* [in] */ BMDSupportedVideoModeFlags flags,
6094             /* [out] */ BOOL *supported) = 0;
6095 
6096         virtual HRESULT STDMETHODCALLTYPE GetDisplayMode(
6097             /* [in] */ BMDDisplayMode displayMode,
6098             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
6099 
6100         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
6101             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
6102 
6103         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
6104             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
6105 
6106         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
6107             /* [in] */ BMDDisplayMode displayMode,
6108             /* [in] */ BMDPixelFormat pixelFormat,
6109             /* [in] */ BMDVideoInputFlags flags) = 0;
6110 
6111         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
6112 
6113         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
6114             /* [out] */ unsigned int *availableFrameCount) = 0;
6115 
6116         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator(
6117             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
6118 
6119         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
6120             /* [in] */ BMDAudioSampleRate sampleRate,
6121             /* [in] */ BMDAudioSampleType sampleType,
6122             /* [in] */ unsigned int channelCount) = 0;
6123 
6124         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
6125 
6126         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
6127             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
6128 
6129         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
6130 
6131         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
6132 
6133         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
6134 
6135         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
6136 
6137         virtual HRESULT STDMETHODCALLTYPE SetCallback(
6138             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
6139 
6140         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
6141             /* [in] */ BMDTimeScale desiredTimeScale,
6142             /* [out] */ BMDTimeValue *hardwareTime,
6143             /* [out] */ BMDTimeValue *timeInFrame,
6144             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
6145 
6146     };
6147 
6148 
6149 #else 	/* C style interface */
6150 
6151     typedef struct IDeckLinkInputVtbl
6152     {
6153         BEGIN_INTERFACE
6154 
6155         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6156             IDeckLinkInput * This,
6157             /* [in] */ REFIID riid,
6158             /* [annotation][iid_is][out] */
6159             _COM_Outptr_  void **ppvObject);
6160 
6161         ULONG ( STDMETHODCALLTYPE *AddRef )(
6162             IDeckLinkInput * This);
6163 
6164         ULONG ( STDMETHODCALLTYPE *Release )(
6165             IDeckLinkInput * This);
6166 
6167         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
6168             IDeckLinkInput * This,
6169             /* [in] */ BMDVideoConnection connection,
6170             /* [in] */ BMDDisplayMode requestedMode,
6171             /* [in] */ BMDPixelFormat requestedPixelFormat,
6172             /* [in] */ BMDSupportedVideoModeFlags flags,
6173             /* [out] */ BOOL *supported);
6174 
6175         HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )(
6176             IDeckLinkInput * This,
6177             /* [in] */ BMDDisplayMode displayMode,
6178             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
6179 
6180         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
6181             IDeckLinkInput * This,
6182             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
6183 
6184         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
6185             IDeckLinkInput * This,
6186             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
6187 
6188         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
6189             IDeckLinkInput * This,
6190             /* [in] */ BMDDisplayMode displayMode,
6191             /* [in] */ BMDPixelFormat pixelFormat,
6192             /* [in] */ BMDVideoInputFlags flags);
6193 
6194         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
6195             IDeckLinkInput * This);
6196 
6197         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
6198             IDeckLinkInput * This,
6199             /* [out] */ unsigned int *availableFrameCount);
6200 
6201         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )(
6202             IDeckLinkInput * This,
6203             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
6204 
6205         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
6206             IDeckLinkInput * This,
6207             /* [in] */ BMDAudioSampleRate sampleRate,
6208             /* [in] */ BMDAudioSampleType sampleType,
6209             /* [in] */ unsigned int channelCount);
6210 
6211         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
6212             IDeckLinkInput * This);
6213 
6214         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
6215             IDeckLinkInput * This,
6216             /* [out] */ unsigned int *availableSampleFrameCount);
6217 
6218         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
6219             IDeckLinkInput * This);
6220 
6221         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
6222             IDeckLinkInput * This);
6223 
6224         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
6225             IDeckLinkInput * This);
6226 
6227         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
6228             IDeckLinkInput * This);
6229 
6230         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
6231             IDeckLinkInput * This,
6232             /* [in] */ IDeckLinkInputCallback *theCallback);
6233 
6234         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
6235             IDeckLinkInput * This,
6236             /* [in] */ BMDTimeScale desiredTimeScale,
6237             /* [out] */ BMDTimeValue *hardwareTime,
6238             /* [out] */ BMDTimeValue *timeInFrame,
6239             /* [out] */ BMDTimeValue *ticksPerFrame);
6240 
6241         END_INTERFACE
6242     } IDeckLinkInputVtbl;
6243 
6244     interface IDeckLinkInput
6245     {
6246         CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;
6247     };
6248 
6249 
6250 
6251 #ifdef COBJMACROS
6252 
6253 
6254 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject)	\
6255     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6256 
6257 #define IDeckLinkInput_AddRef(This)	\
6258     ( (This)->lpVtbl -> AddRef(This) )
6259 
6260 #define IDeckLinkInput_Release(This)	\
6261     ( (This)->lpVtbl -> Release(This) )
6262 
6263 
6264 #define IDeckLinkInput_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,supported)	\
6265     ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,supported) )
6266 
6267 #define IDeckLinkInput_GetDisplayMode(This,displayMode,resultDisplayMode)	\
6268     ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) )
6269 
6270 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator)	\
6271     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
6272 
6273 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback)	\
6274     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
6275 
6276 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
6277     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
6278 
6279 #define IDeckLinkInput_DisableVideoInput(This)	\
6280     ( (This)->lpVtbl -> DisableVideoInput(This) )
6281 
6282 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount)	\
6283     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
6284 
6285 #define IDeckLinkInput_SetVideoInputFrameMemoryAllocator(This,theAllocator)	\
6286     ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) )
6287 
6288 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount)	\
6289     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
6290 
6291 #define IDeckLinkInput_DisableAudioInput(This)	\
6292     ( (This)->lpVtbl -> DisableAudioInput(This) )
6293 
6294 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
6295     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
6296 
6297 #define IDeckLinkInput_StartStreams(This)	\
6298     ( (This)->lpVtbl -> StartStreams(This) )
6299 
6300 #define IDeckLinkInput_StopStreams(This)	\
6301     ( (This)->lpVtbl -> StopStreams(This) )
6302 
6303 #define IDeckLinkInput_PauseStreams(This)	\
6304     ( (This)->lpVtbl -> PauseStreams(This) )
6305 
6306 #define IDeckLinkInput_FlushStreams(This)	\
6307     ( (This)->lpVtbl -> FlushStreams(This) )
6308 
6309 #define IDeckLinkInput_SetCallback(This,theCallback)	\
6310     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
6311 
6312 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
6313     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
6314 
6315 #endif /* COBJMACROS */
6316 
6317 
6318 #endif 	/* C style interface */
6319 
6320 
6321 
6322 
6323 #endif 	/* __IDeckLinkInput_INTERFACE_DEFINED__ */
6324 
6325 
6326 #ifndef __IDeckLinkHDMIInputEDID_INTERFACE_DEFINED__
6327 #define __IDeckLinkHDMIInputEDID_INTERFACE_DEFINED__
6328 
6329 /* interface IDeckLinkHDMIInputEDID */
6330 /* [helpstring][uuid][object] */
6331 
6332 
6333 EXTERN_C const IID IID_IDeckLinkHDMIInputEDID;
6334 
6335 #if defined(__cplusplus) && !defined(CINTERFACE)
6336 
6337     MIDL_INTERFACE("ABBBACBC-45BC-4665-9D92-ACE6E5A97902")
6338     IDeckLinkHDMIInputEDID : public IUnknown
6339     {
6340     public:
6341         virtual HRESULT STDMETHODCALLTYPE SetInt(
6342             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,
6343             /* [in] */ LONGLONG value) = 0;
6344 
6345         virtual HRESULT STDMETHODCALLTYPE GetInt(
6346             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,
6347             /* [out] */ LONGLONG *value) = 0;
6348 
6349         virtual HRESULT STDMETHODCALLTYPE WriteToEDID( void) = 0;
6350 
6351     };
6352 
6353 
6354 #else 	/* C style interface */
6355 
6356     typedef struct IDeckLinkHDMIInputEDIDVtbl
6357     {
6358         BEGIN_INTERFACE
6359 
6360         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6361             IDeckLinkHDMIInputEDID * This,
6362             /* [in] */ REFIID riid,
6363             /* [annotation][iid_is][out] */
6364             _COM_Outptr_  void **ppvObject);
6365 
6366         ULONG ( STDMETHODCALLTYPE *AddRef )(
6367             IDeckLinkHDMIInputEDID * This);
6368 
6369         ULONG ( STDMETHODCALLTYPE *Release )(
6370             IDeckLinkHDMIInputEDID * This);
6371 
6372         HRESULT ( STDMETHODCALLTYPE *SetInt )(
6373             IDeckLinkHDMIInputEDID * This,
6374             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,
6375             /* [in] */ LONGLONG value);
6376 
6377         HRESULT ( STDMETHODCALLTYPE *GetInt )(
6378             IDeckLinkHDMIInputEDID * This,
6379             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,
6380             /* [out] */ LONGLONG *value);
6381 
6382         HRESULT ( STDMETHODCALLTYPE *WriteToEDID )(
6383             IDeckLinkHDMIInputEDID * This);
6384 
6385         END_INTERFACE
6386     } IDeckLinkHDMIInputEDIDVtbl;
6387 
6388     interface IDeckLinkHDMIInputEDID
6389     {
6390         CONST_VTBL struct IDeckLinkHDMIInputEDIDVtbl *lpVtbl;
6391     };
6392 
6393 
6394 
6395 #ifdef COBJMACROS
6396 
6397 
6398 #define IDeckLinkHDMIInputEDID_QueryInterface(This,riid,ppvObject)	\
6399     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6400 
6401 #define IDeckLinkHDMIInputEDID_AddRef(This)	\
6402     ( (This)->lpVtbl -> AddRef(This) )
6403 
6404 #define IDeckLinkHDMIInputEDID_Release(This)	\
6405     ( (This)->lpVtbl -> Release(This) )
6406 
6407 
6408 #define IDeckLinkHDMIInputEDID_SetInt(This,cfgID,value)	\
6409     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
6410 
6411 #define IDeckLinkHDMIInputEDID_GetInt(This,cfgID,value)	\
6412     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
6413 
6414 #define IDeckLinkHDMIInputEDID_WriteToEDID(This)	\
6415     ( (This)->lpVtbl -> WriteToEDID(This) )
6416 
6417 #endif /* COBJMACROS */
6418 
6419 
6420 #endif 	/* C style interface */
6421 
6422 
6423 
6424 
6425 #endif 	/* __IDeckLinkHDMIInputEDID_INTERFACE_DEFINED__ */
6426 
6427 
6428 #ifndef __IDeckLinkEncoderInput_INTERFACE_DEFINED__
6429 #define __IDeckLinkEncoderInput_INTERFACE_DEFINED__
6430 
6431 /* interface IDeckLinkEncoderInput */
6432 /* [helpstring][uuid][object] */
6433 
6434 
6435 EXTERN_C const IID IID_IDeckLinkEncoderInput;
6436 
6437 #if defined(__cplusplus) && !defined(CINTERFACE)
6438 
6439     MIDL_INTERFACE("F222551D-13DF-4FD8-B587-9D4F19EC12C9")
6440     IDeckLinkEncoderInput : public IUnknown
6441     {
6442     public:
6443         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
6444             /* [in] */ BMDVideoConnection connection,
6445             /* [in] */ BMDDisplayMode requestedMode,
6446             /* [in] */ BMDPixelFormat requestedCodec,
6447             /* [in] */ unsigned int requestedCodecProfile,
6448             /* [in] */ BMDSupportedVideoModeFlags flags,
6449             /* [out] */ BOOL *supported) = 0;
6450 
6451         virtual HRESULT STDMETHODCALLTYPE GetDisplayMode(
6452             /* [in] */ BMDDisplayMode displayMode,
6453             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
6454 
6455         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
6456             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
6457 
6458         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
6459             /* [in] */ BMDDisplayMode displayMode,
6460             /* [in] */ BMDPixelFormat pixelFormat,
6461             /* [in] */ BMDVideoInputFlags flags) = 0;
6462 
6463         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
6464 
6465         virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount(
6466             /* [out] */ unsigned int *availablePacketsCount) = 0;
6467 
6468         virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator(
6469             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
6470 
6471         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
6472             /* [in] */ BMDAudioFormat audioFormat,
6473             /* [in] */ BMDAudioSampleRate sampleRate,
6474             /* [in] */ BMDAudioSampleType sampleType,
6475             /* [in] */ unsigned int channelCount) = 0;
6476 
6477         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
6478 
6479         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
6480             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
6481 
6482         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
6483 
6484         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
6485 
6486         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
6487 
6488         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
6489 
6490         virtual HRESULT STDMETHODCALLTYPE SetCallback(
6491             /* [in] */ IDeckLinkEncoderInputCallback *theCallback) = 0;
6492 
6493         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
6494             /* [in] */ BMDTimeScale desiredTimeScale,
6495             /* [out] */ BMDTimeValue *hardwareTime,
6496             /* [out] */ BMDTimeValue *timeInFrame,
6497             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
6498 
6499     };
6500 
6501 
6502 #else 	/* C style interface */
6503 
6504     typedef struct IDeckLinkEncoderInputVtbl
6505     {
6506         BEGIN_INTERFACE
6507 
6508         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6509             IDeckLinkEncoderInput * This,
6510             /* [in] */ REFIID riid,
6511             /* [annotation][iid_is][out] */
6512             _COM_Outptr_  void **ppvObject);
6513 
6514         ULONG ( STDMETHODCALLTYPE *AddRef )(
6515             IDeckLinkEncoderInput * This);
6516 
6517         ULONG ( STDMETHODCALLTYPE *Release )(
6518             IDeckLinkEncoderInput * This);
6519 
6520         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
6521             IDeckLinkEncoderInput * This,
6522             /* [in] */ BMDVideoConnection connection,
6523             /* [in] */ BMDDisplayMode requestedMode,
6524             /* [in] */ BMDPixelFormat requestedCodec,
6525             /* [in] */ unsigned int requestedCodecProfile,
6526             /* [in] */ BMDSupportedVideoModeFlags flags,
6527             /* [out] */ BOOL *supported);
6528 
6529         HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )(
6530             IDeckLinkEncoderInput * This,
6531             /* [in] */ BMDDisplayMode displayMode,
6532             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
6533 
6534         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
6535             IDeckLinkEncoderInput * This,
6536             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
6537 
6538         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
6539             IDeckLinkEncoderInput * This,
6540             /* [in] */ BMDDisplayMode displayMode,
6541             /* [in] */ BMDPixelFormat pixelFormat,
6542             /* [in] */ BMDVideoInputFlags flags);
6543 
6544         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
6545             IDeckLinkEncoderInput * This);
6546 
6547         HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )(
6548             IDeckLinkEncoderInput * This,
6549             /* [out] */ unsigned int *availablePacketsCount);
6550 
6551         HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )(
6552             IDeckLinkEncoderInput * This,
6553             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
6554 
6555         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
6556             IDeckLinkEncoderInput * This,
6557             /* [in] */ BMDAudioFormat audioFormat,
6558             /* [in] */ BMDAudioSampleRate sampleRate,
6559             /* [in] */ BMDAudioSampleType sampleType,
6560             /* [in] */ unsigned int channelCount);
6561 
6562         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
6563             IDeckLinkEncoderInput * This);
6564 
6565         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
6566             IDeckLinkEncoderInput * This,
6567             /* [out] */ unsigned int *availableSampleFrameCount);
6568 
6569         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
6570             IDeckLinkEncoderInput * This);
6571 
6572         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
6573             IDeckLinkEncoderInput * This);
6574 
6575         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
6576             IDeckLinkEncoderInput * This);
6577 
6578         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
6579             IDeckLinkEncoderInput * This);
6580 
6581         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
6582             IDeckLinkEncoderInput * This,
6583             /* [in] */ IDeckLinkEncoderInputCallback *theCallback);
6584 
6585         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
6586             IDeckLinkEncoderInput * This,
6587             /* [in] */ BMDTimeScale desiredTimeScale,
6588             /* [out] */ BMDTimeValue *hardwareTime,
6589             /* [out] */ BMDTimeValue *timeInFrame,
6590             /* [out] */ BMDTimeValue *ticksPerFrame);
6591 
6592         END_INTERFACE
6593     } IDeckLinkEncoderInputVtbl;
6594 
6595     interface IDeckLinkEncoderInput
6596     {
6597         CONST_VTBL struct IDeckLinkEncoderInputVtbl *lpVtbl;
6598     };
6599 
6600 
6601 
6602 #ifdef COBJMACROS
6603 
6604 
6605 #define IDeckLinkEncoderInput_QueryInterface(This,riid,ppvObject)	\
6606     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6607 
6608 #define IDeckLinkEncoderInput_AddRef(This)	\
6609     ( (This)->lpVtbl -> AddRef(This) )
6610 
6611 #define IDeckLinkEncoderInput_Release(This)	\
6612     ( (This)->lpVtbl -> Release(This) )
6613 
6614 
6615 #define IDeckLinkEncoderInput_DoesSupportVideoMode(This,connection,requestedMode,requestedCodec,requestedCodecProfile,flags,supported)	\
6616     ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedCodec,requestedCodecProfile,flags,supported) )
6617 
6618 #define IDeckLinkEncoderInput_GetDisplayMode(This,displayMode,resultDisplayMode)	\
6619     ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) )
6620 
6621 #define IDeckLinkEncoderInput_GetDisplayModeIterator(This,iterator)	\
6622     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
6623 
6624 #define IDeckLinkEncoderInput_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
6625     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
6626 
6627 #define IDeckLinkEncoderInput_DisableVideoInput(This)	\
6628     ( (This)->lpVtbl -> DisableVideoInput(This) )
6629 
6630 #define IDeckLinkEncoderInput_GetAvailablePacketsCount(This,availablePacketsCount)	\
6631     ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) )
6632 
6633 #define IDeckLinkEncoderInput_SetMemoryAllocator(This,theAllocator)	\
6634     ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) )
6635 
6636 #define IDeckLinkEncoderInput_EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount)	\
6637     ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) )
6638 
6639 #define IDeckLinkEncoderInput_DisableAudioInput(This)	\
6640     ( (This)->lpVtbl -> DisableAudioInput(This) )
6641 
6642 #define IDeckLinkEncoderInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
6643     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
6644 
6645 #define IDeckLinkEncoderInput_StartStreams(This)	\
6646     ( (This)->lpVtbl -> StartStreams(This) )
6647 
6648 #define IDeckLinkEncoderInput_StopStreams(This)	\
6649     ( (This)->lpVtbl -> StopStreams(This) )
6650 
6651 #define IDeckLinkEncoderInput_PauseStreams(This)	\
6652     ( (This)->lpVtbl -> PauseStreams(This) )
6653 
6654 #define IDeckLinkEncoderInput_FlushStreams(This)	\
6655     ( (This)->lpVtbl -> FlushStreams(This) )
6656 
6657 #define IDeckLinkEncoderInput_SetCallback(This,theCallback)	\
6658     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
6659 
6660 #define IDeckLinkEncoderInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
6661     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
6662 
6663 #endif /* COBJMACROS */
6664 
6665 
6666 #endif 	/* C style interface */
6667 
6668 
6669 
6670 
6671 #endif 	/* __IDeckLinkEncoderInput_INTERFACE_DEFINED__ */
6672 
6673 
6674 #ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__
6675 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__
6676 
6677 /* interface IDeckLinkVideoFrame */
6678 /* [helpstring][local][uuid][object] */
6679 
6680 
6681 EXTERN_C const IID IID_IDeckLinkVideoFrame;
6682 
6683 #if defined(__cplusplus) && !defined(CINTERFACE)
6684 
6685     MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")
6686     IDeckLinkVideoFrame : public IUnknown
6687     {
6688     public:
6689         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
6690 
6691         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
6692 
6693         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
6694 
6695         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
6696 
6697         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
6698 
6699         virtual HRESULT STDMETHODCALLTYPE GetBytes(
6700             /* [out] */ void **buffer) = 0;
6701 
6702         virtual HRESULT STDMETHODCALLTYPE GetTimecode(
6703             /* [in] */ BMDTimecodeFormat format,
6704             /* [out] */ IDeckLinkTimecode **timecode) = 0;
6705 
6706         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
6707             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
6708 
6709     };
6710 
6711 
6712 #else 	/* C style interface */
6713 
6714     typedef struct IDeckLinkVideoFrameVtbl
6715     {
6716         BEGIN_INTERFACE
6717 
6718         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6719             IDeckLinkVideoFrame * This,
6720             /* [in] */ REFIID riid,
6721             /* [annotation][iid_is][out] */
6722             _COM_Outptr_  void **ppvObject);
6723 
6724         ULONG ( STDMETHODCALLTYPE *AddRef )(
6725             IDeckLinkVideoFrame * This);
6726 
6727         ULONG ( STDMETHODCALLTYPE *Release )(
6728             IDeckLinkVideoFrame * This);
6729 
6730         long ( STDMETHODCALLTYPE *GetWidth )(
6731             IDeckLinkVideoFrame * This);
6732 
6733         long ( STDMETHODCALLTYPE *GetHeight )(
6734             IDeckLinkVideoFrame * This);
6735 
6736         long ( STDMETHODCALLTYPE *GetRowBytes )(
6737             IDeckLinkVideoFrame * This);
6738 
6739         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
6740             IDeckLinkVideoFrame * This);
6741 
6742         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
6743             IDeckLinkVideoFrame * This);
6744 
6745         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
6746             IDeckLinkVideoFrame * This,
6747             /* [out] */ void **buffer);
6748 
6749         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
6750             IDeckLinkVideoFrame * This,
6751             /* [in] */ BMDTimecodeFormat format,
6752             /* [out] */ IDeckLinkTimecode **timecode);
6753 
6754         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
6755             IDeckLinkVideoFrame * This,
6756             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
6757 
6758         END_INTERFACE
6759     } IDeckLinkVideoFrameVtbl;
6760 
6761     interface IDeckLinkVideoFrame
6762     {
6763         CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;
6764     };
6765 
6766 
6767 
6768 #ifdef COBJMACROS
6769 
6770 
6771 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject)	\
6772     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6773 
6774 #define IDeckLinkVideoFrame_AddRef(This)	\
6775     ( (This)->lpVtbl -> AddRef(This) )
6776 
6777 #define IDeckLinkVideoFrame_Release(This)	\
6778     ( (This)->lpVtbl -> Release(This) )
6779 
6780 
6781 #define IDeckLinkVideoFrame_GetWidth(This)	\
6782     ( (This)->lpVtbl -> GetWidth(This) )
6783 
6784 #define IDeckLinkVideoFrame_GetHeight(This)	\
6785     ( (This)->lpVtbl -> GetHeight(This) )
6786 
6787 #define IDeckLinkVideoFrame_GetRowBytes(This)	\
6788     ( (This)->lpVtbl -> GetRowBytes(This) )
6789 
6790 #define IDeckLinkVideoFrame_GetPixelFormat(This)	\
6791     ( (This)->lpVtbl -> GetPixelFormat(This) )
6792 
6793 #define IDeckLinkVideoFrame_GetFlags(This)	\
6794     ( (This)->lpVtbl -> GetFlags(This) )
6795 
6796 #define IDeckLinkVideoFrame_GetBytes(This,buffer)	\
6797     ( (This)->lpVtbl -> GetBytes(This,buffer) )
6798 
6799 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)	\
6800     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
6801 
6802 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)	\
6803     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
6804 
6805 #endif /* COBJMACROS */
6806 
6807 
6808 #endif 	/* C style interface */
6809 
6810 
6811 
6812 
6813 #endif 	/* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */
6814 
6815 
6816 #ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
6817 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
6818 
6819 /* interface IDeckLinkMutableVideoFrame */
6820 /* [helpstring][local][uuid][object] */
6821 
6822 
6823 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
6824 
6825 #if defined(__cplusplus) && !defined(CINTERFACE)
6826 
6827     MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")
6828     IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame
6829     {
6830     public:
6831         virtual HRESULT STDMETHODCALLTYPE SetFlags(
6832             /* [in] */ BMDFrameFlags newFlags) = 0;
6833 
6834         virtual HRESULT STDMETHODCALLTYPE SetTimecode(
6835             /* [in] */ BMDTimecodeFormat format,
6836             /* [in] */ IDeckLinkTimecode *timecode) = 0;
6837 
6838         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(
6839             /* [in] */ BMDTimecodeFormat format,
6840             /* [in] */ unsigned char hours,
6841             /* [in] */ unsigned char minutes,
6842             /* [in] */ unsigned char seconds,
6843             /* [in] */ unsigned char frames,
6844             /* [in] */ BMDTimecodeFlags flags) = 0;
6845 
6846         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(
6847             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
6848 
6849         virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits(
6850             /* [in] */ BMDTimecodeFormat format,
6851             /* [in] */ BMDTimecodeUserBits userBits) = 0;
6852 
6853     };
6854 
6855 
6856 #else 	/* C style interface */
6857 
6858     typedef struct IDeckLinkMutableVideoFrameVtbl
6859     {
6860         BEGIN_INTERFACE
6861 
6862         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6863             IDeckLinkMutableVideoFrame * This,
6864             /* [in] */ REFIID riid,
6865             /* [annotation][iid_is][out] */
6866             _COM_Outptr_  void **ppvObject);
6867 
6868         ULONG ( STDMETHODCALLTYPE *AddRef )(
6869             IDeckLinkMutableVideoFrame * This);
6870 
6871         ULONG ( STDMETHODCALLTYPE *Release )(
6872             IDeckLinkMutableVideoFrame * This);
6873 
6874         long ( STDMETHODCALLTYPE *GetWidth )(
6875             IDeckLinkMutableVideoFrame * This);
6876 
6877         long ( STDMETHODCALLTYPE *GetHeight )(
6878             IDeckLinkMutableVideoFrame * This);
6879 
6880         long ( STDMETHODCALLTYPE *GetRowBytes )(
6881             IDeckLinkMutableVideoFrame * This);
6882 
6883         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
6884             IDeckLinkMutableVideoFrame * This);
6885 
6886         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
6887             IDeckLinkMutableVideoFrame * This);
6888 
6889         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
6890             IDeckLinkMutableVideoFrame * This,
6891             /* [out] */ void **buffer);
6892 
6893         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
6894             IDeckLinkMutableVideoFrame * This,
6895             /* [in] */ BMDTimecodeFormat format,
6896             /* [out] */ IDeckLinkTimecode **timecode);
6897 
6898         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
6899             IDeckLinkMutableVideoFrame * This,
6900             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
6901 
6902         HRESULT ( STDMETHODCALLTYPE *SetFlags )(
6903             IDeckLinkMutableVideoFrame * This,
6904             /* [in] */ BMDFrameFlags newFlags);
6905 
6906         HRESULT ( STDMETHODCALLTYPE *SetTimecode )(
6907             IDeckLinkMutableVideoFrame * This,
6908             /* [in] */ BMDTimecodeFormat format,
6909             /* [in] */ IDeckLinkTimecode *timecode);
6910 
6911         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(
6912             IDeckLinkMutableVideoFrame * This,
6913             /* [in] */ BMDTimecodeFormat format,
6914             /* [in] */ unsigned char hours,
6915             /* [in] */ unsigned char minutes,
6916             /* [in] */ unsigned char seconds,
6917             /* [in] */ unsigned char frames,
6918             /* [in] */ BMDTimecodeFlags flags);
6919 
6920         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(
6921             IDeckLinkMutableVideoFrame * This,
6922             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
6923 
6924         HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )(
6925             IDeckLinkMutableVideoFrame * This,
6926             /* [in] */ BMDTimecodeFormat format,
6927             /* [in] */ BMDTimecodeUserBits userBits);
6928 
6929         END_INTERFACE
6930     } IDeckLinkMutableVideoFrameVtbl;
6931 
6932     interface IDeckLinkMutableVideoFrame
6933     {
6934         CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;
6935     };
6936 
6937 
6938 
6939 #ifdef COBJMACROS
6940 
6941 
6942 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject)	\
6943     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6944 
6945 #define IDeckLinkMutableVideoFrame_AddRef(This)	\
6946     ( (This)->lpVtbl -> AddRef(This) )
6947 
6948 #define IDeckLinkMutableVideoFrame_Release(This)	\
6949     ( (This)->lpVtbl -> Release(This) )
6950 
6951 
6952 #define IDeckLinkMutableVideoFrame_GetWidth(This)	\
6953     ( (This)->lpVtbl -> GetWidth(This) )
6954 
6955 #define IDeckLinkMutableVideoFrame_GetHeight(This)	\
6956     ( (This)->lpVtbl -> GetHeight(This) )
6957 
6958 #define IDeckLinkMutableVideoFrame_GetRowBytes(This)	\
6959     ( (This)->lpVtbl -> GetRowBytes(This) )
6960 
6961 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This)	\
6962     ( (This)->lpVtbl -> GetPixelFormat(This) )
6963 
6964 #define IDeckLinkMutableVideoFrame_GetFlags(This)	\
6965     ( (This)->lpVtbl -> GetFlags(This) )
6966 
6967 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer)	\
6968     ( (This)->lpVtbl -> GetBytes(This,buffer) )
6969 
6970 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode)	\
6971     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
6972 
6973 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary)	\
6974     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
6975 
6976 
6977 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags)	\
6978     ( (This)->lpVtbl -> SetFlags(This,newFlags) )
6979 
6980 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode)	\
6981     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )
6982 
6983 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)	\
6984     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )
6985 
6986 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary)	\
6987     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )
6988 
6989 #define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits)	\
6990     ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) )
6991 
6992 #endif /* COBJMACROS */
6993 
6994 
6995 #endif 	/* C style interface */
6996 
6997 
6998 
6999 
7000 #endif 	/* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */
7001 
7002 
7003 #ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
7004 #define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
7005 
7006 /* interface IDeckLinkVideoFrame3DExtensions */
7007 /* [helpstring][local][uuid][object] */
7008 
7009 
7010 EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
7011 
7012 #if defined(__cplusplus) && !defined(CINTERFACE)
7013 
7014     MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")
7015     IDeckLinkVideoFrame3DExtensions : public IUnknown
7016     {
7017     public:
7018         virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;
7019 
7020         virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye(
7021             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;
7022 
7023     };
7024 
7025 
7026 #else 	/* C style interface */
7027 
7028     typedef struct IDeckLinkVideoFrame3DExtensionsVtbl
7029     {
7030         BEGIN_INTERFACE
7031 
7032         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7033             IDeckLinkVideoFrame3DExtensions * This,
7034             /* [in] */ REFIID riid,
7035             /* [annotation][iid_is][out] */
7036             _COM_Outptr_  void **ppvObject);
7037 
7038         ULONG ( STDMETHODCALLTYPE *AddRef )(
7039             IDeckLinkVideoFrame3DExtensions * This);
7040 
7041         ULONG ( STDMETHODCALLTYPE *Release )(
7042             IDeckLinkVideoFrame3DExtensions * This);
7043 
7044         BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )(
7045             IDeckLinkVideoFrame3DExtensions * This);
7046 
7047         HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )(
7048             IDeckLinkVideoFrame3DExtensions * This,
7049             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);
7050 
7051         END_INTERFACE
7052     } IDeckLinkVideoFrame3DExtensionsVtbl;
7053 
7054     interface IDeckLinkVideoFrame3DExtensions
7055     {
7056         CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;
7057     };
7058 
7059 
7060 
7061 #ifdef COBJMACROS
7062 
7063 
7064 #define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject)	\
7065     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7066 
7067 #define IDeckLinkVideoFrame3DExtensions_AddRef(This)	\
7068     ( (This)->lpVtbl -> AddRef(This) )
7069 
7070 #define IDeckLinkVideoFrame3DExtensions_Release(This)	\
7071     ( (This)->lpVtbl -> Release(This) )
7072 
7073 
7074 #define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This)	\
7075     ( (This)->lpVtbl -> Get3DPackingFormat(This) )
7076 
7077 #define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame)	\
7078     ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) )
7079 
7080 #endif /* COBJMACROS */
7081 
7082 
7083 #endif 	/* C style interface */
7084 
7085 
7086 
7087 
7088 #endif 	/* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */
7089 
7090 
7091 #ifndef __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__
7092 #define __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__
7093 
7094 /* interface IDeckLinkVideoFrameMetadataExtensions */
7095 /* [helpstring][local][uuid][object] */
7096 
7097 
7098 EXTERN_C const IID IID_IDeckLinkVideoFrameMetadataExtensions;
7099 
7100 #if defined(__cplusplus) && !defined(CINTERFACE)
7101 
7102     MIDL_INTERFACE("D5973DC9-6432-46D0-8F0B-2496F8A1238F")
7103     IDeckLinkVideoFrameMetadataExtensions : public IUnknown
7104     {
7105     public:
7106         virtual HRESULT STDMETHODCALLTYPE GetInt(
7107             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7108             /* [out] */ LONGLONG *value) = 0;
7109 
7110         virtual HRESULT STDMETHODCALLTYPE GetFloat(
7111             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7112             /* [out] */ double *value) = 0;
7113 
7114         virtual HRESULT STDMETHODCALLTYPE GetFlag(
7115             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7116             /* [out] */ BOOL *value) = 0;
7117 
7118         virtual HRESULT STDMETHODCALLTYPE GetString(
7119             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7120             /* [out] */ BSTR *value) = 0;
7121 
7122     };
7123 
7124 
7125 #else 	/* C style interface */
7126 
7127     typedef struct IDeckLinkVideoFrameMetadataExtensionsVtbl
7128     {
7129         BEGIN_INTERFACE
7130 
7131         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7132             IDeckLinkVideoFrameMetadataExtensions * This,
7133             /* [in] */ REFIID riid,
7134             /* [annotation][iid_is][out] */
7135             _COM_Outptr_  void **ppvObject);
7136 
7137         ULONG ( STDMETHODCALLTYPE *AddRef )(
7138             IDeckLinkVideoFrameMetadataExtensions * This);
7139 
7140         ULONG ( STDMETHODCALLTYPE *Release )(
7141             IDeckLinkVideoFrameMetadataExtensions * This);
7142 
7143         HRESULT ( STDMETHODCALLTYPE *GetInt )(
7144             IDeckLinkVideoFrameMetadataExtensions * This,
7145             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7146             /* [out] */ LONGLONG *value);
7147 
7148         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
7149             IDeckLinkVideoFrameMetadataExtensions * This,
7150             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7151             /* [out] */ double *value);
7152 
7153         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
7154             IDeckLinkVideoFrameMetadataExtensions * This,
7155             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7156             /* [out] */ BOOL *value);
7157 
7158         HRESULT ( STDMETHODCALLTYPE *GetString )(
7159             IDeckLinkVideoFrameMetadataExtensions * This,
7160             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,
7161             /* [out] */ BSTR *value);
7162 
7163         END_INTERFACE
7164     } IDeckLinkVideoFrameMetadataExtensionsVtbl;
7165 
7166     interface IDeckLinkVideoFrameMetadataExtensions
7167     {
7168         CONST_VTBL struct IDeckLinkVideoFrameMetadataExtensionsVtbl *lpVtbl;
7169     };
7170 
7171 
7172 
7173 #ifdef COBJMACROS
7174 
7175 
7176 #define IDeckLinkVideoFrameMetadataExtensions_QueryInterface(This,riid,ppvObject)	\
7177     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7178 
7179 #define IDeckLinkVideoFrameMetadataExtensions_AddRef(This)	\
7180     ( (This)->lpVtbl -> AddRef(This) )
7181 
7182 #define IDeckLinkVideoFrameMetadataExtensions_Release(This)	\
7183     ( (This)->lpVtbl -> Release(This) )
7184 
7185 
7186 #define IDeckLinkVideoFrameMetadataExtensions_GetInt(This,metadataID,value)	\
7187     ( (This)->lpVtbl -> GetInt(This,metadataID,value) )
7188 
7189 #define IDeckLinkVideoFrameMetadataExtensions_GetFloat(This,metadataID,value)	\
7190     ( (This)->lpVtbl -> GetFloat(This,metadataID,value) )
7191 
7192 #define IDeckLinkVideoFrameMetadataExtensions_GetFlag(This,metadataID,value)	\
7193     ( (This)->lpVtbl -> GetFlag(This,metadataID,value) )
7194 
7195 #define IDeckLinkVideoFrameMetadataExtensions_GetString(This,metadataID,value)	\
7196     ( (This)->lpVtbl -> GetString(This,metadataID,value) )
7197 
7198 #endif /* COBJMACROS */
7199 
7200 
7201 #endif 	/* C style interface */
7202 
7203 
7204 
7205 
7206 #endif 	/* __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__ */
7207 
7208 
7209 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
7210 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
7211 
7212 /* interface IDeckLinkVideoInputFrame */
7213 /* [helpstring][local][uuid][object] */
7214 
7215 
7216 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;
7217 
7218 #if defined(__cplusplus) && !defined(CINTERFACE)
7219 
7220     MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")
7221     IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame
7222     {
7223     public:
7224         virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
7225             /* [out] */ BMDTimeValue *frameTime,
7226             /* [out] */ BMDTimeValue *frameDuration,
7227             /* [in] */ BMDTimeScale timeScale) = 0;
7228 
7229         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
7230             /* [in] */ BMDTimeScale timeScale,
7231             /* [out] */ BMDTimeValue *frameTime,
7232             /* [out] */ BMDTimeValue *frameDuration) = 0;
7233 
7234     };
7235 
7236 
7237 #else 	/* C style interface */
7238 
7239     typedef struct IDeckLinkVideoInputFrameVtbl
7240     {
7241         BEGIN_INTERFACE
7242 
7243         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7244             IDeckLinkVideoInputFrame * This,
7245             /* [in] */ REFIID riid,
7246             /* [annotation][iid_is][out] */
7247             _COM_Outptr_  void **ppvObject);
7248 
7249         ULONG ( STDMETHODCALLTYPE *AddRef )(
7250             IDeckLinkVideoInputFrame * This);
7251 
7252         ULONG ( STDMETHODCALLTYPE *Release )(
7253             IDeckLinkVideoInputFrame * This);
7254 
7255         long ( STDMETHODCALLTYPE *GetWidth )(
7256             IDeckLinkVideoInputFrame * This);
7257 
7258         long ( STDMETHODCALLTYPE *GetHeight )(
7259             IDeckLinkVideoInputFrame * This);
7260 
7261         long ( STDMETHODCALLTYPE *GetRowBytes )(
7262             IDeckLinkVideoInputFrame * This);
7263 
7264         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
7265             IDeckLinkVideoInputFrame * This);
7266 
7267         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
7268             IDeckLinkVideoInputFrame * This);
7269 
7270         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7271             IDeckLinkVideoInputFrame * This,
7272             /* [out] */ void **buffer);
7273 
7274         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
7275             IDeckLinkVideoInputFrame * This,
7276             /* [in] */ BMDTimecodeFormat format,
7277             /* [out] */ IDeckLinkTimecode **timecode);
7278 
7279         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
7280             IDeckLinkVideoInputFrame * This,
7281             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
7282 
7283         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
7284             IDeckLinkVideoInputFrame * This,
7285             /* [out] */ BMDTimeValue *frameTime,
7286             /* [out] */ BMDTimeValue *frameDuration,
7287             /* [in] */ BMDTimeScale timeScale);
7288 
7289         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
7290             IDeckLinkVideoInputFrame * This,
7291             /* [in] */ BMDTimeScale timeScale,
7292             /* [out] */ BMDTimeValue *frameTime,
7293             /* [out] */ BMDTimeValue *frameDuration);
7294 
7295         END_INTERFACE
7296     } IDeckLinkVideoInputFrameVtbl;
7297 
7298     interface IDeckLinkVideoInputFrame
7299     {
7300         CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;
7301     };
7302 
7303 
7304 
7305 #ifdef COBJMACROS
7306 
7307 
7308 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject)	\
7309     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7310 
7311 #define IDeckLinkVideoInputFrame_AddRef(This)	\
7312     ( (This)->lpVtbl -> AddRef(This) )
7313 
7314 #define IDeckLinkVideoInputFrame_Release(This)	\
7315     ( (This)->lpVtbl -> Release(This) )
7316 
7317 
7318 #define IDeckLinkVideoInputFrame_GetWidth(This)	\
7319     ( (This)->lpVtbl -> GetWidth(This) )
7320 
7321 #define IDeckLinkVideoInputFrame_GetHeight(This)	\
7322     ( (This)->lpVtbl -> GetHeight(This) )
7323 
7324 #define IDeckLinkVideoInputFrame_GetRowBytes(This)	\
7325     ( (This)->lpVtbl -> GetRowBytes(This) )
7326 
7327 #define IDeckLinkVideoInputFrame_GetPixelFormat(This)	\
7328     ( (This)->lpVtbl -> GetPixelFormat(This) )
7329 
7330 #define IDeckLinkVideoInputFrame_GetFlags(This)	\
7331     ( (This)->lpVtbl -> GetFlags(This) )
7332 
7333 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer)	\
7334     ( (This)->lpVtbl -> GetBytes(This,buffer) )
7335 
7336 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode)	\
7337     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
7338 
7339 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary)	\
7340     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
7341 
7342 
7343 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale)	\
7344     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
7345 
7346 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)	\
7347     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
7348 
7349 #endif /* COBJMACROS */
7350 
7351 
7352 #endif 	/* C style interface */
7353 
7354 
7355 
7356 
7357 #endif 	/* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */
7358 
7359 
7360 #ifndef __IDeckLinkAncillaryPacket_INTERFACE_DEFINED__
7361 #define __IDeckLinkAncillaryPacket_INTERFACE_DEFINED__
7362 
7363 /* interface IDeckLinkAncillaryPacket */
7364 /* [helpstring][uuid][object] */
7365 
7366 
7367 EXTERN_C const IID IID_IDeckLinkAncillaryPacket;
7368 
7369 #if defined(__cplusplus) && !defined(CINTERFACE)
7370 
7371     MIDL_INTERFACE("CC5BBF7E-029C-4D3B-9158-6000EF5E3670")
7372     IDeckLinkAncillaryPacket : public IUnknown
7373     {
7374     public:
7375         virtual HRESULT STDMETHODCALLTYPE GetBytes(
7376             /* [in] */ BMDAncillaryPacketFormat format,
7377             /* [out] */ const void **data,
7378             /* [out] */ unsigned int *size) = 0;
7379 
7380         virtual unsigned char STDMETHODCALLTYPE GetDID( void) = 0;
7381 
7382         virtual unsigned char STDMETHODCALLTYPE GetSDID( void) = 0;
7383 
7384         virtual unsigned int STDMETHODCALLTYPE GetLineNumber( void) = 0;
7385 
7386         virtual unsigned char STDMETHODCALLTYPE GetDataStreamIndex( void) = 0;
7387 
7388     };
7389 
7390 
7391 #else 	/* C style interface */
7392 
7393     typedef struct IDeckLinkAncillaryPacketVtbl
7394     {
7395         BEGIN_INTERFACE
7396 
7397         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7398             IDeckLinkAncillaryPacket * This,
7399             /* [in] */ REFIID riid,
7400             /* [annotation][iid_is][out] */
7401             _COM_Outptr_  void **ppvObject);
7402 
7403         ULONG ( STDMETHODCALLTYPE *AddRef )(
7404             IDeckLinkAncillaryPacket * This);
7405 
7406         ULONG ( STDMETHODCALLTYPE *Release )(
7407             IDeckLinkAncillaryPacket * This);
7408 
7409         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7410             IDeckLinkAncillaryPacket * This,
7411             /* [in] */ BMDAncillaryPacketFormat format,
7412             /* [out] */ const void **data,
7413             /* [out] */ unsigned int *size);
7414 
7415         unsigned char ( STDMETHODCALLTYPE *GetDID )(
7416             IDeckLinkAncillaryPacket * This);
7417 
7418         unsigned char ( STDMETHODCALLTYPE *GetSDID )(
7419             IDeckLinkAncillaryPacket * This);
7420 
7421         unsigned int ( STDMETHODCALLTYPE *GetLineNumber )(
7422             IDeckLinkAncillaryPacket * This);
7423 
7424         unsigned char ( STDMETHODCALLTYPE *GetDataStreamIndex )(
7425             IDeckLinkAncillaryPacket * This);
7426 
7427         END_INTERFACE
7428     } IDeckLinkAncillaryPacketVtbl;
7429 
7430     interface IDeckLinkAncillaryPacket
7431     {
7432         CONST_VTBL struct IDeckLinkAncillaryPacketVtbl *lpVtbl;
7433     };
7434 
7435 
7436 
7437 #ifdef COBJMACROS
7438 
7439 
7440 #define IDeckLinkAncillaryPacket_QueryInterface(This,riid,ppvObject)	\
7441     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7442 
7443 #define IDeckLinkAncillaryPacket_AddRef(This)	\
7444     ( (This)->lpVtbl -> AddRef(This) )
7445 
7446 #define IDeckLinkAncillaryPacket_Release(This)	\
7447     ( (This)->lpVtbl -> Release(This) )
7448 
7449 
7450 #define IDeckLinkAncillaryPacket_GetBytes(This,format,data,size)	\
7451     ( (This)->lpVtbl -> GetBytes(This,format,data,size) )
7452 
7453 #define IDeckLinkAncillaryPacket_GetDID(This)	\
7454     ( (This)->lpVtbl -> GetDID(This) )
7455 
7456 #define IDeckLinkAncillaryPacket_GetSDID(This)	\
7457     ( (This)->lpVtbl -> GetSDID(This) )
7458 
7459 #define IDeckLinkAncillaryPacket_GetLineNumber(This)	\
7460     ( (This)->lpVtbl -> GetLineNumber(This) )
7461 
7462 #define IDeckLinkAncillaryPacket_GetDataStreamIndex(This)	\
7463     ( (This)->lpVtbl -> GetDataStreamIndex(This) )
7464 
7465 #endif /* COBJMACROS */
7466 
7467 
7468 #endif 	/* C style interface */
7469 
7470 
7471 
7472 
7473 #endif 	/* __IDeckLinkAncillaryPacket_INTERFACE_DEFINED__ */
7474 
7475 
7476 #ifndef __IDeckLinkAncillaryPacketIterator_INTERFACE_DEFINED__
7477 #define __IDeckLinkAncillaryPacketIterator_INTERFACE_DEFINED__
7478 
7479 /* interface IDeckLinkAncillaryPacketIterator */
7480 /* [helpstring][uuid][object] */
7481 
7482 
7483 EXTERN_C const IID IID_IDeckLinkAncillaryPacketIterator;
7484 
7485 #if defined(__cplusplus) && !defined(CINTERFACE)
7486 
7487     MIDL_INTERFACE("3FC8994B-88FB-4C17-968F-9AAB69D964A7")
7488     IDeckLinkAncillaryPacketIterator : public IUnknown
7489     {
7490     public:
7491         virtual HRESULT STDMETHODCALLTYPE Next(
7492             /* [out] */ IDeckLinkAncillaryPacket **packet) = 0;
7493 
7494     };
7495 
7496 
7497 #else 	/* C style interface */
7498 
7499     typedef struct IDeckLinkAncillaryPacketIteratorVtbl
7500     {
7501         BEGIN_INTERFACE
7502 
7503         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7504             IDeckLinkAncillaryPacketIterator * This,
7505             /* [in] */ REFIID riid,
7506             /* [annotation][iid_is][out] */
7507             _COM_Outptr_  void **ppvObject);
7508 
7509         ULONG ( STDMETHODCALLTYPE *AddRef )(
7510             IDeckLinkAncillaryPacketIterator * This);
7511 
7512         ULONG ( STDMETHODCALLTYPE *Release )(
7513             IDeckLinkAncillaryPacketIterator * This);
7514 
7515         HRESULT ( STDMETHODCALLTYPE *Next )(
7516             IDeckLinkAncillaryPacketIterator * This,
7517             /* [out] */ IDeckLinkAncillaryPacket **packet);
7518 
7519         END_INTERFACE
7520     } IDeckLinkAncillaryPacketIteratorVtbl;
7521 
7522     interface IDeckLinkAncillaryPacketIterator
7523     {
7524         CONST_VTBL struct IDeckLinkAncillaryPacketIteratorVtbl *lpVtbl;
7525     };
7526 
7527 
7528 
7529 #ifdef COBJMACROS
7530 
7531 
7532 #define IDeckLinkAncillaryPacketIterator_QueryInterface(This,riid,ppvObject)	\
7533     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7534 
7535 #define IDeckLinkAncillaryPacketIterator_AddRef(This)	\
7536     ( (This)->lpVtbl -> AddRef(This) )
7537 
7538 #define IDeckLinkAncillaryPacketIterator_Release(This)	\
7539     ( (This)->lpVtbl -> Release(This) )
7540 
7541 
7542 #define IDeckLinkAncillaryPacketIterator_Next(This,packet)	\
7543     ( (This)->lpVtbl -> Next(This,packet) )
7544 
7545 #endif /* COBJMACROS */
7546 
7547 
7548 #endif 	/* C style interface */
7549 
7550 
7551 
7552 
7553 #endif 	/* __IDeckLinkAncillaryPacketIterator_INTERFACE_DEFINED__ */
7554 
7555 
7556 #ifndef __IDeckLinkVideoFrameAncillaryPackets_INTERFACE_DEFINED__
7557 #define __IDeckLinkVideoFrameAncillaryPackets_INTERFACE_DEFINED__
7558 
7559 /* interface IDeckLinkVideoFrameAncillaryPackets */
7560 /* [helpstring][local][uuid][object] */
7561 
7562 
7563 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillaryPackets;
7564 
7565 #if defined(__cplusplus) && !defined(CINTERFACE)
7566 
7567     MIDL_INTERFACE("6C186C0F-459E-41D8-AEE2-4812D81AEE68")
7568     IDeckLinkVideoFrameAncillaryPackets : public IUnknown
7569     {
7570     public:
7571         virtual HRESULT STDMETHODCALLTYPE GetPacketIterator(
7572             /* [out] */ IDeckLinkAncillaryPacketIterator **iterator) = 0;
7573 
7574         virtual HRESULT STDMETHODCALLTYPE GetFirstPacketByID(
7575             /* [in] */ unsigned char DID,
7576             /* [in] */ unsigned char SDID,
7577             /* [out] */ IDeckLinkAncillaryPacket **packet) = 0;
7578 
7579         virtual HRESULT STDMETHODCALLTYPE AttachPacket(
7580             /* [in] */ IDeckLinkAncillaryPacket *packet) = 0;
7581 
7582         virtual HRESULT STDMETHODCALLTYPE DetachPacket(
7583             /* [in] */ IDeckLinkAncillaryPacket *packet) = 0;
7584 
7585         virtual HRESULT STDMETHODCALLTYPE DetachAllPackets( void) = 0;
7586 
7587     };
7588 
7589 
7590 #else 	/* C style interface */
7591 
7592     typedef struct IDeckLinkVideoFrameAncillaryPacketsVtbl
7593     {
7594         BEGIN_INTERFACE
7595 
7596         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7597             IDeckLinkVideoFrameAncillaryPackets * This,
7598             /* [in] */ REFIID riid,
7599             /* [annotation][iid_is][out] */
7600             _COM_Outptr_  void **ppvObject);
7601 
7602         ULONG ( STDMETHODCALLTYPE *AddRef )(
7603             IDeckLinkVideoFrameAncillaryPackets * This);
7604 
7605         ULONG ( STDMETHODCALLTYPE *Release )(
7606             IDeckLinkVideoFrameAncillaryPackets * This);
7607 
7608         HRESULT ( STDMETHODCALLTYPE *GetPacketIterator )(
7609             IDeckLinkVideoFrameAncillaryPackets * This,
7610             /* [out] */ IDeckLinkAncillaryPacketIterator **iterator);
7611 
7612         HRESULT ( STDMETHODCALLTYPE *GetFirstPacketByID )(
7613             IDeckLinkVideoFrameAncillaryPackets * This,
7614             /* [in] */ unsigned char DID,
7615             /* [in] */ unsigned char SDID,
7616             /* [out] */ IDeckLinkAncillaryPacket **packet);
7617 
7618         HRESULT ( STDMETHODCALLTYPE *AttachPacket )(
7619             IDeckLinkVideoFrameAncillaryPackets * This,
7620             /* [in] */ IDeckLinkAncillaryPacket *packet);
7621 
7622         HRESULT ( STDMETHODCALLTYPE *DetachPacket )(
7623             IDeckLinkVideoFrameAncillaryPackets * This,
7624             /* [in] */ IDeckLinkAncillaryPacket *packet);
7625 
7626         HRESULT ( STDMETHODCALLTYPE *DetachAllPackets )(
7627             IDeckLinkVideoFrameAncillaryPackets * This);
7628 
7629         END_INTERFACE
7630     } IDeckLinkVideoFrameAncillaryPacketsVtbl;
7631 
7632     interface IDeckLinkVideoFrameAncillaryPackets
7633     {
7634         CONST_VTBL struct IDeckLinkVideoFrameAncillaryPacketsVtbl *lpVtbl;
7635     };
7636 
7637 
7638 
7639 #ifdef COBJMACROS
7640 
7641 
7642 #define IDeckLinkVideoFrameAncillaryPackets_QueryInterface(This,riid,ppvObject)	\
7643     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7644 
7645 #define IDeckLinkVideoFrameAncillaryPackets_AddRef(This)	\
7646     ( (This)->lpVtbl -> AddRef(This) )
7647 
7648 #define IDeckLinkVideoFrameAncillaryPackets_Release(This)	\
7649     ( (This)->lpVtbl -> Release(This) )
7650 
7651 
7652 #define IDeckLinkVideoFrameAncillaryPackets_GetPacketIterator(This,iterator)	\
7653     ( (This)->lpVtbl -> GetPacketIterator(This,iterator) )
7654 
7655 #define IDeckLinkVideoFrameAncillaryPackets_GetFirstPacketByID(This,DID,SDID,packet)	\
7656     ( (This)->lpVtbl -> GetFirstPacketByID(This,DID,SDID,packet) )
7657 
7658 #define IDeckLinkVideoFrameAncillaryPackets_AttachPacket(This,packet)	\
7659     ( (This)->lpVtbl -> AttachPacket(This,packet) )
7660 
7661 #define IDeckLinkVideoFrameAncillaryPackets_DetachPacket(This,packet)	\
7662     ( (This)->lpVtbl -> DetachPacket(This,packet) )
7663 
7664 #define IDeckLinkVideoFrameAncillaryPackets_DetachAllPackets(This)	\
7665     ( (This)->lpVtbl -> DetachAllPackets(This) )
7666 
7667 #endif /* COBJMACROS */
7668 
7669 
7670 #endif 	/* C style interface */
7671 
7672 
7673 
7674 
7675 #endif 	/* __IDeckLinkVideoFrameAncillaryPackets_INTERFACE_DEFINED__ */
7676 
7677 
7678 #ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
7679 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
7680 
7681 /* interface IDeckLinkVideoFrameAncillary */
7682 /* [helpstring][local][uuid][object] */
7683 
7684 
7685 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
7686 
7687 #if defined(__cplusplus) && !defined(CINTERFACE)
7688 
7689     MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")
7690     IDeckLinkVideoFrameAncillary : public IUnknown
7691     {
7692     public:
7693         virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine(
7694             /* [in] */ unsigned int lineNumber,
7695             /* [out] */ void **buffer) = 0;
7696 
7697         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
7698 
7699         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
7700 
7701     };
7702 
7703 
7704 #else 	/* C style interface */
7705 
7706     typedef struct IDeckLinkVideoFrameAncillaryVtbl
7707     {
7708         BEGIN_INTERFACE
7709 
7710         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7711             IDeckLinkVideoFrameAncillary * This,
7712             /* [in] */ REFIID riid,
7713             /* [annotation][iid_is][out] */
7714             _COM_Outptr_  void **ppvObject);
7715 
7716         ULONG ( STDMETHODCALLTYPE *AddRef )(
7717             IDeckLinkVideoFrameAncillary * This);
7718 
7719         ULONG ( STDMETHODCALLTYPE *Release )(
7720             IDeckLinkVideoFrameAncillary * This);
7721 
7722         HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )(
7723             IDeckLinkVideoFrameAncillary * This,
7724             /* [in] */ unsigned int lineNumber,
7725             /* [out] */ void **buffer);
7726 
7727         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
7728             IDeckLinkVideoFrameAncillary * This);
7729 
7730         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
7731             IDeckLinkVideoFrameAncillary * This);
7732 
7733         END_INTERFACE
7734     } IDeckLinkVideoFrameAncillaryVtbl;
7735 
7736     interface IDeckLinkVideoFrameAncillary
7737     {
7738         CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;
7739     };
7740 
7741 
7742 
7743 #ifdef COBJMACROS
7744 
7745 
7746 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject)	\
7747     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7748 
7749 #define IDeckLinkVideoFrameAncillary_AddRef(This)	\
7750     ( (This)->lpVtbl -> AddRef(This) )
7751 
7752 #define IDeckLinkVideoFrameAncillary_Release(This)	\
7753     ( (This)->lpVtbl -> Release(This) )
7754 
7755 
7756 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer)	\
7757     ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) )
7758 
7759 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This)	\
7760     ( (This)->lpVtbl -> GetPixelFormat(This) )
7761 
7762 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This)	\
7763     ( (This)->lpVtbl -> GetDisplayMode(This) )
7764 
7765 #endif /* COBJMACROS */
7766 
7767 
7768 #endif 	/* C style interface */
7769 
7770 
7771 
7772 
7773 #endif 	/* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */
7774 
7775 
7776 #ifndef __IDeckLinkEncoderPacket_INTERFACE_DEFINED__
7777 #define __IDeckLinkEncoderPacket_INTERFACE_DEFINED__
7778 
7779 /* interface IDeckLinkEncoderPacket */
7780 /* [helpstring][local][uuid][object] */
7781 
7782 
7783 EXTERN_C const IID IID_IDeckLinkEncoderPacket;
7784 
7785 #if defined(__cplusplus) && !defined(CINTERFACE)
7786 
7787     MIDL_INTERFACE("B693F36C-316E-4AF1-B6C2-F389A4BCA620")
7788     IDeckLinkEncoderPacket : public IUnknown
7789     {
7790     public:
7791         virtual HRESULT STDMETHODCALLTYPE GetBytes(
7792             /* [out] */ void **buffer) = 0;
7793 
7794         virtual long STDMETHODCALLTYPE GetSize( void) = 0;
7795 
7796         virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
7797             /* [out] */ BMDTimeValue *frameTime,
7798             /* [in] */ BMDTimeScale timeScale) = 0;
7799 
7800         virtual BMDPacketType STDMETHODCALLTYPE GetPacketType( void) = 0;
7801 
7802     };
7803 
7804 
7805 #else 	/* C style interface */
7806 
7807     typedef struct IDeckLinkEncoderPacketVtbl
7808     {
7809         BEGIN_INTERFACE
7810 
7811         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7812             IDeckLinkEncoderPacket * This,
7813             /* [in] */ REFIID riid,
7814             /* [annotation][iid_is][out] */
7815             _COM_Outptr_  void **ppvObject);
7816 
7817         ULONG ( STDMETHODCALLTYPE *AddRef )(
7818             IDeckLinkEncoderPacket * This);
7819 
7820         ULONG ( STDMETHODCALLTYPE *Release )(
7821             IDeckLinkEncoderPacket * This);
7822 
7823         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7824             IDeckLinkEncoderPacket * This,
7825             /* [out] */ void **buffer);
7826 
7827         long ( STDMETHODCALLTYPE *GetSize )(
7828             IDeckLinkEncoderPacket * This);
7829 
7830         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
7831             IDeckLinkEncoderPacket * This,
7832             /* [out] */ BMDTimeValue *frameTime,
7833             /* [in] */ BMDTimeScale timeScale);
7834 
7835         BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(
7836             IDeckLinkEncoderPacket * This);
7837 
7838         END_INTERFACE
7839     } IDeckLinkEncoderPacketVtbl;
7840 
7841     interface IDeckLinkEncoderPacket
7842     {
7843         CONST_VTBL struct IDeckLinkEncoderPacketVtbl *lpVtbl;
7844     };
7845 
7846 
7847 
7848 #ifdef COBJMACROS
7849 
7850 
7851 #define IDeckLinkEncoderPacket_QueryInterface(This,riid,ppvObject)	\
7852     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7853 
7854 #define IDeckLinkEncoderPacket_AddRef(This)	\
7855     ( (This)->lpVtbl -> AddRef(This) )
7856 
7857 #define IDeckLinkEncoderPacket_Release(This)	\
7858     ( (This)->lpVtbl -> Release(This) )
7859 
7860 
7861 #define IDeckLinkEncoderPacket_GetBytes(This,buffer)	\
7862     ( (This)->lpVtbl -> GetBytes(This,buffer) )
7863 
7864 #define IDeckLinkEncoderPacket_GetSize(This)	\
7865     ( (This)->lpVtbl -> GetSize(This) )
7866 
7867 #define IDeckLinkEncoderPacket_GetStreamTime(This,frameTime,timeScale)	\
7868     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )
7869 
7870 #define IDeckLinkEncoderPacket_GetPacketType(This)	\
7871     ( (This)->lpVtbl -> GetPacketType(This) )
7872 
7873 #endif /* COBJMACROS */
7874 
7875 
7876 #endif 	/* C style interface */
7877 
7878 
7879 
7880 
7881 #endif 	/* __IDeckLinkEncoderPacket_INTERFACE_DEFINED__ */
7882 
7883 
7884 #ifndef __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__
7885 #define __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__
7886 
7887 /* interface IDeckLinkEncoderVideoPacket */
7888 /* [helpstring][local][uuid][object] */
7889 
7890 
7891 EXTERN_C const IID IID_IDeckLinkEncoderVideoPacket;
7892 
7893 #if defined(__cplusplus) && !defined(CINTERFACE)
7894 
7895     MIDL_INTERFACE("4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0")
7896     IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket
7897     {
7898     public:
7899         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
7900 
7901         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
7902             /* [in] */ BMDTimeScale timeScale,
7903             /* [out] */ BMDTimeValue *frameTime,
7904             /* [out] */ BMDTimeValue *frameDuration) = 0;
7905 
7906         virtual HRESULT STDMETHODCALLTYPE GetTimecode(
7907             /* [in] */ BMDTimecodeFormat format,
7908             /* [out] */ IDeckLinkTimecode **timecode) = 0;
7909 
7910     };
7911 
7912 
7913 #else 	/* C style interface */
7914 
7915     typedef struct IDeckLinkEncoderVideoPacketVtbl
7916     {
7917         BEGIN_INTERFACE
7918 
7919         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7920             IDeckLinkEncoderVideoPacket * This,
7921             /* [in] */ REFIID riid,
7922             /* [annotation][iid_is][out] */
7923             _COM_Outptr_  void **ppvObject);
7924 
7925         ULONG ( STDMETHODCALLTYPE *AddRef )(
7926             IDeckLinkEncoderVideoPacket * This);
7927 
7928         ULONG ( STDMETHODCALLTYPE *Release )(
7929             IDeckLinkEncoderVideoPacket * This);
7930 
7931         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7932             IDeckLinkEncoderVideoPacket * This,
7933             /* [out] */ void **buffer);
7934 
7935         long ( STDMETHODCALLTYPE *GetSize )(
7936             IDeckLinkEncoderVideoPacket * This);
7937 
7938         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
7939             IDeckLinkEncoderVideoPacket * This,
7940             /* [out] */ BMDTimeValue *frameTime,
7941             /* [in] */ BMDTimeScale timeScale);
7942 
7943         BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(
7944             IDeckLinkEncoderVideoPacket * This);
7945 
7946         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
7947             IDeckLinkEncoderVideoPacket * This);
7948 
7949         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
7950             IDeckLinkEncoderVideoPacket * This,
7951             /* [in] */ BMDTimeScale timeScale,
7952             /* [out] */ BMDTimeValue *frameTime,
7953             /* [out] */ BMDTimeValue *frameDuration);
7954 
7955         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
7956             IDeckLinkEncoderVideoPacket * This,
7957             /* [in] */ BMDTimecodeFormat format,
7958             /* [out] */ IDeckLinkTimecode **timecode);
7959 
7960         END_INTERFACE
7961     } IDeckLinkEncoderVideoPacketVtbl;
7962 
7963     interface IDeckLinkEncoderVideoPacket
7964     {
7965         CONST_VTBL struct IDeckLinkEncoderVideoPacketVtbl *lpVtbl;
7966     };
7967 
7968 
7969 
7970 #ifdef COBJMACROS
7971 
7972 
7973 #define IDeckLinkEncoderVideoPacket_QueryInterface(This,riid,ppvObject)	\
7974     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7975 
7976 #define IDeckLinkEncoderVideoPacket_AddRef(This)	\
7977     ( (This)->lpVtbl -> AddRef(This) )
7978 
7979 #define IDeckLinkEncoderVideoPacket_Release(This)	\
7980     ( (This)->lpVtbl -> Release(This) )
7981 
7982 
7983 #define IDeckLinkEncoderVideoPacket_GetBytes(This,buffer)	\
7984     ( (This)->lpVtbl -> GetBytes(This,buffer) )
7985 
7986 #define IDeckLinkEncoderVideoPacket_GetSize(This)	\
7987     ( (This)->lpVtbl -> GetSize(This) )
7988 
7989 #define IDeckLinkEncoderVideoPacket_GetStreamTime(This,frameTime,timeScale)	\
7990     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )
7991 
7992 #define IDeckLinkEncoderVideoPacket_GetPacketType(This)	\
7993     ( (This)->lpVtbl -> GetPacketType(This) )
7994 
7995 
7996 #define IDeckLinkEncoderVideoPacket_GetPixelFormat(This)	\
7997     ( (This)->lpVtbl -> GetPixelFormat(This) )
7998 
7999 #define IDeckLinkEncoderVideoPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)	\
8000     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
8001 
8002 #define IDeckLinkEncoderVideoPacket_GetTimecode(This,format,timecode)	\
8003     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
8004 
8005 #endif /* COBJMACROS */
8006 
8007 
8008 #endif 	/* C style interface */
8009 
8010 
8011 
8012 
8013 #endif 	/* __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__ */
8014 
8015 
8016 #ifndef __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__
8017 #define __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__
8018 
8019 /* interface IDeckLinkEncoderAudioPacket */
8020 /* [helpstring][local][uuid][object] */
8021 
8022 
8023 EXTERN_C const IID IID_IDeckLinkEncoderAudioPacket;
8024 
8025 #if defined(__cplusplus) && !defined(CINTERFACE)
8026 
8027     MIDL_INTERFACE("49E8EDC8-693B-4E14-8EF6-12C658F5A07A")
8028     IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket
8029     {
8030     public:
8031         virtual BMDAudioFormat STDMETHODCALLTYPE GetAudioFormat( void) = 0;
8032 
8033     };
8034 
8035 
8036 #else 	/* C style interface */
8037 
8038     typedef struct IDeckLinkEncoderAudioPacketVtbl
8039     {
8040         BEGIN_INTERFACE
8041 
8042         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8043             IDeckLinkEncoderAudioPacket * This,
8044             /* [in] */ REFIID riid,
8045             /* [annotation][iid_is][out] */
8046             _COM_Outptr_  void **ppvObject);
8047 
8048         ULONG ( STDMETHODCALLTYPE *AddRef )(
8049             IDeckLinkEncoderAudioPacket * This);
8050 
8051         ULONG ( STDMETHODCALLTYPE *Release )(
8052             IDeckLinkEncoderAudioPacket * This);
8053 
8054         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
8055             IDeckLinkEncoderAudioPacket * This,
8056             /* [out] */ void **buffer);
8057 
8058         long ( STDMETHODCALLTYPE *GetSize )(
8059             IDeckLinkEncoderAudioPacket * This);
8060 
8061         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
8062             IDeckLinkEncoderAudioPacket * This,
8063             /* [out] */ BMDTimeValue *frameTime,
8064             /* [in] */ BMDTimeScale timeScale);
8065 
8066         BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(
8067             IDeckLinkEncoderAudioPacket * This);
8068 
8069         BMDAudioFormat ( STDMETHODCALLTYPE *GetAudioFormat )(
8070             IDeckLinkEncoderAudioPacket * This);
8071 
8072         END_INTERFACE
8073     } IDeckLinkEncoderAudioPacketVtbl;
8074 
8075     interface IDeckLinkEncoderAudioPacket
8076     {
8077         CONST_VTBL struct IDeckLinkEncoderAudioPacketVtbl *lpVtbl;
8078     };
8079 
8080 
8081 
8082 #ifdef COBJMACROS
8083 
8084 
8085 #define IDeckLinkEncoderAudioPacket_QueryInterface(This,riid,ppvObject)	\
8086     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8087 
8088 #define IDeckLinkEncoderAudioPacket_AddRef(This)	\
8089     ( (This)->lpVtbl -> AddRef(This) )
8090 
8091 #define IDeckLinkEncoderAudioPacket_Release(This)	\
8092     ( (This)->lpVtbl -> Release(This) )
8093 
8094 
8095 #define IDeckLinkEncoderAudioPacket_GetBytes(This,buffer)	\
8096     ( (This)->lpVtbl -> GetBytes(This,buffer) )
8097 
8098 #define IDeckLinkEncoderAudioPacket_GetSize(This)	\
8099     ( (This)->lpVtbl -> GetSize(This) )
8100 
8101 #define IDeckLinkEncoderAudioPacket_GetStreamTime(This,frameTime,timeScale)	\
8102     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )
8103 
8104 #define IDeckLinkEncoderAudioPacket_GetPacketType(This)	\
8105     ( (This)->lpVtbl -> GetPacketType(This) )
8106 
8107 
8108 #define IDeckLinkEncoderAudioPacket_GetAudioFormat(This)	\
8109     ( (This)->lpVtbl -> GetAudioFormat(This) )
8110 
8111 #endif /* COBJMACROS */
8112 
8113 
8114 #endif 	/* C style interface */
8115 
8116 
8117 
8118 
8119 #endif 	/* __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__ */
8120 
8121 
8122 #ifndef __IDeckLinkH265NALPacket_INTERFACE_DEFINED__
8123 #define __IDeckLinkH265NALPacket_INTERFACE_DEFINED__
8124 
8125 /* interface IDeckLinkH265NALPacket */
8126 /* [helpstring][local][uuid][object] */
8127 
8128 
8129 EXTERN_C const IID IID_IDeckLinkH265NALPacket;
8130 
8131 #if defined(__cplusplus) && !defined(CINTERFACE)
8132 
8133     MIDL_INTERFACE("639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7")
8134     IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket
8135     {
8136     public:
8137         virtual HRESULT STDMETHODCALLTYPE GetUnitType(
8138             /* [out] */ unsigned char *unitType) = 0;
8139 
8140         virtual HRESULT STDMETHODCALLTYPE GetBytesNoPrefix(
8141             /* [out] */ void **buffer) = 0;
8142 
8143         virtual long STDMETHODCALLTYPE GetSizeNoPrefix( void) = 0;
8144 
8145     };
8146 
8147 
8148 #else 	/* C style interface */
8149 
8150     typedef struct IDeckLinkH265NALPacketVtbl
8151     {
8152         BEGIN_INTERFACE
8153 
8154         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8155             IDeckLinkH265NALPacket * This,
8156             /* [in] */ REFIID riid,
8157             /* [annotation][iid_is][out] */
8158             _COM_Outptr_  void **ppvObject);
8159 
8160         ULONG ( STDMETHODCALLTYPE *AddRef )(
8161             IDeckLinkH265NALPacket * This);
8162 
8163         ULONG ( STDMETHODCALLTYPE *Release )(
8164             IDeckLinkH265NALPacket * This);
8165 
8166         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
8167             IDeckLinkH265NALPacket * This,
8168             /* [out] */ void **buffer);
8169 
8170         long ( STDMETHODCALLTYPE *GetSize )(
8171             IDeckLinkH265NALPacket * This);
8172 
8173         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
8174             IDeckLinkH265NALPacket * This,
8175             /* [out] */ BMDTimeValue *frameTime,
8176             /* [in] */ BMDTimeScale timeScale);
8177 
8178         BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(
8179             IDeckLinkH265NALPacket * This);
8180 
8181         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
8182             IDeckLinkH265NALPacket * This);
8183 
8184         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
8185             IDeckLinkH265NALPacket * This,
8186             /* [in] */ BMDTimeScale timeScale,
8187             /* [out] */ BMDTimeValue *frameTime,
8188             /* [out] */ BMDTimeValue *frameDuration);
8189 
8190         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
8191             IDeckLinkH265NALPacket * This,
8192             /* [in] */ BMDTimecodeFormat format,
8193             /* [out] */ IDeckLinkTimecode **timecode);
8194 
8195         HRESULT ( STDMETHODCALLTYPE *GetUnitType )(
8196             IDeckLinkH265NALPacket * This,
8197             /* [out] */ unsigned char *unitType);
8198 
8199         HRESULT ( STDMETHODCALLTYPE *GetBytesNoPrefix )(
8200             IDeckLinkH265NALPacket * This,
8201             /* [out] */ void **buffer);
8202 
8203         long ( STDMETHODCALLTYPE *GetSizeNoPrefix )(
8204             IDeckLinkH265NALPacket * This);
8205 
8206         END_INTERFACE
8207     } IDeckLinkH265NALPacketVtbl;
8208 
8209     interface IDeckLinkH265NALPacket
8210     {
8211         CONST_VTBL struct IDeckLinkH265NALPacketVtbl *lpVtbl;
8212     };
8213 
8214 
8215 
8216 #ifdef COBJMACROS
8217 
8218 
8219 #define IDeckLinkH265NALPacket_QueryInterface(This,riid,ppvObject)	\
8220     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8221 
8222 #define IDeckLinkH265NALPacket_AddRef(This)	\
8223     ( (This)->lpVtbl -> AddRef(This) )
8224 
8225 #define IDeckLinkH265NALPacket_Release(This)	\
8226     ( (This)->lpVtbl -> Release(This) )
8227 
8228 
8229 #define IDeckLinkH265NALPacket_GetBytes(This,buffer)	\
8230     ( (This)->lpVtbl -> GetBytes(This,buffer) )
8231 
8232 #define IDeckLinkH265NALPacket_GetSize(This)	\
8233     ( (This)->lpVtbl -> GetSize(This) )
8234 
8235 #define IDeckLinkH265NALPacket_GetStreamTime(This,frameTime,timeScale)	\
8236     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )
8237 
8238 #define IDeckLinkH265NALPacket_GetPacketType(This)	\
8239     ( (This)->lpVtbl -> GetPacketType(This) )
8240 
8241 
8242 #define IDeckLinkH265NALPacket_GetPixelFormat(This)	\
8243     ( (This)->lpVtbl -> GetPixelFormat(This) )
8244 
8245 #define IDeckLinkH265NALPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)	\
8246     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
8247 
8248 #define IDeckLinkH265NALPacket_GetTimecode(This,format,timecode)	\
8249     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
8250 
8251 
8252 #define IDeckLinkH265NALPacket_GetUnitType(This,unitType)	\
8253     ( (This)->lpVtbl -> GetUnitType(This,unitType) )
8254 
8255 #define IDeckLinkH265NALPacket_GetBytesNoPrefix(This,buffer)	\
8256     ( (This)->lpVtbl -> GetBytesNoPrefix(This,buffer) )
8257 
8258 #define IDeckLinkH265NALPacket_GetSizeNoPrefix(This)	\
8259     ( (This)->lpVtbl -> GetSizeNoPrefix(This) )
8260 
8261 #endif /* COBJMACROS */
8262 
8263 
8264 #endif 	/* C style interface */
8265 
8266 
8267 
8268 
8269 #endif 	/* __IDeckLinkH265NALPacket_INTERFACE_DEFINED__ */
8270 
8271 
8272 #ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
8273 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
8274 
8275 /* interface IDeckLinkAudioInputPacket */
8276 /* [helpstring][local][uuid][object] */
8277 
8278 
8279 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
8280 
8281 #if defined(__cplusplus) && !defined(CINTERFACE)
8282 
8283     MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")
8284     IDeckLinkAudioInputPacket : public IUnknown
8285     {
8286     public:
8287         virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;
8288 
8289         virtual HRESULT STDMETHODCALLTYPE GetBytes(
8290             /* [out] */ void **buffer) = 0;
8291 
8292         virtual HRESULT STDMETHODCALLTYPE GetPacketTime(
8293             /* [out] */ BMDTimeValue *packetTime,
8294             /* [in] */ BMDTimeScale timeScale) = 0;
8295 
8296     };
8297 
8298 
8299 #else 	/* C style interface */
8300 
8301     typedef struct IDeckLinkAudioInputPacketVtbl
8302     {
8303         BEGIN_INTERFACE
8304 
8305         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8306             IDeckLinkAudioInputPacket * This,
8307             /* [in] */ REFIID riid,
8308             /* [annotation][iid_is][out] */
8309             _COM_Outptr_  void **ppvObject);
8310 
8311         ULONG ( STDMETHODCALLTYPE *AddRef )(
8312             IDeckLinkAudioInputPacket * This);
8313 
8314         ULONG ( STDMETHODCALLTYPE *Release )(
8315             IDeckLinkAudioInputPacket * This);
8316 
8317         long ( STDMETHODCALLTYPE *GetSampleFrameCount )(
8318             IDeckLinkAudioInputPacket * This);
8319 
8320         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
8321             IDeckLinkAudioInputPacket * This,
8322             /* [out] */ void **buffer);
8323 
8324         HRESULT ( STDMETHODCALLTYPE *GetPacketTime )(
8325             IDeckLinkAudioInputPacket * This,
8326             /* [out] */ BMDTimeValue *packetTime,
8327             /* [in] */ BMDTimeScale timeScale);
8328 
8329         END_INTERFACE
8330     } IDeckLinkAudioInputPacketVtbl;
8331 
8332     interface IDeckLinkAudioInputPacket
8333     {
8334         CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;
8335     };
8336 
8337 
8338 
8339 #ifdef COBJMACROS
8340 
8341 
8342 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)	\
8343     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8344 
8345 #define IDeckLinkAudioInputPacket_AddRef(This)	\
8346     ( (This)->lpVtbl -> AddRef(This) )
8347 
8348 #define IDeckLinkAudioInputPacket_Release(This)	\
8349     ( (This)->lpVtbl -> Release(This) )
8350 
8351 
8352 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This)	\
8353     ( (This)->lpVtbl -> GetSampleFrameCount(This) )
8354 
8355 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer)	\
8356     ( (This)->lpVtbl -> GetBytes(This,buffer) )
8357 
8358 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale)	\
8359     ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) )
8360 
8361 #endif /* COBJMACROS */
8362 
8363 
8364 #endif 	/* C style interface */
8365 
8366 
8367 
8368 
8369 #endif 	/* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */
8370 
8371 
8372 #ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
8373 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
8374 
8375 /* interface IDeckLinkScreenPreviewCallback */
8376 /* [helpstring][local][uuid][object] */
8377 
8378 
8379 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
8380 
8381 #if defined(__cplusplus) && !defined(CINTERFACE)
8382 
8383     MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")
8384     IDeckLinkScreenPreviewCallback : public IUnknown
8385     {
8386     public:
8387         virtual HRESULT STDMETHODCALLTYPE DrawFrame(
8388             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
8389 
8390     };
8391 
8392 
8393 #else 	/* C style interface */
8394 
8395     typedef struct IDeckLinkScreenPreviewCallbackVtbl
8396     {
8397         BEGIN_INTERFACE
8398 
8399         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8400             IDeckLinkScreenPreviewCallback * This,
8401             /* [in] */ REFIID riid,
8402             /* [annotation][iid_is][out] */
8403             _COM_Outptr_  void **ppvObject);
8404 
8405         ULONG ( STDMETHODCALLTYPE *AddRef )(
8406             IDeckLinkScreenPreviewCallback * This);
8407 
8408         ULONG ( STDMETHODCALLTYPE *Release )(
8409             IDeckLinkScreenPreviewCallback * This);
8410 
8411         HRESULT ( STDMETHODCALLTYPE *DrawFrame )(
8412             IDeckLinkScreenPreviewCallback * This,
8413             /* [in] */ IDeckLinkVideoFrame *theFrame);
8414 
8415         END_INTERFACE
8416     } IDeckLinkScreenPreviewCallbackVtbl;
8417 
8418     interface IDeckLinkScreenPreviewCallback
8419     {
8420         CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;
8421     };
8422 
8423 
8424 
8425 #ifdef COBJMACROS
8426 
8427 
8428 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)	\
8429     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8430 
8431 #define IDeckLinkScreenPreviewCallback_AddRef(This)	\
8432     ( (This)->lpVtbl -> AddRef(This) )
8433 
8434 #define IDeckLinkScreenPreviewCallback_Release(This)	\
8435     ( (This)->lpVtbl -> Release(This) )
8436 
8437 
8438 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame)	\
8439     ( (This)->lpVtbl -> DrawFrame(This,theFrame) )
8440 
8441 #endif /* COBJMACROS */
8442 
8443 
8444 #endif 	/* C style interface */
8445 
8446 
8447 
8448 
8449 #endif 	/* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */
8450 
8451 
8452 #ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
8453 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
8454 
8455 /* interface IDeckLinkGLScreenPreviewHelper */
8456 /* [helpstring][local][uuid][object] */
8457 
8458 
8459 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
8460 
8461 #if defined(__cplusplus) && !defined(CINTERFACE)
8462 
8463     MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")
8464     IDeckLinkGLScreenPreviewHelper : public IUnknown
8465     {
8466     public:
8467         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
8468 
8469         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
8470 
8471         virtual HRESULT STDMETHODCALLTYPE SetFrame(
8472             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
8473 
8474         virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(
8475             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
8476 
8477     };
8478 
8479 
8480 #else 	/* C style interface */
8481 
8482     typedef struct IDeckLinkGLScreenPreviewHelperVtbl
8483     {
8484         BEGIN_INTERFACE
8485 
8486         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8487             IDeckLinkGLScreenPreviewHelper * This,
8488             /* [in] */ REFIID riid,
8489             /* [annotation][iid_is][out] */
8490             _COM_Outptr_  void **ppvObject);
8491 
8492         ULONG ( STDMETHODCALLTYPE *AddRef )(
8493             IDeckLinkGLScreenPreviewHelper * This);
8494 
8495         ULONG ( STDMETHODCALLTYPE *Release )(
8496             IDeckLinkGLScreenPreviewHelper * This);
8497 
8498         HRESULT ( STDMETHODCALLTYPE *InitializeGL )(
8499             IDeckLinkGLScreenPreviewHelper * This);
8500 
8501         HRESULT ( STDMETHODCALLTYPE *PaintGL )(
8502             IDeckLinkGLScreenPreviewHelper * This);
8503 
8504         HRESULT ( STDMETHODCALLTYPE *SetFrame )(
8505             IDeckLinkGLScreenPreviewHelper * This,
8506             /* [in] */ IDeckLinkVideoFrame *theFrame);
8507 
8508         HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(
8509             IDeckLinkGLScreenPreviewHelper * This,
8510             /* [in] */ BMD3DPreviewFormat previewFormat);
8511 
8512         END_INTERFACE
8513     } IDeckLinkGLScreenPreviewHelperVtbl;
8514 
8515     interface IDeckLinkGLScreenPreviewHelper
8516     {
8517         CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;
8518     };
8519 
8520 
8521 
8522 #ifdef COBJMACROS
8523 
8524 
8525 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)	\
8526     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8527 
8528 #define IDeckLinkGLScreenPreviewHelper_AddRef(This)	\
8529     ( (This)->lpVtbl -> AddRef(This) )
8530 
8531 #define IDeckLinkGLScreenPreviewHelper_Release(This)	\
8532     ( (This)->lpVtbl -> Release(This) )
8533 
8534 
8535 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)	\
8536     ( (This)->lpVtbl -> InitializeGL(This) )
8537 
8538 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This)	\
8539     ( (This)->lpVtbl -> PaintGL(This) )
8540 
8541 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame)	\
8542     ( (This)->lpVtbl -> SetFrame(This,theFrame) )
8543 
8544 #define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)	\
8545     ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )
8546 
8547 #endif /* COBJMACROS */
8548 
8549 
8550 #endif 	/* C style interface */
8551 
8552 
8553 
8554 
8555 #endif 	/* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */
8556 
8557 
8558 #ifndef __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__
8559 #define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__
8560 
8561 /* interface IDeckLinkDX9ScreenPreviewHelper */
8562 /* [helpstring][local][uuid][object] */
8563 
8564 
8565 EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
8566 
8567 #if defined(__cplusplus) && !defined(CINTERFACE)
8568 
8569     MIDL_INTERFACE("2094B522-D1A1-40C0-9AC7-1C012218EF02")
8570     IDeckLinkDX9ScreenPreviewHelper : public IUnknown
8571     {
8572     public:
8573         virtual HRESULT STDMETHODCALLTYPE Initialize(
8574             /* [in] */ void *device) = 0;
8575 
8576         virtual HRESULT STDMETHODCALLTYPE Render(
8577             /* [in] */ RECT *rc) = 0;
8578 
8579         virtual HRESULT STDMETHODCALLTYPE SetFrame(
8580             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
8581 
8582         virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(
8583             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
8584 
8585     };
8586 
8587 
8588 #else 	/* C style interface */
8589 
8590     typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl
8591     {
8592         BEGIN_INTERFACE
8593 
8594         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8595             IDeckLinkDX9ScreenPreviewHelper * This,
8596             /* [in] */ REFIID riid,
8597             /* [annotation][iid_is][out] */
8598             _COM_Outptr_  void **ppvObject);
8599 
8600         ULONG ( STDMETHODCALLTYPE *AddRef )(
8601             IDeckLinkDX9ScreenPreviewHelper * This);
8602 
8603         ULONG ( STDMETHODCALLTYPE *Release )(
8604             IDeckLinkDX9ScreenPreviewHelper * This);
8605 
8606         HRESULT ( STDMETHODCALLTYPE *Initialize )(
8607             IDeckLinkDX9ScreenPreviewHelper * This,
8608             /* [in] */ void *device);
8609 
8610         HRESULT ( STDMETHODCALLTYPE *Render )(
8611             IDeckLinkDX9ScreenPreviewHelper * This,
8612             /* [in] */ RECT *rc);
8613 
8614         HRESULT ( STDMETHODCALLTYPE *SetFrame )(
8615             IDeckLinkDX9ScreenPreviewHelper * This,
8616             /* [in] */ IDeckLinkVideoFrame *theFrame);
8617 
8618         HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(
8619             IDeckLinkDX9ScreenPreviewHelper * This,
8620             /* [in] */ BMD3DPreviewFormat previewFormat);
8621 
8622         END_INTERFACE
8623     } IDeckLinkDX9ScreenPreviewHelperVtbl;
8624 
8625     interface IDeckLinkDX9ScreenPreviewHelper
8626     {
8627         CONST_VTBL struct IDeckLinkDX9ScreenPreviewHelperVtbl *lpVtbl;
8628     };
8629 
8630 
8631 
8632 #ifdef COBJMACROS
8633 
8634 
8635 #define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject)	\
8636     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8637 
8638 #define IDeckLinkDX9ScreenPreviewHelper_AddRef(This)	\
8639     ( (This)->lpVtbl -> AddRef(This) )
8640 
8641 #define IDeckLinkDX9ScreenPreviewHelper_Release(This)	\
8642     ( (This)->lpVtbl -> Release(This) )
8643 
8644 
8645 #define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device)	\
8646     ( (This)->lpVtbl -> Initialize(This,device) )
8647 
8648 #define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc)	\
8649     ( (This)->lpVtbl -> Render(This,rc) )
8650 
8651 #define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame)	\
8652     ( (This)->lpVtbl -> SetFrame(This,theFrame) )
8653 
8654 #define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)	\
8655     ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )
8656 
8657 #endif /* COBJMACROS */
8658 
8659 
8660 #endif 	/* C style interface */
8661 
8662 
8663 
8664 
8665 #endif 	/* __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ */
8666 
8667 
8668 #ifndef __IDeckLinkNotificationCallback_INTERFACE_DEFINED__
8669 #define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__
8670 
8671 /* interface IDeckLinkNotificationCallback */
8672 /* [helpstring][local][uuid][object] */
8673 
8674 
8675 EXTERN_C const IID IID_IDeckLinkNotificationCallback;
8676 
8677 #if defined(__cplusplus) && !defined(CINTERFACE)
8678 
8679     MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d")
8680     IDeckLinkNotificationCallback : public IUnknown
8681     {
8682     public:
8683         virtual HRESULT STDMETHODCALLTYPE Notify(
8684             /* [in] */ BMDNotifications topic,
8685             /* [in] */ ULONGLONG param1,
8686             /* [in] */ ULONGLONG param2) = 0;
8687 
8688     };
8689 
8690 
8691 #else 	/* C style interface */
8692 
8693     typedef struct IDeckLinkNotificationCallbackVtbl
8694     {
8695         BEGIN_INTERFACE
8696 
8697         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8698             IDeckLinkNotificationCallback * This,
8699             /* [in] */ REFIID riid,
8700             /* [annotation][iid_is][out] */
8701             _COM_Outptr_  void **ppvObject);
8702 
8703         ULONG ( STDMETHODCALLTYPE *AddRef )(
8704             IDeckLinkNotificationCallback * This);
8705 
8706         ULONG ( STDMETHODCALLTYPE *Release )(
8707             IDeckLinkNotificationCallback * This);
8708 
8709         HRESULT ( STDMETHODCALLTYPE *Notify )(
8710             IDeckLinkNotificationCallback * This,
8711             /* [in] */ BMDNotifications topic,
8712             /* [in] */ ULONGLONG param1,
8713             /* [in] */ ULONGLONG param2);
8714 
8715         END_INTERFACE
8716     } IDeckLinkNotificationCallbackVtbl;
8717 
8718     interface IDeckLinkNotificationCallback
8719     {
8720         CONST_VTBL struct IDeckLinkNotificationCallbackVtbl *lpVtbl;
8721     };
8722 
8723 
8724 
8725 #ifdef COBJMACROS
8726 
8727 
8728 #define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject)	\
8729     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8730 
8731 #define IDeckLinkNotificationCallback_AddRef(This)	\
8732     ( (This)->lpVtbl -> AddRef(This) )
8733 
8734 #define IDeckLinkNotificationCallback_Release(This)	\
8735     ( (This)->lpVtbl -> Release(This) )
8736 
8737 
8738 #define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2)	\
8739     ( (This)->lpVtbl -> Notify(This,topic,param1,param2) )
8740 
8741 #endif /* COBJMACROS */
8742 
8743 
8744 #endif 	/* C style interface */
8745 
8746 
8747 
8748 
8749 #endif 	/* __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ */
8750 
8751 
8752 #ifndef __IDeckLinkNotification_INTERFACE_DEFINED__
8753 #define __IDeckLinkNotification_INTERFACE_DEFINED__
8754 
8755 /* interface IDeckLinkNotification */
8756 /* [helpstring][local][uuid][object] */
8757 
8758 
8759 EXTERN_C const IID IID_IDeckLinkNotification;
8760 
8761 #if defined(__cplusplus) && !defined(CINTERFACE)
8762 
8763     MIDL_INTERFACE("b85df4c8-bdf5-47c1-8064-28162ebdd4eb")
8764     IDeckLinkNotification : public IUnknown
8765     {
8766     public:
8767         virtual HRESULT STDMETHODCALLTYPE Subscribe(
8768             /* [in] */ BMDNotifications topic,
8769             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
8770 
8771         virtual HRESULT STDMETHODCALLTYPE Unsubscribe(
8772             /* [in] */ BMDNotifications topic,
8773             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
8774 
8775     };
8776 
8777 
8778 #else 	/* C style interface */
8779 
8780     typedef struct IDeckLinkNotificationVtbl
8781     {
8782         BEGIN_INTERFACE
8783 
8784         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8785             IDeckLinkNotification * This,
8786             /* [in] */ REFIID riid,
8787             /* [annotation][iid_is][out] */
8788             _COM_Outptr_  void **ppvObject);
8789 
8790         ULONG ( STDMETHODCALLTYPE *AddRef )(
8791             IDeckLinkNotification * This);
8792 
8793         ULONG ( STDMETHODCALLTYPE *Release )(
8794             IDeckLinkNotification * This);
8795 
8796         HRESULT ( STDMETHODCALLTYPE *Subscribe )(
8797             IDeckLinkNotification * This,
8798             /* [in] */ BMDNotifications topic,
8799             /* [in] */ IDeckLinkNotificationCallback *theCallback);
8800 
8801         HRESULT ( STDMETHODCALLTYPE *Unsubscribe )(
8802             IDeckLinkNotification * This,
8803             /* [in] */ BMDNotifications topic,
8804             /* [in] */ IDeckLinkNotificationCallback *theCallback);
8805 
8806         END_INTERFACE
8807     } IDeckLinkNotificationVtbl;
8808 
8809     interface IDeckLinkNotification
8810     {
8811         CONST_VTBL struct IDeckLinkNotificationVtbl *lpVtbl;
8812     };
8813 
8814 
8815 
8816 #ifdef COBJMACROS
8817 
8818 
8819 #define IDeckLinkNotification_QueryInterface(This,riid,ppvObject)	\
8820     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8821 
8822 #define IDeckLinkNotification_AddRef(This)	\
8823     ( (This)->lpVtbl -> AddRef(This) )
8824 
8825 #define IDeckLinkNotification_Release(This)	\
8826     ( (This)->lpVtbl -> Release(This) )
8827 
8828 
8829 #define IDeckLinkNotification_Subscribe(This,topic,theCallback)	\
8830     ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) )
8831 
8832 #define IDeckLinkNotification_Unsubscribe(This,topic,theCallback)	\
8833     ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) )
8834 
8835 #endif /* COBJMACROS */
8836 
8837 
8838 #endif 	/* C style interface */
8839 
8840 
8841 
8842 
8843 #endif 	/* __IDeckLinkNotification_INTERFACE_DEFINED__ */
8844 
8845 
8846 #ifndef __IDeckLinkProfileAttributes_INTERFACE_DEFINED__
8847 #define __IDeckLinkProfileAttributes_INTERFACE_DEFINED__
8848 
8849 /* interface IDeckLinkProfileAttributes */
8850 /* [helpstring][local][uuid][object] */
8851 
8852 
8853 EXTERN_C const IID IID_IDeckLinkProfileAttributes;
8854 
8855 #if defined(__cplusplus) && !defined(CINTERFACE)
8856 
8857     MIDL_INTERFACE("17D4BF8E-4911-473A-80A0-731CF6FF345B")
8858     IDeckLinkProfileAttributes : public IUnknown
8859     {
8860     public:
8861         virtual HRESULT STDMETHODCALLTYPE GetFlag(
8862             /* [in] */ BMDDeckLinkAttributeID cfgID,
8863             /* [out] */ BOOL *value) = 0;
8864 
8865         virtual HRESULT STDMETHODCALLTYPE GetInt(
8866             /* [in] */ BMDDeckLinkAttributeID cfgID,
8867             /* [out] */ LONGLONG *value) = 0;
8868 
8869         virtual HRESULT STDMETHODCALLTYPE GetFloat(
8870             /* [in] */ BMDDeckLinkAttributeID cfgID,
8871             /* [out] */ double *value) = 0;
8872 
8873         virtual HRESULT STDMETHODCALLTYPE GetString(
8874             /* [in] */ BMDDeckLinkAttributeID cfgID,
8875             /* [out] */ BSTR *value) = 0;
8876 
8877     };
8878 
8879 
8880 #else 	/* C style interface */
8881 
8882     typedef struct IDeckLinkProfileAttributesVtbl
8883     {
8884         BEGIN_INTERFACE
8885 
8886         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8887             IDeckLinkProfileAttributes * This,
8888             /* [in] */ REFIID riid,
8889             /* [annotation][iid_is][out] */
8890             _COM_Outptr_  void **ppvObject);
8891 
8892         ULONG ( STDMETHODCALLTYPE *AddRef )(
8893             IDeckLinkProfileAttributes * This);
8894 
8895         ULONG ( STDMETHODCALLTYPE *Release )(
8896             IDeckLinkProfileAttributes * This);
8897 
8898         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
8899             IDeckLinkProfileAttributes * This,
8900             /* [in] */ BMDDeckLinkAttributeID cfgID,
8901             /* [out] */ BOOL *value);
8902 
8903         HRESULT ( STDMETHODCALLTYPE *GetInt )(
8904             IDeckLinkProfileAttributes * This,
8905             /* [in] */ BMDDeckLinkAttributeID cfgID,
8906             /* [out] */ LONGLONG *value);
8907 
8908         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
8909             IDeckLinkProfileAttributes * This,
8910             /* [in] */ BMDDeckLinkAttributeID cfgID,
8911             /* [out] */ double *value);
8912 
8913         HRESULT ( STDMETHODCALLTYPE *GetString )(
8914             IDeckLinkProfileAttributes * This,
8915             /* [in] */ BMDDeckLinkAttributeID cfgID,
8916             /* [out] */ BSTR *value);
8917 
8918         END_INTERFACE
8919     } IDeckLinkProfileAttributesVtbl;
8920 
8921     interface IDeckLinkProfileAttributes
8922     {
8923         CONST_VTBL struct IDeckLinkProfileAttributesVtbl *lpVtbl;
8924     };
8925 
8926 
8927 
8928 #ifdef COBJMACROS
8929 
8930 
8931 #define IDeckLinkProfileAttributes_QueryInterface(This,riid,ppvObject)	\
8932     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8933 
8934 #define IDeckLinkProfileAttributes_AddRef(This)	\
8935     ( (This)->lpVtbl -> AddRef(This) )
8936 
8937 #define IDeckLinkProfileAttributes_Release(This)	\
8938     ( (This)->lpVtbl -> Release(This) )
8939 
8940 
8941 #define IDeckLinkProfileAttributes_GetFlag(This,cfgID,value)	\
8942     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
8943 
8944 #define IDeckLinkProfileAttributes_GetInt(This,cfgID,value)	\
8945     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
8946 
8947 #define IDeckLinkProfileAttributes_GetFloat(This,cfgID,value)	\
8948     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
8949 
8950 #define IDeckLinkProfileAttributes_GetString(This,cfgID,value)	\
8951     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
8952 
8953 #endif /* COBJMACROS */
8954 
8955 
8956 #endif 	/* C style interface */
8957 
8958 
8959 
8960 
8961 #endif 	/* __IDeckLinkProfileAttributes_INTERFACE_DEFINED__ */
8962 
8963 
8964 #ifndef __IDeckLinkProfileIterator_INTERFACE_DEFINED__
8965 #define __IDeckLinkProfileIterator_INTERFACE_DEFINED__
8966 
8967 /* interface IDeckLinkProfileIterator */
8968 /* [helpstring][uuid][object] */
8969 
8970 
8971 EXTERN_C const IID IID_IDeckLinkProfileIterator;
8972 
8973 #if defined(__cplusplus) && !defined(CINTERFACE)
8974 
8975     MIDL_INTERFACE("29E5A8C0-8BE4-46EB-93AC-31DAAB5B7BF2")
8976     IDeckLinkProfileIterator : public IUnknown
8977     {
8978     public:
8979         virtual HRESULT STDMETHODCALLTYPE Next(
8980             /* [out] */ IDeckLinkProfile **profile) = 0;
8981 
8982     };
8983 
8984 
8985 #else 	/* C style interface */
8986 
8987     typedef struct IDeckLinkProfileIteratorVtbl
8988     {
8989         BEGIN_INTERFACE
8990 
8991         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8992             IDeckLinkProfileIterator * This,
8993             /* [in] */ REFIID riid,
8994             /* [annotation][iid_is][out] */
8995             _COM_Outptr_  void **ppvObject);
8996 
8997         ULONG ( STDMETHODCALLTYPE *AddRef )(
8998             IDeckLinkProfileIterator * This);
8999 
9000         ULONG ( STDMETHODCALLTYPE *Release )(
9001             IDeckLinkProfileIterator * This);
9002 
9003         HRESULT ( STDMETHODCALLTYPE *Next )(
9004             IDeckLinkProfileIterator * This,
9005             /* [out] */ IDeckLinkProfile **profile);
9006 
9007         END_INTERFACE
9008     } IDeckLinkProfileIteratorVtbl;
9009 
9010     interface IDeckLinkProfileIterator
9011     {
9012         CONST_VTBL struct IDeckLinkProfileIteratorVtbl *lpVtbl;
9013     };
9014 
9015 
9016 
9017 #ifdef COBJMACROS
9018 
9019 
9020 #define IDeckLinkProfileIterator_QueryInterface(This,riid,ppvObject)	\
9021     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9022 
9023 #define IDeckLinkProfileIterator_AddRef(This)	\
9024     ( (This)->lpVtbl -> AddRef(This) )
9025 
9026 #define IDeckLinkProfileIterator_Release(This)	\
9027     ( (This)->lpVtbl -> Release(This) )
9028 
9029 
9030 #define IDeckLinkProfileIterator_Next(This,profile)	\
9031     ( (This)->lpVtbl -> Next(This,profile) )
9032 
9033 #endif /* COBJMACROS */
9034 
9035 
9036 #endif 	/* C style interface */
9037 
9038 
9039 
9040 
9041 #endif 	/* __IDeckLinkProfileIterator_INTERFACE_DEFINED__ */
9042 
9043 
9044 #ifndef __IDeckLinkProfile_INTERFACE_DEFINED__
9045 #define __IDeckLinkProfile_INTERFACE_DEFINED__
9046 
9047 /* interface IDeckLinkProfile */
9048 /* [helpstring][local][uuid][object] */
9049 
9050 
9051 EXTERN_C const IID IID_IDeckLinkProfile;
9052 
9053 #if defined(__cplusplus) && !defined(CINTERFACE)
9054 
9055     MIDL_INTERFACE("16093466-674A-432B-9DA0-1AC2C5A8241C")
9056     IDeckLinkProfile : public IUnknown
9057     {
9058     public:
9059         virtual HRESULT STDMETHODCALLTYPE GetDevice(
9060             /* [out] */ IDeckLink **device) = 0;
9061 
9062         virtual HRESULT STDMETHODCALLTYPE IsActive(
9063             /* [out] */ BOOL *isActive) = 0;
9064 
9065         virtual HRESULT STDMETHODCALLTYPE SetActive( void) = 0;
9066 
9067         virtual HRESULT STDMETHODCALLTYPE GetPeers(
9068             /* [out] */ IDeckLinkProfileIterator **profileIterator) = 0;
9069 
9070     };
9071 
9072 
9073 #else 	/* C style interface */
9074 
9075     typedef struct IDeckLinkProfileVtbl
9076     {
9077         BEGIN_INTERFACE
9078 
9079         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9080             IDeckLinkProfile * This,
9081             /* [in] */ REFIID riid,
9082             /* [annotation][iid_is][out] */
9083             _COM_Outptr_  void **ppvObject);
9084 
9085         ULONG ( STDMETHODCALLTYPE *AddRef )(
9086             IDeckLinkProfile * This);
9087 
9088         ULONG ( STDMETHODCALLTYPE *Release )(
9089             IDeckLinkProfile * This);
9090 
9091         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
9092             IDeckLinkProfile * This,
9093             /* [out] */ IDeckLink **device);
9094 
9095         HRESULT ( STDMETHODCALLTYPE *IsActive )(
9096             IDeckLinkProfile * This,
9097             /* [out] */ BOOL *isActive);
9098 
9099         HRESULT ( STDMETHODCALLTYPE *SetActive )(
9100             IDeckLinkProfile * This);
9101 
9102         HRESULT ( STDMETHODCALLTYPE *GetPeers )(
9103             IDeckLinkProfile * This,
9104             /* [out] */ IDeckLinkProfileIterator **profileIterator);
9105 
9106         END_INTERFACE
9107     } IDeckLinkProfileVtbl;
9108 
9109     interface IDeckLinkProfile
9110     {
9111         CONST_VTBL struct IDeckLinkProfileVtbl *lpVtbl;
9112     };
9113 
9114 
9115 
9116 #ifdef COBJMACROS
9117 
9118 
9119 #define IDeckLinkProfile_QueryInterface(This,riid,ppvObject)	\
9120     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9121 
9122 #define IDeckLinkProfile_AddRef(This)	\
9123     ( (This)->lpVtbl -> AddRef(This) )
9124 
9125 #define IDeckLinkProfile_Release(This)	\
9126     ( (This)->lpVtbl -> Release(This) )
9127 
9128 
9129 #define IDeckLinkProfile_GetDevice(This,device)	\
9130     ( (This)->lpVtbl -> GetDevice(This,device) )
9131 
9132 #define IDeckLinkProfile_IsActive(This,isActive)	\
9133     ( (This)->lpVtbl -> IsActive(This,isActive) )
9134 
9135 #define IDeckLinkProfile_SetActive(This)	\
9136     ( (This)->lpVtbl -> SetActive(This) )
9137 
9138 #define IDeckLinkProfile_GetPeers(This,profileIterator)	\
9139     ( (This)->lpVtbl -> GetPeers(This,profileIterator) )
9140 
9141 #endif /* COBJMACROS */
9142 
9143 
9144 #endif 	/* C style interface */
9145 
9146 
9147 
9148 
9149 #endif 	/* __IDeckLinkProfile_INTERFACE_DEFINED__ */
9150 
9151 
9152 #ifndef __IDeckLinkProfileCallback_INTERFACE_DEFINED__
9153 #define __IDeckLinkProfileCallback_INTERFACE_DEFINED__
9154 
9155 /* interface IDeckLinkProfileCallback */
9156 /* [helpstring][uuid][object] */
9157 
9158 
9159 EXTERN_C const IID IID_IDeckLinkProfileCallback;
9160 
9161 #if defined(__cplusplus) && !defined(CINTERFACE)
9162 
9163     MIDL_INTERFACE("A4F9341E-97AA-4E04-8935-15F809898CEA")
9164     IDeckLinkProfileCallback : public IUnknown
9165     {
9166     public:
9167         virtual HRESULT STDMETHODCALLTYPE ProfileChanging(
9168             /* [in] */ IDeckLinkProfile *profileToBeActivated,
9169             /* [in] */ BOOL streamsWillBeForcedToStop) = 0;
9170 
9171         virtual HRESULT STDMETHODCALLTYPE ProfileActivated(
9172             /* [in] */ IDeckLinkProfile *activatedProfile) = 0;
9173 
9174     };
9175 
9176 
9177 #else 	/* C style interface */
9178 
9179     typedef struct IDeckLinkProfileCallbackVtbl
9180     {
9181         BEGIN_INTERFACE
9182 
9183         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9184             IDeckLinkProfileCallback * This,
9185             /* [in] */ REFIID riid,
9186             /* [annotation][iid_is][out] */
9187             _COM_Outptr_  void **ppvObject);
9188 
9189         ULONG ( STDMETHODCALLTYPE *AddRef )(
9190             IDeckLinkProfileCallback * This);
9191 
9192         ULONG ( STDMETHODCALLTYPE *Release )(
9193             IDeckLinkProfileCallback * This);
9194 
9195         HRESULT ( STDMETHODCALLTYPE *ProfileChanging )(
9196             IDeckLinkProfileCallback * This,
9197             /* [in] */ IDeckLinkProfile *profileToBeActivated,
9198             /* [in] */ BOOL streamsWillBeForcedToStop);
9199 
9200         HRESULT ( STDMETHODCALLTYPE *ProfileActivated )(
9201             IDeckLinkProfileCallback * This,
9202             /* [in] */ IDeckLinkProfile *activatedProfile);
9203 
9204         END_INTERFACE
9205     } IDeckLinkProfileCallbackVtbl;
9206 
9207     interface IDeckLinkProfileCallback
9208     {
9209         CONST_VTBL struct IDeckLinkProfileCallbackVtbl *lpVtbl;
9210     };
9211 
9212 
9213 
9214 #ifdef COBJMACROS
9215 
9216 
9217 #define IDeckLinkProfileCallback_QueryInterface(This,riid,ppvObject)	\
9218     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9219 
9220 #define IDeckLinkProfileCallback_AddRef(This)	\
9221     ( (This)->lpVtbl -> AddRef(This) )
9222 
9223 #define IDeckLinkProfileCallback_Release(This)	\
9224     ( (This)->lpVtbl -> Release(This) )
9225 
9226 
9227 #define IDeckLinkProfileCallback_ProfileChanging(This,profileToBeActivated,streamsWillBeForcedToStop)	\
9228     ( (This)->lpVtbl -> ProfileChanging(This,profileToBeActivated,streamsWillBeForcedToStop) )
9229 
9230 #define IDeckLinkProfileCallback_ProfileActivated(This,activatedProfile)	\
9231     ( (This)->lpVtbl -> ProfileActivated(This,activatedProfile) )
9232 
9233 #endif /* COBJMACROS */
9234 
9235 
9236 #endif 	/* C style interface */
9237 
9238 
9239 
9240 
9241 #endif 	/* __IDeckLinkProfileCallback_INTERFACE_DEFINED__ */
9242 
9243 
9244 #ifndef __IDeckLinkProfileManager_INTERFACE_DEFINED__
9245 #define __IDeckLinkProfileManager_INTERFACE_DEFINED__
9246 
9247 /* interface IDeckLinkProfileManager */
9248 /* [helpstring][uuid][object] */
9249 
9250 
9251 EXTERN_C const IID IID_IDeckLinkProfileManager;
9252 
9253 #if defined(__cplusplus) && !defined(CINTERFACE)
9254 
9255     MIDL_INTERFACE("30D41429-3998-4B6D-84F8-78C94A797C6E")
9256     IDeckLinkProfileManager : public IUnknown
9257     {
9258     public:
9259         virtual HRESULT STDMETHODCALLTYPE GetProfiles(
9260             /* [out] */ IDeckLinkProfileIterator **profileIterator) = 0;
9261 
9262         virtual HRESULT STDMETHODCALLTYPE GetProfile(
9263             /* [in] */ BMDProfileID profileID,
9264             /* [out] */ IDeckLinkProfile **profile) = 0;
9265 
9266         virtual HRESULT STDMETHODCALLTYPE SetCallback(
9267             /* [in] */ IDeckLinkProfileCallback *callback) = 0;
9268 
9269     };
9270 
9271 
9272 #else 	/* C style interface */
9273 
9274     typedef struct IDeckLinkProfileManagerVtbl
9275     {
9276         BEGIN_INTERFACE
9277 
9278         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9279             IDeckLinkProfileManager * This,
9280             /* [in] */ REFIID riid,
9281             /* [annotation][iid_is][out] */
9282             _COM_Outptr_  void **ppvObject);
9283 
9284         ULONG ( STDMETHODCALLTYPE *AddRef )(
9285             IDeckLinkProfileManager * This);
9286 
9287         ULONG ( STDMETHODCALLTYPE *Release )(
9288             IDeckLinkProfileManager * This);
9289 
9290         HRESULT ( STDMETHODCALLTYPE *GetProfiles )(
9291             IDeckLinkProfileManager * This,
9292             /* [out] */ IDeckLinkProfileIterator **profileIterator);
9293 
9294         HRESULT ( STDMETHODCALLTYPE *GetProfile )(
9295             IDeckLinkProfileManager * This,
9296             /* [in] */ BMDProfileID profileID,
9297             /* [out] */ IDeckLinkProfile **profile);
9298 
9299         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
9300             IDeckLinkProfileManager * This,
9301             /* [in] */ IDeckLinkProfileCallback *callback);
9302 
9303         END_INTERFACE
9304     } IDeckLinkProfileManagerVtbl;
9305 
9306     interface IDeckLinkProfileManager
9307     {
9308         CONST_VTBL struct IDeckLinkProfileManagerVtbl *lpVtbl;
9309     };
9310 
9311 
9312 
9313 #ifdef COBJMACROS
9314 
9315 
9316 #define IDeckLinkProfileManager_QueryInterface(This,riid,ppvObject)	\
9317     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9318 
9319 #define IDeckLinkProfileManager_AddRef(This)	\
9320     ( (This)->lpVtbl -> AddRef(This) )
9321 
9322 #define IDeckLinkProfileManager_Release(This)	\
9323     ( (This)->lpVtbl -> Release(This) )
9324 
9325 
9326 #define IDeckLinkProfileManager_GetProfiles(This,profileIterator)	\
9327     ( (This)->lpVtbl -> GetProfiles(This,profileIterator) )
9328 
9329 #define IDeckLinkProfileManager_GetProfile(This,profileID,profile)	\
9330     ( (This)->lpVtbl -> GetProfile(This,profileID,profile) )
9331 
9332 #define IDeckLinkProfileManager_SetCallback(This,callback)	\
9333     ( (This)->lpVtbl -> SetCallback(This,callback) )
9334 
9335 #endif /* COBJMACROS */
9336 
9337 
9338 #endif 	/* C style interface */
9339 
9340 
9341 
9342 
9343 #endif 	/* __IDeckLinkProfileManager_INTERFACE_DEFINED__ */
9344 
9345 
9346 #ifndef __IDeckLinkStatus_INTERFACE_DEFINED__
9347 #define __IDeckLinkStatus_INTERFACE_DEFINED__
9348 
9349 /* interface IDeckLinkStatus */
9350 /* [helpstring][local][uuid][object] */
9351 
9352 
9353 EXTERN_C const IID IID_IDeckLinkStatus;
9354 
9355 #if defined(__cplusplus) && !defined(CINTERFACE)
9356 
9357     MIDL_INTERFACE("5F558200-4028-49BC-BEAC-DB3FA4A96E46")
9358     IDeckLinkStatus : public IUnknown
9359     {
9360     public:
9361         virtual HRESULT STDMETHODCALLTYPE GetFlag(
9362             /* [in] */ BMDDeckLinkStatusID statusID,
9363             /* [out] */ BOOL *value) = 0;
9364 
9365         virtual HRESULT STDMETHODCALLTYPE GetInt(
9366             /* [in] */ BMDDeckLinkStatusID statusID,
9367             /* [out] */ LONGLONG *value) = 0;
9368 
9369         virtual HRESULT STDMETHODCALLTYPE GetFloat(
9370             /* [in] */ BMDDeckLinkStatusID statusID,
9371             /* [out] */ double *value) = 0;
9372 
9373         virtual HRESULT STDMETHODCALLTYPE GetString(
9374             /* [in] */ BMDDeckLinkStatusID statusID,
9375             /* [out] */ BSTR *value) = 0;
9376 
9377         virtual HRESULT STDMETHODCALLTYPE GetBytes(
9378             /* [in] */ BMDDeckLinkStatusID statusID,
9379             /* [out] */ void *buffer,
9380             /* [out][in] */ unsigned int *bufferSize) = 0;
9381 
9382     };
9383 
9384 
9385 #else 	/* C style interface */
9386 
9387     typedef struct IDeckLinkStatusVtbl
9388     {
9389         BEGIN_INTERFACE
9390 
9391         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9392             IDeckLinkStatus * This,
9393             /* [in] */ REFIID riid,
9394             /* [annotation][iid_is][out] */
9395             _COM_Outptr_  void **ppvObject);
9396 
9397         ULONG ( STDMETHODCALLTYPE *AddRef )(
9398             IDeckLinkStatus * This);
9399 
9400         ULONG ( STDMETHODCALLTYPE *Release )(
9401             IDeckLinkStatus * This);
9402 
9403         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
9404             IDeckLinkStatus * This,
9405             /* [in] */ BMDDeckLinkStatusID statusID,
9406             /* [out] */ BOOL *value);
9407 
9408         HRESULT ( STDMETHODCALLTYPE *GetInt )(
9409             IDeckLinkStatus * This,
9410             /* [in] */ BMDDeckLinkStatusID statusID,
9411             /* [out] */ LONGLONG *value);
9412 
9413         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
9414             IDeckLinkStatus * This,
9415             /* [in] */ BMDDeckLinkStatusID statusID,
9416             /* [out] */ double *value);
9417 
9418         HRESULT ( STDMETHODCALLTYPE *GetString )(
9419             IDeckLinkStatus * This,
9420             /* [in] */ BMDDeckLinkStatusID statusID,
9421             /* [out] */ BSTR *value);
9422 
9423         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
9424             IDeckLinkStatus * This,
9425             /* [in] */ BMDDeckLinkStatusID statusID,
9426             /* [out] */ void *buffer,
9427             /* [out][in] */ unsigned int *bufferSize);
9428 
9429         END_INTERFACE
9430     } IDeckLinkStatusVtbl;
9431 
9432     interface IDeckLinkStatus
9433     {
9434         CONST_VTBL struct IDeckLinkStatusVtbl *lpVtbl;
9435     };
9436 
9437 
9438 
9439 #ifdef COBJMACROS
9440 
9441 
9442 #define IDeckLinkStatus_QueryInterface(This,riid,ppvObject)	\
9443     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9444 
9445 #define IDeckLinkStatus_AddRef(This)	\
9446     ( (This)->lpVtbl -> AddRef(This) )
9447 
9448 #define IDeckLinkStatus_Release(This)	\
9449     ( (This)->lpVtbl -> Release(This) )
9450 
9451 
9452 #define IDeckLinkStatus_GetFlag(This,statusID,value)	\
9453     ( (This)->lpVtbl -> GetFlag(This,statusID,value) )
9454 
9455 #define IDeckLinkStatus_GetInt(This,statusID,value)	\
9456     ( (This)->lpVtbl -> GetInt(This,statusID,value) )
9457 
9458 #define IDeckLinkStatus_GetFloat(This,statusID,value)	\
9459     ( (This)->lpVtbl -> GetFloat(This,statusID,value) )
9460 
9461 #define IDeckLinkStatus_GetString(This,statusID,value)	\
9462     ( (This)->lpVtbl -> GetString(This,statusID,value) )
9463 
9464 #define IDeckLinkStatus_GetBytes(This,statusID,buffer,bufferSize)	\
9465     ( (This)->lpVtbl -> GetBytes(This,statusID,buffer,bufferSize) )
9466 
9467 #endif /* COBJMACROS */
9468 
9469 
9470 #endif 	/* C style interface */
9471 
9472 
9473 
9474 
9475 #endif 	/* __IDeckLinkStatus_INTERFACE_DEFINED__ */
9476 
9477 
9478 #ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__
9479 #define __IDeckLinkKeyer_INTERFACE_DEFINED__
9480 
9481 /* interface IDeckLinkKeyer */
9482 /* [helpstring][local][uuid][object] */
9483 
9484 
9485 EXTERN_C const IID IID_IDeckLinkKeyer;
9486 
9487 #if defined(__cplusplus) && !defined(CINTERFACE)
9488 
9489     MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")
9490     IDeckLinkKeyer : public IUnknown
9491     {
9492     public:
9493         virtual HRESULT STDMETHODCALLTYPE Enable(
9494             /* [in] */ BOOL isExternal) = 0;
9495 
9496         virtual HRESULT STDMETHODCALLTYPE SetLevel(
9497             /* [in] */ unsigned char level) = 0;
9498 
9499         virtual HRESULT STDMETHODCALLTYPE RampUp(
9500             /* [in] */ unsigned int numberOfFrames) = 0;
9501 
9502         virtual HRESULT STDMETHODCALLTYPE RampDown(
9503             /* [in] */ unsigned int numberOfFrames) = 0;
9504 
9505         virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;
9506 
9507     };
9508 
9509 
9510 #else 	/* C style interface */
9511 
9512     typedef struct IDeckLinkKeyerVtbl
9513     {
9514         BEGIN_INTERFACE
9515 
9516         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9517             IDeckLinkKeyer * This,
9518             /* [in] */ REFIID riid,
9519             /* [annotation][iid_is][out] */
9520             _COM_Outptr_  void **ppvObject);
9521 
9522         ULONG ( STDMETHODCALLTYPE *AddRef )(
9523             IDeckLinkKeyer * This);
9524 
9525         ULONG ( STDMETHODCALLTYPE *Release )(
9526             IDeckLinkKeyer * This);
9527 
9528         HRESULT ( STDMETHODCALLTYPE *Enable )(
9529             IDeckLinkKeyer * This,
9530             /* [in] */ BOOL isExternal);
9531 
9532         HRESULT ( STDMETHODCALLTYPE *SetLevel )(
9533             IDeckLinkKeyer * This,
9534             /* [in] */ unsigned char level);
9535 
9536         HRESULT ( STDMETHODCALLTYPE *RampUp )(
9537             IDeckLinkKeyer * This,
9538             /* [in] */ unsigned int numberOfFrames);
9539 
9540         HRESULT ( STDMETHODCALLTYPE *RampDown )(
9541             IDeckLinkKeyer * This,
9542             /* [in] */ unsigned int numberOfFrames);
9543 
9544         HRESULT ( STDMETHODCALLTYPE *Disable )(
9545             IDeckLinkKeyer * This);
9546 
9547         END_INTERFACE
9548     } IDeckLinkKeyerVtbl;
9549 
9550     interface IDeckLinkKeyer
9551     {
9552         CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;
9553     };
9554 
9555 
9556 
9557 #ifdef COBJMACROS
9558 
9559 
9560 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)	\
9561     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9562 
9563 #define IDeckLinkKeyer_AddRef(This)	\
9564     ( (This)->lpVtbl -> AddRef(This) )
9565 
9566 #define IDeckLinkKeyer_Release(This)	\
9567     ( (This)->lpVtbl -> Release(This) )
9568 
9569 
9570 #define IDeckLinkKeyer_Enable(This,isExternal)	\
9571     ( (This)->lpVtbl -> Enable(This,isExternal) )
9572 
9573 #define IDeckLinkKeyer_SetLevel(This,level)	\
9574     ( (This)->lpVtbl -> SetLevel(This,level) )
9575 
9576 #define IDeckLinkKeyer_RampUp(This,numberOfFrames)	\
9577     ( (This)->lpVtbl -> RampUp(This,numberOfFrames) )
9578 
9579 #define IDeckLinkKeyer_RampDown(This,numberOfFrames)	\
9580     ( (This)->lpVtbl -> RampDown(This,numberOfFrames) )
9581 
9582 #define IDeckLinkKeyer_Disable(This)	\
9583     ( (This)->lpVtbl -> Disable(This) )
9584 
9585 #endif /* COBJMACROS */
9586 
9587 
9588 #endif 	/* C style interface */
9589 
9590 
9591 
9592 
9593 #endif 	/* __IDeckLinkKeyer_INTERFACE_DEFINED__ */
9594 
9595 
9596 #ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__
9597 #define __IDeckLinkVideoConversion_INTERFACE_DEFINED__
9598 
9599 /* interface IDeckLinkVideoConversion */
9600 /* [helpstring][local][uuid][object] */
9601 
9602 
9603 EXTERN_C const IID IID_IDeckLinkVideoConversion;
9604 
9605 #if defined(__cplusplus) && !defined(CINTERFACE)
9606 
9607     MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")
9608     IDeckLinkVideoConversion : public IUnknown
9609     {
9610     public:
9611         virtual HRESULT STDMETHODCALLTYPE ConvertFrame(
9612             /* [in] */ IDeckLinkVideoFrame *srcFrame,
9613             /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;
9614 
9615     };
9616 
9617 
9618 #else 	/* C style interface */
9619 
9620     typedef struct IDeckLinkVideoConversionVtbl
9621     {
9622         BEGIN_INTERFACE
9623 
9624         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9625             IDeckLinkVideoConversion * This,
9626             /* [in] */ REFIID riid,
9627             /* [annotation][iid_is][out] */
9628             _COM_Outptr_  void **ppvObject);
9629 
9630         ULONG ( STDMETHODCALLTYPE *AddRef )(
9631             IDeckLinkVideoConversion * This);
9632 
9633         ULONG ( STDMETHODCALLTYPE *Release )(
9634             IDeckLinkVideoConversion * This);
9635 
9636         HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(
9637             IDeckLinkVideoConversion * This,
9638             /* [in] */ IDeckLinkVideoFrame *srcFrame,
9639             /* [in] */ IDeckLinkVideoFrame *dstFrame);
9640 
9641         END_INTERFACE
9642     } IDeckLinkVideoConversionVtbl;
9643 
9644     interface IDeckLinkVideoConversion
9645     {
9646         CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;
9647     };
9648 
9649 
9650 
9651 #ifdef COBJMACROS
9652 
9653 
9654 #define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject)	\
9655     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9656 
9657 #define IDeckLinkVideoConversion_AddRef(This)	\
9658     ( (This)->lpVtbl -> AddRef(This) )
9659 
9660 #define IDeckLinkVideoConversion_Release(This)	\
9661     ( (This)->lpVtbl -> Release(This) )
9662 
9663 
9664 #define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame)	\
9665     ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )
9666 
9667 #endif /* COBJMACROS */
9668 
9669 
9670 #endif 	/* C style interface */
9671 
9672 
9673 
9674 
9675 #endif 	/* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */
9676 
9677 
9678 #ifndef __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__
9679 #define __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__
9680 
9681 /* interface IDeckLinkDeviceNotificationCallback */
9682 /* [helpstring][uuid][object] */
9683 
9684 
9685 EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;
9686 
9687 #if defined(__cplusplus) && !defined(CINTERFACE)
9688 
9689     MIDL_INTERFACE("4997053B-0ADF-4CC8-AC70-7A50C4BE728F")
9690     IDeckLinkDeviceNotificationCallback : public IUnknown
9691     {
9692     public:
9693         virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceArrived(
9694             /* [in] */ IDeckLink *deckLinkDevice) = 0;
9695 
9696         virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceRemoved(
9697             /* [in] */ IDeckLink *deckLinkDevice) = 0;
9698 
9699     };
9700 
9701 
9702 #else 	/* C style interface */
9703 
9704     typedef struct IDeckLinkDeviceNotificationCallbackVtbl
9705     {
9706         BEGIN_INTERFACE
9707 
9708         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9709             IDeckLinkDeviceNotificationCallback * This,
9710             /* [in] */ REFIID riid,
9711             /* [annotation][iid_is][out] */
9712             _COM_Outptr_  void **ppvObject);
9713 
9714         ULONG ( STDMETHODCALLTYPE *AddRef )(
9715             IDeckLinkDeviceNotificationCallback * This);
9716 
9717         ULONG ( STDMETHODCALLTYPE *Release )(
9718             IDeckLinkDeviceNotificationCallback * This);
9719 
9720         HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceArrived )(
9721             IDeckLinkDeviceNotificationCallback * This,
9722             /* [in] */ IDeckLink *deckLinkDevice);
9723 
9724         HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceRemoved )(
9725             IDeckLinkDeviceNotificationCallback * This,
9726             /* [in] */ IDeckLink *deckLinkDevice);
9727 
9728         END_INTERFACE
9729     } IDeckLinkDeviceNotificationCallbackVtbl;
9730 
9731     interface IDeckLinkDeviceNotificationCallback
9732     {
9733         CONST_VTBL struct IDeckLinkDeviceNotificationCallbackVtbl *lpVtbl;
9734     };
9735 
9736 
9737 
9738 #ifdef COBJMACROS
9739 
9740 
9741 #define IDeckLinkDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)	\
9742     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9743 
9744 #define IDeckLinkDeviceNotificationCallback_AddRef(This)	\
9745     ( (This)->lpVtbl -> AddRef(This) )
9746 
9747 #define IDeckLinkDeviceNotificationCallback_Release(This)	\
9748     ( (This)->lpVtbl -> Release(This) )
9749 
9750 
9751 #define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceArrived(This,deckLinkDevice)	\
9752     ( (This)->lpVtbl -> DeckLinkDeviceArrived(This,deckLinkDevice) )
9753 
9754 #define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceRemoved(This,deckLinkDevice)	\
9755     ( (This)->lpVtbl -> DeckLinkDeviceRemoved(This,deckLinkDevice) )
9756 
9757 #endif /* COBJMACROS */
9758 
9759 
9760 #endif 	/* C style interface */
9761 
9762 
9763 
9764 
9765 #endif 	/* __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__ */
9766 
9767 
9768 #ifndef __IDeckLinkDiscovery_INTERFACE_DEFINED__
9769 #define __IDeckLinkDiscovery_INTERFACE_DEFINED__
9770 
9771 /* interface IDeckLinkDiscovery */
9772 /* [helpstring][uuid][object] */
9773 
9774 
9775 EXTERN_C const IID IID_IDeckLinkDiscovery;
9776 
9777 #if defined(__cplusplus) && !defined(CINTERFACE)
9778 
9779     MIDL_INTERFACE("CDBF631C-BC76-45FA-B44D-C55059BC6101")
9780     IDeckLinkDiscovery : public IUnknown
9781     {
9782     public:
9783         virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications(
9784             /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback) = 0;
9785 
9786         virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;
9787 
9788     };
9789 
9790 
9791 #else 	/* C style interface */
9792 
9793     typedef struct IDeckLinkDiscoveryVtbl
9794     {
9795         BEGIN_INTERFACE
9796 
9797         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9798             IDeckLinkDiscovery * This,
9799             /* [in] */ REFIID riid,
9800             /* [annotation][iid_is][out] */
9801             _COM_Outptr_  void **ppvObject);
9802 
9803         ULONG ( STDMETHODCALLTYPE *AddRef )(
9804             IDeckLinkDiscovery * This);
9805 
9806         ULONG ( STDMETHODCALLTYPE *Release )(
9807             IDeckLinkDiscovery * This);
9808 
9809         HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )(
9810             IDeckLinkDiscovery * This,
9811             /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback);
9812 
9813         HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )(
9814             IDeckLinkDiscovery * This);
9815 
9816         END_INTERFACE
9817     } IDeckLinkDiscoveryVtbl;
9818 
9819     interface IDeckLinkDiscovery
9820     {
9821         CONST_VTBL struct IDeckLinkDiscoveryVtbl *lpVtbl;
9822     };
9823 
9824 
9825 
9826 #ifdef COBJMACROS
9827 
9828 
9829 #define IDeckLinkDiscovery_QueryInterface(This,riid,ppvObject)	\
9830     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9831 
9832 #define IDeckLinkDiscovery_AddRef(This)	\
9833     ( (This)->lpVtbl -> AddRef(This) )
9834 
9835 #define IDeckLinkDiscovery_Release(This)	\
9836     ( (This)->lpVtbl -> Release(This) )
9837 
9838 
9839 #define IDeckLinkDiscovery_InstallDeviceNotifications(This,deviceNotificationCallback)	\
9840     ( (This)->lpVtbl -> InstallDeviceNotifications(This,deviceNotificationCallback) )
9841 
9842 #define IDeckLinkDiscovery_UninstallDeviceNotifications(This)	\
9843     ( (This)->lpVtbl -> UninstallDeviceNotifications(This) )
9844 
9845 #endif /* COBJMACROS */
9846 
9847 
9848 #endif 	/* C style interface */
9849 
9850 
9851 
9852 
9853 #endif 	/* __IDeckLinkDiscovery_INTERFACE_DEFINED__ */
9854 
9855 
9856 EXTERN_C const CLSID CLSID_CDeckLinkIterator;
9857 
9858 #ifdef __cplusplus
9859 
9860 class DECLSPEC_UUID("BA6C6F44-6DA5-4DCE-94AA-EE2D1372A676")
9861 CDeckLinkIterator;
9862 #endif
9863 
9864 EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;
9865 
9866 #ifdef __cplusplus
9867 
9868 class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")
9869 CDeckLinkAPIInformation;
9870 #endif
9871 
9872 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;
9873 
9874 #ifdef __cplusplus
9875 
9876 class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")
9877 CDeckLinkGLScreenPreviewHelper;
9878 #endif
9879 
9880 EXTERN_C const CLSID CLSID_CDeckLinkDX9ScreenPreviewHelper;
9881 
9882 #ifdef __cplusplus
9883 
9884 class DECLSPEC_UUID("CC010023-E01D-4525-9D59-80C8AB3DC7A0")
9885 CDeckLinkDX9ScreenPreviewHelper;
9886 #endif
9887 
9888 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;
9889 
9890 #ifdef __cplusplus
9891 
9892 class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")
9893 CDeckLinkVideoConversion;
9894 #endif
9895 
9896 EXTERN_C const CLSID CLSID_CDeckLinkDiscovery;
9897 
9898 #ifdef __cplusplus
9899 
9900 class DECLSPEC_UUID("22FBFC33-8D07-495C-A5BF-DAB5EA9B82DB")
9901 CDeckLinkDiscovery;
9902 #endif
9903 
9904 EXTERN_C const CLSID CLSID_CDeckLinkVideoFrameAncillaryPackets;
9905 
9906 #ifdef __cplusplus
9907 
9908 class DECLSPEC_UUID("F891AD29-D0C2-46E9-A926-4E2D0DD8CFAD")
9909 CDeckLinkVideoFrameAncillaryPackets;
9910 #endif
9911 
9912 #ifndef __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__
9913 #define __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__
9914 
9915 /* interface IDeckLinkConfiguration_v10_11 */
9916 /* [helpstring][local][uuid][object] */
9917 
9918 
9919 EXTERN_C const IID IID_IDeckLinkConfiguration_v10_11;
9920 
9921 #if defined(__cplusplus) && !defined(CINTERFACE)
9922 
9923     MIDL_INTERFACE("EF90380B-4AE5-4346-9077-E288E149F129")
9924     IDeckLinkConfiguration_v10_11 : public IUnknown
9925     {
9926     public:
9927         virtual HRESULT STDMETHODCALLTYPE SetFlag(
9928             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9929             /* [in] */ BOOL value) = 0;
9930 
9931         virtual HRESULT STDMETHODCALLTYPE GetFlag(
9932             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9933             /* [out] */ BOOL *value) = 0;
9934 
9935         virtual HRESULT STDMETHODCALLTYPE SetInt(
9936             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9937             /* [in] */ LONGLONG value) = 0;
9938 
9939         virtual HRESULT STDMETHODCALLTYPE GetInt(
9940             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9941             /* [out] */ LONGLONG *value) = 0;
9942 
9943         virtual HRESULT STDMETHODCALLTYPE SetFloat(
9944             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9945             /* [in] */ double value) = 0;
9946 
9947         virtual HRESULT STDMETHODCALLTYPE GetFloat(
9948             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9949             /* [out] */ double *value) = 0;
9950 
9951         virtual HRESULT STDMETHODCALLTYPE SetString(
9952             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9953             /* [in] */ BSTR value) = 0;
9954 
9955         virtual HRESULT STDMETHODCALLTYPE GetString(
9956             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9957             /* [out] */ BSTR *value) = 0;
9958 
9959         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
9960 
9961     };
9962 
9963 
9964 #else 	/* C style interface */
9965 
9966     typedef struct IDeckLinkConfiguration_v10_11Vtbl
9967     {
9968         BEGIN_INTERFACE
9969 
9970         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9971             IDeckLinkConfiguration_v10_11 * This,
9972             /* [in] */ REFIID riid,
9973             /* [annotation][iid_is][out] */
9974             _COM_Outptr_  void **ppvObject);
9975 
9976         ULONG ( STDMETHODCALLTYPE *AddRef )(
9977             IDeckLinkConfiguration_v10_11 * This);
9978 
9979         ULONG ( STDMETHODCALLTYPE *Release )(
9980             IDeckLinkConfiguration_v10_11 * This);
9981 
9982         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
9983             IDeckLinkConfiguration_v10_11 * This,
9984             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9985             /* [in] */ BOOL value);
9986 
9987         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
9988             IDeckLinkConfiguration_v10_11 * This,
9989             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9990             /* [out] */ BOOL *value);
9991 
9992         HRESULT ( STDMETHODCALLTYPE *SetInt )(
9993             IDeckLinkConfiguration_v10_11 * This,
9994             /* [in] */ BMDDeckLinkConfigurationID cfgID,
9995             /* [in] */ LONGLONG value);
9996 
9997         HRESULT ( STDMETHODCALLTYPE *GetInt )(
9998             IDeckLinkConfiguration_v10_11 * This,
9999             /* [in] */ BMDDeckLinkConfigurationID cfgID,
10000             /* [out] */ LONGLONG *value);
10001 
10002         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
10003             IDeckLinkConfiguration_v10_11 * This,
10004             /* [in] */ BMDDeckLinkConfigurationID cfgID,
10005             /* [in] */ double value);
10006 
10007         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
10008             IDeckLinkConfiguration_v10_11 * This,
10009             /* [in] */ BMDDeckLinkConfigurationID cfgID,
10010             /* [out] */ double *value);
10011 
10012         HRESULT ( STDMETHODCALLTYPE *SetString )(
10013             IDeckLinkConfiguration_v10_11 * This,
10014             /* [in] */ BMDDeckLinkConfigurationID cfgID,
10015             /* [in] */ BSTR value);
10016 
10017         HRESULT ( STDMETHODCALLTYPE *GetString )(
10018             IDeckLinkConfiguration_v10_11 * This,
10019             /* [in] */ BMDDeckLinkConfigurationID cfgID,
10020             /* [out] */ BSTR *value);
10021 
10022         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
10023             IDeckLinkConfiguration_v10_11 * This);
10024 
10025         END_INTERFACE
10026     } IDeckLinkConfiguration_v10_11Vtbl;
10027 
10028     interface IDeckLinkConfiguration_v10_11
10029     {
10030         CONST_VTBL struct IDeckLinkConfiguration_v10_11Vtbl *lpVtbl;
10031     };
10032 
10033 
10034 
10035 #ifdef COBJMACROS
10036 
10037 
10038 #define IDeckLinkConfiguration_v10_11_QueryInterface(This,riid,ppvObject)	\
10039     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10040 
10041 #define IDeckLinkConfiguration_v10_11_AddRef(This)	\
10042     ( (This)->lpVtbl -> AddRef(This) )
10043 
10044 #define IDeckLinkConfiguration_v10_11_Release(This)	\
10045     ( (This)->lpVtbl -> Release(This) )
10046 
10047 
10048 #define IDeckLinkConfiguration_v10_11_SetFlag(This,cfgID,value)	\
10049     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
10050 
10051 #define IDeckLinkConfiguration_v10_11_GetFlag(This,cfgID,value)	\
10052     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
10053 
10054 #define IDeckLinkConfiguration_v10_11_SetInt(This,cfgID,value)	\
10055     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
10056 
10057 #define IDeckLinkConfiguration_v10_11_GetInt(This,cfgID,value)	\
10058     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
10059 
10060 #define IDeckLinkConfiguration_v10_11_SetFloat(This,cfgID,value)	\
10061     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
10062 
10063 #define IDeckLinkConfiguration_v10_11_GetFloat(This,cfgID,value)	\
10064     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
10065 
10066 #define IDeckLinkConfiguration_v10_11_SetString(This,cfgID,value)	\
10067     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
10068 
10069 #define IDeckLinkConfiguration_v10_11_GetString(This,cfgID,value)	\
10070     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
10071 
10072 #define IDeckLinkConfiguration_v10_11_WriteConfigurationToPreferences(This)	\
10073     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
10074 
10075 #endif /* COBJMACROS */
10076 
10077 
10078 #endif 	/* C style interface */
10079 
10080 
10081 
10082 
10083 #endif 	/* __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__ */
10084 
10085 
10086 #ifndef __IDeckLinkAttributes_v10_11_INTERFACE_DEFINED__
10087 #define __IDeckLinkAttributes_v10_11_INTERFACE_DEFINED__
10088 
10089 /* interface IDeckLinkAttributes_v10_11 */
10090 /* [helpstring][local][uuid][object] */
10091 
10092 
10093 EXTERN_C const IID IID_IDeckLinkAttributes_v10_11;
10094 
10095 #if defined(__cplusplus) && !defined(CINTERFACE)
10096 
10097     MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")
10098     IDeckLinkAttributes_v10_11 : public IUnknown
10099     {
10100     public:
10101         virtual HRESULT STDMETHODCALLTYPE GetFlag(
10102             /* [in] */ BMDDeckLinkAttributeID cfgID,
10103             /* [out] */ BOOL *value) = 0;
10104 
10105         virtual HRESULT STDMETHODCALLTYPE GetInt(
10106             /* [in] */ BMDDeckLinkAttributeID cfgID,
10107             /* [out] */ LONGLONG *value) = 0;
10108 
10109         virtual HRESULT STDMETHODCALLTYPE GetFloat(
10110             /* [in] */ BMDDeckLinkAttributeID cfgID,
10111             /* [out] */ double *value) = 0;
10112 
10113         virtual HRESULT STDMETHODCALLTYPE GetString(
10114             /* [in] */ BMDDeckLinkAttributeID cfgID,
10115             /* [out] */ BSTR *value) = 0;
10116 
10117     };
10118 
10119 
10120 #else 	/* C style interface */
10121 
10122     typedef struct IDeckLinkAttributes_v10_11Vtbl
10123     {
10124         BEGIN_INTERFACE
10125 
10126         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10127             IDeckLinkAttributes_v10_11 * This,
10128             /* [in] */ REFIID riid,
10129             /* [annotation][iid_is][out] */
10130             _COM_Outptr_  void **ppvObject);
10131 
10132         ULONG ( STDMETHODCALLTYPE *AddRef )(
10133             IDeckLinkAttributes_v10_11 * This);
10134 
10135         ULONG ( STDMETHODCALLTYPE *Release )(
10136             IDeckLinkAttributes_v10_11 * This);
10137 
10138         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
10139             IDeckLinkAttributes_v10_11 * This,
10140             /* [in] */ BMDDeckLinkAttributeID cfgID,
10141             /* [out] */ BOOL *value);
10142 
10143         HRESULT ( STDMETHODCALLTYPE *GetInt )(
10144             IDeckLinkAttributes_v10_11 * This,
10145             /* [in] */ BMDDeckLinkAttributeID cfgID,
10146             /* [out] */ LONGLONG *value);
10147 
10148         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
10149             IDeckLinkAttributes_v10_11 * This,
10150             /* [in] */ BMDDeckLinkAttributeID cfgID,
10151             /* [out] */ double *value);
10152 
10153         HRESULT ( STDMETHODCALLTYPE *GetString )(
10154             IDeckLinkAttributes_v10_11 * This,
10155             /* [in] */ BMDDeckLinkAttributeID cfgID,
10156             /* [out] */ BSTR *value);
10157 
10158         END_INTERFACE
10159     } IDeckLinkAttributes_v10_11Vtbl;
10160 
10161     interface IDeckLinkAttributes_v10_11
10162     {
10163         CONST_VTBL struct IDeckLinkAttributes_v10_11Vtbl *lpVtbl;
10164     };
10165 
10166 
10167 
10168 #ifdef COBJMACROS
10169 
10170 
10171 #define IDeckLinkAttributes_v10_11_QueryInterface(This,riid,ppvObject)	\
10172     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10173 
10174 #define IDeckLinkAttributes_v10_11_AddRef(This)	\
10175     ( (This)->lpVtbl -> AddRef(This) )
10176 
10177 #define IDeckLinkAttributes_v10_11_Release(This)	\
10178     ( (This)->lpVtbl -> Release(This) )
10179 
10180 
10181 #define IDeckLinkAttributes_v10_11_GetFlag(This,cfgID,value)	\
10182     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
10183 
10184 #define IDeckLinkAttributes_v10_11_GetInt(This,cfgID,value)	\
10185     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
10186 
10187 #define IDeckLinkAttributes_v10_11_GetFloat(This,cfgID,value)	\
10188     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
10189 
10190 #define IDeckLinkAttributes_v10_11_GetString(This,cfgID,value)	\
10191     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
10192 
10193 #endif /* COBJMACROS */
10194 
10195 
10196 #endif 	/* C style interface */
10197 
10198 
10199 
10200 
10201 #endif 	/* __IDeckLinkAttributes_v10_11_INTERFACE_DEFINED__ */
10202 
10203 
10204 #ifndef __IDeckLinkNotification_v10_11_INTERFACE_DEFINED__
10205 #define __IDeckLinkNotification_v10_11_INTERFACE_DEFINED__
10206 
10207 /* interface IDeckLinkNotification_v10_11 */
10208 /* [helpstring][local][uuid][object] */
10209 
10210 
10211 EXTERN_C const IID IID_IDeckLinkNotification_v10_11;
10212 
10213 #if defined(__cplusplus) && !defined(CINTERFACE)
10214 
10215     MIDL_INTERFACE("0A1FB207-E215-441B-9B19-6FA1575946C5")
10216     IDeckLinkNotification_v10_11 : public IUnknown
10217     {
10218     public:
10219         virtual HRESULT STDMETHODCALLTYPE Subscribe(
10220             /* [in] */ BMDNotifications topic,
10221             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
10222 
10223         virtual HRESULT STDMETHODCALLTYPE Unsubscribe(
10224             /* [in] */ BMDNotifications topic,
10225             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
10226 
10227     };
10228 
10229 
10230 #else 	/* C style interface */
10231 
10232     typedef struct IDeckLinkNotification_v10_11Vtbl
10233     {
10234         BEGIN_INTERFACE
10235 
10236         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10237             IDeckLinkNotification_v10_11 * This,
10238             /* [in] */ REFIID riid,
10239             /* [annotation][iid_is][out] */
10240             _COM_Outptr_  void **ppvObject);
10241 
10242         ULONG ( STDMETHODCALLTYPE *AddRef )(
10243             IDeckLinkNotification_v10_11 * This);
10244 
10245         ULONG ( STDMETHODCALLTYPE *Release )(
10246             IDeckLinkNotification_v10_11 * This);
10247 
10248         HRESULT ( STDMETHODCALLTYPE *Subscribe )(
10249             IDeckLinkNotification_v10_11 * This,
10250             /* [in] */ BMDNotifications topic,
10251             /* [in] */ IDeckLinkNotificationCallback *theCallback);
10252 
10253         HRESULT ( STDMETHODCALLTYPE *Unsubscribe )(
10254             IDeckLinkNotification_v10_11 * This,
10255             /* [in] */ BMDNotifications topic,
10256             /* [in] */ IDeckLinkNotificationCallback *theCallback);
10257 
10258         END_INTERFACE
10259     } IDeckLinkNotification_v10_11Vtbl;
10260 
10261     interface IDeckLinkNotification_v10_11
10262     {
10263         CONST_VTBL struct IDeckLinkNotification_v10_11Vtbl *lpVtbl;
10264     };
10265 
10266 
10267 
10268 #ifdef COBJMACROS
10269 
10270 
10271 #define IDeckLinkNotification_v10_11_QueryInterface(This,riid,ppvObject)	\
10272     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10273 
10274 #define IDeckLinkNotification_v10_11_AddRef(This)	\
10275     ( (This)->lpVtbl -> AddRef(This) )
10276 
10277 #define IDeckLinkNotification_v10_11_Release(This)	\
10278     ( (This)->lpVtbl -> Release(This) )
10279 
10280 
10281 #define IDeckLinkNotification_v10_11_Subscribe(This,topic,theCallback)	\
10282     ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) )
10283 
10284 #define IDeckLinkNotification_v10_11_Unsubscribe(This,topic,theCallback)	\
10285     ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) )
10286 
10287 #endif /* COBJMACROS */
10288 
10289 
10290 #endif 	/* C style interface */
10291 
10292 
10293 
10294 
10295 #endif 	/* __IDeckLinkNotification_v10_11_INTERFACE_DEFINED__ */
10296 
10297 
10298 #ifndef __IDeckLinkOutput_v10_11_INTERFACE_DEFINED__
10299 #define __IDeckLinkOutput_v10_11_INTERFACE_DEFINED__
10300 
10301 /* interface IDeckLinkOutput_v10_11 */
10302 /* [helpstring][local][uuid][object] */
10303 
10304 
10305 EXTERN_C const IID IID_IDeckLinkOutput_v10_11;
10306 
10307 #if defined(__cplusplus) && !defined(CINTERFACE)
10308 
10309     MIDL_INTERFACE("CC5C8A6E-3F2F-4B3A-87EA-FD78AF300564")
10310     IDeckLinkOutput_v10_11 : public IUnknown
10311     {
10312     public:
10313         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
10314             /* [in] */ BMDDisplayMode displayMode,
10315             /* [in] */ BMDPixelFormat pixelFormat,
10316             /* [in] */ BMDVideoOutputFlags flags,
10317             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
10318             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
10319 
10320         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
10321             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
10322 
10323         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
10324             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
10325 
10326         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
10327             /* [in] */ BMDDisplayMode displayMode,
10328             /* [in] */ BMDVideoOutputFlags flags) = 0;
10329 
10330         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
10331 
10332         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
10333             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
10334 
10335         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
10336             /* [in] */ int width,
10337             /* [in] */ int height,
10338             /* [in] */ int rowBytes,
10339             /* [in] */ BMDPixelFormat pixelFormat,
10340             /* [in] */ BMDFrameFlags flags,
10341             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;
10342 
10343         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
10344             /* [in] */ BMDPixelFormat pixelFormat,
10345             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
10346 
10347         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
10348             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
10349 
10350         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
10351             /* [in] */ IDeckLinkVideoFrame *theFrame,
10352             /* [in] */ BMDTimeValue displayTime,
10353             /* [in] */ BMDTimeValue displayDuration,
10354             /* [in] */ BMDTimeScale timeScale) = 0;
10355 
10356         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
10357             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
10358 
10359         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
10360             /* [out] */ unsigned int *bufferedFrameCount) = 0;
10361 
10362         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
10363             /* [in] */ BMDAudioSampleRate sampleRate,
10364             /* [in] */ BMDAudioSampleType sampleType,
10365             /* [in] */ unsigned int channelCount,
10366             /* [in] */ BMDAudioOutputStreamType streamType) = 0;
10367 
10368         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
10369 
10370         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
10371             /* [in] */ void *buffer,
10372             /* [in] */ unsigned int sampleFrameCount,
10373             /* [out] */ unsigned int *sampleFramesWritten) = 0;
10374 
10375         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
10376 
10377         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
10378 
10379         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
10380             /* [in] */ void *buffer,
10381             /* [in] */ unsigned int sampleFrameCount,
10382             /* [in] */ BMDTimeValue streamTime,
10383             /* [in] */ BMDTimeScale timeScale,
10384             /* [out] */ unsigned int *sampleFramesWritten) = 0;
10385 
10386         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
10387             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;
10388 
10389         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
10390 
10391         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
10392             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
10393 
10394         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
10395             /* [in] */ BMDTimeValue playbackStartTime,
10396             /* [in] */ BMDTimeScale timeScale,
10397             /* [in] */ double playbackSpeed) = 0;
10398 
10399         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
10400             /* [in] */ BMDTimeValue stopPlaybackAtTime,
10401             /* [out] */ BMDTimeValue *actualStopTime,
10402             /* [in] */ BMDTimeScale timeScale) = 0;
10403 
10404         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
10405             /* [out] */ BOOL *active) = 0;
10406 
10407         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
10408             /* [in] */ BMDTimeScale desiredTimeScale,
10409             /* [out] */ BMDTimeValue *streamTime,
10410             /* [out] */ double *playbackSpeed) = 0;
10411 
10412         virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(
10413             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;
10414 
10415         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
10416             /* [in] */ BMDTimeScale desiredTimeScale,
10417             /* [out] */ BMDTimeValue *hardwareTime,
10418             /* [out] */ BMDTimeValue *timeInFrame,
10419             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
10420 
10421         virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp(
10422             /* [in] */ IDeckLinkVideoFrame *theFrame,
10423             /* [in] */ BMDTimeScale desiredTimeScale,
10424             /* [out] */ BMDTimeValue *frameCompletionTimestamp) = 0;
10425 
10426     };
10427 
10428 
10429 #else 	/* C style interface */
10430 
10431     typedef struct IDeckLinkOutput_v10_11Vtbl
10432     {
10433         BEGIN_INTERFACE
10434 
10435         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10436             IDeckLinkOutput_v10_11 * This,
10437             /* [in] */ REFIID riid,
10438             /* [annotation][iid_is][out] */
10439             _COM_Outptr_  void **ppvObject);
10440 
10441         ULONG ( STDMETHODCALLTYPE *AddRef )(
10442             IDeckLinkOutput_v10_11 * This);
10443 
10444         ULONG ( STDMETHODCALLTYPE *Release )(
10445             IDeckLinkOutput_v10_11 * This);
10446 
10447         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
10448             IDeckLinkOutput_v10_11 * This,
10449             /* [in] */ BMDDisplayMode displayMode,
10450             /* [in] */ BMDPixelFormat pixelFormat,
10451             /* [in] */ BMDVideoOutputFlags flags,
10452             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
10453             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
10454 
10455         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
10456             IDeckLinkOutput_v10_11 * This,
10457             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
10458 
10459         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
10460             IDeckLinkOutput_v10_11 * This,
10461             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
10462 
10463         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
10464             IDeckLinkOutput_v10_11 * This,
10465             /* [in] */ BMDDisplayMode displayMode,
10466             /* [in] */ BMDVideoOutputFlags flags);
10467 
10468         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
10469             IDeckLinkOutput_v10_11 * This);
10470 
10471         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
10472             IDeckLinkOutput_v10_11 * This,
10473             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
10474 
10475         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
10476             IDeckLinkOutput_v10_11 * This,
10477             /* [in] */ int width,
10478             /* [in] */ int height,
10479             /* [in] */ int rowBytes,
10480             /* [in] */ BMDPixelFormat pixelFormat,
10481             /* [in] */ BMDFrameFlags flags,
10482             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);
10483 
10484         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
10485             IDeckLinkOutput_v10_11 * This,
10486             /* [in] */ BMDPixelFormat pixelFormat,
10487             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
10488 
10489         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
10490             IDeckLinkOutput_v10_11 * This,
10491             /* [in] */ IDeckLinkVideoFrame *theFrame);
10492 
10493         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
10494             IDeckLinkOutput_v10_11 * This,
10495             /* [in] */ IDeckLinkVideoFrame *theFrame,
10496             /* [in] */ BMDTimeValue displayTime,
10497             /* [in] */ BMDTimeValue displayDuration,
10498             /* [in] */ BMDTimeScale timeScale);
10499 
10500         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
10501             IDeckLinkOutput_v10_11 * This,
10502             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
10503 
10504         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
10505             IDeckLinkOutput_v10_11 * This,
10506             /* [out] */ unsigned int *bufferedFrameCount);
10507 
10508         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
10509             IDeckLinkOutput_v10_11 * This,
10510             /* [in] */ BMDAudioSampleRate sampleRate,
10511             /* [in] */ BMDAudioSampleType sampleType,
10512             /* [in] */ unsigned int channelCount,
10513             /* [in] */ BMDAudioOutputStreamType streamType);
10514 
10515         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
10516             IDeckLinkOutput_v10_11 * This);
10517 
10518         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
10519             IDeckLinkOutput_v10_11 * This,
10520             /* [in] */ void *buffer,
10521             /* [in] */ unsigned int sampleFrameCount,
10522             /* [out] */ unsigned int *sampleFramesWritten);
10523 
10524         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
10525             IDeckLinkOutput_v10_11 * This);
10526 
10527         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
10528             IDeckLinkOutput_v10_11 * This);
10529 
10530         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
10531             IDeckLinkOutput_v10_11 * This,
10532             /* [in] */ void *buffer,
10533             /* [in] */ unsigned int sampleFrameCount,
10534             /* [in] */ BMDTimeValue streamTime,
10535             /* [in] */ BMDTimeScale timeScale,
10536             /* [out] */ unsigned int *sampleFramesWritten);
10537 
10538         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
10539             IDeckLinkOutput_v10_11 * This,
10540             /* [out] */ unsigned int *bufferedSampleFrameCount);
10541 
10542         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
10543             IDeckLinkOutput_v10_11 * This);
10544 
10545         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
10546             IDeckLinkOutput_v10_11 * This,
10547             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
10548 
10549         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
10550             IDeckLinkOutput_v10_11 * This,
10551             /* [in] */ BMDTimeValue playbackStartTime,
10552             /* [in] */ BMDTimeScale timeScale,
10553             /* [in] */ double playbackSpeed);
10554 
10555         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
10556             IDeckLinkOutput_v10_11 * This,
10557             /* [in] */ BMDTimeValue stopPlaybackAtTime,
10558             /* [out] */ BMDTimeValue *actualStopTime,
10559             /* [in] */ BMDTimeScale timeScale);
10560 
10561         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
10562             IDeckLinkOutput_v10_11 * This,
10563             /* [out] */ BOOL *active);
10564 
10565         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
10566             IDeckLinkOutput_v10_11 * This,
10567             /* [in] */ BMDTimeScale desiredTimeScale,
10568             /* [out] */ BMDTimeValue *streamTime,
10569             /* [out] */ double *playbackSpeed);
10570 
10571         HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(
10572             IDeckLinkOutput_v10_11 * This,
10573             /* [out] */ BMDReferenceStatus *referenceStatus);
10574 
10575         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
10576             IDeckLinkOutput_v10_11 * This,
10577             /* [in] */ BMDTimeScale desiredTimeScale,
10578             /* [out] */ BMDTimeValue *hardwareTime,
10579             /* [out] */ BMDTimeValue *timeInFrame,
10580             /* [out] */ BMDTimeValue *ticksPerFrame);
10581 
10582         HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )(
10583             IDeckLinkOutput_v10_11 * This,
10584             /* [in] */ IDeckLinkVideoFrame *theFrame,
10585             /* [in] */ BMDTimeScale desiredTimeScale,
10586             /* [out] */ BMDTimeValue *frameCompletionTimestamp);
10587 
10588         END_INTERFACE
10589     } IDeckLinkOutput_v10_11Vtbl;
10590 
10591     interface IDeckLinkOutput_v10_11
10592     {
10593         CONST_VTBL struct IDeckLinkOutput_v10_11Vtbl *lpVtbl;
10594     };
10595 
10596 
10597 
10598 #ifdef COBJMACROS
10599 
10600 
10601 #define IDeckLinkOutput_v10_11_QueryInterface(This,riid,ppvObject)	\
10602     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10603 
10604 #define IDeckLinkOutput_v10_11_AddRef(This)	\
10605     ( (This)->lpVtbl -> AddRef(This) )
10606 
10607 #define IDeckLinkOutput_v10_11_Release(This)	\
10608     ( (This)->lpVtbl -> Release(This) )
10609 
10610 
10611 #define IDeckLinkOutput_v10_11_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)	\
10612     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
10613 
10614 #define IDeckLinkOutput_v10_11_GetDisplayModeIterator(This,iterator)	\
10615     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
10616 
10617 #define IDeckLinkOutput_v10_11_SetScreenPreviewCallback(This,previewCallback)	\
10618     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
10619 
10620 #define IDeckLinkOutput_v10_11_EnableVideoOutput(This,displayMode,flags)	\
10621     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
10622 
10623 #define IDeckLinkOutput_v10_11_DisableVideoOutput(This)	\
10624     ( (This)->lpVtbl -> DisableVideoOutput(This) )
10625 
10626 #define IDeckLinkOutput_v10_11_SetVideoOutputFrameMemoryAllocator(This,theAllocator)	\
10627     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
10628 
10629 #define IDeckLinkOutput_v10_11_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)	\
10630     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
10631 
10632 #define IDeckLinkOutput_v10_11_CreateAncillaryData(This,pixelFormat,outBuffer)	\
10633     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
10634 
10635 #define IDeckLinkOutput_v10_11_DisplayVideoFrameSync(This,theFrame)	\
10636     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
10637 
10638 #define IDeckLinkOutput_v10_11_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)	\
10639     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
10640 
10641 #define IDeckLinkOutput_v10_11_SetScheduledFrameCompletionCallback(This,theCallback)	\
10642     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
10643 
10644 #define IDeckLinkOutput_v10_11_GetBufferedVideoFrameCount(This,bufferedFrameCount)	\
10645     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
10646 
10647 #define IDeckLinkOutput_v10_11_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)	\
10648     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
10649 
10650 #define IDeckLinkOutput_v10_11_DisableAudioOutput(This)	\
10651     ( (This)->lpVtbl -> DisableAudioOutput(This) )
10652 
10653 #define IDeckLinkOutput_v10_11_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)	\
10654     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
10655 
10656 #define IDeckLinkOutput_v10_11_BeginAudioPreroll(This)	\
10657     ( (This)->lpVtbl -> BeginAudioPreroll(This) )
10658 
10659 #define IDeckLinkOutput_v10_11_EndAudioPreroll(This)	\
10660     ( (This)->lpVtbl -> EndAudioPreroll(This) )
10661 
10662 #define IDeckLinkOutput_v10_11_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)	\
10663     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
10664 
10665 #define IDeckLinkOutput_v10_11_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)	\
10666     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
10667 
10668 #define IDeckLinkOutput_v10_11_FlushBufferedAudioSamples(This)	\
10669     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
10670 
10671 #define IDeckLinkOutput_v10_11_SetAudioCallback(This,theCallback)	\
10672     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
10673 
10674 #define IDeckLinkOutput_v10_11_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)	\
10675     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
10676 
10677 #define IDeckLinkOutput_v10_11_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)	\
10678     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
10679 
10680 #define IDeckLinkOutput_v10_11_IsScheduledPlaybackRunning(This,active)	\
10681     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
10682 
10683 #define IDeckLinkOutput_v10_11_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)	\
10684     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
10685 
10686 #define IDeckLinkOutput_v10_11_GetReferenceStatus(This,referenceStatus)	\
10687     ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )
10688 
10689 #define IDeckLinkOutput_v10_11_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
10690     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
10691 
10692 #define IDeckLinkOutput_v10_11_GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp)	\
10693     ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) )
10694 
10695 #endif /* COBJMACROS */
10696 
10697 
10698 #endif 	/* C style interface */
10699 
10700 
10701 
10702 
10703 #endif 	/* __IDeckLinkOutput_v10_11_INTERFACE_DEFINED__ */
10704 
10705 
10706 #ifndef __IDeckLinkInput_v10_11_INTERFACE_DEFINED__
10707 #define __IDeckLinkInput_v10_11_INTERFACE_DEFINED__
10708 
10709 /* interface IDeckLinkInput_v10_11 */
10710 /* [helpstring][uuid][object] */
10711 
10712 
10713 EXTERN_C const IID IID_IDeckLinkInput_v10_11;
10714 
10715 #if defined(__cplusplus) && !defined(CINTERFACE)
10716 
10717     MIDL_INTERFACE("AF22762B-DFAC-4846-AA79-FA8883560995")
10718     IDeckLinkInput_v10_11 : public IUnknown
10719     {
10720     public:
10721         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
10722             /* [in] */ BMDDisplayMode displayMode,
10723             /* [in] */ BMDPixelFormat pixelFormat,
10724             /* [in] */ BMDVideoInputFlags flags,
10725             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
10726             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
10727 
10728         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
10729             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
10730 
10731         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
10732             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
10733 
10734         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
10735             /* [in] */ BMDDisplayMode displayMode,
10736             /* [in] */ BMDPixelFormat pixelFormat,
10737             /* [in] */ BMDVideoInputFlags flags) = 0;
10738 
10739         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
10740 
10741         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
10742             /* [out] */ unsigned int *availableFrameCount) = 0;
10743 
10744         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator(
10745             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
10746 
10747         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
10748             /* [in] */ BMDAudioSampleRate sampleRate,
10749             /* [in] */ BMDAudioSampleType sampleType,
10750             /* [in] */ unsigned int channelCount) = 0;
10751 
10752         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
10753 
10754         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
10755             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
10756 
10757         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
10758 
10759         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
10760 
10761         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
10762 
10763         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
10764 
10765         virtual HRESULT STDMETHODCALLTYPE SetCallback(
10766             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
10767 
10768         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
10769             /* [in] */ BMDTimeScale desiredTimeScale,
10770             /* [out] */ BMDTimeValue *hardwareTime,
10771             /* [out] */ BMDTimeValue *timeInFrame,
10772             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
10773 
10774     };
10775 
10776 
10777 #else 	/* C style interface */
10778 
10779     typedef struct IDeckLinkInput_v10_11Vtbl
10780     {
10781         BEGIN_INTERFACE
10782 
10783         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10784             IDeckLinkInput_v10_11 * This,
10785             /* [in] */ REFIID riid,
10786             /* [annotation][iid_is][out] */
10787             _COM_Outptr_  void **ppvObject);
10788 
10789         ULONG ( STDMETHODCALLTYPE *AddRef )(
10790             IDeckLinkInput_v10_11 * This);
10791 
10792         ULONG ( STDMETHODCALLTYPE *Release )(
10793             IDeckLinkInput_v10_11 * This);
10794 
10795         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
10796             IDeckLinkInput_v10_11 * This,
10797             /* [in] */ BMDDisplayMode displayMode,
10798             /* [in] */ BMDPixelFormat pixelFormat,
10799             /* [in] */ BMDVideoInputFlags flags,
10800             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
10801             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
10802 
10803         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
10804             IDeckLinkInput_v10_11 * This,
10805             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
10806 
10807         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
10808             IDeckLinkInput_v10_11 * This,
10809             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
10810 
10811         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
10812             IDeckLinkInput_v10_11 * This,
10813             /* [in] */ BMDDisplayMode displayMode,
10814             /* [in] */ BMDPixelFormat pixelFormat,
10815             /* [in] */ BMDVideoInputFlags flags);
10816 
10817         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
10818             IDeckLinkInput_v10_11 * This);
10819 
10820         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
10821             IDeckLinkInput_v10_11 * This,
10822             /* [out] */ unsigned int *availableFrameCount);
10823 
10824         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )(
10825             IDeckLinkInput_v10_11 * This,
10826             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
10827 
10828         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
10829             IDeckLinkInput_v10_11 * This,
10830             /* [in] */ BMDAudioSampleRate sampleRate,
10831             /* [in] */ BMDAudioSampleType sampleType,
10832             /* [in] */ unsigned int channelCount);
10833 
10834         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
10835             IDeckLinkInput_v10_11 * This);
10836 
10837         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
10838             IDeckLinkInput_v10_11 * This,
10839             /* [out] */ unsigned int *availableSampleFrameCount);
10840 
10841         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
10842             IDeckLinkInput_v10_11 * This);
10843 
10844         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
10845             IDeckLinkInput_v10_11 * This);
10846 
10847         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
10848             IDeckLinkInput_v10_11 * This);
10849 
10850         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
10851             IDeckLinkInput_v10_11 * This);
10852 
10853         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
10854             IDeckLinkInput_v10_11 * This,
10855             /* [in] */ IDeckLinkInputCallback *theCallback);
10856 
10857         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
10858             IDeckLinkInput_v10_11 * This,
10859             /* [in] */ BMDTimeScale desiredTimeScale,
10860             /* [out] */ BMDTimeValue *hardwareTime,
10861             /* [out] */ BMDTimeValue *timeInFrame,
10862             /* [out] */ BMDTimeValue *ticksPerFrame);
10863 
10864         END_INTERFACE
10865     } IDeckLinkInput_v10_11Vtbl;
10866 
10867     interface IDeckLinkInput_v10_11
10868     {
10869         CONST_VTBL struct IDeckLinkInput_v10_11Vtbl *lpVtbl;
10870     };
10871 
10872 
10873 
10874 #ifdef COBJMACROS
10875 
10876 
10877 #define IDeckLinkInput_v10_11_QueryInterface(This,riid,ppvObject)	\
10878     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10879 
10880 #define IDeckLinkInput_v10_11_AddRef(This)	\
10881     ( (This)->lpVtbl -> AddRef(This) )
10882 
10883 #define IDeckLinkInput_v10_11_Release(This)	\
10884     ( (This)->lpVtbl -> Release(This) )
10885 
10886 
10887 #define IDeckLinkInput_v10_11_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)	\
10888     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
10889 
10890 #define IDeckLinkInput_v10_11_GetDisplayModeIterator(This,iterator)	\
10891     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
10892 
10893 #define IDeckLinkInput_v10_11_SetScreenPreviewCallback(This,previewCallback)	\
10894     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
10895 
10896 #define IDeckLinkInput_v10_11_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
10897     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
10898 
10899 #define IDeckLinkInput_v10_11_DisableVideoInput(This)	\
10900     ( (This)->lpVtbl -> DisableVideoInput(This) )
10901 
10902 #define IDeckLinkInput_v10_11_GetAvailableVideoFrameCount(This,availableFrameCount)	\
10903     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
10904 
10905 #define IDeckLinkInput_v10_11_SetVideoInputFrameMemoryAllocator(This,theAllocator)	\
10906     ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) )
10907 
10908 #define IDeckLinkInput_v10_11_EnableAudioInput(This,sampleRate,sampleType,channelCount)	\
10909     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
10910 
10911 #define IDeckLinkInput_v10_11_DisableAudioInput(This)	\
10912     ( (This)->lpVtbl -> DisableAudioInput(This) )
10913 
10914 #define IDeckLinkInput_v10_11_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
10915     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
10916 
10917 #define IDeckLinkInput_v10_11_StartStreams(This)	\
10918     ( (This)->lpVtbl -> StartStreams(This) )
10919 
10920 #define IDeckLinkInput_v10_11_StopStreams(This)	\
10921     ( (This)->lpVtbl -> StopStreams(This) )
10922 
10923 #define IDeckLinkInput_v10_11_PauseStreams(This)	\
10924     ( (This)->lpVtbl -> PauseStreams(This) )
10925 
10926 #define IDeckLinkInput_v10_11_FlushStreams(This)	\
10927     ( (This)->lpVtbl -> FlushStreams(This) )
10928 
10929 #define IDeckLinkInput_v10_11_SetCallback(This,theCallback)	\
10930     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
10931 
10932 #define IDeckLinkInput_v10_11_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
10933     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
10934 
10935 #endif /* COBJMACROS */
10936 
10937 
10938 #endif 	/* C style interface */
10939 
10940 
10941 
10942 
10943 #endif 	/* __IDeckLinkInput_v10_11_INTERFACE_DEFINED__ */
10944 
10945 
10946 #ifndef __IDeckLinkEncoderInput_v10_11_INTERFACE_DEFINED__
10947 #define __IDeckLinkEncoderInput_v10_11_INTERFACE_DEFINED__
10948 
10949 /* interface IDeckLinkEncoderInput_v10_11 */
10950 /* [helpstring][uuid][object] */
10951 
10952 
10953 EXTERN_C const IID IID_IDeckLinkEncoderInput_v10_11;
10954 
10955 #if defined(__cplusplus) && !defined(CINTERFACE)
10956 
10957     MIDL_INTERFACE("270587DA-6B7D-42E7-A1F0-6D853F581185")
10958     IDeckLinkEncoderInput_v10_11 : public IUnknown
10959     {
10960     public:
10961         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
10962             /* [in] */ BMDDisplayMode displayMode,
10963             /* [in] */ BMDPixelFormat pixelFormat,
10964             /* [in] */ BMDVideoInputFlags flags,
10965             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
10966             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
10967 
10968         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
10969             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
10970 
10971         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
10972             /* [in] */ BMDDisplayMode displayMode,
10973             /* [in] */ BMDPixelFormat pixelFormat,
10974             /* [in] */ BMDVideoInputFlags flags) = 0;
10975 
10976         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
10977 
10978         virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount(
10979             /* [out] */ unsigned int *availablePacketsCount) = 0;
10980 
10981         virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator(
10982             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
10983 
10984         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
10985             /* [in] */ BMDAudioFormat audioFormat,
10986             /* [in] */ BMDAudioSampleRate sampleRate,
10987             /* [in] */ BMDAudioSampleType sampleType,
10988             /* [in] */ unsigned int channelCount) = 0;
10989 
10990         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
10991 
10992         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
10993             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
10994 
10995         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
10996 
10997         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
10998 
10999         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
11000 
11001         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
11002 
11003         virtual HRESULT STDMETHODCALLTYPE SetCallback(
11004             /* [in] */ IDeckLinkEncoderInputCallback *theCallback) = 0;
11005 
11006         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
11007             /* [in] */ BMDTimeScale desiredTimeScale,
11008             /* [out] */ BMDTimeValue *hardwareTime,
11009             /* [out] */ BMDTimeValue *timeInFrame,
11010             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
11011 
11012     };
11013 
11014 
11015 #else 	/* C style interface */
11016 
11017     typedef struct IDeckLinkEncoderInput_v10_11Vtbl
11018     {
11019         BEGIN_INTERFACE
11020 
11021         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11022             IDeckLinkEncoderInput_v10_11 * This,
11023             /* [in] */ REFIID riid,
11024             /* [annotation][iid_is][out] */
11025             _COM_Outptr_  void **ppvObject);
11026 
11027         ULONG ( STDMETHODCALLTYPE *AddRef )(
11028             IDeckLinkEncoderInput_v10_11 * This);
11029 
11030         ULONG ( STDMETHODCALLTYPE *Release )(
11031             IDeckLinkEncoderInput_v10_11 * This);
11032 
11033         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
11034             IDeckLinkEncoderInput_v10_11 * This,
11035             /* [in] */ BMDDisplayMode displayMode,
11036             /* [in] */ BMDPixelFormat pixelFormat,
11037             /* [in] */ BMDVideoInputFlags flags,
11038             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
11039             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
11040 
11041         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
11042             IDeckLinkEncoderInput_v10_11 * This,
11043             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
11044 
11045         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
11046             IDeckLinkEncoderInput_v10_11 * This,
11047             /* [in] */ BMDDisplayMode displayMode,
11048             /* [in] */ BMDPixelFormat pixelFormat,
11049             /* [in] */ BMDVideoInputFlags flags);
11050 
11051         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
11052             IDeckLinkEncoderInput_v10_11 * This);
11053 
11054         HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )(
11055             IDeckLinkEncoderInput_v10_11 * This,
11056             /* [out] */ unsigned int *availablePacketsCount);
11057 
11058         HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )(
11059             IDeckLinkEncoderInput_v10_11 * This,
11060             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
11061 
11062         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
11063             IDeckLinkEncoderInput_v10_11 * This,
11064             /* [in] */ BMDAudioFormat audioFormat,
11065             /* [in] */ BMDAudioSampleRate sampleRate,
11066             /* [in] */ BMDAudioSampleType sampleType,
11067             /* [in] */ unsigned int channelCount);
11068 
11069         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
11070             IDeckLinkEncoderInput_v10_11 * This);
11071 
11072         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
11073             IDeckLinkEncoderInput_v10_11 * This,
11074             /* [out] */ unsigned int *availableSampleFrameCount);
11075 
11076         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
11077             IDeckLinkEncoderInput_v10_11 * This);
11078 
11079         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
11080             IDeckLinkEncoderInput_v10_11 * This);
11081 
11082         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
11083             IDeckLinkEncoderInput_v10_11 * This);
11084 
11085         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
11086             IDeckLinkEncoderInput_v10_11 * This);
11087 
11088         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
11089             IDeckLinkEncoderInput_v10_11 * This,
11090             /* [in] */ IDeckLinkEncoderInputCallback *theCallback);
11091 
11092         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
11093             IDeckLinkEncoderInput_v10_11 * This,
11094             /* [in] */ BMDTimeScale desiredTimeScale,
11095             /* [out] */ BMDTimeValue *hardwareTime,
11096             /* [out] */ BMDTimeValue *timeInFrame,
11097             /* [out] */ BMDTimeValue *ticksPerFrame);
11098 
11099         END_INTERFACE
11100     } IDeckLinkEncoderInput_v10_11Vtbl;
11101 
11102     interface IDeckLinkEncoderInput_v10_11
11103     {
11104         CONST_VTBL struct IDeckLinkEncoderInput_v10_11Vtbl *lpVtbl;
11105     };
11106 
11107 
11108 
11109 #ifdef COBJMACROS
11110 
11111 
11112 #define IDeckLinkEncoderInput_v10_11_QueryInterface(This,riid,ppvObject)	\
11113     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11114 
11115 #define IDeckLinkEncoderInput_v10_11_AddRef(This)	\
11116     ( (This)->lpVtbl -> AddRef(This) )
11117 
11118 #define IDeckLinkEncoderInput_v10_11_Release(This)	\
11119     ( (This)->lpVtbl -> Release(This) )
11120 
11121 
11122 #define IDeckLinkEncoderInput_v10_11_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)	\
11123     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
11124 
11125 #define IDeckLinkEncoderInput_v10_11_GetDisplayModeIterator(This,iterator)	\
11126     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
11127 
11128 #define IDeckLinkEncoderInput_v10_11_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
11129     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
11130 
11131 #define IDeckLinkEncoderInput_v10_11_DisableVideoInput(This)	\
11132     ( (This)->lpVtbl -> DisableVideoInput(This) )
11133 
11134 #define IDeckLinkEncoderInput_v10_11_GetAvailablePacketsCount(This,availablePacketsCount)	\
11135     ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) )
11136 
11137 #define IDeckLinkEncoderInput_v10_11_SetMemoryAllocator(This,theAllocator)	\
11138     ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) )
11139 
11140 #define IDeckLinkEncoderInput_v10_11_EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount)	\
11141     ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) )
11142 
11143 #define IDeckLinkEncoderInput_v10_11_DisableAudioInput(This)	\
11144     ( (This)->lpVtbl -> DisableAudioInput(This) )
11145 
11146 #define IDeckLinkEncoderInput_v10_11_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
11147     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
11148 
11149 #define IDeckLinkEncoderInput_v10_11_StartStreams(This)	\
11150     ( (This)->lpVtbl -> StartStreams(This) )
11151 
11152 #define IDeckLinkEncoderInput_v10_11_StopStreams(This)	\
11153     ( (This)->lpVtbl -> StopStreams(This) )
11154 
11155 #define IDeckLinkEncoderInput_v10_11_PauseStreams(This)	\
11156     ( (This)->lpVtbl -> PauseStreams(This) )
11157 
11158 #define IDeckLinkEncoderInput_v10_11_FlushStreams(This)	\
11159     ( (This)->lpVtbl -> FlushStreams(This) )
11160 
11161 #define IDeckLinkEncoderInput_v10_11_SetCallback(This,theCallback)	\
11162     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
11163 
11164 #define IDeckLinkEncoderInput_v10_11_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
11165     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
11166 
11167 #endif /* COBJMACROS */
11168 
11169 
11170 #endif 	/* C style interface */
11171 
11172 
11173 
11174 
11175 #endif 	/* __IDeckLinkEncoderInput_v10_11_INTERFACE_DEFINED__ */
11176 
11177 
11178 EXTERN_C const CLSID CLSID_CDeckLinkIterator_v10_11;
11179 
11180 #ifdef __cplusplus
11181 
11182 class DECLSPEC_UUID("87D2693F-8D4A-45C7-B43F-10ACBA25E68F")
11183 CDeckLinkIterator_v10_11;
11184 #endif
11185 
11186 EXTERN_C const CLSID CLSID_CDeckLinkDiscovery_v10_11;
11187 
11188 #ifdef __cplusplus
11189 
11190 class DECLSPEC_UUID("652615D4-26CD-4514-B161-2FD5072ED008")
11191 CDeckLinkDiscovery_v10_11;
11192 #endif
11193 
11194 #ifndef __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__
11195 #define __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__
11196 
11197 /* interface IDeckLinkConfiguration_v10_9 */
11198 /* [helpstring][local][uuid][object] */
11199 
11200 
11201 EXTERN_C const IID IID_IDeckLinkConfiguration_v10_9;
11202 
11203 #if defined(__cplusplus) && !defined(CINTERFACE)
11204 
11205     MIDL_INTERFACE("CB71734A-FE37-4E8D-8E13-802133A1C3F2")
11206     IDeckLinkConfiguration_v10_9 : public IUnknown
11207     {
11208     public:
11209         virtual HRESULT STDMETHODCALLTYPE SetFlag(
11210             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11211             /* [in] */ BOOL value) = 0;
11212 
11213         virtual HRESULT STDMETHODCALLTYPE GetFlag(
11214             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11215             /* [out] */ BOOL *value) = 0;
11216 
11217         virtual HRESULT STDMETHODCALLTYPE SetInt(
11218             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11219             /* [in] */ LONGLONG value) = 0;
11220 
11221         virtual HRESULT STDMETHODCALLTYPE GetInt(
11222             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11223             /* [out] */ LONGLONG *value) = 0;
11224 
11225         virtual HRESULT STDMETHODCALLTYPE SetFloat(
11226             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11227             /* [in] */ double value) = 0;
11228 
11229         virtual HRESULT STDMETHODCALLTYPE GetFloat(
11230             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11231             /* [out] */ double *value) = 0;
11232 
11233         virtual HRESULT STDMETHODCALLTYPE SetString(
11234             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11235             /* [in] */ BSTR value) = 0;
11236 
11237         virtual HRESULT STDMETHODCALLTYPE GetString(
11238             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11239             /* [out] */ BSTR *value) = 0;
11240 
11241         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
11242 
11243     };
11244 
11245 
11246 #else 	/* C style interface */
11247 
11248     typedef struct IDeckLinkConfiguration_v10_9Vtbl
11249     {
11250         BEGIN_INTERFACE
11251 
11252         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11253             IDeckLinkConfiguration_v10_9 * This,
11254             /* [in] */ REFIID riid,
11255             /* [annotation][iid_is][out] */
11256             _COM_Outptr_  void **ppvObject);
11257 
11258         ULONG ( STDMETHODCALLTYPE *AddRef )(
11259             IDeckLinkConfiguration_v10_9 * This);
11260 
11261         ULONG ( STDMETHODCALLTYPE *Release )(
11262             IDeckLinkConfiguration_v10_9 * This);
11263 
11264         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
11265             IDeckLinkConfiguration_v10_9 * This,
11266             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11267             /* [in] */ BOOL value);
11268 
11269         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
11270             IDeckLinkConfiguration_v10_9 * This,
11271             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11272             /* [out] */ BOOL *value);
11273 
11274         HRESULT ( STDMETHODCALLTYPE *SetInt )(
11275             IDeckLinkConfiguration_v10_9 * This,
11276             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11277             /* [in] */ LONGLONG value);
11278 
11279         HRESULT ( STDMETHODCALLTYPE *GetInt )(
11280             IDeckLinkConfiguration_v10_9 * This,
11281             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11282             /* [out] */ LONGLONG *value);
11283 
11284         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
11285             IDeckLinkConfiguration_v10_9 * This,
11286             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11287             /* [in] */ double value);
11288 
11289         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
11290             IDeckLinkConfiguration_v10_9 * This,
11291             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11292             /* [out] */ double *value);
11293 
11294         HRESULT ( STDMETHODCALLTYPE *SetString )(
11295             IDeckLinkConfiguration_v10_9 * This,
11296             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11297             /* [in] */ BSTR value);
11298 
11299         HRESULT ( STDMETHODCALLTYPE *GetString )(
11300             IDeckLinkConfiguration_v10_9 * This,
11301             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11302             /* [out] */ BSTR *value);
11303 
11304         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
11305             IDeckLinkConfiguration_v10_9 * This);
11306 
11307         END_INTERFACE
11308     } IDeckLinkConfiguration_v10_9Vtbl;
11309 
11310     interface IDeckLinkConfiguration_v10_9
11311     {
11312         CONST_VTBL struct IDeckLinkConfiguration_v10_9Vtbl *lpVtbl;
11313     };
11314 
11315 
11316 
11317 #ifdef COBJMACROS
11318 
11319 
11320 #define IDeckLinkConfiguration_v10_9_QueryInterface(This,riid,ppvObject)	\
11321     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11322 
11323 #define IDeckLinkConfiguration_v10_9_AddRef(This)	\
11324     ( (This)->lpVtbl -> AddRef(This) )
11325 
11326 #define IDeckLinkConfiguration_v10_9_Release(This)	\
11327     ( (This)->lpVtbl -> Release(This) )
11328 
11329 
11330 #define IDeckLinkConfiguration_v10_9_SetFlag(This,cfgID,value)	\
11331     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
11332 
11333 #define IDeckLinkConfiguration_v10_9_GetFlag(This,cfgID,value)	\
11334     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
11335 
11336 #define IDeckLinkConfiguration_v10_9_SetInt(This,cfgID,value)	\
11337     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
11338 
11339 #define IDeckLinkConfiguration_v10_9_GetInt(This,cfgID,value)	\
11340     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
11341 
11342 #define IDeckLinkConfiguration_v10_9_SetFloat(This,cfgID,value)	\
11343     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
11344 
11345 #define IDeckLinkConfiguration_v10_9_GetFloat(This,cfgID,value)	\
11346     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
11347 
11348 #define IDeckLinkConfiguration_v10_9_SetString(This,cfgID,value)	\
11349     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
11350 
11351 #define IDeckLinkConfiguration_v10_9_GetString(This,cfgID,value)	\
11352     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
11353 
11354 #define IDeckLinkConfiguration_v10_9_WriteConfigurationToPreferences(This)	\
11355     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
11356 
11357 #endif /* COBJMACROS */
11358 
11359 
11360 #endif 	/* C style interface */
11361 
11362 
11363 
11364 
11365 #endif 	/* __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__ */
11366 
11367 
11368 EXTERN_C const CLSID CLSID_CBMDStreamingDiscovery_v10_8;
11369 
11370 #ifdef __cplusplus
11371 
11372 class DECLSPEC_UUID("0CAA31F6-8A26-40B0-86A4-BF58DCCA710C")
11373 CBMDStreamingDiscovery_v10_8;
11374 #endif
11375 
11376 EXTERN_C const CLSID CLSID_CDeckLinkIterator_v10_8;
11377 
11378 #ifdef __cplusplus
11379 
11380 class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")
11381 CDeckLinkIterator_v10_8;
11382 #endif
11383 
11384 EXTERN_C const CLSID CLSID_CDeckLinkDiscovery_v10_8;
11385 
11386 #ifdef __cplusplus
11387 
11388 class DECLSPEC_UUID("1073A05C-D885-47E9-B3C6-129B3F9F648B")
11389 CDeckLinkDiscovery_v10_8;
11390 #endif
11391 
11392 #ifndef __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__
11393 #define __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__
11394 
11395 /* interface IDeckLinkEncoderConfiguration_v10_5 */
11396 /* [helpstring][local][uuid][object] */
11397 
11398 
11399 EXTERN_C const IID IID_IDeckLinkEncoderConfiguration_v10_5;
11400 
11401 #if defined(__cplusplus) && !defined(CINTERFACE)
11402 
11403     MIDL_INTERFACE("67455668-0848-45DF-8D8E-350A77C9A028")
11404     IDeckLinkEncoderConfiguration_v10_5 : public IUnknown
11405     {
11406     public:
11407         virtual HRESULT STDMETHODCALLTYPE SetFlag(
11408             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11409             /* [in] */ BOOL value) = 0;
11410 
11411         virtual HRESULT STDMETHODCALLTYPE GetFlag(
11412             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11413             /* [out] */ BOOL *value) = 0;
11414 
11415         virtual HRESULT STDMETHODCALLTYPE SetInt(
11416             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11417             /* [in] */ LONGLONG value) = 0;
11418 
11419         virtual HRESULT STDMETHODCALLTYPE GetInt(
11420             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11421             /* [out] */ LONGLONG *value) = 0;
11422 
11423         virtual HRESULT STDMETHODCALLTYPE SetFloat(
11424             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11425             /* [in] */ double value) = 0;
11426 
11427         virtual HRESULT STDMETHODCALLTYPE GetFloat(
11428             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11429             /* [out] */ double *value) = 0;
11430 
11431         virtual HRESULT STDMETHODCALLTYPE SetString(
11432             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11433             /* [in] */ BSTR value) = 0;
11434 
11435         virtual HRESULT STDMETHODCALLTYPE GetString(
11436             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11437             /* [out] */ BSTR *value) = 0;
11438 
11439         virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurationInfo(
11440             /* [out] */ void *buffer,
11441             /* [in] */ long bufferSize,
11442             /* [out] */ long *returnedSize) = 0;
11443 
11444     };
11445 
11446 
11447 #else 	/* C style interface */
11448 
11449     typedef struct IDeckLinkEncoderConfiguration_v10_5Vtbl
11450     {
11451         BEGIN_INTERFACE
11452 
11453         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11454             IDeckLinkEncoderConfiguration_v10_5 * This,
11455             /* [in] */ REFIID riid,
11456             /* [annotation][iid_is][out] */
11457             _COM_Outptr_  void **ppvObject);
11458 
11459         ULONG ( STDMETHODCALLTYPE *AddRef )(
11460             IDeckLinkEncoderConfiguration_v10_5 * This);
11461 
11462         ULONG ( STDMETHODCALLTYPE *Release )(
11463             IDeckLinkEncoderConfiguration_v10_5 * This);
11464 
11465         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
11466             IDeckLinkEncoderConfiguration_v10_5 * This,
11467             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11468             /* [in] */ BOOL value);
11469 
11470         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
11471             IDeckLinkEncoderConfiguration_v10_5 * This,
11472             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11473             /* [out] */ BOOL *value);
11474 
11475         HRESULT ( STDMETHODCALLTYPE *SetInt )(
11476             IDeckLinkEncoderConfiguration_v10_5 * This,
11477             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11478             /* [in] */ LONGLONG value);
11479 
11480         HRESULT ( STDMETHODCALLTYPE *GetInt )(
11481             IDeckLinkEncoderConfiguration_v10_5 * This,
11482             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11483             /* [out] */ LONGLONG *value);
11484 
11485         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
11486             IDeckLinkEncoderConfiguration_v10_5 * This,
11487             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11488             /* [in] */ double value);
11489 
11490         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
11491             IDeckLinkEncoderConfiguration_v10_5 * This,
11492             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11493             /* [out] */ double *value);
11494 
11495         HRESULT ( STDMETHODCALLTYPE *SetString )(
11496             IDeckLinkEncoderConfiguration_v10_5 * This,
11497             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11498             /* [in] */ BSTR value);
11499 
11500         HRESULT ( STDMETHODCALLTYPE *GetString )(
11501             IDeckLinkEncoderConfiguration_v10_5 * This,
11502             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,
11503             /* [out] */ BSTR *value);
11504 
11505         HRESULT ( STDMETHODCALLTYPE *GetDecoderConfigurationInfo )(
11506             IDeckLinkEncoderConfiguration_v10_5 * This,
11507             /* [out] */ void *buffer,
11508             /* [in] */ long bufferSize,
11509             /* [out] */ long *returnedSize);
11510 
11511         END_INTERFACE
11512     } IDeckLinkEncoderConfiguration_v10_5Vtbl;
11513 
11514     interface IDeckLinkEncoderConfiguration_v10_5
11515     {
11516         CONST_VTBL struct IDeckLinkEncoderConfiguration_v10_5Vtbl *lpVtbl;
11517     };
11518 
11519 
11520 
11521 #ifdef COBJMACROS
11522 
11523 
11524 #define IDeckLinkEncoderConfiguration_v10_5_QueryInterface(This,riid,ppvObject)	\
11525     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11526 
11527 #define IDeckLinkEncoderConfiguration_v10_5_AddRef(This)	\
11528     ( (This)->lpVtbl -> AddRef(This) )
11529 
11530 #define IDeckLinkEncoderConfiguration_v10_5_Release(This)	\
11531     ( (This)->lpVtbl -> Release(This) )
11532 
11533 
11534 #define IDeckLinkEncoderConfiguration_v10_5_SetFlag(This,cfgID,value)	\
11535     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
11536 
11537 #define IDeckLinkEncoderConfiguration_v10_5_GetFlag(This,cfgID,value)	\
11538     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
11539 
11540 #define IDeckLinkEncoderConfiguration_v10_5_SetInt(This,cfgID,value)	\
11541     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
11542 
11543 #define IDeckLinkEncoderConfiguration_v10_5_GetInt(This,cfgID,value)	\
11544     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
11545 
11546 #define IDeckLinkEncoderConfiguration_v10_5_SetFloat(This,cfgID,value)	\
11547     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
11548 
11549 #define IDeckLinkEncoderConfiguration_v10_5_GetFloat(This,cfgID,value)	\
11550     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
11551 
11552 #define IDeckLinkEncoderConfiguration_v10_5_SetString(This,cfgID,value)	\
11553     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
11554 
11555 #define IDeckLinkEncoderConfiguration_v10_5_GetString(This,cfgID,value)	\
11556     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
11557 
11558 #define IDeckLinkEncoderConfiguration_v10_5_GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize)	\
11559     ( (This)->lpVtbl -> GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize) )
11560 
11561 #endif /* COBJMACROS */
11562 
11563 
11564 #endif 	/* C style interface */
11565 
11566 
11567 
11568 
11569 #endif 	/* __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ */
11570 
11571 
11572 #ifndef __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__
11573 #define __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__
11574 
11575 /* interface IDeckLinkConfiguration_v10_4 */
11576 /* [helpstring][local][uuid][object] */
11577 
11578 
11579 EXTERN_C const IID IID_IDeckLinkConfiguration_v10_4;
11580 
11581 #if defined(__cplusplus) && !defined(CINTERFACE)
11582 
11583     MIDL_INTERFACE("1E69FCF6-4203-4936-8076-2A9F4CFD50CB")
11584     IDeckLinkConfiguration_v10_4 : public IUnknown
11585     {
11586     public:
11587         virtual HRESULT STDMETHODCALLTYPE SetFlag(
11588             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11589             /* [in] */ BOOL value) = 0;
11590 
11591         virtual HRESULT STDMETHODCALLTYPE GetFlag(
11592             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11593             /* [out] */ BOOL *value) = 0;
11594 
11595         virtual HRESULT STDMETHODCALLTYPE SetInt(
11596             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11597             /* [in] */ LONGLONG value) = 0;
11598 
11599         virtual HRESULT STDMETHODCALLTYPE GetInt(
11600             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11601             /* [out] */ LONGLONG *value) = 0;
11602 
11603         virtual HRESULT STDMETHODCALLTYPE SetFloat(
11604             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11605             /* [in] */ double value) = 0;
11606 
11607         virtual HRESULT STDMETHODCALLTYPE GetFloat(
11608             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11609             /* [out] */ double *value) = 0;
11610 
11611         virtual HRESULT STDMETHODCALLTYPE SetString(
11612             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11613             /* [in] */ BSTR value) = 0;
11614 
11615         virtual HRESULT STDMETHODCALLTYPE GetString(
11616             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11617             /* [out] */ BSTR *value) = 0;
11618 
11619         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
11620 
11621     };
11622 
11623 
11624 #else 	/* C style interface */
11625 
11626     typedef struct IDeckLinkConfiguration_v10_4Vtbl
11627     {
11628         BEGIN_INTERFACE
11629 
11630         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11631             IDeckLinkConfiguration_v10_4 * This,
11632             /* [in] */ REFIID riid,
11633             /* [annotation][iid_is][out] */
11634             _COM_Outptr_  void **ppvObject);
11635 
11636         ULONG ( STDMETHODCALLTYPE *AddRef )(
11637             IDeckLinkConfiguration_v10_4 * This);
11638 
11639         ULONG ( STDMETHODCALLTYPE *Release )(
11640             IDeckLinkConfiguration_v10_4 * This);
11641 
11642         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
11643             IDeckLinkConfiguration_v10_4 * This,
11644             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11645             /* [in] */ BOOL value);
11646 
11647         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
11648             IDeckLinkConfiguration_v10_4 * This,
11649             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11650             /* [out] */ BOOL *value);
11651 
11652         HRESULT ( STDMETHODCALLTYPE *SetInt )(
11653             IDeckLinkConfiguration_v10_4 * This,
11654             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11655             /* [in] */ LONGLONG value);
11656 
11657         HRESULT ( STDMETHODCALLTYPE *GetInt )(
11658             IDeckLinkConfiguration_v10_4 * This,
11659             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11660             /* [out] */ LONGLONG *value);
11661 
11662         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
11663             IDeckLinkConfiguration_v10_4 * This,
11664             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11665             /* [in] */ double value);
11666 
11667         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
11668             IDeckLinkConfiguration_v10_4 * This,
11669             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11670             /* [out] */ double *value);
11671 
11672         HRESULT ( STDMETHODCALLTYPE *SetString )(
11673             IDeckLinkConfiguration_v10_4 * This,
11674             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11675             /* [in] */ BSTR value);
11676 
11677         HRESULT ( STDMETHODCALLTYPE *GetString )(
11678             IDeckLinkConfiguration_v10_4 * This,
11679             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11680             /* [out] */ BSTR *value);
11681 
11682         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
11683             IDeckLinkConfiguration_v10_4 * This);
11684 
11685         END_INTERFACE
11686     } IDeckLinkConfiguration_v10_4Vtbl;
11687 
11688     interface IDeckLinkConfiguration_v10_4
11689     {
11690         CONST_VTBL struct IDeckLinkConfiguration_v10_4Vtbl *lpVtbl;
11691     };
11692 
11693 
11694 
11695 #ifdef COBJMACROS
11696 
11697 
11698 #define IDeckLinkConfiguration_v10_4_QueryInterface(This,riid,ppvObject)	\
11699     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11700 
11701 #define IDeckLinkConfiguration_v10_4_AddRef(This)	\
11702     ( (This)->lpVtbl -> AddRef(This) )
11703 
11704 #define IDeckLinkConfiguration_v10_4_Release(This)	\
11705     ( (This)->lpVtbl -> Release(This) )
11706 
11707 
11708 #define IDeckLinkConfiguration_v10_4_SetFlag(This,cfgID,value)	\
11709     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
11710 
11711 #define IDeckLinkConfiguration_v10_4_GetFlag(This,cfgID,value)	\
11712     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
11713 
11714 #define IDeckLinkConfiguration_v10_4_SetInt(This,cfgID,value)	\
11715     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
11716 
11717 #define IDeckLinkConfiguration_v10_4_GetInt(This,cfgID,value)	\
11718     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
11719 
11720 #define IDeckLinkConfiguration_v10_4_SetFloat(This,cfgID,value)	\
11721     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
11722 
11723 #define IDeckLinkConfiguration_v10_4_GetFloat(This,cfgID,value)	\
11724     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
11725 
11726 #define IDeckLinkConfiguration_v10_4_SetString(This,cfgID,value)	\
11727     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
11728 
11729 #define IDeckLinkConfiguration_v10_4_GetString(This,cfgID,value)	\
11730     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
11731 
11732 #define IDeckLinkConfiguration_v10_4_WriteConfigurationToPreferences(This)	\
11733     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
11734 
11735 #endif /* COBJMACROS */
11736 
11737 
11738 #endif 	/* C style interface */
11739 
11740 
11741 
11742 
11743 #endif 	/* __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__ */
11744 
11745 
11746 #ifndef __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__
11747 #define __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__
11748 
11749 /* interface IDeckLinkConfiguration_v10_2 */
11750 /* [helpstring][local][uuid][object] */
11751 
11752 
11753 EXTERN_C const IID IID_IDeckLinkConfiguration_v10_2;
11754 
11755 #if defined(__cplusplus) && !defined(CINTERFACE)
11756 
11757     MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")
11758     IDeckLinkConfiguration_v10_2 : public IUnknown
11759     {
11760     public:
11761         virtual HRESULT STDMETHODCALLTYPE SetFlag(
11762             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11763             /* [in] */ BOOL value) = 0;
11764 
11765         virtual HRESULT STDMETHODCALLTYPE GetFlag(
11766             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11767             /* [out] */ BOOL *value) = 0;
11768 
11769         virtual HRESULT STDMETHODCALLTYPE SetInt(
11770             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11771             /* [in] */ LONGLONG value) = 0;
11772 
11773         virtual HRESULT STDMETHODCALLTYPE GetInt(
11774             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11775             /* [out] */ LONGLONG *value) = 0;
11776 
11777         virtual HRESULT STDMETHODCALLTYPE SetFloat(
11778             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11779             /* [in] */ double value) = 0;
11780 
11781         virtual HRESULT STDMETHODCALLTYPE GetFloat(
11782             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11783             /* [out] */ double *value) = 0;
11784 
11785         virtual HRESULT STDMETHODCALLTYPE SetString(
11786             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11787             /* [in] */ BSTR value) = 0;
11788 
11789         virtual HRESULT STDMETHODCALLTYPE GetString(
11790             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11791             /* [out] */ BSTR *value) = 0;
11792 
11793         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
11794 
11795     };
11796 
11797 
11798 #else 	/* C style interface */
11799 
11800     typedef struct IDeckLinkConfiguration_v10_2Vtbl
11801     {
11802         BEGIN_INTERFACE
11803 
11804         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11805             IDeckLinkConfiguration_v10_2 * This,
11806             /* [in] */ REFIID riid,
11807             /* [annotation][iid_is][out] */
11808             _COM_Outptr_  void **ppvObject);
11809 
11810         ULONG ( STDMETHODCALLTYPE *AddRef )(
11811             IDeckLinkConfiguration_v10_2 * This);
11812 
11813         ULONG ( STDMETHODCALLTYPE *Release )(
11814             IDeckLinkConfiguration_v10_2 * This);
11815 
11816         HRESULT ( STDMETHODCALLTYPE *SetFlag )(
11817             IDeckLinkConfiguration_v10_2 * This,
11818             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11819             /* [in] */ BOOL value);
11820 
11821         HRESULT ( STDMETHODCALLTYPE *GetFlag )(
11822             IDeckLinkConfiguration_v10_2 * This,
11823             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11824             /* [out] */ BOOL *value);
11825 
11826         HRESULT ( STDMETHODCALLTYPE *SetInt )(
11827             IDeckLinkConfiguration_v10_2 * This,
11828             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11829             /* [in] */ LONGLONG value);
11830 
11831         HRESULT ( STDMETHODCALLTYPE *GetInt )(
11832             IDeckLinkConfiguration_v10_2 * This,
11833             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11834             /* [out] */ LONGLONG *value);
11835 
11836         HRESULT ( STDMETHODCALLTYPE *SetFloat )(
11837             IDeckLinkConfiguration_v10_2 * This,
11838             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11839             /* [in] */ double value);
11840 
11841         HRESULT ( STDMETHODCALLTYPE *GetFloat )(
11842             IDeckLinkConfiguration_v10_2 * This,
11843             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11844             /* [out] */ double *value);
11845 
11846         HRESULT ( STDMETHODCALLTYPE *SetString )(
11847             IDeckLinkConfiguration_v10_2 * This,
11848             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11849             /* [in] */ BSTR value);
11850 
11851         HRESULT ( STDMETHODCALLTYPE *GetString )(
11852             IDeckLinkConfiguration_v10_2 * This,
11853             /* [in] */ BMDDeckLinkConfigurationID cfgID,
11854             /* [out] */ BSTR *value);
11855 
11856         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
11857             IDeckLinkConfiguration_v10_2 * This);
11858 
11859         END_INTERFACE
11860     } IDeckLinkConfiguration_v10_2Vtbl;
11861 
11862     interface IDeckLinkConfiguration_v10_2
11863     {
11864         CONST_VTBL struct IDeckLinkConfiguration_v10_2Vtbl *lpVtbl;
11865     };
11866 
11867 
11868 
11869 #ifdef COBJMACROS
11870 
11871 
11872 #define IDeckLinkConfiguration_v10_2_QueryInterface(This,riid,ppvObject)	\
11873     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11874 
11875 #define IDeckLinkConfiguration_v10_2_AddRef(This)	\
11876     ( (This)->lpVtbl -> AddRef(This) )
11877 
11878 #define IDeckLinkConfiguration_v10_2_Release(This)	\
11879     ( (This)->lpVtbl -> Release(This) )
11880 
11881 
11882 #define IDeckLinkConfiguration_v10_2_SetFlag(This,cfgID,value)	\
11883     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
11884 
11885 #define IDeckLinkConfiguration_v10_2_GetFlag(This,cfgID,value)	\
11886     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
11887 
11888 #define IDeckLinkConfiguration_v10_2_SetInt(This,cfgID,value)	\
11889     ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
11890 
11891 #define IDeckLinkConfiguration_v10_2_GetInt(This,cfgID,value)	\
11892     ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
11893 
11894 #define IDeckLinkConfiguration_v10_2_SetFloat(This,cfgID,value)	\
11895     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
11896 
11897 #define IDeckLinkConfiguration_v10_2_GetFloat(This,cfgID,value)	\
11898     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
11899 
11900 #define IDeckLinkConfiguration_v10_2_SetString(This,cfgID,value)	\
11901     ( (This)->lpVtbl -> SetString(This,cfgID,value) )
11902 
11903 #define IDeckLinkConfiguration_v10_2_GetString(This,cfgID,value)	\
11904     ( (This)->lpVtbl -> GetString(This,cfgID,value) )
11905 
11906 #define IDeckLinkConfiguration_v10_2_WriteConfigurationToPreferences(This)	\
11907     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
11908 
11909 #endif /* COBJMACROS */
11910 
11911 
11912 #endif 	/* C style interface */
11913 
11914 
11915 
11916 
11917 #endif 	/* __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__ */
11918 
11919 
11920 #ifndef __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__
11921 #define __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__
11922 
11923 /* interface IDeckLinkOutput_v9_9 */
11924 /* [helpstring][local][uuid][object] */
11925 
11926 
11927 EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
11928 
11929 #if defined(__cplusplus) && !defined(CINTERFACE)
11930 
11931     MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")
11932     IDeckLinkOutput_v9_9 : public IUnknown
11933     {
11934     public:
11935         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
11936             /* [in] */ BMDDisplayMode displayMode,
11937             /* [in] */ BMDPixelFormat pixelFormat,
11938             /* [in] */ BMDVideoOutputFlags flags,
11939             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
11940             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
11941 
11942         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
11943             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
11944 
11945         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
11946             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
11947 
11948         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
11949             /* [in] */ BMDDisplayMode displayMode,
11950             /* [in] */ BMDVideoOutputFlags flags) = 0;
11951 
11952         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
11953 
11954         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
11955             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
11956 
11957         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
11958             /* [in] */ int width,
11959             /* [in] */ int height,
11960             /* [in] */ int rowBytes,
11961             /* [in] */ BMDPixelFormat pixelFormat,
11962             /* [in] */ BMDFrameFlags flags,
11963             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;
11964 
11965         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
11966             /* [in] */ BMDPixelFormat pixelFormat,
11967             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
11968 
11969         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
11970             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
11971 
11972         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
11973             /* [in] */ IDeckLinkVideoFrame *theFrame,
11974             /* [in] */ BMDTimeValue displayTime,
11975             /* [in] */ BMDTimeValue displayDuration,
11976             /* [in] */ BMDTimeScale timeScale) = 0;
11977 
11978         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
11979             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
11980 
11981         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
11982             /* [out] */ unsigned int *bufferedFrameCount) = 0;
11983 
11984         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
11985             /* [in] */ BMDAudioSampleRate sampleRate,
11986             /* [in] */ BMDAudioSampleType sampleType,
11987             /* [in] */ unsigned int channelCount,
11988             /* [in] */ BMDAudioOutputStreamType streamType) = 0;
11989 
11990         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
11991 
11992         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
11993             /* [in] */ void *buffer,
11994             /* [in] */ unsigned int sampleFrameCount,
11995             /* [out] */ unsigned int *sampleFramesWritten) = 0;
11996 
11997         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
11998 
11999         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
12000 
12001         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
12002             /* [in] */ void *buffer,
12003             /* [in] */ unsigned int sampleFrameCount,
12004             /* [in] */ BMDTimeValue streamTime,
12005             /* [in] */ BMDTimeScale timeScale,
12006             /* [out] */ unsigned int *sampleFramesWritten) = 0;
12007 
12008         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
12009             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;
12010 
12011         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
12012 
12013         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
12014             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
12015 
12016         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
12017             /* [in] */ BMDTimeValue playbackStartTime,
12018             /* [in] */ BMDTimeScale timeScale,
12019             /* [in] */ double playbackSpeed) = 0;
12020 
12021         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
12022             /* [in] */ BMDTimeValue stopPlaybackAtTime,
12023             /* [out] */ BMDTimeValue *actualStopTime,
12024             /* [in] */ BMDTimeScale timeScale) = 0;
12025 
12026         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
12027             /* [out] */ BOOL *active) = 0;
12028 
12029         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
12030             /* [in] */ BMDTimeScale desiredTimeScale,
12031             /* [out] */ BMDTimeValue *streamTime,
12032             /* [out] */ double *playbackSpeed) = 0;
12033 
12034         virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(
12035             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;
12036 
12037         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
12038             /* [in] */ BMDTimeScale desiredTimeScale,
12039             /* [out] */ BMDTimeValue *hardwareTime,
12040             /* [out] */ BMDTimeValue *timeInFrame,
12041             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
12042 
12043     };
12044 
12045 
12046 #else 	/* C style interface */
12047 
12048     typedef struct IDeckLinkOutput_v9_9Vtbl
12049     {
12050         BEGIN_INTERFACE
12051 
12052         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12053             IDeckLinkOutput_v9_9 * This,
12054             /* [in] */ REFIID riid,
12055             /* [annotation][iid_is][out] */
12056             _COM_Outptr_  void **ppvObject);
12057 
12058         ULONG ( STDMETHODCALLTYPE *AddRef )(
12059             IDeckLinkOutput_v9_9 * This);
12060 
12061         ULONG ( STDMETHODCALLTYPE *Release )(
12062             IDeckLinkOutput_v9_9 * This);
12063 
12064         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
12065             IDeckLinkOutput_v9_9 * This,
12066             /* [in] */ BMDDisplayMode displayMode,
12067             /* [in] */ BMDPixelFormat pixelFormat,
12068             /* [in] */ BMDVideoOutputFlags flags,
12069             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
12070             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
12071 
12072         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
12073             IDeckLinkOutput_v9_9 * This,
12074             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
12075 
12076         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
12077             IDeckLinkOutput_v9_9 * This,
12078             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
12079 
12080         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
12081             IDeckLinkOutput_v9_9 * This,
12082             /* [in] */ BMDDisplayMode displayMode,
12083             /* [in] */ BMDVideoOutputFlags flags);
12084 
12085         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
12086             IDeckLinkOutput_v9_9 * This);
12087 
12088         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
12089             IDeckLinkOutput_v9_9 * This,
12090             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
12091 
12092         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
12093             IDeckLinkOutput_v9_9 * This,
12094             /* [in] */ int width,
12095             /* [in] */ int height,
12096             /* [in] */ int rowBytes,
12097             /* [in] */ BMDPixelFormat pixelFormat,
12098             /* [in] */ BMDFrameFlags flags,
12099             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);
12100 
12101         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
12102             IDeckLinkOutput_v9_9 * This,
12103             /* [in] */ BMDPixelFormat pixelFormat,
12104             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
12105 
12106         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
12107             IDeckLinkOutput_v9_9 * This,
12108             /* [in] */ IDeckLinkVideoFrame *theFrame);
12109 
12110         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
12111             IDeckLinkOutput_v9_9 * This,
12112             /* [in] */ IDeckLinkVideoFrame *theFrame,
12113             /* [in] */ BMDTimeValue displayTime,
12114             /* [in] */ BMDTimeValue displayDuration,
12115             /* [in] */ BMDTimeScale timeScale);
12116 
12117         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
12118             IDeckLinkOutput_v9_9 * This,
12119             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
12120 
12121         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
12122             IDeckLinkOutput_v9_9 * This,
12123             /* [out] */ unsigned int *bufferedFrameCount);
12124 
12125         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
12126             IDeckLinkOutput_v9_9 * This,
12127             /* [in] */ BMDAudioSampleRate sampleRate,
12128             /* [in] */ BMDAudioSampleType sampleType,
12129             /* [in] */ unsigned int channelCount,
12130             /* [in] */ BMDAudioOutputStreamType streamType);
12131 
12132         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
12133             IDeckLinkOutput_v9_9 * This);
12134 
12135         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
12136             IDeckLinkOutput_v9_9 * This,
12137             /* [in] */ void *buffer,
12138             /* [in] */ unsigned int sampleFrameCount,
12139             /* [out] */ unsigned int *sampleFramesWritten);
12140 
12141         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
12142             IDeckLinkOutput_v9_9 * This);
12143 
12144         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
12145             IDeckLinkOutput_v9_9 * This);
12146 
12147         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
12148             IDeckLinkOutput_v9_9 * This,
12149             /* [in] */ void *buffer,
12150             /* [in] */ unsigned int sampleFrameCount,
12151             /* [in] */ BMDTimeValue streamTime,
12152             /* [in] */ BMDTimeScale timeScale,
12153             /* [out] */ unsigned int *sampleFramesWritten);
12154 
12155         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
12156             IDeckLinkOutput_v9_9 * This,
12157             /* [out] */ unsigned int *bufferedSampleFrameCount);
12158 
12159         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
12160             IDeckLinkOutput_v9_9 * This);
12161 
12162         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
12163             IDeckLinkOutput_v9_9 * This,
12164             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
12165 
12166         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
12167             IDeckLinkOutput_v9_9 * This,
12168             /* [in] */ BMDTimeValue playbackStartTime,
12169             /* [in] */ BMDTimeScale timeScale,
12170             /* [in] */ double playbackSpeed);
12171 
12172         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
12173             IDeckLinkOutput_v9_9 * This,
12174             /* [in] */ BMDTimeValue stopPlaybackAtTime,
12175             /* [out] */ BMDTimeValue *actualStopTime,
12176             /* [in] */ BMDTimeScale timeScale);
12177 
12178         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
12179             IDeckLinkOutput_v9_9 * This,
12180             /* [out] */ BOOL *active);
12181 
12182         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
12183             IDeckLinkOutput_v9_9 * This,
12184             /* [in] */ BMDTimeScale desiredTimeScale,
12185             /* [out] */ BMDTimeValue *streamTime,
12186             /* [out] */ double *playbackSpeed);
12187 
12188         HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(
12189             IDeckLinkOutput_v9_9 * This,
12190             /* [out] */ BMDReferenceStatus *referenceStatus);
12191 
12192         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
12193             IDeckLinkOutput_v9_9 * This,
12194             /* [in] */ BMDTimeScale desiredTimeScale,
12195             /* [out] */ BMDTimeValue *hardwareTime,
12196             /* [out] */ BMDTimeValue *timeInFrame,
12197             /* [out] */ BMDTimeValue *ticksPerFrame);
12198 
12199         END_INTERFACE
12200     } IDeckLinkOutput_v9_9Vtbl;
12201 
12202     interface IDeckLinkOutput_v9_9
12203     {
12204         CONST_VTBL struct IDeckLinkOutput_v9_9Vtbl *lpVtbl;
12205     };
12206 
12207 
12208 
12209 #ifdef COBJMACROS
12210 
12211 
12212 #define IDeckLinkOutput_v9_9_QueryInterface(This,riid,ppvObject)	\
12213     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12214 
12215 #define IDeckLinkOutput_v9_9_AddRef(This)	\
12216     ( (This)->lpVtbl -> AddRef(This) )
12217 
12218 #define IDeckLinkOutput_v9_9_Release(This)	\
12219     ( (This)->lpVtbl -> Release(This) )
12220 
12221 
12222 #define IDeckLinkOutput_v9_9_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)	\
12223     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
12224 
12225 #define IDeckLinkOutput_v9_9_GetDisplayModeIterator(This,iterator)	\
12226     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
12227 
12228 #define IDeckLinkOutput_v9_9_SetScreenPreviewCallback(This,previewCallback)	\
12229     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
12230 
12231 #define IDeckLinkOutput_v9_9_EnableVideoOutput(This,displayMode,flags)	\
12232     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
12233 
12234 #define IDeckLinkOutput_v9_9_DisableVideoOutput(This)	\
12235     ( (This)->lpVtbl -> DisableVideoOutput(This) )
12236 
12237 #define IDeckLinkOutput_v9_9_SetVideoOutputFrameMemoryAllocator(This,theAllocator)	\
12238     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
12239 
12240 #define IDeckLinkOutput_v9_9_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)	\
12241     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
12242 
12243 #define IDeckLinkOutput_v9_9_CreateAncillaryData(This,pixelFormat,outBuffer)	\
12244     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
12245 
12246 #define IDeckLinkOutput_v9_9_DisplayVideoFrameSync(This,theFrame)	\
12247     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
12248 
12249 #define IDeckLinkOutput_v9_9_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)	\
12250     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
12251 
12252 #define IDeckLinkOutput_v9_9_SetScheduledFrameCompletionCallback(This,theCallback)	\
12253     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
12254 
12255 #define IDeckLinkOutput_v9_9_GetBufferedVideoFrameCount(This,bufferedFrameCount)	\
12256     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
12257 
12258 #define IDeckLinkOutput_v9_9_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)	\
12259     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
12260 
12261 #define IDeckLinkOutput_v9_9_DisableAudioOutput(This)	\
12262     ( (This)->lpVtbl -> DisableAudioOutput(This) )
12263 
12264 #define IDeckLinkOutput_v9_9_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)	\
12265     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
12266 
12267 #define IDeckLinkOutput_v9_9_BeginAudioPreroll(This)	\
12268     ( (This)->lpVtbl -> BeginAudioPreroll(This) )
12269 
12270 #define IDeckLinkOutput_v9_9_EndAudioPreroll(This)	\
12271     ( (This)->lpVtbl -> EndAudioPreroll(This) )
12272 
12273 #define IDeckLinkOutput_v9_9_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)	\
12274     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
12275 
12276 #define IDeckLinkOutput_v9_9_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)	\
12277     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
12278 
12279 #define IDeckLinkOutput_v9_9_FlushBufferedAudioSamples(This)	\
12280     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
12281 
12282 #define IDeckLinkOutput_v9_9_SetAudioCallback(This,theCallback)	\
12283     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
12284 
12285 #define IDeckLinkOutput_v9_9_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)	\
12286     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
12287 
12288 #define IDeckLinkOutput_v9_9_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)	\
12289     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
12290 
12291 #define IDeckLinkOutput_v9_9_IsScheduledPlaybackRunning(This,active)	\
12292     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
12293 
12294 #define IDeckLinkOutput_v9_9_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)	\
12295     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
12296 
12297 #define IDeckLinkOutput_v9_9_GetReferenceStatus(This,referenceStatus)	\
12298     ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )
12299 
12300 #define IDeckLinkOutput_v9_9_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
12301     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
12302 
12303 #endif /* COBJMACROS */
12304 
12305 
12306 #endif 	/* C style interface */
12307 
12308 
12309 
12310 
12311 #endif 	/* __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__ */
12312 
12313 
12314 #ifndef __IDeckLinkInput_v9_2_INTERFACE_DEFINED__
12315 #define __IDeckLinkInput_v9_2_INTERFACE_DEFINED__
12316 
12317 /* interface IDeckLinkInput_v9_2 */
12318 /* [helpstring][uuid][object] */
12319 
12320 
12321 EXTERN_C const IID IID_IDeckLinkInput_v9_2;
12322 
12323 #if defined(__cplusplus) && !defined(CINTERFACE)
12324 
12325     MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")
12326     IDeckLinkInput_v9_2 : public IUnknown
12327     {
12328     public:
12329         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
12330             /* [in] */ BMDDisplayMode displayMode,
12331             /* [in] */ BMDPixelFormat pixelFormat,
12332             /* [in] */ BMDVideoInputFlags flags,
12333             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
12334             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
12335 
12336         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
12337             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
12338 
12339         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
12340             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
12341 
12342         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
12343             /* [in] */ BMDDisplayMode displayMode,
12344             /* [in] */ BMDPixelFormat pixelFormat,
12345             /* [in] */ BMDVideoInputFlags flags) = 0;
12346 
12347         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
12348 
12349         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
12350             /* [out] */ unsigned int *availableFrameCount) = 0;
12351 
12352         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
12353             /* [in] */ BMDAudioSampleRate sampleRate,
12354             /* [in] */ BMDAudioSampleType sampleType,
12355             /* [in] */ unsigned int channelCount) = 0;
12356 
12357         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
12358 
12359         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
12360             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
12361 
12362         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
12363 
12364         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
12365 
12366         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
12367 
12368         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
12369 
12370         virtual HRESULT STDMETHODCALLTYPE SetCallback(
12371             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
12372 
12373         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
12374             /* [in] */ BMDTimeScale desiredTimeScale,
12375             /* [out] */ BMDTimeValue *hardwareTime,
12376             /* [out] */ BMDTimeValue *timeInFrame,
12377             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
12378 
12379     };
12380 
12381 
12382 #else 	/* C style interface */
12383 
12384     typedef struct IDeckLinkInput_v9_2Vtbl
12385     {
12386         BEGIN_INTERFACE
12387 
12388         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12389             IDeckLinkInput_v9_2 * This,
12390             /* [in] */ REFIID riid,
12391             /* [annotation][iid_is][out] */
12392             _COM_Outptr_  void **ppvObject);
12393 
12394         ULONG ( STDMETHODCALLTYPE *AddRef )(
12395             IDeckLinkInput_v9_2 * This);
12396 
12397         ULONG ( STDMETHODCALLTYPE *Release )(
12398             IDeckLinkInput_v9_2 * This);
12399 
12400         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
12401             IDeckLinkInput_v9_2 * This,
12402             /* [in] */ BMDDisplayMode displayMode,
12403             /* [in] */ BMDPixelFormat pixelFormat,
12404             /* [in] */ BMDVideoInputFlags flags,
12405             /* [out] */ BMDDisplayModeSupport_v10_11 *result,
12406             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
12407 
12408         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
12409             IDeckLinkInput_v9_2 * This,
12410             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
12411 
12412         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
12413             IDeckLinkInput_v9_2 * This,
12414             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
12415 
12416         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
12417             IDeckLinkInput_v9_2 * This,
12418             /* [in] */ BMDDisplayMode displayMode,
12419             /* [in] */ BMDPixelFormat pixelFormat,
12420             /* [in] */ BMDVideoInputFlags flags);
12421 
12422         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
12423             IDeckLinkInput_v9_2 * This);
12424 
12425         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
12426             IDeckLinkInput_v9_2 * This,
12427             /* [out] */ unsigned int *availableFrameCount);
12428 
12429         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
12430             IDeckLinkInput_v9_2 * This,
12431             /* [in] */ BMDAudioSampleRate sampleRate,
12432             /* [in] */ BMDAudioSampleType sampleType,
12433             /* [in] */ unsigned int channelCount);
12434 
12435         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
12436             IDeckLinkInput_v9_2 * This);
12437 
12438         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
12439             IDeckLinkInput_v9_2 * This,
12440             /* [out] */ unsigned int *availableSampleFrameCount);
12441 
12442         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
12443             IDeckLinkInput_v9_2 * This);
12444 
12445         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
12446             IDeckLinkInput_v9_2 * This);
12447 
12448         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
12449             IDeckLinkInput_v9_2 * This);
12450 
12451         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
12452             IDeckLinkInput_v9_2 * This);
12453 
12454         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
12455             IDeckLinkInput_v9_2 * This,
12456             /* [in] */ IDeckLinkInputCallback *theCallback);
12457 
12458         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
12459             IDeckLinkInput_v9_2 * This,
12460             /* [in] */ BMDTimeScale desiredTimeScale,
12461             /* [out] */ BMDTimeValue *hardwareTime,
12462             /* [out] */ BMDTimeValue *timeInFrame,
12463             /* [out] */ BMDTimeValue *ticksPerFrame);
12464 
12465         END_INTERFACE
12466     } IDeckLinkInput_v9_2Vtbl;
12467 
12468     interface IDeckLinkInput_v9_2
12469     {
12470         CONST_VTBL struct IDeckLinkInput_v9_2Vtbl *lpVtbl;
12471     };
12472 
12473 
12474 
12475 #ifdef COBJMACROS
12476 
12477 
12478 #define IDeckLinkInput_v9_2_QueryInterface(This,riid,ppvObject)	\
12479     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12480 
12481 #define IDeckLinkInput_v9_2_AddRef(This)	\
12482     ( (This)->lpVtbl -> AddRef(This) )
12483 
12484 #define IDeckLinkInput_v9_2_Release(This)	\
12485     ( (This)->lpVtbl -> Release(This) )
12486 
12487 
12488 #define IDeckLinkInput_v9_2_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)	\
12489     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
12490 
12491 #define IDeckLinkInput_v9_2_GetDisplayModeIterator(This,iterator)	\
12492     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
12493 
12494 #define IDeckLinkInput_v9_2_SetScreenPreviewCallback(This,previewCallback)	\
12495     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
12496 
12497 #define IDeckLinkInput_v9_2_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
12498     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
12499 
12500 #define IDeckLinkInput_v9_2_DisableVideoInput(This)	\
12501     ( (This)->lpVtbl -> DisableVideoInput(This) )
12502 
12503 #define IDeckLinkInput_v9_2_GetAvailableVideoFrameCount(This,availableFrameCount)	\
12504     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
12505 
12506 #define IDeckLinkInput_v9_2_EnableAudioInput(This,sampleRate,sampleType,channelCount)	\
12507     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
12508 
12509 #define IDeckLinkInput_v9_2_DisableAudioInput(This)	\
12510     ( (This)->lpVtbl -> DisableAudioInput(This) )
12511 
12512 #define IDeckLinkInput_v9_2_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
12513     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
12514 
12515 #define IDeckLinkInput_v9_2_StartStreams(This)	\
12516     ( (This)->lpVtbl -> StartStreams(This) )
12517 
12518 #define IDeckLinkInput_v9_2_StopStreams(This)	\
12519     ( (This)->lpVtbl -> StopStreams(This) )
12520 
12521 #define IDeckLinkInput_v9_2_PauseStreams(This)	\
12522     ( (This)->lpVtbl -> PauseStreams(This) )
12523 
12524 #define IDeckLinkInput_v9_2_FlushStreams(This)	\
12525     ( (This)->lpVtbl -> FlushStreams(This) )
12526 
12527 #define IDeckLinkInput_v9_2_SetCallback(This,theCallback)	\
12528     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
12529 
12530 #define IDeckLinkInput_v9_2_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
12531     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
12532 
12533 #endif /* COBJMACROS */
12534 
12535 
12536 #endif 	/* C style interface */
12537 
12538 
12539 
12540 
12541 #endif 	/* __IDeckLinkInput_v9_2_INTERFACE_DEFINED__ */
12542 
12543 
12544 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__
12545 #define __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__
12546 
12547 /* interface IDeckLinkDeckControlStatusCallback_v8_1 */
12548 /* [helpstring][uuid][object] */
12549 
12550 
12551 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
12552 
12553 #if defined(__cplusplus) && !defined(CINTERFACE)
12554 
12555     MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")
12556     IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown
12557     {
12558     public:
12559         virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(
12560             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
12561 
12562         virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(
12563             /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,
12564             /* [in] */ BMDDeckControlError error) = 0;
12565 
12566         virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(
12567             /* [in] */ BMDDeckControlEvent event,
12568             /* [in] */ BMDDeckControlError error) = 0;
12569 
12570         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(
12571             /* [in] */ BMDDeckControlStatusFlags flags,
12572             /* [in] */ unsigned int mask) = 0;
12573 
12574     };
12575 
12576 
12577 #else 	/* C style interface */
12578 
12579     typedef struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl
12580     {
12581         BEGIN_INTERFACE
12582 
12583         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12584             IDeckLinkDeckControlStatusCallback_v8_1 * This,
12585             /* [in] */ REFIID riid,
12586             /* [annotation][iid_is][out] */
12587             _COM_Outptr_  void **ppvObject);
12588 
12589         ULONG ( STDMETHODCALLTYPE *AddRef )(
12590             IDeckLinkDeckControlStatusCallback_v8_1 * This);
12591 
12592         ULONG ( STDMETHODCALLTYPE *Release )(
12593             IDeckLinkDeckControlStatusCallback_v8_1 * This);
12594 
12595         HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(
12596             IDeckLinkDeckControlStatusCallback_v8_1 * This,
12597             /* [in] */ BMDTimecodeBCD currentTimecode);
12598 
12599         HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(
12600             IDeckLinkDeckControlStatusCallback_v8_1 * This,
12601             /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,
12602             /* [in] */ BMDDeckControlError error);
12603 
12604         HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(
12605             IDeckLinkDeckControlStatusCallback_v8_1 * This,
12606             /* [in] */ BMDDeckControlEvent event,
12607             /* [in] */ BMDDeckControlError error);
12608 
12609         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(
12610             IDeckLinkDeckControlStatusCallback_v8_1 * This,
12611             /* [in] */ BMDDeckControlStatusFlags flags,
12612             /* [in] */ unsigned int mask);
12613 
12614         END_INTERFACE
12615     } IDeckLinkDeckControlStatusCallback_v8_1Vtbl;
12616 
12617     interface IDeckLinkDeckControlStatusCallback_v8_1
12618     {
12619         CONST_VTBL struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl *lpVtbl;
12620     };
12621 
12622 
12623 
12624 #ifdef COBJMACROS
12625 
12626 
12627 #define IDeckLinkDeckControlStatusCallback_v8_1_QueryInterface(This,riid,ppvObject)	\
12628     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12629 
12630 #define IDeckLinkDeckControlStatusCallback_v8_1_AddRef(This)	\
12631     ( (This)->lpVtbl -> AddRef(This) )
12632 
12633 #define IDeckLinkDeckControlStatusCallback_v8_1_Release(This)	\
12634     ( (This)->lpVtbl -> Release(This) )
12635 
12636 
12637 #define IDeckLinkDeckControlStatusCallback_v8_1_TimecodeUpdate(This,currentTimecode)	\
12638     ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )
12639 
12640 #define IDeckLinkDeckControlStatusCallback_v8_1_VTRControlStateChanged(This,newState,error)	\
12641     ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )
12642 
12643 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlEventReceived(This,event,error)	\
12644     ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )
12645 
12646 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlStatusChanged(This,flags,mask)	\
12647     ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )
12648 
12649 #endif /* COBJMACROS */
12650 
12651 
12652 #endif 	/* C style interface */
12653 
12654 
12655 
12656 
12657 #endif 	/* __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__ */
12658 
12659 
12660 #ifndef __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__
12661 #define __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__
12662 
12663 /* interface IDeckLinkDeckControl_v8_1 */
12664 /* [helpstring][uuid][object] */
12665 
12666 
12667 EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
12668 
12669 #if defined(__cplusplus) && !defined(CINTERFACE)
12670 
12671     MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")
12672     IDeckLinkDeckControl_v8_1 : public IUnknown
12673     {
12674     public:
12675         virtual HRESULT STDMETHODCALLTYPE Open(
12676             /* [in] */ BMDTimeScale timeScale,
12677             /* [in] */ BMDTimeValue timeValue,
12678             /* [in] */ BOOL timecodeIsDropFrame,
12679             /* [out] */ BMDDeckControlError *error) = 0;
12680 
12681         virtual HRESULT STDMETHODCALLTYPE Close(
12682             /* [in] */ BOOL standbyOn) = 0;
12683 
12684         virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
12685             /* [out] */ BMDDeckControlMode *mode,
12686             /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,
12687             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
12688 
12689         virtual HRESULT STDMETHODCALLTYPE SetStandby(
12690             /* [in] */ BOOL standbyOn) = 0;
12691 
12692         virtual HRESULT STDMETHODCALLTYPE SendCommand(
12693             /* [in] */ unsigned char *inBuffer,
12694             /* [in] */ unsigned int inBufferSize,
12695             /* [out] */ unsigned char *outBuffer,
12696             /* [out] */ unsigned int *outDataSize,
12697             /* [in] */ unsigned int outBufferSize,
12698             /* [out] */ BMDDeckControlError *error) = 0;
12699 
12700         virtual HRESULT STDMETHODCALLTYPE Play(
12701             /* [out] */ BMDDeckControlError *error) = 0;
12702 
12703         virtual HRESULT STDMETHODCALLTYPE Stop(
12704             /* [out] */ BMDDeckControlError *error) = 0;
12705 
12706         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
12707             /* [out] */ BMDDeckControlError *error) = 0;
12708 
12709         virtual HRESULT STDMETHODCALLTYPE Eject(
12710             /* [out] */ BMDDeckControlError *error) = 0;
12711 
12712         virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
12713             /* [in] */ BMDTimecodeBCD timecode,
12714             /* [out] */ BMDDeckControlError *error) = 0;
12715 
12716         virtual HRESULT STDMETHODCALLTYPE FastForward(
12717             /* [in] */ BOOL viewTape,
12718             /* [out] */ BMDDeckControlError *error) = 0;
12719 
12720         virtual HRESULT STDMETHODCALLTYPE Rewind(
12721             /* [in] */ BOOL viewTape,
12722             /* [out] */ BMDDeckControlError *error) = 0;
12723 
12724         virtual HRESULT STDMETHODCALLTYPE StepForward(
12725             /* [out] */ BMDDeckControlError *error) = 0;
12726 
12727         virtual HRESULT STDMETHODCALLTYPE StepBack(
12728             /* [out] */ BMDDeckControlError *error) = 0;
12729 
12730         virtual HRESULT STDMETHODCALLTYPE Jog(
12731             /* [in] */ double rate,
12732             /* [out] */ BMDDeckControlError *error) = 0;
12733 
12734         virtual HRESULT STDMETHODCALLTYPE Shuttle(
12735             /* [in] */ double rate,
12736             /* [out] */ BMDDeckControlError *error) = 0;
12737 
12738         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
12739             /* [out] */ BSTR *currentTimeCode,
12740             /* [out] */ BMDDeckControlError *error) = 0;
12741 
12742         virtual HRESULT STDMETHODCALLTYPE GetTimecode(
12743             /* [out] */ IDeckLinkTimecode **currentTimecode,
12744             /* [out] */ BMDDeckControlError *error) = 0;
12745 
12746         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
12747             /* [out] */ BMDTimecodeBCD *currentTimecode,
12748             /* [out] */ BMDDeckControlError *error) = 0;
12749 
12750         virtual HRESULT STDMETHODCALLTYPE SetPreroll(
12751             /* [in] */ unsigned int prerollSeconds) = 0;
12752 
12753         virtual HRESULT STDMETHODCALLTYPE GetPreroll(
12754             /* [out] */ unsigned int *prerollSeconds) = 0;
12755 
12756         virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
12757             /* [in] */ int exportOffsetFields) = 0;
12758 
12759         virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
12760             /* [out] */ int *exportOffsetFields) = 0;
12761 
12762         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
12763             /* [out] */ int *deckManualExportOffsetFields) = 0;
12764 
12765         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
12766             /* [in] */ int captureOffsetFields) = 0;
12767 
12768         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
12769             /* [out] */ int *captureOffsetFields) = 0;
12770 
12771         virtual HRESULT STDMETHODCALLTYPE StartExport(
12772             /* [in] */ BMDTimecodeBCD inTimecode,
12773             /* [in] */ BMDTimecodeBCD outTimecode,
12774             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
12775             /* [out] */ BMDDeckControlError *error) = 0;
12776 
12777         virtual HRESULT STDMETHODCALLTYPE StartCapture(
12778             /* [in] */ BOOL useVITC,
12779             /* [in] */ BMDTimecodeBCD inTimecode,
12780             /* [in] */ BMDTimecodeBCD outTimecode,
12781             /* [out] */ BMDDeckControlError *error) = 0;
12782 
12783         virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
12784             /* [out] */ unsigned short *deviceId,
12785             /* [out] */ BMDDeckControlError *error) = 0;
12786 
12787         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
12788 
12789         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
12790             /* [out] */ BMDDeckControlError *error) = 0;
12791 
12792         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
12793             /* [out] */ BMDDeckControlError *error) = 0;
12794 
12795         virtual HRESULT STDMETHODCALLTYPE SetCallback(
12796             /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0;
12797 
12798     };
12799 
12800 
12801 #else 	/* C style interface */
12802 
12803     typedef struct IDeckLinkDeckControl_v8_1Vtbl
12804     {
12805         BEGIN_INTERFACE
12806 
12807         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12808             IDeckLinkDeckControl_v8_1 * This,
12809             /* [in] */ REFIID riid,
12810             /* [annotation][iid_is][out] */
12811             _COM_Outptr_  void **ppvObject);
12812 
12813         ULONG ( STDMETHODCALLTYPE *AddRef )(
12814             IDeckLinkDeckControl_v8_1 * This);
12815 
12816         ULONG ( STDMETHODCALLTYPE *Release )(
12817             IDeckLinkDeckControl_v8_1 * This);
12818 
12819         HRESULT ( STDMETHODCALLTYPE *Open )(
12820             IDeckLinkDeckControl_v8_1 * This,
12821             /* [in] */ BMDTimeScale timeScale,
12822             /* [in] */ BMDTimeValue timeValue,
12823             /* [in] */ BOOL timecodeIsDropFrame,
12824             /* [out] */ BMDDeckControlError *error);
12825 
12826         HRESULT ( STDMETHODCALLTYPE *Close )(
12827             IDeckLinkDeckControl_v8_1 * This,
12828             /* [in] */ BOOL standbyOn);
12829 
12830         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
12831             IDeckLinkDeckControl_v8_1 * This,
12832             /* [out] */ BMDDeckControlMode *mode,
12833             /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,
12834             /* [out] */ BMDDeckControlStatusFlags *flags);
12835 
12836         HRESULT ( STDMETHODCALLTYPE *SetStandby )(
12837             IDeckLinkDeckControl_v8_1 * This,
12838             /* [in] */ BOOL standbyOn);
12839 
12840         HRESULT ( STDMETHODCALLTYPE *SendCommand )(
12841             IDeckLinkDeckControl_v8_1 * This,
12842             /* [in] */ unsigned char *inBuffer,
12843             /* [in] */ unsigned int inBufferSize,
12844             /* [out] */ unsigned char *outBuffer,
12845             /* [out] */ unsigned int *outDataSize,
12846             /* [in] */ unsigned int outBufferSize,
12847             /* [out] */ BMDDeckControlError *error);
12848 
12849         HRESULT ( STDMETHODCALLTYPE *Play )(
12850             IDeckLinkDeckControl_v8_1 * This,
12851             /* [out] */ BMDDeckControlError *error);
12852 
12853         HRESULT ( STDMETHODCALLTYPE *Stop )(
12854             IDeckLinkDeckControl_v8_1 * This,
12855             /* [out] */ BMDDeckControlError *error);
12856 
12857         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
12858             IDeckLinkDeckControl_v8_1 * This,
12859             /* [out] */ BMDDeckControlError *error);
12860 
12861         HRESULT ( STDMETHODCALLTYPE *Eject )(
12862             IDeckLinkDeckControl_v8_1 * This,
12863             /* [out] */ BMDDeckControlError *error);
12864 
12865         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
12866             IDeckLinkDeckControl_v8_1 * This,
12867             /* [in] */ BMDTimecodeBCD timecode,
12868             /* [out] */ BMDDeckControlError *error);
12869 
12870         HRESULT ( STDMETHODCALLTYPE *FastForward )(
12871             IDeckLinkDeckControl_v8_1 * This,
12872             /* [in] */ BOOL viewTape,
12873             /* [out] */ BMDDeckControlError *error);
12874 
12875         HRESULT ( STDMETHODCALLTYPE *Rewind )(
12876             IDeckLinkDeckControl_v8_1 * This,
12877             /* [in] */ BOOL viewTape,
12878             /* [out] */ BMDDeckControlError *error);
12879 
12880         HRESULT ( STDMETHODCALLTYPE *StepForward )(
12881             IDeckLinkDeckControl_v8_1 * This,
12882             /* [out] */ BMDDeckControlError *error);
12883 
12884         HRESULT ( STDMETHODCALLTYPE *StepBack )(
12885             IDeckLinkDeckControl_v8_1 * This,
12886             /* [out] */ BMDDeckControlError *error);
12887 
12888         HRESULT ( STDMETHODCALLTYPE *Jog )(
12889             IDeckLinkDeckControl_v8_1 * This,
12890             /* [in] */ double rate,
12891             /* [out] */ BMDDeckControlError *error);
12892 
12893         HRESULT ( STDMETHODCALLTYPE *Shuttle )(
12894             IDeckLinkDeckControl_v8_1 * This,
12895             /* [in] */ double rate,
12896             /* [out] */ BMDDeckControlError *error);
12897 
12898         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
12899             IDeckLinkDeckControl_v8_1 * This,
12900             /* [out] */ BSTR *currentTimeCode,
12901             /* [out] */ BMDDeckControlError *error);
12902 
12903         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
12904             IDeckLinkDeckControl_v8_1 * This,
12905             /* [out] */ IDeckLinkTimecode **currentTimecode,
12906             /* [out] */ BMDDeckControlError *error);
12907 
12908         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
12909             IDeckLinkDeckControl_v8_1 * This,
12910             /* [out] */ BMDTimecodeBCD *currentTimecode,
12911             /* [out] */ BMDDeckControlError *error);
12912 
12913         HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
12914             IDeckLinkDeckControl_v8_1 * This,
12915             /* [in] */ unsigned int prerollSeconds);
12916 
12917         HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
12918             IDeckLinkDeckControl_v8_1 * This,
12919             /* [out] */ unsigned int *prerollSeconds);
12920 
12921         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
12922             IDeckLinkDeckControl_v8_1 * This,
12923             /* [in] */ int exportOffsetFields);
12924 
12925         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
12926             IDeckLinkDeckControl_v8_1 * This,
12927             /* [out] */ int *exportOffsetFields);
12928 
12929         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
12930             IDeckLinkDeckControl_v8_1 * This,
12931             /* [out] */ int *deckManualExportOffsetFields);
12932 
12933         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
12934             IDeckLinkDeckControl_v8_1 * This,
12935             /* [in] */ int captureOffsetFields);
12936 
12937         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
12938             IDeckLinkDeckControl_v8_1 * This,
12939             /* [out] */ int *captureOffsetFields);
12940 
12941         HRESULT ( STDMETHODCALLTYPE *StartExport )(
12942             IDeckLinkDeckControl_v8_1 * This,
12943             /* [in] */ BMDTimecodeBCD inTimecode,
12944             /* [in] */ BMDTimecodeBCD outTimecode,
12945             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
12946             /* [out] */ BMDDeckControlError *error);
12947 
12948         HRESULT ( STDMETHODCALLTYPE *StartCapture )(
12949             IDeckLinkDeckControl_v8_1 * This,
12950             /* [in] */ BOOL useVITC,
12951             /* [in] */ BMDTimecodeBCD inTimecode,
12952             /* [in] */ BMDTimecodeBCD outTimecode,
12953             /* [out] */ BMDDeckControlError *error);
12954 
12955         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
12956             IDeckLinkDeckControl_v8_1 * This,
12957             /* [out] */ unsigned short *deviceId,
12958             /* [out] */ BMDDeckControlError *error);
12959 
12960         HRESULT ( STDMETHODCALLTYPE *Abort )(
12961             IDeckLinkDeckControl_v8_1 * This);
12962 
12963         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
12964             IDeckLinkDeckControl_v8_1 * This,
12965             /* [out] */ BMDDeckControlError *error);
12966 
12967         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
12968             IDeckLinkDeckControl_v8_1 * This,
12969             /* [out] */ BMDDeckControlError *error);
12970 
12971         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
12972             IDeckLinkDeckControl_v8_1 * This,
12973             /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback);
12974 
12975         END_INTERFACE
12976     } IDeckLinkDeckControl_v8_1Vtbl;
12977 
12978     interface IDeckLinkDeckControl_v8_1
12979     {
12980         CONST_VTBL struct IDeckLinkDeckControl_v8_1Vtbl *lpVtbl;
12981     };
12982 
12983 
12984 
12985 #ifdef COBJMACROS
12986 
12987 
12988 #define IDeckLinkDeckControl_v8_1_QueryInterface(This,riid,ppvObject)	\
12989     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12990 
12991 #define IDeckLinkDeckControl_v8_1_AddRef(This)	\
12992     ( (This)->lpVtbl -> AddRef(This) )
12993 
12994 #define IDeckLinkDeckControl_v8_1_Release(This)	\
12995     ( (This)->lpVtbl -> Release(This) )
12996 
12997 
12998 #define IDeckLinkDeckControl_v8_1_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)	\
12999     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
13000 
13001 #define IDeckLinkDeckControl_v8_1_Close(This,standbyOn)	\
13002     ( (This)->lpVtbl -> Close(This,standbyOn) )
13003 
13004 #define IDeckLinkDeckControl_v8_1_GetCurrentState(This,mode,vtrControlState,flags)	\
13005     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
13006 
13007 #define IDeckLinkDeckControl_v8_1_SetStandby(This,standbyOn)	\
13008     ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
13009 
13010 #define IDeckLinkDeckControl_v8_1_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)	\
13011     ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) )
13012 
13013 #define IDeckLinkDeckControl_v8_1_Play(This,error)	\
13014     ( (This)->lpVtbl -> Play(This,error) )
13015 
13016 #define IDeckLinkDeckControl_v8_1_Stop(This,error)	\
13017     ( (This)->lpVtbl -> Stop(This,error) )
13018 
13019 #define IDeckLinkDeckControl_v8_1_TogglePlayStop(This,error)	\
13020     ( (This)->lpVtbl -> TogglePlayStop(This,error) )
13021 
13022 #define IDeckLinkDeckControl_v8_1_Eject(This,error)	\
13023     ( (This)->lpVtbl -> Eject(This,error) )
13024 
13025 #define IDeckLinkDeckControl_v8_1_GoToTimecode(This,timecode,error)	\
13026     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
13027 
13028 #define IDeckLinkDeckControl_v8_1_FastForward(This,viewTape,error)	\
13029     ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
13030 
13031 #define IDeckLinkDeckControl_v8_1_Rewind(This,viewTape,error)	\
13032     ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
13033 
13034 #define IDeckLinkDeckControl_v8_1_StepForward(This,error)	\
13035     ( (This)->lpVtbl -> StepForward(This,error) )
13036 
13037 #define IDeckLinkDeckControl_v8_1_StepBack(This,error)	\
13038     ( (This)->lpVtbl -> StepBack(This,error) )
13039 
13040 #define IDeckLinkDeckControl_v8_1_Jog(This,rate,error)	\
13041     ( (This)->lpVtbl -> Jog(This,rate,error) )
13042 
13043 #define IDeckLinkDeckControl_v8_1_Shuttle(This,rate,error)	\
13044     ( (This)->lpVtbl -> Shuttle(This,rate,error) )
13045 
13046 #define IDeckLinkDeckControl_v8_1_GetTimecodeString(This,currentTimeCode,error)	\
13047     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
13048 
13049 #define IDeckLinkDeckControl_v8_1_GetTimecode(This,currentTimecode,error)	\
13050     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
13051 
13052 #define IDeckLinkDeckControl_v8_1_GetTimecodeBCD(This,currentTimecode,error)	\
13053     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
13054 
13055 #define IDeckLinkDeckControl_v8_1_SetPreroll(This,prerollSeconds)	\
13056     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
13057 
13058 #define IDeckLinkDeckControl_v8_1_GetPreroll(This,prerollSeconds)	\
13059     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
13060 
13061 #define IDeckLinkDeckControl_v8_1_SetExportOffset(This,exportOffsetFields)	\
13062     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
13063 
13064 #define IDeckLinkDeckControl_v8_1_GetExportOffset(This,exportOffsetFields)	\
13065     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
13066 
13067 #define IDeckLinkDeckControl_v8_1_GetManualExportOffset(This,deckManualExportOffsetFields)	\
13068     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
13069 
13070 #define IDeckLinkDeckControl_v8_1_SetCaptureOffset(This,captureOffsetFields)	\
13071     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
13072 
13073 #define IDeckLinkDeckControl_v8_1_GetCaptureOffset(This,captureOffsetFields)	\
13074     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
13075 
13076 #define IDeckLinkDeckControl_v8_1_StartExport(This,inTimecode,outTimecode,exportModeOps,error)	\
13077     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
13078 
13079 #define IDeckLinkDeckControl_v8_1_StartCapture(This,useVITC,inTimecode,outTimecode,error)	\
13080     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
13081 
13082 #define IDeckLinkDeckControl_v8_1_GetDeviceID(This,deviceId,error)	\
13083     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
13084 
13085 #define IDeckLinkDeckControl_v8_1_Abort(This)	\
13086     ( (This)->lpVtbl -> Abort(This) )
13087 
13088 #define IDeckLinkDeckControl_v8_1_CrashRecordStart(This,error)	\
13089     ( (This)->lpVtbl -> CrashRecordStart(This,error) )
13090 
13091 #define IDeckLinkDeckControl_v8_1_CrashRecordStop(This,error)	\
13092     ( (This)->lpVtbl -> CrashRecordStop(This,error) )
13093 
13094 #define IDeckLinkDeckControl_v8_1_SetCallback(This,callback)	\
13095     ( (This)->lpVtbl -> SetCallback(This,callback) )
13096 
13097 #endif /* COBJMACROS */
13098 
13099 
13100 #endif 	/* C style interface */
13101 
13102 
13103 
13104 
13105 #endif 	/* __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__ */
13106 
13107 
13108 #ifndef __IDeckLink_v8_0_INTERFACE_DEFINED__
13109 #define __IDeckLink_v8_0_INTERFACE_DEFINED__
13110 
13111 /* interface IDeckLink_v8_0 */
13112 /* [helpstring][uuid][object] */
13113 
13114 
13115 EXTERN_C const IID IID_IDeckLink_v8_0;
13116 
13117 #if defined(__cplusplus) && !defined(CINTERFACE)
13118 
13119     MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")
13120     IDeckLink_v8_0 : public IUnknown
13121     {
13122     public:
13123         virtual HRESULT STDMETHODCALLTYPE GetModelName(
13124             /* [out] */ BSTR *modelName) = 0;
13125 
13126     };
13127 
13128 
13129 #else 	/* C style interface */
13130 
13131     typedef struct IDeckLink_v8_0Vtbl
13132     {
13133         BEGIN_INTERFACE
13134 
13135         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13136             IDeckLink_v8_0 * This,
13137             /* [in] */ REFIID riid,
13138             /* [annotation][iid_is][out] */
13139             _COM_Outptr_  void **ppvObject);
13140 
13141         ULONG ( STDMETHODCALLTYPE *AddRef )(
13142             IDeckLink_v8_0 * This);
13143 
13144         ULONG ( STDMETHODCALLTYPE *Release )(
13145             IDeckLink_v8_0 * This);
13146 
13147         HRESULT ( STDMETHODCALLTYPE *GetModelName )(
13148             IDeckLink_v8_0 * This,
13149             /* [out] */ BSTR *modelName);
13150 
13151         END_INTERFACE
13152     } IDeckLink_v8_0Vtbl;
13153 
13154     interface IDeckLink_v8_0
13155     {
13156         CONST_VTBL struct IDeckLink_v8_0Vtbl *lpVtbl;
13157     };
13158 
13159 
13160 
13161 #ifdef COBJMACROS
13162 
13163 
13164 #define IDeckLink_v8_0_QueryInterface(This,riid,ppvObject)	\
13165     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13166 
13167 #define IDeckLink_v8_0_AddRef(This)	\
13168     ( (This)->lpVtbl -> AddRef(This) )
13169 
13170 #define IDeckLink_v8_0_Release(This)	\
13171     ( (This)->lpVtbl -> Release(This) )
13172 
13173 
13174 #define IDeckLink_v8_0_GetModelName(This,modelName)	\
13175     ( (This)->lpVtbl -> GetModelName(This,modelName) )
13176 
13177 #endif /* COBJMACROS */
13178 
13179 
13180 #endif 	/* C style interface */
13181 
13182 
13183 
13184 
13185 #endif 	/* __IDeckLink_v8_0_INTERFACE_DEFINED__ */
13186 
13187 
13188 #ifndef __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__
13189 #define __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__
13190 
13191 /* interface IDeckLinkIterator_v8_0 */
13192 /* [helpstring][uuid][object] */
13193 
13194 
13195 EXTERN_C const IID IID_IDeckLinkIterator_v8_0;
13196 
13197 #if defined(__cplusplus) && !defined(CINTERFACE)
13198 
13199     MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")
13200     IDeckLinkIterator_v8_0 : public IUnknown
13201     {
13202     public:
13203         virtual HRESULT STDMETHODCALLTYPE Next(
13204             /* [out] */ IDeckLink_v8_0 **deckLinkInstance) = 0;
13205 
13206     };
13207 
13208 
13209 #else 	/* C style interface */
13210 
13211     typedef struct IDeckLinkIterator_v8_0Vtbl
13212     {
13213         BEGIN_INTERFACE
13214 
13215         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13216             IDeckLinkIterator_v8_0 * This,
13217             /* [in] */ REFIID riid,
13218             /* [annotation][iid_is][out] */
13219             _COM_Outptr_  void **ppvObject);
13220 
13221         ULONG ( STDMETHODCALLTYPE *AddRef )(
13222             IDeckLinkIterator_v8_0 * This);
13223 
13224         ULONG ( STDMETHODCALLTYPE *Release )(
13225             IDeckLinkIterator_v8_0 * This);
13226 
13227         HRESULT ( STDMETHODCALLTYPE *Next )(
13228             IDeckLinkIterator_v8_0 * This,
13229             /* [out] */ IDeckLink_v8_0 **deckLinkInstance);
13230 
13231         END_INTERFACE
13232     } IDeckLinkIterator_v8_0Vtbl;
13233 
13234     interface IDeckLinkIterator_v8_0
13235     {
13236         CONST_VTBL struct IDeckLinkIterator_v8_0Vtbl *lpVtbl;
13237     };
13238 
13239 
13240 
13241 #ifdef COBJMACROS
13242 
13243 
13244 #define IDeckLinkIterator_v8_0_QueryInterface(This,riid,ppvObject)	\
13245     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13246 
13247 #define IDeckLinkIterator_v8_0_AddRef(This)	\
13248     ( (This)->lpVtbl -> AddRef(This) )
13249 
13250 #define IDeckLinkIterator_v8_0_Release(This)	\
13251     ( (This)->lpVtbl -> Release(This) )
13252 
13253 
13254 #define IDeckLinkIterator_v8_0_Next(This,deckLinkInstance)	\
13255     ( (This)->lpVtbl -> Next(This,deckLinkInstance) )
13256 
13257 #endif /* COBJMACROS */
13258 
13259 
13260 #endif 	/* C style interface */
13261 
13262 
13263 
13264 
13265 #endif 	/* __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__ */
13266 
13267 
13268 EXTERN_C const CLSID CLSID_CDeckLinkIterator_v8_0;
13269 
13270 #ifdef __cplusplus
13271 
13272 class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")
13273 CDeckLinkIterator_v8_0;
13274 #endif
13275 
13276 #ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__
13277 #define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__
13278 
13279 /* interface IDeckLinkDeckControl_v7_9 */
13280 /* [helpstring][uuid][object] */
13281 
13282 
13283 EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
13284 
13285 #if defined(__cplusplus) && !defined(CINTERFACE)
13286 
13287     MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")
13288     IDeckLinkDeckControl_v7_9 : public IUnknown
13289     {
13290     public:
13291         virtual HRESULT STDMETHODCALLTYPE Open(
13292             /* [in] */ BMDTimeScale timeScale,
13293             /* [in] */ BMDTimeValue timeValue,
13294             /* [in] */ BOOL timecodeIsDropFrame,
13295             /* [out] */ BMDDeckControlError *error) = 0;
13296 
13297         virtual HRESULT STDMETHODCALLTYPE Close(
13298             /* [in] */ BOOL standbyOn) = 0;
13299 
13300         virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
13301             /* [out] */ BMDDeckControlMode *mode,
13302             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
13303             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
13304 
13305         virtual HRESULT STDMETHODCALLTYPE SetStandby(
13306             /* [in] */ BOOL standbyOn) = 0;
13307 
13308         virtual HRESULT STDMETHODCALLTYPE Play(
13309             /* [out] */ BMDDeckControlError *error) = 0;
13310 
13311         virtual HRESULT STDMETHODCALLTYPE Stop(
13312             /* [out] */ BMDDeckControlError *error) = 0;
13313 
13314         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
13315             /* [out] */ BMDDeckControlError *error) = 0;
13316 
13317         virtual HRESULT STDMETHODCALLTYPE Eject(
13318             /* [out] */ BMDDeckControlError *error) = 0;
13319 
13320         virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
13321             /* [in] */ BMDTimecodeBCD timecode,
13322             /* [out] */ BMDDeckControlError *error) = 0;
13323 
13324         virtual HRESULT STDMETHODCALLTYPE FastForward(
13325             /* [in] */ BOOL viewTape,
13326             /* [out] */ BMDDeckControlError *error) = 0;
13327 
13328         virtual HRESULT STDMETHODCALLTYPE Rewind(
13329             /* [in] */ BOOL viewTape,
13330             /* [out] */ BMDDeckControlError *error) = 0;
13331 
13332         virtual HRESULT STDMETHODCALLTYPE StepForward(
13333             /* [out] */ BMDDeckControlError *error) = 0;
13334 
13335         virtual HRESULT STDMETHODCALLTYPE StepBack(
13336             /* [out] */ BMDDeckControlError *error) = 0;
13337 
13338         virtual HRESULT STDMETHODCALLTYPE Jog(
13339             /* [in] */ double rate,
13340             /* [out] */ BMDDeckControlError *error) = 0;
13341 
13342         virtual HRESULT STDMETHODCALLTYPE Shuttle(
13343             /* [in] */ double rate,
13344             /* [out] */ BMDDeckControlError *error) = 0;
13345 
13346         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
13347             /* [out] */ BSTR *currentTimeCode,
13348             /* [out] */ BMDDeckControlError *error) = 0;
13349 
13350         virtual HRESULT STDMETHODCALLTYPE GetTimecode(
13351             /* [out] */ IDeckLinkTimecode **currentTimecode,
13352             /* [out] */ BMDDeckControlError *error) = 0;
13353 
13354         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
13355             /* [out] */ BMDTimecodeBCD *currentTimecode,
13356             /* [out] */ BMDDeckControlError *error) = 0;
13357 
13358         virtual HRESULT STDMETHODCALLTYPE SetPreroll(
13359             /* [in] */ unsigned int prerollSeconds) = 0;
13360 
13361         virtual HRESULT STDMETHODCALLTYPE GetPreroll(
13362             /* [out] */ unsigned int *prerollSeconds) = 0;
13363 
13364         virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
13365             /* [in] */ int exportOffsetFields) = 0;
13366 
13367         virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
13368             /* [out] */ int *exportOffsetFields) = 0;
13369 
13370         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
13371             /* [out] */ int *deckManualExportOffsetFields) = 0;
13372 
13373         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
13374             /* [in] */ int captureOffsetFields) = 0;
13375 
13376         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
13377             /* [out] */ int *captureOffsetFields) = 0;
13378 
13379         virtual HRESULT STDMETHODCALLTYPE StartExport(
13380             /* [in] */ BMDTimecodeBCD inTimecode,
13381             /* [in] */ BMDTimecodeBCD outTimecode,
13382             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
13383             /* [out] */ BMDDeckControlError *error) = 0;
13384 
13385         virtual HRESULT STDMETHODCALLTYPE StartCapture(
13386             /* [in] */ BOOL useVITC,
13387             /* [in] */ BMDTimecodeBCD inTimecode,
13388             /* [in] */ BMDTimecodeBCD outTimecode,
13389             /* [out] */ BMDDeckControlError *error) = 0;
13390 
13391         virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
13392             /* [out] */ unsigned short *deviceId,
13393             /* [out] */ BMDDeckControlError *error) = 0;
13394 
13395         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
13396 
13397         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
13398             /* [out] */ BMDDeckControlError *error) = 0;
13399 
13400         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
13401             /* [out] */ BMDDeckControlError *error) = 0;
13402 
13403         virtual HRESULT STDMETHODCALLTYPE SetCallback(
13404             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
13405 
13406     };
13407 
13408 
13409 #else 	/* C style interface */
13410 
13411     typedef struct IDeckLinkDeckControl_v7_9Vtbl
13412     {
13413         BEGIN_INTERFACE
13414 
13415         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13416             IDeckLinkDeckControl_v7_9 * This,
13417             /* [in] */ REFIID riid,
13418             /* [annotation][iid_is][out] */
13419             _COM_Outptr_  void **ppvObject);
13420 
13421         ULONG ( STDMETHODCALLTYPE *AddRef )(
13422             IDeckLinkDeckControl_v7_9 * This);
13423 
13424         ULONG ( STDMETHODCALLTYPE *Release )(
13425             IDeckLinkDeckControl_v7_9 * This);
13426 
13427         HRESULT ( STDMETHODCALLTYPE *Open )(
13428             IDeckLinkDeckControl_v7_9 * This,
13429             /* [in] */ BMDTimeScale timeScale,
13430             /* [in] */ BMDTimeValue timeValue,
13431             /* [in] */ BOOL timecodeIsDropFrame,
13432             /* [out] */ BMDDeckControlError *error);
13433 
13434         HRESULT ( STDMETHODCALLTYPE *Close )(
13435             IDeckLinkDeckControl_v7_9 * This,
13436             /* [in] */ BOOL standbyOn);
13437 
13438         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
13439             IDeckLinkDeckControl_v7_9 * This,
13440             /* [out] */ BMDDeckControlMode *mode,
13441             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
13442             /* [out] */ BMDDeckControlStatusFlags *flags);
13443 
13444         HRESULT ( STDMETHODCALLTYPE *SetStandby )(
13445             IDeckLinkDeckControl_v7_9 * This,
13446             /* [in] */ BOOL standbyOn);
13447 
13448         HRESULT ( STDMETHODCALLTYPE *Play )(
13449             IDeckLinkDeckControl_v7_9 * This,
13450             /* [out] */ BMDDeckControlError *error);
13451 
13452         HRESULT ( STDMETHODCALLTYPE *Stop )(
13453             IDeckLinkDeckControl_v7_9 * This,
13454             /* [out] */ BMDDeckControlError *error);
13455 
13456         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
13457             IDeckLinkDeckControl_v7_9 * This,
13458             /* [out] */ BMDDeckControlError *error);
13459 
13460         HRESULT ( STDMETHODCALLTYPE *Eject )(
13461             IDeckLinkDeckControl_v7_9 * This,
13462             /* [out] */ BMDDeckControlError *error);
13463 
13464         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
13465             IDeckLinkDeckControl_v7_9 * This,
13466             /* [in] */ BMDTimecodeBCD timecode,
13467             /* [out] */ BMDDeckControlError *error);
13468 
13469         HRESULT ( STDMETHODCALLTYPE *FastForward )(
13470             IDeckLinkDeckControl_v7_9 * This,
13471             /* [in] */ BOOL viewTape,
13472             /* [out] */ BMDDeckControlError *error);
13473 
13474         HRESULT ( STDMETHODCALLTYPE *Rewind )(
13475             IDeckLinkDeckControl_v7_9 * This,
13476             /* [in] */ BOOL viewTape,
13477             /* [out] */ BMDDeckControlError *error);
13478 
13479         HRESULT ( STDMETHODCALLTYPE *StepForward )(
13480             IDeckLinkDeckControl_v7_9 * This,
13481             /* [out] */ BMDDeckControlError *error);
13482 
13483         HRESULT ( STDMETHODCALLTYPE *StepBack )(
13484             IDeckLinkDeckControl_v7_9 * This,
13485             /* [out] */ BMDDeckControlError *error);
13486 
13487         HRESULT ( STDMETHODCALLTYPE *Jog )(
13488             IDeckLinkDeckControl_v7_9 * This,
13489             /* [in] */ double rate,
13490             /* [out] */ BMDDeckControlError *error);
13491 
13492         HRESULT ( STDMETHODCALLTYPE *Shuttle )(
13493             IDeckLinkDeckControl_v7_9 * This,
13494             /* [in] */ double rate,
13495             /* [out] */ BMDDeckControlError *error);
13496 
13497         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
13498             IDeckLinkDeckControl_v7_9 * This,
13499             /* [out] */ BSTR *currentTimeCode,
13500             /* [out] */ BMDDeckControlError *error);
13501 
13502         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
13503             IDeckLinkDeckControl_v7_9 * This,
13504             /* [out] */ IDeckLinkTimecode **currentTimecode,
13505             /* [out] */ BMDDeckControlError *error);
13506 
13507         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
13508             IDeckLinkDeckControl_v7_9 * This,
13509             /* [out] */ BMDTimecodeBCD *currentTimecode,
13510             /* [out] */ BMDDeckControlError *error);
13511 
13512         HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
13513             IDeckLinkDeckControl_v7_9 * This,
13514             /* [in] */ unsigned int prerollSeconds);
13515 
13516         HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
13517             IDeckLinkDeckControl_v7_9 * This,
13518             /* [out] */ unsigned int *prerollSeconds);
13519 
13520         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
13521             IDeckLinkDeckControl_v7_9 * This,
13522             /* [in] */ int exportOffsetFields);
13523 
13524         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
13525             IDeckLinkDeckControl_v7_9 * This,
13526             /* [out] */ int *exportOffsetFields);
13527 
13528         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
13529             IDeckLinkDeckControl_v7_9 * This,
13530             /* [out] */ int *deckManualExportOffsetFields);
13531 
13532         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
13533             IDeckLinkDeckControl_v7_9 * This,
13534             /* [in] */ int captureOffsetFields);
13535 
13536         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
13537             IDeckLinkDeckControl_v7_9 * This,
13538             /* [out] */ int *captureOffsetFields);
13539 
13540         HRESULT ( STDMETHODCALLTYPE *StartExport )(
13541             IDeckLinkDeckControl_v7_9 * This,
13542             /* [in] */ BMDTimecodeBCD inTimecode,
13543             /* [in] */ BMDTimecodeBCD outTimecode,
13544             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
13545             /* [out] */ BMDDeckControlError *error);
13546 
13547         HRESULT ( STDMETHODCALLTYPE *StartCapture )(
13548             IDeckLinkDeckControl_v7_9 * This,
13549             /* [in] */ BOOL useVITC,
13550             /* [in] */ BMDTimecodeBCD inTimecode,
13551             /* [in] */ BMDTimecodeBCD outTimecode,
13552             /* [out] */ BMDDeckControlError *error);
13553 
13554         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
13555             IDeckLinkDeckControl_v7_9 * This,
13556             /* [out] */ unsigned short *deviceId,
13557             /* [out] */ BMDDeckControlError *error);
13558 
13559         HRESULT ( STDMETHODCALLTYPE *Abort )(
13560             IDeckLinkDeckControl_v7_9 * This);
13561 
13562         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
13563             IDeckLinkDeckControl_v7_9 * This,
13564             /* [out] */ BMDDeckControlError *error);
13565 
13566         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
13567             IDeckLinkDeckControl_v7_9 * This,
13568             /* [out] */ BMDDeckControlError *error);
13569 
13570         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
13571             IDeckLinkDeckControl_v7_9 * This,
13572             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
13573 
13574         END_INTERFACE
13575     } IDeckLinkDeckControl_v7_9Vtbl;
13576 
13577     interface IDeckLinkDeckControl_v7_9
13578     {
13579         CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;
13580     };
13581 
13582 
13583 
13584 #ifdef COBJMACROS
13585 
13586 
13587 #define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject)	\
13588     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13589 
13590 #define IDeckLinkDeckControl_v7_9_AddRef(This)	\
13591     ( (This)->lpVtbl -> AddRef(This) )
13592 
13593 #define IDeckLinkDeckControl_v7_9_Release(This)	\
13594     ( (This)->lpVtbl -> Release(This) )
13595 
13596 
13597 #define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)	\
13598     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
13599 
13600 #define IDeckLinkDeckControl_v7_9_Close(This,standbyOn)	\
13601     ( (This)->lpVtbl -> Close(This,standbyOn) )
13602 
13603 #define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags)	\
13604     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
13605 
13606 #define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn)	\
13607     ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
13608 
13609 #define IDeckLinkDeckControl_v7_9_Play(This,error)	\
13610     ( (This)->lpVtbl -> Play(This,error) )
13611 
13612 #define IDeckLinkDeckControl_v7_9_Stop(This,error)	\
13613     ( (This)->lpVtbl -> Stop(This,error) )
13614 
13615 #define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error)	\
13616     ( (This)->lpVtbl -> TogglePlayStop(This,error) )
13617 
13618 #define IDeckLinkDeckControl_v7_9_Eject(This,error)	\
13619     ( (This)->lpVtbl -> Eject(This,error) )
13620 
13621 #define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error)	\
13622     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
13623 
13624 #define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error)	\
13625     ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
13626 
13627 #define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error)	\
13628     ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
13629 
13630 #define IDeckLinkDeckControl_v7_9_StepForward(This,error)	\
13631     ( (This)->lpVtbl -> StepForward(This,error) )
13632 
13633 #define IDeckLinkDeckControl_v7_9_StepBack(This,error)	\
13634     ( (This)->lpVtbl -> StepBack(This,error) )
13635 
13636 #define IDeckLinkDeckControl_v7_9_Jog(This,rate,error)	\
13637     ( (This)->lpVtbl -> Jog(This,rate,error) )
13638 
13639 #define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error)	\
13640     ( (This)->lpVtbl -> Shuttle(This,rate,error) )
13641 
13642 #define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error)	\
13643     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
13644 
13645 #define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error)	\
13646     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
13647 
13648 #define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error)	\
13649     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
13650 
13651 #define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds)	\
13652     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
13653 
13654 #define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds)	\
13655     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
13656 
13657 #define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields)	\
13658     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
13659 
13660 #define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields)	\
13661     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
13662 
13663 #define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields)	\
13664     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
13665 
13666 #define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields)	\
13667     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
13668 
13669 #define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields)	\
13670     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
13671 
13672 #define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error)	\
13673     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
13674 
13675 #define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error)	\
13676     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
13677 
13678 #define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error)	\
13679     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
13680 
13681 #define IDeckLinkDeckControl_v7_9_Abort(This)	\
13682     ( (This)->lpVtbl -> Abort(This) )
13683 
13684 #define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error)	\
13685     ( (This)->lpVtbl -> CrashRecordStart(This,error) )
13686 
13687 #define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error)	\
13688     ( (This)->lpVtbl -> CrashRecordStop(This,error) )
13689 
13690 #define IDeckLinkDeckControl_v7_9_SetCallback(This,callback)	\
13691     ( (This)->lpVtbl -> SetCallback(This,callback) )
13692 
13693 #endif /* COBJMACROS */
13694 
13695 
13696 #endif 	/* C style interface */
13697 
13698 
13699 
13700 
13701 #endif 	/* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */
13702 
13703 
13704 #ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
13705 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
13706 
13707 /* interface IDeckLinkDisplayModeIterator_v7_6 */
13708 /* [helpstring][uuid][object] */
13709 
13710 
13711 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;
13712 
13713 #if defined(__cplusplus) && !defined(CINTERFACE)
13714 
13715     MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")
13716     IDeckLinkDisplayModeIterator_v7_6 : public IUnknown
13717     {
13718     public:
13719         virtual HRESULT STDMETHODCALLTYPE Next(
13720             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;
13721 
13722     };
13723 
13724 
13725 #else 	/* C style interface */
13726 
13727     typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl
13728     {
13729         BEGIN_INTERFACE
13730 
13731         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13732             IDeckLinkDisplayModeIterator_v7_6 * This,
13733             /* [in] */ REFIID riid,
13734             /* [annotation][iid_is][out] */
13735             _COM_Outptr_  void **ppvObject);
13736 
13737         ULONG ( STDMETHODCALLTYPE *AddRef )(
13738             IDeckLinkDisplayModeIterator_v7_6 * This);
13739 
13740         ULONG ( STDMETHODCALLTYPE *Release )(
13741             IDeckLinkDisplayModeIterator_v7_6 * This);
13742 
13743         HRESULT ( STDMETHODCALLTYPE *Next )(
13744             IDeckLinkDisplayModeIterator_v7_6 * This,
13745             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);
13746 
13747         END_INTERFACE
13748     } IDeckLinkDisplayModeIterator_v7_6Vtbl;
13749 
13750     interface IDeckLinkDisplayModeIterator_v7_6
13751     {
13752         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;
13753     };
13754 
13755 
13756 
13757 #ifdef COBJMACROS
13758 
13759 
13760 #define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject)	\
13761     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13762 
13763 #define IDeckLinkDisplayModeIterator_v7_6_AddRef(This)	\
13764     ( (This)->lpVtbl -> AddRef(This) )
13765 
13766 #define IDeckLinkDisplayModeIterator_v7_6_Release(This)	\
13767     ( (This)->lpVtbl -> Release(This) )
13768 
13769 
13770 #define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode)	\
13771     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
13772 
13773 #endif /* COBJMACROS */
13774 
13775 
13776 #endif 	/* C style interface */
13777 
13778 
13779 
13780 
13781 #endif 	/* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */
13782 
13783 
13784 #ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
13785 #define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
13786 
13787 /* interface IDeckLinkDisplayMode_v7_6 */
13788 /* [helpstring][uuid][object] */
13789 
13790 
13791 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;
13792 
13793 #if defined(__cplusplus) && !defined(CINTERFACE)
13794 
13795     MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")
13796     IDeckLinkDisplayMode_v7_6 : public IUnknown
13797     {
13798     public:
13799         virtual HRESULT STDMETHODCALLTYPE GetName(
13800             /* [out] */ BSTR *name) = 0;
13801 
13802         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
13803 
13804         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
13805 
13806         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
13807 
13808         virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
13809             /* [out] */ BMDTimeValue *frameDuration,
13810             /* [out] */ BMDTimeScale *timeScale) = 0;
13811 
13812         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
13813 
13814     };
13815 
13816 
13817 #else 	/* C style interface */
13818 
13819     typedef struct IDeckLinkDisplayMode_v7_6Vtbl
13820     {
13821         BEGIN_INTERFACE
13822 
13823         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13824             IDeckLinkDisplayMode_v7_6 * This,
13825             /* [in] */ REFIID riid,
13826             /* [annotation][iid_is][out] */
13827             _COM_Outptr_  void **ppvObject);
13828 
13829         ULONG ( STDMETHODCALLTYPE *AddRef )(
13830             IDeckLinkDisplayMode_v7_6 * This);
13831 
13832         ULONG ( STDMETHODCALLTYPE *Release )(
13833             IDeckLinkDisplayMode_v7_6 * This);
13834 
13835         HRESULT ( STDMETHODCALLTYPE *GetName )(
13836             IDeckLinkDisplayMode_v7_6 * This,
13837             /* [out] */ BSTR *name);
13838 
13839         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
13840             IDeckLinkDisplayMode_v7_6 * This);
13841 
13842         long ( STDMETHODCALLTYPE *GetWidth )(
13843             IDeckLinkDisplayMode_v7_6 * This);
13844 
13845         long ( STDMETHODCALLTYPE *GetHeight )(
13846             IDeckLinkDisplayMode_v7_6 * This);
13847 
13848         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
13849             IDeckLinkDisplayMode_v7_6 * This,
13850             /* [out] */ BMDTimeValue *frameDuration,
13851             /* [out] */ BMDTimeScale *timeScale);
13852 
13853         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(
13854             IDeckLinkDisplayMode_v7_6 * This);
13855 
13856         END_INTERFACE
13857     } IDeckLinkDisplayMode_v7_6Vtbl;
13858 
13859     interface IDeckLinkDisplayMode_v7_6
13860     {
13861         CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;
13862     };
13863 
13864 
13865 
13866 #ifdef COBJMACROS
13867 
13868 
13869 #define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject)	\
13870     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13871 
13872 #define IDeckLinkDisplayMode_v7_6_AddRef(This)	\
13873     ( (This)->lpVtbl -> AddRef(This) )
13874 
13875 #define IDeckLinkDisplayMode_v7_6_Release(This)	\
13876     ( (This)->lpVtbl -> Release(This) )
13877 
13878 
13879 #define IDeckLinkDisplayMode_v7_6_GetName(This,name)	\
13880     ( (This)->lpVtbl -> GetName(This,name) )
13881 
13882 #define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This)	\
13883     ( (This)->lpVtbl -> GetDisplayMode(This) )
13884 
13885 #define IDeckLinkDisplayMode_v7_6_GetWidth(This)	\
13886     ( (This)->lpVtbl -> GetWidth(This) )
13887 
13888 #define IDeckLinkDisplayMode_v7_6_GetHeight(This)	\
13889     ( (This)->lpVtbl -> GetHeight(This) )
13890 
13891 #define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale)	\
13892     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
13893 
13894 #define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This)	\
13895     ( (This)->lpVtbl -> GetFieldDominance(This) )
13896 
13897 #endif /* COBJMACROS */
13898 
13899 
13900 #endif 	/* C style interface */
13901 
13902 
13903 
13904 
13905 #endif 	/* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */
13906 
13907 
13908 #ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
13909 #define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
13910 
13911 /* interface IDeckLinkOutput_v7_6 */
13912 /* [helpstring][local][uuid][object] */
13913 
13914 
13915 EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
13916 
13917 #if defined(__cplusplus) && !defined(CINTERFACE)
13918 
13919     MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")
13920     IDeckLinkOutput_v7_6 : public IUnknown
13921     {
13922     public:
13923         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
13924             BMDDisplayMode displayMode,
13925             BMDPixelFormat pixelFormat,
13926             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;
13927 
13928         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
13929             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
13930 
13931         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
13932             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
13933 
13934         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
13935             BMDDisplayMode displayMode,
13936             BMDVideoOutputFlags flags) = 0;
13937 
13938         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
13939 
13940         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
13941             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
13942 
13943         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
13944             int width,
13945             int height,
13946             int rowBytes,
13947             BMDPixelFormat pixelFormat,
13948             BMDFrameFlags flags,
13949             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
13950 
13951         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
13952             BMDPixelFormat pixelFormat,
13953             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
13954 
13955         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
13956             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
13957 
13958         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
13959             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
13960             BMDTimeValue displayTime,
13961             BMDTimeValue displayDuration,
13962             BMDTimeScale timeScale) = 0;
13963 
13964         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
13965             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;
13966 
13967         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
13968             /* [out] */ unsigned int *bufferedFrameCount) = 0;
13969 
13970         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
13971             BMDAudioSampleRate sampleRate,
13972             BMDAudioSampleType sampleType,
13973             unsigned int channelCount,
13974             BMDAudioOutputStreamType streamType) = 0;
13975 
13976         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
13977 
13978         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
13979             /* [in] */ void *buffer,
13980             unsigned int sampleFrameCount,
13981             /* [out] */ unsigned int *sampleFramesWritten) = 0;
13982 
13983         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
13984 
13985         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
13986 
13987         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
13988             /* [in] */ void *buffer,
13989             unsigned int sampleFrameCount,
13990             BMDTimeValue streamTime,
13991             BMDTimeScale timeScale,
13992             /* [out] */ unsigned int *sampleFramesWritten) = 0;
13993 
13994         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
13995             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;
13996 
13997         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
13998 
13999         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
14000             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
14001 
14002         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
14003             BMDTimeValue playbackStartTime,
14004             BMDTimeScale timeScale,
14005             double playbackSpeed) = 0;
14006 
14007         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
14008             BMDTimeValue stopPlaybackAtTime,
14009             /* [out] */ BMDTimeValue *actualStopTime,
14010             BMDTimeScale timeScale) = 0;
14011 
14012         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
14013             /* [out] */ BOOL *active) = 0;
14014 
14015         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
14016             BMDTimeScale desiredTimeScale,
14017             /* [out] */ BMDTimeValue *streamTime,
14018             /* [out] */ double *playbackSpeed) = 0;
14019 
14020         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
14021             BMDTimeScale desiredTimeScale,
14022             /* [out] */ BMDTimeValue *hardwareTime,
14023             /* [out] */ BMDTimeValue *timeInFrame,
14024             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
14025 
14026     };
14027 
14028 
14029 #else 	/* C style interface */
14030 
14031     typedef struct IDeckLinkOutput_v7_6Vtbl
14032     {
14033         BEGIN_INTERFACE
14034 
14035         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14036             IDeckLinkOutput_v7_6 * This,
14037             /* [in] */ REFIID riid,
14038             /* [annotation][iid_is][out] */
14039             _COM_Outptr_  void **ppvObject);
14040 
14041         ULONG ( STDMETHODCALLTYPE *AddRef )(
14042             IDeckLinkOutput_v7_6 * This);
14043 
14044         ULONG ( STDMETHODCALLTYPE *Release )(
14045             IDeckLinkOutput_v7_6 * This);
14046 
14047         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
14048             IDeckLinkOutput_v7_6 * This,
14049             BMDDisplayMode displayMode,
14050             BMDPixelFormat pixelFormat,
14051             /* [out] */ BMDDisplayModeSupport_v10_11 *result);
14052 
14053         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
14054             IDeckLinkOutput_v7_6 * This,
14055             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
14056 
14057         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
14058             IDeckLinkOutput_v7_6 * This,
14059             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
14060 
14061         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
14062             IDeckLinkOutput_v7_6 * This,
14063             BMDDisplayMode displayMode,
14064             BMDVideoOutputFlags flags);
14065 
14066         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
14067             IDeckLinkOutput_v7_6 * This);
14068 
14069         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
14070             IDeckLinkOutput_v7_6 * This,
14071             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
14072 
14073         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
14074             IDeckLinkOutput_v7_6 * This,
14075             int width,
14076             int height,
14077             int rowBytes,
14078             BMDPixelFormat pixelFormat,
14079             BMDFrameFlags flags,
14080             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
14081 
14082         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
14083             IDeckLinkOutput_v7_6 * This,
14084             BMDPixelFormat pixelFormat,
14085             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
14086 
14087         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
14088             IDeckLinkOutput_v7_6 * This,
14089             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
14090 
14091         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
14092             IDeckLinkOutput_v7_6 * This,
14093             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
14094             BMDTimeValue displayTime,
14095             BMDTimeValue displayDuration,
14096             BMDTimeScale timeScale);
14097 
14098         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
14099             IDeckLinkOutput_v7_6 * This,
14100             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);
14101 
14102         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
14103             IDeckLinkOutput_v7_6 * This,
14104             /* [out] */ unsigned int *bufferedFrameCount);
14105 
14106         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
14107             IDeckLinkOutput_v7_6 * This,
14108             BMDAudioSampleRate sampleRate,
14109             BMDAudioSampleType sampleType,
14110             unsigned int channelCount,
14111             BMDAudioOutputStreamType streamType);
14112 
14113         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
14114             IDeckLinkOutput_v7_6 * This);
14115 
14116         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
14117             IDeckLinkOutput_v7_6 * This,
14118             /* [in] */ void *buffer,
14119             unsigned int sampleFrameCount,
14120             /* [out] */ unsigned int *sampleFramesWritten);
14121 
14122         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
14123             IDeckLinkOutput_v7_6 * This);
14124 
14125         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
14126             IDeckLinkOutput_v7_6 * This);
14127 
14128         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
14129             IDeckLinkOutput_v7_6 * This,
14130             /* [in] */ void *buffer,
14131             unsigned int sampleFrameCount,
14132             BMDTimeValue streamTime,
14133             BMDTimeScale timeScale,
14134             /* [out] */ unsigned int *sampleFramesWritten);
14135 
14136         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
14137             IDeckLinkOutput_v7_6 * This,
14138             /* [out] */ unsigned int *bufferedSampleFrameCount);
14139 
14140         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
14141             IDeckLinkOutput_v7_6 * This);
14142 
14143         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
14144             IDeckLinkOutput_v7_6 * This,
14145             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
14146 
14147         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
14148             IDeckLinkOutput_v7_6 * This,
14149             BMDTimeValue playbackStartTime,
14150             BMDTimeScale timeScale,
14151             double playbackSpeed);
14152 
14153         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
14154             IDeckLinkOutput_v7_6 * This,
14155             BMDTimeValue stopPlaybackAtTime,
14156             /* [out] */ BMDTimeValue *actualStopTime,
14157             BMDTimeScale timeScale);
14158 
14159         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
14160             IDeckLinkOutput_v7_6 * This,
14161             /* [out] */ BOOL *active);
14162 
14163         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
14164             IDeckLinkOutput_v7_6 * This,
14165             BMDTimeScale desiredTimeScale,
14166             /* [out] */ BMDTimeValue *streamTime,
14167             /* [out] */ double *playbackSpeed);
14168 
14169         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
14170             IDeckLinkOutput_v7_6 * This,
14171             BMDTimeScale desiredTimeScale,
14172             /* [out] */ BMDTimeValue *hardwareTime,
14173             /* [out] */ BMDTimeValue *timeInFrame,
14174             /* [out] */ BMDTimeValue *ticksPerFrame);
14175 
14176         END_INTERFACE
14177     } IDeckLinkOutput_v7_6Vtbl;
14178 
14179     interface IDeckLinkOutput_v7_6
14180     {
14181         CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;
14182     };
14183 
14184 
14185 
14186 #ifdef COBJMACROS
14187 
14188 
14189 #define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject)	\
14190     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14191 
14192 #define IDeckLinkOutput_v7_6_AddRef(This)	\
14193     ( (This)->lpVtbl -> AddRef(This) )
14194 
14195 #define IDeckLinkOutput_v7_6_Release(This)	\
14196     ( (This)->lpVtbl -> Release(This) )
14197 
14198 
14199 #define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)	\
14200     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
14201 
14202 #define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator)	\
14203     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
14204 
14205 #define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback)	\
14206     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
14207 
14208 #define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags)	\
14209     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
14210 
14211 #define IDeckLinkOutput_v7_6_DisableVideoOutput(This)	\
14212     ( (This)->lpVtbl -> DisableVideoOutput(This) )
14213 
14214 #define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator)	\
14215     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
14216 
14217 #define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)	\
14218     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
14219 
14220 #define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer)	\
14221     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
14222 
14223 #define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame)	\
14224     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
14225 
14226 #define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)	\
14227     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
14228 
14229 #define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback)	\
14230     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
14231 
14232 #define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount)	\
14233     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
14234 
14235 #define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)	\
14236     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
14237 
14238 #define IDeckLinkOutput_v7_6_DisableAudioOutput(This)	\
14239     ( (This)->lpVtbl -> DisableAudioOutput(This) )
14240 
14241 #define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)	\
14242     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
14243 
14244 #define IDeckLinkOutput_v7_6_BeginAudioPreroll(This)	\
14245     ( (This)->lpVtbl -> BeginAudioPreroll(This) )
14246 
14247 #define IDeckLinkOutput_v7_6_EndAudioPreroll(This)	\
14248     ( (This)->lpVtbl -> EndAudioPreroll(This) )
14249 
14250 #define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)	\
14251     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
14252 
14253 #define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)	\
14254     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
14255 
14256 #define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This)	\
14257     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
14258 
14259 #define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback)	\
14260     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
14261 
14262 #define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)	\
14263     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
14264 
14265 #define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)	\
14266     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
14267 
14268 #define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active)	\
14269     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
14270 
14271 #define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)	\
14272     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
14273 
14274 #define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
14275     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
14276 
14277 #endif /* COBJMACROS */
14278 
14279 
14280 #endif 	/* C style interface */
14281 
14282 
14283 
14284 
14285 #endif 	/* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */
14286 
14287 
14288 #ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
14289 #define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
14290 
14291 /* interface IDeckLinkInput_v7_6 */
14292 /* [helpstring][uuid][object] */
14293 
14294 
14295 EXTERN_C const IID IID_IDeckLinkInput_v7_6;
14296 
14297 #if defined(__cplusplus) && !defined(CINTERFACE)
14298 
14299     MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")
14300     IDeckLinkInput_v7_6 : public IUnknown
14301     {
14302     public:
14303         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
14304             BMDDisplayMode displayMode,
14305             BMDPixelFormat pixelFormat,
14306             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;
14307 
14308         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
14309             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
14310 
14311         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
14312             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
14313 
14314         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
14315             BMDDisplayMode displayMode,
14316             BMDPixelFormat pixelFormat,
14317             BMDVideoInputFlags flags) = 0;
14318 
14319         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
14320 
14321         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
14322             /* [out] */ unsigned int *availableFrameCount) = 0;
14323 
14324         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
14325             BMDAudioSampleRate sampleRate,
14326             BMDAudioSampleType sampleType,
14327             unsigned int channelCount) = 0;
14328 
14329         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
14330 
14331         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
14332             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
14333 
14334         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
14335 
14336         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
14337 
14338         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
14339 
14340         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
14341 
14342         virtual HRESULT STDMETHODCALLTYPE SetCallback(
14343             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;
14344 
14345         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
14346             BMDTimeScale desiredTimeScale,
14347             /* [out] */ BMDTimeValue *hardwareTime,
14348             /* [out] */ BMDTimeValue *timeInFrame,
14349             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
14350 
14351     };
14352 
14353 
14354 #else 	/* C style interface */
14355 
14356     typedef struct IDeckLinkInput_v7_6Vtbl
14357     {
14358         BEGIN_INTERFACE
14359 
14360         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14361             IDeckLinkInput_v7_6 * This,
14362             /* [in] */ REFIID riid,
14363             /* [annotation][iid_is][out] */
14364             _COM_Outptr_  void **ppvObject);
14365 
14366         ULONG ( STDMETHODCALLTYPE *AddRef )(
14367             IDeckLinkInput_v7_6 * This);
14368 
14369         ULONG ( STDMETHODCALLTYPE *Release )(
14370             IDeckLinkInput_v7_6 * This);
14371 
14372         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
14373             IDeckLinkInput_v7_6 * This,
14374             BMDDisplayMode displayMode,
14375             BMDPixelFormat pixelFormat,
14376             /* [out] */ BMDDisplayModeSupport_v10_11 *result);
14377 
14378         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
14379             IDeckLinkInput_v7_6 * This,
14380             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
14381 
14382         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
14383             IDeckLinkInput_v7_6 * This,
14384             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
14385 
14386         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
14387             IDeckLinkInput_v7_6 * This,
14388             BMDDisplayMode displayMode,
14389             BMDPixelFormat pixelFormat,
14390             BMDVideoInputFlags flags);
14391 
14392         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
14393             IDeckLinkInput_v7_6 * This);
14394 
14395         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
14396             IDeckLinkInput_v7_6 * This,
14397             /* [out] */ unsigned int *availableFrameCount);
14398 
14399         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
14400             IDeckLinkInput_v7_6 * This,
14401             BMDAudioSampleRate sampleRate,
14402             BMDAudioSampleType sampleType,
14403             unsigned int channelCount);
14404 
14405         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
14406             IDeckLinkInput_v7_6 * This);
14407 
14408         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
14409             IDeckLinkInput_v7_6 * This,
14410             /* [out] */ unsigned int *availableSampleFrameCount);
14411 
14412         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
14413             IDeckLinkInput_v7_6 * This);
14414 
14415         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
14416             IDeckLinkInput_v7_6 * This);
14417 
14418         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
14419             IDeckLinkInput_v7_6 * This);
14420 
14421         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
14422             IDeckLinkInput_v7_6 * This);
14423 
14424         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
14425             IDeckLinkInput_v7_6 * This,
14426             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);
14427 
14428         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
14429             IDeckLinkInput_v7_6 * This,
14430             BMDTimeScale desiredTimeScale,
14431             /* [out] */ BMDTimeValue *hardwareTime,
14432             /* [out] */ BMDTimeValue *timeInFrame,
14433             /* [out] */ BMDTimeValue *ticksPerFrame);
14434 
14435         END_INTERFACE
14436     } IDeckLinkInput_v7_6Vtbl;
14437 
14438     interface IDeckLinkInput_v7_6
14439     {
14440         CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;
14441     };
14442 
14443 
14444 
14445 #ifdef COBJMACROS
14446 
14447 
14448 #define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject)	\
14449     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14450 
14451 #define IDeckLinkInput_v7_6_AddRef(This)	\
14452     ( (This)->lpVtbl -> AddRef(This) )
14453 
14454 #define IDeckLinkInput_v7_6_Release(This)	\
14455     ( (This)->lpVtbl -> Release(This) )
14456 
14457 
14458 #define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)	\
14459     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
14460 
14461 #define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator)	\
14462     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
14463 
14464 #define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback)	\
14465     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
14466 
14467 #define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
14468     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
14469 
14470 #define IDeckLinkInput_v7_6_DisableVideoInput(This)	\
14471     ( (This)->lpVtbl -> DisableVideoInput(This) )
14472 
14473 #define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount)	\
14474     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
14475 
14476 #define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount)	\
14477     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
14478 
14479 #define IDeckLinkInput_v7_6_DisableAudioInput(This)	\
14480     ( (This)->lpVtbl -> DisableAudioInput(This) )
14481 
14482 #define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
14483     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
14484 
14485 #define IDeckLinkInput_v7_6_StartStreams(This)	\
14486     ( (This)->lpVtbl -> StartStreams(This) )
14487 
14488 #define IDeckLinkInput_v7_6_StopStreams(This)	\
14489     ( (This)->lpVtbl -> StopStreams(This) )
14490 
14491 #define IDeckLinkInput_v7_6_PauseStreams(This)	\
14492     ( (This)->lpVtbl -> PauseStreams(This) )
14493 
14494 #define IDeckLinkInput_v7_6_FlushStreams(This)	\
14495     ( (This)->lpVtbl -> FlushStreams(This) )
14496 
14497 #define IDeckLinkInput_v7_6_SetCallback(This,theCallback)	\
14498     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
14499 
14500 #define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)	\
14501     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
14502 
14503 #endif /* COBJMACROS */
14504 
14505 
14506 #endif 	/* C style interface */
14507 
14508 
14509 
14510 
14511 #endif 	/* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */
14512 
14513 
14514 #ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
14515 #define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
14516 
14517 /* interface IDeckLinkTimecode_v7_6 */
14518 /* [helpstring][uuid][object] */
14519 
14520 
14521 EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;
14522 
14523 #if defined(__cplusplus) && !defined(CINTERFACE)
14524 
14525     MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")
14526     IDeckLinkTimecode_v7_6 : public IUnknown
14527     {
14528     public:
14529         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
14530 
14531         virtual HRESULT STDMETHODCALLTYPE GetComponents(
14532             /* [out] */ unsigned char *hours,
14533             /* [out] */ unsigned char *minutes,
14534             /* [out] */ unsigned char *seconds,
14535             /* [out] */ unsigned char *frames) = 0;
14536 
14537         virtual HRESULT STDMETHODCALLTYPE GetString(
14538             /* [out] */ BSTR *timecode) = 0;
14539 
14540         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
14541 
14542     };
14543 
14544 
14545 #else 	/* C style interface */
14546 
14547     typedef struct IDeckLinkTimecode_v7_6Vtbl
14548     {
14549         BEGIN_INTERFACE
14550 
14551         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14552             IDeckLinkTimecode_v7_6 * This,
14553             /* [in] */ REFIID riid,
14554             /* [annotation][iid_is][out] */
14555             _COM_Outptr_  void **ppvObject);
14556 
14557         ULONG ( STDMETHODCALLTYPE *AddRef )(
14558             IDeckLinkTimecode_v7_6 * This);
14559 
14560         ULONG ( STDMETHODCALLTYPE *Release )(
14561             IDeckLinkTimecode_v7_6 * This);
14562 
14563         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(
14564             IDeckLinkTimecode_v7_6 * This);
14565 
14566         HRESULT ( STDMETHODCALLTYPE *GetComponents )(
14567             IDeckLinkTimecode_v7_6 * This,
14568             /* [out] */ unsigned char *hours,
14569             /* [out] */ unsigned char *minutes,
14570             /* [out] */ unsigned char *seconds,
14571             /* [out] */ unsigned char *frames);
14572 
14573         HRESULT ( STDMETHODCALLTYPE *GetString )(
14574             IDeckLinkTimecode_v7_6 * This,
14575             /* [out] */ BSTR *timecode);
14576 
14577         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(
14578             IDeckLinkTimecode_v7_6 * This);
14579 
14580         END_INTERFACE
14581     } IDeckLinkTimecode_v7_6Vtbl;
14582 
14583     interface IDeckLinkTimecode_v7_6
14584     {
14585         CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;
14586     };
14587 
14588 
14589 
14590 #ifdef COBJMACROS
14591 
14592 
14593 #define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject)	\
14594     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14595 
14596 #define IDeckLinkTimecode_v7_6_AddRef(This)	\
14597     ( (This)->lpVtbl -> AddRef(This) )
14598 
14599 #define IDeckLinkTimecode_v7_6_Release(This)	\
14600     ( (This)->lpVtbl -> Release(This) )
14601 
14602 
14603 #define IDeckLinkTimecode_v7_6_GetBCD(This)	\
14604     ( (This)->lpVtbl -> GetBCD(This) )
14605 
14606 #define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames)	\
14607     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )
14608 
14609 #define IDeckLinkTimecode_v7_6_GetString(This,timecode)	\
14610     ( (This)->lpVtbl -> GetString(This,timecode) )
14611 
14612 #define IDeckLinkTimecode_v7_6_GetFlags(This)	\
14613     ( (This)->lpVtbl -> GetFlags(This) )
14614 
14615 #endif /* COBJMACROS */
14616 
14617 
14618 #endif 	/* C style interface */
14619 
14620 
14621 
14622 
14623 #endif 	/* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */
14624 
14625 
14626 #ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
14627 #define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
14628 
14629 /* interface IDeckLinkVideoFrame_v7_6 */
14630 /* [helpstring][local][uuid][object] */
14631 
14632 
14633 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;
14634 
14635 #if defined(__cplusplus) && !defined(CINTERFACE)
14636 
14637     MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")
14638     IDeckLinkVideoFrame_v7_6 : public IUnknown
14639     {
14640     public:
14641         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
14642 
14643         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
14644 
14645         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
14646 
14647         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
14648 
14649         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
14650 
14651         virtual HRESULT STDMETHODCALLTYPE GetBytes(
14652             /* [out] */ void **buffer) = 0;
14653 
14654         virtual HRESULT STDMETHODCALLTYPE GetTimecode(
14655             BMDTimecodeFormat format,
14656             /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;
14657 
14658         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
14659             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
14660 
14661     };
14662 
14663 
14664 #else 	/* C style interface */
14665 
14666     typedef struct IDeckLinkVideoFrame_v7_6Vtbl
14667     {
14668         BEGIN_INTERFACE
14669 
14670         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14671             IDeckLinkVideoFrame_v7_6 * This,
14672             /* [in] */ REFIID riid,
14673             /* [annotation][iid_is][out] */
14674             _COM_Outptr_  void **ppvObject);
14675 
14676         ULONG ( STDMETHODCALLTYPE *AddRef )(
14677             IDeckLinkVideoFrame_v7_6 * This);
14678 
14679         ULONG ( STDMETHODCALLTYPE *Release )(
14680             IDeckLinkVideoFrame_v7_6 * This);
14681 
14682         long ( STDMETHODCALLTYPE *GetWidth )(
14683             IDeckLinkVideoFrame_v7_6 * This);
14684 
14685         long ( STDMETHODCALLTYPE *GetHeight )(
14686             IDeckLinkVideoFrame_v7_6 * This);
14687 
14688         long ( STDMETHODCALLTYPE *GetRowBytes )(
14689             IDeckLinkVideoFrame_v7_6 * This);
14690 
14691         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
14692             IDeckLinkVideoFrame_v7_6 * This);
14693 
14694         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
14695             IDeckLinkVideoFrame_v7_6 * This);
14696 
14697         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
14698             IDeckLinkVideoFrame_v7_6 * This,
14699             /* [out] */ void **buffer);
14700 
14701         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
14702             IDeckLinkVideoFrame_v7_6 * This,
14703             BMDTimecodeFormat format,
14704             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
14705 
14706         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
14707             IDeckLinkVideoFrame_v7_6 * This,
14708             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
14709 
14710         END_INTERFACE
14711     } IDeckLinkVideoFrame_v7_6Vtbl;
14712 
14713     interface IDeckLinkVideoFrame_v7_6
14714     {
14715         CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;
14716     };
14717 
14718 
14719 
14720 #ifdef COBJMACROS
14721 
14722 
14723 #define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)	\
14724     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14725 
14726 #define IDeckLinkVideoFrame_v7_6_AddRef(This)	\
14727     ( (This)->lpVtbl -> AddRef(This) )
14728 
14729 #define IDeckLinkVideoFrame_v7_6_Release(This)	\
14730     ( (This)->lpVtbl -> Release(This) )
14731 
14732 
14733 #define IDeckLinkVideoFrame_v7_6_GetWidth(This)	\
14734     ( (This)->lpVtbl -> GetWidth(This) )
14735 
14736 #define IDeckLinkVideoFrame_v7_6_GetHeight(This)	\
14737     ( (This)->lpVtbl -> GetHeight(This) )
14738 
14739 #define IDeckLinkVideoFrame_v7_6_GetRowBytes(This)	\
14740     ( (This)->lpVtbl -> GetRowBytes(This) )
14741 
14742 #define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This)	\
14743     ( (This)->lpVtbl -> GetPixelFormat(This) )
14744 
14745 #define IDeckLinkVideoFrame_v7_6_GetFlags(This)	\
14746     ( (This)->lpVtbl -> GetFlags(This) )
14747 
14748 #define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer)	\
14749     ( (This)->lpVtbl -> GetBytes(This,buffer) )
14750 
14751 #define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode)	\
14752     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
14753 
14754 #define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary)	\
14755     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
14756 
14757 #endif /* COBJMACROS */
14758 
14759 
14760 #endif 	/* C style interface */
14761 
14762 
14763 
14764 
14765 #endif 	/* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */
14766 
14767 
14768 #ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
14769 #define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
14770 
14771 /* interface IDeckLinkMutableVideoFrame_v7_6 */
14772 /* [helpstring][local][uuid][object] */
14773 
14774 
14775 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
14776 
14777 #if defined(__cplusplus) && !defined(CINTERFACE)
14778 
14779     MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")
14780     IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
14781     {
14782     public:
14783         virtual HRESULT STDMETHODCALLTYPE SetFlags(
14784             BMDFrameFlags newFlags) = 0;
14785 
14786         virtual HRESULT STDMETHODCALLTYPE SetTimecode(
14787             BMDTimecodeFormat format,
14788             /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;
14789 
14790         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(
14791             BMDTimecodeFormat format,
14792             unsigned char hours,
14793             unsigned char minutes,
14794             unsigned char seconds,
14795             unsigned char frames,
14796             BMDTimecodeFlags flags) = 0;
14797 
14798         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(
14799             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
14800 
14801     };
14802 
14803 
14804 #else 	/* C style interface */
14805 
14806     typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl
14807     {
14808         BEGIN_INTERFACE
14809 
14810         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14811             IDeckLinkMutableVideoFrame_v7_6 * This,
14812             /* [in] */ REFIID riid,
14813             /* [annotation][iid_is][out] */
14814             _COM_Outptr_  void **ppvObject);
14815 
14816         ULONG ( STDMETHODCALLTYPE *AddRef )(
14817             IDeckLinkMutableVideoFrame_v7_6 * This);
14818 
14819         ULONG ( STDMETHODCALLTYPE *Release )(
14820             IDeckLinkMutableVideoFrame_v7_6 * This);
14821 
14822         long ( STDMETHODCALLTYPE *GetWidth )(
14823             IDeckLinkMutableVideoFrame_v7_6 * This);
14824 
14825         long ( STDMETHODCALLTYPE *GetHeight )(
14826             IDeckLinkMutableVideoFrame_v7_6 * This);
14827 
14828         long ( STDMETHODCALLTYPE *GetRowBytes )(
14829             IDeckLinkMutableVideoFrame_v7_6 * This);
14830 
14831         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
14832             IDeckLinkMutableVideoFrame_v7_6 * This);
14833 
14834         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
14835             IDeckLinkMutableVideoFrame_v7_6 * This);
14836 
14837         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
14838             IDeckLinkMutableVideoFrame_v7_6 * This,
14839             /* [out] */ void **buffer);
14840 
14841         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
14842             IDeckLinkMutableVideoFrame_v7_6 * This,
14843             BMDTimecodeFormat format,
14844             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
14845 
14846         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
14847             IDeckLinkMutableVideoFrame_v7_6 * This,
14848             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
14849 
14850         HRESULT ( STDMETHODCALLTYPE *SetFlags )(
14851             IDeckLinkMutableVideoFrame_v7_6 * This,
14852             BMDFrameFlags newFlags);
14853 
14854         HRESULT ( STDMETHODCALLTYPE *SetTimecode )(
14855             IDeckLinkMutableVideoFrame_v7_6 * This,
14856             BMDTimecodeFormat format,
14857             /* [in] */ IDeckLinkTimecode_v7_6 *timecode);
14858 
14859         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(
14860             IDeckLinkMutableVideoFrame_v7_6 * This,
14861             BMDTimecodeFormat format,
14862             unsigned char hours,
14863             unsigned char minutes,
14864             unsigned char seconds,
14865             unsigned char frames,
14866             BMDTimecodeFlags flags);
14867 
14868         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(
14869             IDeckLinkMutableVideoFrame_v7_6 * This,
14870             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
14871 
14872         END_INTERFACE
14873     } IDeckLinkMutableVideoFrame_v7_6Vtbl;
14874 
14875     interface IDeckLinkMutableVideoFrame_v7_6
14876     {
14877         CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;
14878     };
14879 
14880 
14881 
14882 #ifdef COBJMACROS
14883 
14884 
14885 #define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)	\
14886     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14887 
14888 #define IDeckLinkMutableVideoFrame_v7_6_AddRef(This)	\
14889     ( (This)->lpVtbl -> AddRef(This) )
14890 
14891 #define IDeckLinkMutableVideoFrame_v7_6_Release(This)	\
14892     ( (This)->lpVtbl -> Release(This) )
14893 
14894 
14895 #define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This)	\
14896     ( (This)->lpVtbl -> GetWidth(This) )
14897 
14898 #define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This)	\
14899     ( (This)->lpVtbl -> GetHeight(This) )
14900 
14901 #define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This)	\
14902     ( (This)->lpVtbl -> GetRowBytes(This) )
14903 
14904 #define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This)	\
14905     ( (This)->lpVtbl -> GetPixelFormat(This) )
14906 
14907 #define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This)	\
14908     ( (This)->lpVtbl -> GetFlags(This) )
14909 
14910 #define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer)	\
14911     ( (This)->lpVtbl -> GetBytes(This,buffer) )
14912 
14913 #define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode)	\
14914     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
14915 
14916 #define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary)	\
14917     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
14918 
14919 
14920 #define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags)	\
14921     ( (This)->lpVtbl -> SetFlags(This,newFlags) )
14922 
14923 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode)	\
14924     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )
14925 
14926 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)	\
14927     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )
14928 
14929 #define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary)	\
14930     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )
14931 
14932 #endif /* COBJMACROS */
14933 
14934 
14935 #endif 	/* C style interface */
14936 
14937 
14938 
14939 
14940 #endif 	/* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */
14941 
14942 
14943 #ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
14944 #define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
14945 
14946 /* interface IDeckLinkVideoInputFrame_v7_6 */
14947 /* [helpstring][local][uuid][object] */
14948 
14949 
14950 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;
14951 
14952 #if defined(__cplusplus) && !defined(CINTERFACE)
14953 
14954     MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")
14955     IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
14956     {
14957     public:
14958         virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
14959             /* [out] */ BMDTimeValue *frameTime,
14960             /* [out] */ BMDTimeValue *frameDuration,
14961             BMDTimeScale timeScale) = 0;
14962 
14963         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
14964             BMDTimeScale timeScale,
14965             /* [out] */ BMDTimeValue *frameTime,
14966             /* [out] */ BMDTimeValue *frameDuration) = 0;
14967 
14968     };
14969 
14970 
14971 #else 	/* C style interface */
14972 
14973     typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl
14974     {
14975         BEGIN_INTERFACE
14976 
14977         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14978             IDeckLinkVideoInputFrame_v7_6 * This,
14979             /* [in] */ REFIID riid,
14980             /* [annotation][iid_is][out] */
14981             _COM_Outptr_  void **ppvObject);
14982 
14983         ULONG ( STDMETHODCALLTYPE *AddRef )(
14984             IDeckLinkVideoInputFrame_v7_6 * This);
14985 
14986         ULONG ( STDMETHODCALLTYPE *Release )(
14987             IDeckLinkVideoInputFrame_v7_6 * This);
14988 
14989         long ( STDMETHODCALLTYPE *GetWidth )(
14990             IDeckLinkVideoInputFrame_v7_6 * This);
14991 
14992         long ( STDMETHODCALLTYPE *GetHeight )(
14993             IDeckLinkVideoInputFrame_v7_6 * This);
14994 
14995         long ( STDMETHODCALLTYPE *GetRowBytes )(
14996             IDeckLinkVideoInputFrame_v7_6 * This);
14997 
14998         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
14999             IDeckLinkVideoInputFrame_v7_6 * This);
15000 
15001         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
15002             IDeckLinkVideoInputFrame_v7_6 * This);
15003 
15004         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
15005             IDeckLinkVideoInputFrame_v7_6 * This,
15006             /* [out] */ void **buffer);
15007 
15008         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
15009             IDeckLinkVideoInputFrame_v7_6 * This,
15010             BMDTimecodeFormat format,
15011             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
15012 
15013         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
15014             IDeckLinkVideoInputFrame_v7_6 * This,
15015             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
15016 
15017         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
15018             IDeckLinkVideoInputFrame_v7_6 * This,
15019             /* [out] */ BMDTimeValue *frameTime,
15020             /* [out] */ BMDTimeValue *frameDuration,
15021             BMDTimeScale timeScale);
15022 
15023         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
15024             IDeckLinkVideoInputFrame_v7_6 * This,
15025             BMDTimeScale timeScale,
15026             /* [out] */ BMDTimeValue *frameTime,
15027             /* [out] */ BMDTimeValue *frameDuration);
15028 
15029         END_INTERFACE
15030     } IDeckLinkVideoInputFrame_v7_6Vtbl;
15031 
15032     interface IDeckLinkVideoInputFrame_v7_6
15033     {
15034         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;
15035     };
15036 
15037 
15038 
15039 #ifdef COBJMACROS
15040 
15041 
15042 #define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject)	\
15043     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15044 
15045 #define IDeckLinkVideoInputFrame_v7_6_AddRef(This)	\
15046     ( (This)->lpVtbl -> AddRef(This) )
15047 
15048 #define IDeckLinkVideoInputFrame_v7_6_Release(This)	\
15049     ( (This)->lpVtbl -> Release(This) )
15050 
15051 
15052 #define IDeckLinkVideoInputFrame_v7_6_GetWidth(This)	\
15053     ( (This)->lpVtbl -> GetWidth(This) )
15054 
15055 #define IDeckLinkVideoInputFrame_v7_6_GetHeight(This)	\
15056     ( (This)->lpVtbl -> GetHeight(This) )
15057 
15058 #define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This)	\
15059     ( (This)->lpVtbl -> GetRowBytes(This) )
15060 
15061 #define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This)	\
15062     ( (This)->lpVtbl -> GetPixelFormat(This) )
15063 
15064 #define IDeckLinkVideoInputFrame_v7_6_GetFlags(This)	\
15065     ( (This)->lpVtbl -> GetFlags(This) )
15066 
15067 #define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer)	\
15068     ( (This)->lpVtbl -> GetBytes(This,buffer) )
15069 
15070 #define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode)	\
15071     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
15072 
15073 #define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary)	\
15074     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
15075 
15076 
15077 #define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale)	\
15078     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
15079 
15080 #define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)	\
15081     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
15082 
15083 #endif /* COBJMACROS */
15084 
15085 
15086 #endif 	/* C style interface */
15087 
15088 
15089 
15090 
15091 #endif 	/* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */
15092 
15093 
15094 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
15095 #define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
15096 
15097 /* interface IDeckLinkScreenPreviewCallback_v7_6 */
15098 /* [helpstring][local][uuid][object] */
15099 
15100 
15101 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;
15102 
15103 #if defined(__cplusplus) && !defined(CINTERFACE)
15104 
15105     MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")
15106     IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown
15107     {
15108     public:
15109         virtual HRESULT STDMETHODCALLTYPE DrawFrame(
15110             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
15111 
15112     };
15113 
15114 
15115 #else 	/* C style interface */
15116 
15117     typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl
15118     {
15119         BEGIN_INTERFACE
15120 
15121         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15122             IDeckLinkScreenPreviewCallback_v7_6 * This,
15123             /* [in] */ REFIID riid,
15124             /* [annotation][iid_is][out] */
15125             _COM_Outptr_  void **ppvObject);
15126 
15127         ULONG ( STDMETHODCALLTYPE *AddRef )(
15128             IDeckLinkScreenPreviewCallback_v7_6 * This);
15129 
15130         ULONG ( STDMETHODCALLTYPE *Release )(
15131             IDeckLinkScreenPreviewCallback_v7_6 * This);
15132 
15133         HRESULT ( STDMETHODCALLTYPE *DrawFrame )(
15134             IDeckLinkScreenPreviewCallback_v7_6 * This,
15135             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
15136 
15137         END_INTERFACE
15138     } IDeckLinkScreenPreviewCallback_v7_6Vtbl;
15139 
15140     interface IDeckLinkScreenPreviewCallback_v7_6
15141     {
15142         CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;
15143     };
15144 
15145 
15146 
15147 #ifdef COBJMACROS
15148 
15149 
15150 #define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject)	\
15151     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15152 
15153 #define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This)	\
15154     ( (This)->lpVtbl -> AddRef(This) )
15155 
15156 #define IDeckLinkScreenPreviewCallback_v7_6_Release(This)	\
15157     ( (This)->lpVtbl -> Release(This) )
15158 
15159 
15160 #define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame)	\
15161     ( (This)->lpVtbl -> DrawFrame(This,theFrame) )
15162 
15163 #endif /* COBJMACROS */
15164 
15165 
15166 #endif 	/* C style interface */
15167 
15168 
15169 
15170 
15171 #endif 	/* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */
15172 
15173 
15174 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
15175 #define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
15176 
15177 /* interface IDeckLinkGLScreenPreviewHelper_v7_6 */
15178 /* [helpstring][local][uuid][object] */
15179 
15180 
15181 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;
15182 
15183 #if defined(__cplusplus) && !defined(CINTERFACE)
15184 
15185     MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")
15186     IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown
15187     {
15188     public:
15189         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
15190 
15191         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
15192 
15193         virtual HRESULT STDMETHODCALLTYPE SetFrame(
15194             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
15195 
15196     };
15197 
15198 
15199 #else 	/* C style interface */
15200 
15201     typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl
15202     {
15203         BEGIN_INTERFACE
15204 
15205         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15206             IDeckLinkGLScreenPreviewHelper_v7_6 * This,
15207             /* [in] */ REFIID riid,
15208             /* [annotation][iid_is][out] */
15209             _COM_Outptr_  void **ppvObject);
15210 
15211         ULONG ( STDMETHODCALLTYPE *AddRef )(
15212             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
15213 
15214         ULONG ( STDMETHODCALLTYPE *Release )(
15215             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
15216 
15217         HRESULT ( STDMETHODCALLTYPE *InitializeGL )(
15218             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
15219 
15220         HRESULT ( STDMETHODCALLTYPE *PaintGL )(
15221             IDeckLinkGLScreenPreviewHelper_v7_6 * This);
15222 
15223         HRESULT ( STDMETHODCALLTYPE *SetFrame )(
15224             IDeckLinkGLScreenPreviewHelper_v7_6 * This,
15225             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
15226 
15227         END_INTERFACE
15228     } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;
15229 
15230     interface IDeckLinkGLScreenPreviewHelper_v7_6
15231     {
15232         CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;
15233     };
15234 
15235 
15236 
15237 #ifdef COBJMACROS
15238 
15239 
15240 #define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject)	\
15241     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15242 
15243 #define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This)	\
15244     ( (This)->lpVtbl -> AddRef(This) )
15245 
15246 #define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This)	\
15247     ( (This)->lpVtbl -> Release(This) )
15248 
15249 
15250 #define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This)	\
15251     ( (This)->lpVtbl -> InitializeGL(This) )
15252 
15253 #define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This)	\
15254     ( (This)->lpVtbl -> PaintGL(This) )
15255 
15256 #define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame)	\
15257     ( (This)->lpVtbl -> SetFrame(This,theFrame) )
15258 
15259 #endif /* COBJMACROS */
15260 
15261 
15262 #endif 	/* C style interface */
15263 
15264 
15265 
15266 
15267 #endif 	/* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */
15268 
15269 
15270 #ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
15271 #define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
15272 
15273 /* interface IDeckLinkVideoConversion_v7_6 */
15274 /* [helpstring][local][uuid][object] */
15275 
15276 
15277 EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;
15278 
15279 #if defined(__cplusplus) && !defined(CINTERFACE)
15280 
15281     MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")
15282     IDeckLinkVideoConversion_v7_6 : public IUnknown
15283     {
15284     public:
15285         virtual HRESULT STDMETHODCALLTYPE ConvertFrame(
15286             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
15287             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;
15288 
15289     };
15290 
15291 
15292 #else 	/* C style interface */
15293 
15294     typedef struct IDeckLinkVideoConversion_v7_6Vtbl
15295     {
15296         BEGIN_INTERFACE
15297 
15298         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15299             IDeckLinkVideoConversion_v7_6 * This,
15300             /* [in] */ REFIID riid,
15301             /* [annotation][iid_is][out] */
15302             _COM_Outptr_  void **ppvObject);
15303 
15304         ULONG ( STDMETHODCALLTYPE *AddRef )(
15305             IDeckLinkVideoConversion_v7_6 * This);
15306 
15307         ULONG ( STDMETHODCALLTYPE *Release )(
15308             IDeckLinkVideoConversion_v7_6 * This);
15309 
15310         HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(
15311             IDeckLinkVideoConversion_v7_6 * This,
15312             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
15313             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);
15314 
15315         END_INTERFACE
15316     } IDeckLinkVideoConversion_v7_6Vtbl;
15317 
15318     interface IDeckLinkVideoConversion_v7_6
15319     {
15320         CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;
15321     };
15322 
15323 
15324 
15325 #ifdef COBJMACROS
15326 
15327 
15328 #define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject)	\
15329     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15330 
15331 #define IDeckLinkVideoConversion_v7_6_AddRef(This)	\
15332     ( (This)->lpVtbl -> AddRef(This) )
15333 
15334 #define IDeckLinkVideoConversion_v7_6_Release(This)	\
15335     ( (This)->lpVtbl -> Release(This) )
15336 
15337 
15338 #define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame)	\
15339     ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )
15340 
15341 #endif /* COBJMACROS */
15342 
15343 
15344 #endif 	/* C style interface */
15345 
15346 
15347 
15348 
15349 #endif 	/* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */
15350 
15351 
15352 #ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
15353 #define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
15354 
15355 /* interface IDeckLinkConfiguration_v7_6 */
15356 /* [helpstring][uuid][object] */
15357 
15358 
15359 EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
15360 
15361 #if defined(__cplusplus) && !defined(CINTERFACE)
15362 
15363     MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")
15364     IDeckLinkConfiguration_v7_6 : public IUnknown
15365     {
15366     public:
15367         virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator(
15368             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;
15369 
15370         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
15371 
15372         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat(
15373             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;
15374 
15375         virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive(
15376             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
15377             /* [out] */ BOOL *active) = 0;
15378 
15379         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags(
15380             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
15381 
15382         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags(
15383             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
15384 
15385         virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused(
15386             /* [in] */ BOOL enable) = 0;
15387 
15388         virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused(
15389             /* [out] */ BOOL *enabled) = 0;
15390 
15391         virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput(
15392             /* [in] */ BOOL enable444VideoOutput,
15393             /* [in] */ BOOL enable3GbsOutput) = 0;
15394 
15395         virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput(
15396             /* [out] */ BOOL *is444VideoOutputEnabled,
15397             /* [out] */ BOOL *threeGbsOutputEnabled) = 0;
15398 
15399         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode(
15400             /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;
15401 
15402         virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode(
15403             /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;
15404 
15405         virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion(
15406             /* [in] */ BOOL enable) = 0;
15407 
15408         virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion(
15409             /* [out] */ BOOL *enabled) = 0;
15410 
15411         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat(
15412             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;
15413 
15414         virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat(
15415             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;
15416 
15417         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags(
15418             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
15419 
15420         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags(
15421             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
15422 
15423         virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode(
15424             /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;
15425 
15426         virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode(
15427             /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;
15428 
15429         virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture(
15430             /* [in] */ BOOL blackOutInCapture) = 0;
15431 
15432         virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture(
15433             /* [out] */ BOOL *blackOutInCapture) = 0;
15434 
15435         virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame(
15436             /* [in] */ unsigned int aFrameTimecode) = 0;
15437 
15438         virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame(
15439             /* [out] */ unsigned int *aFrameTimecode) = 0;
15440 
15441         virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping(
15442             /* [in] */ unsigned int activeLine1VANCsource,
15443             /* [in] */ unsigned int activeLine2VANCsource,
15444             /* [in] */ unsigned int activeLine3VANCsource) = 0;
15445 
15446         virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping(
15447             /* [out] */ unsigned int *activeLine1VANCsource,
15448             /* [out] */ unsigned int *activeLine2VANCsource,
15449             /* [out] */ unsigned int *activeLine3VANCsource) = 0;
15450 
15451         virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat(
15452             /* [in] */ BMDAudioConnection_v10_2 audioInputFormat) = 0;
15453 
15454         virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat(
15455             /* [out] */ BMDAudioConnection_v10_2 *audioInputFormat) = 0;
15456 
15457     };
15458 
15459 
15460 #else 	/* C style interface */
15461 
15462     typedef struct IDeckLinkConfiguration_v7_6Vtbl
15463     {
15464         BEGIN_INTERFACE
15465 
15466         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15467             IDeckLinkConfiguration_v7_6 * This,
15468             /* [in] */ REFIID riid,
15469             /* [annotation][iid_is][out] */
15470             _COM_Outptr_  void **ppvObject);
15471 
15472         ULONG ( STDMETHODCALLTYPE *AddRef )(
15473             IDeckLinkConfiguration_v7_6 * This);
15474 
15475         ULONG ( STDMETHODCALLTYPE *Release )(
15476             IDeckLinkConfiguration_v7_6 * This);
15477 
15478         HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )(
15479             IDeckLinkConfiguration_v7_6 * This,
15480             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);
15481 
15482         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
15483             IDeckLinkConfiguration_v7_6 * This);
15484 
15485         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )(
15486             IDeckLinkConfiguration_v7_6 * This,
15487             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);
15488 
15489         HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )(
15490             IDeckLinkConfiguration_v7_6 * This,
15491             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
15492             /* [out] */ BOOL *active);
15493 
15494         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )(
15495             IDeckLinkConfiguration_v7_6 * This,
15496             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
15497 
15498         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )(
15499             IDeckLinkConfiguration_v7_6 * This,
15500             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
15501 
15502         HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )(
15503             IDeckLinkConfiguration_v7_6 * This,
15504             /* [in] */ BOOL enable);
15505 
15506         HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )(
15507             IDeckLinkConfiguration_v7_6 * This,
15508             /* [out] */ BOOL *enabled);
15509 
15510         HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )(
15511             IDeckLinkConfiguration_v7_6 * This,
15512             /* [in] */ BOOL enable444VideoOutput,
15513             /* [in] */ BOOL enable3GbsOutput);
15514 
15515         HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )(
15516             IDeckLinkConfiguration_v7_6 * This,
15517             /* [out] */ BOOL *is444VideoOutputEnabled,
15518             /* [out] */ BOOL *threeGbsOutputEnabled);
15519 
15520         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )(
15521             IDeckLinkConfiguration_v7_6 * This,
15522             /* [in] */ BMDVideoOutputConversionMode conversionMode);
15523 
15524         HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )(
15525             IDeckLinkConfiguration_v7_6 * This,
15526             /* [out] */ BMDVideoOutputConversionMode *conversionMode);
15527 
15528         HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )(
15529             IDeckLinkConfiguration_v7_6 * This,
15530             /* [in] */ BOOL enable);
15531 
15532         HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )(
15533             IDeckLinkConfiguration_v7_6 * This,
15534             /* [out] */ BOOL *enabled);
15535 
15536         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )(
15537             IDeckLinkConfiguration_v7_6 * This,
15538             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);
15539 
15540         HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )(
15541             IDeckLinkConfiguration_v7_6 * This,
15542             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);
15543 
15544         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )(
15545             IDeckLinkConfiguration_v7_6 * This,
15546             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
15547 
15548         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )(
15549             IDeckLinkConfiguration_v7_6 * This,
15550             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
15551 
15552         HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )(
15553             IDeckLinkConfiguration_v7_6 * This,
15554             /* [in] */ BMDVideoInputConversionMode conversionMode);
15555 
15556         HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )(
15557             IDeckLinkConfiguration_v7_6 * This,
15558             /* [out] */ BMDVideoInputConversionMode *conversionMode);
15559 
15560         HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )(
15561             IDeckLinkConfiguration_v7_6 * This,
15562             /* [in] */ BOOL blackOutInCapture);
15563 
15564         HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )(
15565             IDeckLinkConfiguration_v7_6 * This,
15566             /* [out] */ BOOL *blackOutInCapture);
15567 
15568         HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )(
15569             IDeckLinkConfiguration_v7_6 * This,
15570             /* [in] */ unsigned int aFrameTimecode);
15571 
15572         HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )(
15573             IDeckLinkConfiguration_v7_6 * This,
15574             /* [out] */ unsigned int *aFrameTimecode);
15575 
15576         HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )(
15577             IDeckLinkConfiguration_v7_6 * This,
15578             /* [in] */ unsigned int activeLine1VANCsource,
15579             /* [in] */ unsigned int activeLine2VANCsource,
15580             /* [in] */ unsigned int activeLine3VANCsource);
15581 
15582         HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )(
15583             IDeckLinkConfiguration_v7_6 * This,
15584             /* [out] */ unsigned int *activeLine1VANCsource,
15585             /* [out] */ unsigned int *activeLine2VANCsource,
15586             /* [out] */ unsigned int *activeLine3VANCsource);
15587 
15588         HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )(
15589             IDeckLinkConfiguration_v7_6 * This,
15590             /* [in] */ BMDAudioConnection_v10_2 audioInputFormat);
15591 
15592         HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )(
15593             IDeckLinkConfiguration_v7_6 * This,
15594             /* [out] */ BMDAudioConnection_v10_2 *audioInputFormat);
15595 
15596         END_INTERFACE
15597     } IDeckLinkConfiguration_v7_6Vtbl;
15598 
15599     interface IDeckLinkConfiguration_v7_6
15600     {
15601         CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;
15602     };
15603 
15604 
15605 
15606 #ifdef COBJMACROS
15607 
15608 
15609 #define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject)	\
15610     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15611 
15612 #define IDeckLinkConfiguration_v7_6_AddRef(This)	\
15613     ( (This)->lpVtbl -> AddRef(This) )
15614 
15615 #define IDeckLinkConfiguration_v7_6_Release(This)	\
15616     ( (This)->lpVtbl -> Release(This) )
15617 
15618 
15619 #define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject)	\
15620     ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) )
15621 
15622 #define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This)	\
15623     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
15624 
15625 #define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection)	\
15626     ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) )
15627 
15628 #define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active)	\
15629     ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) )
15630 
15631 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags)	\
15632     ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) )
15633 
15634 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags)	\
15635     ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) )
15636 
15637 #define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable)	\
15638     ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) )
15639 
15640 #define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled)	\
15641     ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) )
15642 
15643 #define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput)	\
15644     ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) )
15645 
15646 #define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled)	\
15647     ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) )
15648 
15649 #define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode)	\
15650     ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) )
15651 
15652 #define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode)	\
15653     ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) )
15654 
15655 #define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable)	\
15656     ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) )
15657 
15658 #define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled)	\
15659     ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) )
15660 
15661 #define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat)	\
15662     ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) )
15663 
15664 #define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat)	\
15665     ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) )
15666 
15667 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags)	\
15668     ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) )
15669 
15670 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags)	\
15671     ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) )
15672 
15673 #define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode)	\
15674     ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) )
15675 
15676 #define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode)	\
15677     ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) )
15678 
15679 #define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture)	\
15680     ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) )
15681 
15682 #define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture)	\
15683     ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) )
15684 
15685 #define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)	\
15686     ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )
15687 
15688 #define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)	\
15689     ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )
15690 
15691 #define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)	\
15692     ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )
15693 
15694 #define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)	\
15695     ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )
15696 
15697 #define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat)	\
15698     ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) )
15699 
15700 #define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat)	\
15701     ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) )
15702 
15703 #endif /* COBJMACROS */
15704 
15705 
15706 #endif 	/* C style interface */
15707 
15708 
15709 
15710 
15711 #endif 	/* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */
15712 
15713 
15714 #ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
15715 #define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
15716 
15717 /* interface IDeckLinkVideoOutputCallback_v7_6 */
15718 /* [helpstring][uuid][object] */
15719 
15720 
15721 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;
15722 
15723 #if defined(__cplusplus) && !defined(CINTERFACE)
15724 
15725     MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")
15726     IDeckLinkVideoOutputCallback_v7_6 : public IUnknown
15727     {
15728     public:
15729         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
15730             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
15731             /* [in] */ BMDOutputFrameCompletionResult result) = 0;
15732 
15733         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
15734 
15735     };
15736 
15737 
15738 #else 	/* C style interface */
15739 
15740     typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl
15741     {
15742         BEGIN_INTERFACE
15743 
15744         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15745             IDeckLinkVideoOutputCallback_v7_6 * This,
15746             /* [in] */ REFIID riid,
15747             /* [annotation][iid_is][out] */
15748             _COM_Outptr_  void **ppvObject);
15749 
15750         ULONG ( STDMETHODCALLTYPE *AddRef )(
15751             IDeckLinkVideoOutputCallback_v7_6 * This);
15752 
15753         ULONG ( STDMETHODCALLTYPE *Release )(
15754             IDeckLinkVideoOutputCallback_v7_6 * This);
15755 
15756         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
15757             IDeckLinkVideoOutputCallback_v7_6 * This,
15758             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
15759             /* [in] */ BMDOutputFrameCompletionResult result);
15760 
15761         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(
15762             IDeckLinkVideoOutputCallback_v7_6 * This);
15763 
15764         END_INTERFACE
15765     } IDeckLinkVideoOutputCallback_v7_6Vtbl;
15766 
15767     interface IDeckLinkVideoOutputCallback_v7_6
15768     {
15769         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;
15770     };
15771 
15772 
15773 
15774 #ifdef COBJMACROS
15775 
15776 
15777 #define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject)	\
15778     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15779 
15780 #define IDeckLinkVideoOutputCallback_v7_6_AddRef(This)	\
15781     ( (This)->lpVtbl -> AddRef(This) )
15782 
15783 #define IDeckLinkVideoOutputCallback_v7_6_Release(This)	\
15784     ( (This)->lpVtbl -> Release(This) )
15785 
15786 
15787 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result)	\
15788     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
15789 
15790 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This)	\
15791     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )
15792 
15793 #endif /* COBJMACROS */
15794 
15795 
15796 #endif 	/* C style interface */
15797 
15798 
15799 
15800 
15801 #endif 	/* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */
15802 
15803 
15804 #ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
15805 #define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
15806 
15807 /* interface IDeckLinkInputCallback_v7_6 */
15808 /* [helpstring][uuid][object] */
15809 
15810 
15811 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;
15812 
15813 #if defined(__cplusplus) && !defined(CINTERFACE)
15814 
15815     MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")
15816     IDeckLinkInputCallback_v7_6 : public IUnknown
15817     {
15818     public:
15819         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
15820             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
15821             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
15822             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
15823 
15824         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
15825             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
15826             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
15827 
15828     };
15829 
15830 
15831 #else 	/* C style interface */
15832 
15833     typedef struct IDeckLinkInputCallback_v7_6Vtbl
15834     {
15835         BEGIN_INTERFACE
15836 
15837         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15838             IDeckLinkInputCallback_v7_6 * This,
15839             /* [in] */ REFIID riid,
15840             /* [annotation][iid_is][out] */
15841             _COM_Outptr_  void **ppvObject);
15842 
15843         ULONG ( STDMETHODCALLTYPE *AddRef )(
15844             IDeckLinkInputCallback_v7_6 * This);
15845 
15846         ULONG ( STDMETHODCALLTYPE *Release )(
15847             IDeckLinkInputCallback_v7_6 * This);
15848 
15849         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
15850             IDeckLinkInputCallback_v7_6 * This,
15851             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
15852             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
15853             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
15854 
15855         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
15856             IDeckLinkInputCallback_v7_6 * This,
15857             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
15858             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
15859 
15860         END_INTERFACE
15861     } IDeckLinkInputCallback_v7_6Vtbl;
15862 
15863     interface IDeckLinkInputCallback_v7_6
15864     {
15865         CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;
15866     };
15867 
15868 
15869 
15870 #ifdef COBJMACROS
15871 
15872 
15873 #define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject)	\
15874     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15875 
15876 #define IDeckLinkInputCallback_v7_6_AddRef(This)	\
15877     ( (This)->lpVtbl -> AddRef(This) )
15878 
15879 #define IDeckLinkInputCallback_v7_6_Release(This)	\
15880     ( (This)->lpVtbl -> Release(This) )
15881 
15882 
15883 #define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)	\
15884     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
15885 
15886 #define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket)	\
15887     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
15888 
15889 #endif /* COBJMACROS */
15890 
15891 
15892 #endif 	/* C style interface */
15893 
15894 
15895 
15896 
15897 #endif 	/* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */
15898 
15899 
15900 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6;
15901 
15902 #ifdef __cplusplus
15903 
15904 class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")
15905 CDeckLinkGLScreenPreviewHelper_v7_6;
15906 #endif
15907 
15908 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6;
15909 
15910 #ifdef __cplusplus
15911 
15912 class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B")
15913 CDeckLinkVideoConversion_v7_6;
15914 #endif
15915 
15916 #ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
15917 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
15918 
15919 /* interface IDeckLinkInputCallback_v7_3 */
15920 /* [helpstring][uuid][object] */
15921 
15922 
15923 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;
15924 
15925 #if defined(__cplusplus) && !defined(CINTERFACE)
15926 
15927     MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")
15928     IDeckLinkInputCallback_v7_3 : public IUnknown
15929     {
15930     public:
15931         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
15932             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
15933             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
15934             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
15935 
15936         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
15937             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
15938             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
15939 
15940     };
15941 
15942 
15943 #else 	/* C style interface */
15944 
15945     typedef struct IDeckLinkInputCallback_v7_3Vtbl
15946     {
15947         BEGIN_INTERFACE
15948 
15949         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15950             IDeckLinkInputCallback_v7_3 * This,
15951             /* [in] */ REFIID riid,
15952             /* [annotation][iid_is][out] */
15953             _COM_Outptr_  void **ppvObject);
15954 
15955         ULONG ( STDMETHODCALLTYPE *AddRef )(
15956             IDeckLinkInputCallback_v7_3 * This);
15957 
15958         ULONG ( STDMETHODCALLTYPE *Release )(
15959             IDeckLinkInputCallback_v7_3 * This);
15960 
15961         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
15962             IDeckLinkInputCallback_v7_3 * This,
15963             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
15964             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
15965             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
15966 
15967         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
15968             IDeckLinkInputCallback_v7_3 * This,
15969             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
15970             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
15971 
15972         END_INTERFACE
15973     } IDeckLinkInputCallback_v7_3Vtbl;
15974 
15975     interface IDeckLinkInputCallback_v7_3
15976     {
15977         CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;
15978     };
15979 
15980 
15981 
15982 #ifdef COBJMACROS
15983 
15984 
15985 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject)	\
15986     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15987 
15988 #define IDeckLinkInputCallback_v7_3_AddRef(This)	\
15989     ( (This)->lpVtbl -> AddRef(This) )
15990 
15991 #define IDeckLinkInputCallback_v7_3_Release(This)	\
15992     ( (This)->lpVtbl -> Release(This) )
15993 
15994 
15995 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)	\
15996     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
15997 
15998 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket)	\
15999     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
16000 
16001 #endif /* COBJMACROS */
16002 
16003 
16004 #endif 	/* C style interface */
16005 
16006 
16007 
16008 
16009 #endif 	/* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */
16010 
16011 
16012 #ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
16013 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
16014 
16015 /* interface IDeckLinkOutput_v7_3 */
16016 /* [helpstring][local][uuid][object] */
16017 
16018 
16019 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
16020 
16021 #if defined(__cplusplus) && !defined(CINTERFACE)
16022 
16023     MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")
16024     IDeckLinkOutput_v7_3 : public IUnknown
16025     {
16026     public:
16027         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
16028             BMDDisplayMode displayMode,
16029             BMDPixelFormat pixelFormat,
16030             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;
16031 
16032         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
16033             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
16034 
16035         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
16036             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
16037 
16038         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
16039             BMDDisplayMode displayMode,
16040             BMDVideoOutputFlags flags) = 0;
16041 
16042         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
16043 
16044         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
16045             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
16046 
16047         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
16048             int width,
16049             int height,
16050             int rowBytes,
16051             BMDPixelFormat pixelFormat,
16052             BMDFrameFlags flags,
16053             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
16054 
16055         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
16056             BMDPixelFormat pixelFormat,
16057             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
16058 
16059         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
16060             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
16061 
16062         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
16063             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
16064             BMDTimeValue displayTime,
16065             BMDTimeValue displayDuration,
16066             BMDTimeScale timeScale) = 0;
16067 
16068         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
16069             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
16070 
16071         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
16072             /* [out] */ unsigned int *bufferedFrameCount) = 0;
16073 
16074         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
16075             BMDAudioSampleRate sampleRate,
16076             BMDAudioSampleType sampleType,
16077             unsigned int channelCount,
16078             BMDAudioOutputStreamType streamType) = 0;
16079 
16080         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
16081 
16082         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
16083             /* [in] */ void *buffer,
16084             unsigned int sampleFrameCount,
16085             /* [out] */ unsigned int *sampleFramesWritten) = 0;
16086 
16087         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
16088 
16089         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
16090 
16091         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
16092             /* [in] */ void *buffer,
16093             unsigned int sampleFrameCount,
16094             BMDTimeValue streamTime,
16095             BMDTimeScale timeScale,
16096             /* [out] */ unsigned int *sampleFramesWritten) = 0;
16097 
16098         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
16099             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;
16100 
16101         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
16102 
16103         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
16104             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
16105 
16106         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
16107             BMDTimeValue playbackStartTime,
16108             BMDTimeScale timeScale,
16109             double playbackSpeed) = 0;
16110 
16111         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
16112             BMDTimeValue stopPlaybackAtTime,
16113             /* [out] */ BMDTimeValue *actualStopTime,
16114             BMDTimeScale timeScale) = 0;
16115 
16116         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
16117             /* [out] */ BOOL *active) = 0;
16118 
16119         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
16120             BMDTimeScale desiredTimeScale,
16121             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
16122 
16123     };
16124 
16125 
16126 #else 	/* C style interface */
16127 
16128     typedef struct IDeckLinkOutput_v7_3Vtbl
16129     {
16130         BEGIN_INTERFACE
16131 
16132         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16133             IDeckLinkOutput_v7_3 * This,
16134             /* [in] */ REFIID riid,
16135             /* [annotation][iid_is][out] */
16136             _COM_Outptr_  void **ppvObject);
16137 
16138         ULONG ( STDMETHODCALLTYPE *AddRef )(
16139             IDeckLinkOutput_v7_3 * This);
16140 
16141         ULONG ( STDMETHODCALLTYPE *Release )(
16142             IDeckLinkOutput_v7_3 * This);
16143 
16144         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
16145             IDeckLinkOutput_v7_3 * This,
16146             BMDDisplayMode displayMode,
16147             BMDPixelFormat pixelFormat,
16148             /* [out] */ BMDDisplayModeSupport_v10_11 *result);
16149 
16150         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
16151             IDeckLinkOutput_v7_3 * This,
16152             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
16153 
16154         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
16155             IDeckLinkOutput_v7_3 * This,
16156             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
16157 
16158         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
16159             IDeckLinkOutput_v7_3 * This,
16160             BMDDisplayMode displayMode,
16161             BMDVideoOutputFlags flags);
16162 
16163         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
16164             IDeckLinkOutput_v7_3 * This);
16165 
16166         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
16167             IDeckLinkOutput_v7_3 * This,
16168             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
16169 
16170         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
16171             IDeckLinkOutput_v7_3 * This,
16172             int width,
16173             int height,
16174             int rowBytes,
16175             BMDPixelFormat pixelFormat,
16176             BMDFrameFlags flags,
16177             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
16178 
16179         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
16180             IDeckLinkOutput_v7_3 * This,
16181             BMDPixelFormat pixelFormat,
16182             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
16183 
16184         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
16185             IDeckLinkOutput_v7_3 * This,
16186             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
16187 
16188         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
16189             IDeckLinkOutput_v7_3 * This,
16190             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
16191             BMDTimeValue displayTime,
16192             BMDTimeValue displayDuration,
16193             BMDTimeScale timeScale);
16194 
16195         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
16196             IDeckLinkOutput_v7_3 * This,
16197             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
16198 
16199         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
16200             IDeckLinkOutput_v7_3 * This,
16201             /* [out] */ unsigned int *bufferedFrameCount);
16202 
16203         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
16204             IDeckLinkOutput_v7_3 * This,
16205             BMDAudioSampleRate sampleRate,
16206             BMDAudioSampleType sampleType,
16207             unsigned int channelCount,
16208             BMDAudioOutputStreamType streamType);
16209 
16210         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
16211             IDeckLinkOutput_v7_3 * This);
16212 
16213         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
16214             IDeckLinkOutput_v7_3 * This,
16215             /* [in] */ void *buffer,
16216             unsigned int sampleFrameCount,
16217             /* [out] */ unsigned int *sampleFramesWritten);
16218 
16219         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
16220             IDeckLinkOutput_v7_3 * This);
16221 
16222         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
16223             IDeckLinkOutput_v7_3 * This);
16224 
16225         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
16226             IDeckLinkOutput_v7_3 * This,
16227             /* [in] */ void *buffer,
16228             unsigned int sampleFrameCount,
16229             BMDTimeValue streamTime,
16230             BMDTimeScale timeScale,
16231             /* [out] */ unsigned int *sampleFramesWritten);
16232 
16233         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
16234             IDeckLinkOutput_v7_3 * This,
16235             /* [out] */ unsigned int *bufferedSampleFrameCount);
16236 
16237         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
16238             IDeckLinkOutput_v7_3 * This);
16239 
16240         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
16241             IDeckLinkOutput_v7_3 * This,
16242             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
16243 
16244         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
16245             IDeckLinkOutput_v7_3 * This,
16246             BMDTimeValue playbackStartTime,
16247             BMDTimeScale timeScale,
16248             double playbackSpeed);
16249 
16250         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
16251             IDeckLinkOutput_v7_3 * This,
16252             BMDTimeValue stopPlaybackAtTime,
16253             /* [out] */ BMDTimeValue *actualStopTime,
16254             BMDTimeScale timeScale);
16255 
16256         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
16257             IDeckLinkOutput_v7_3 * This,
16258             /* [out] */ BOOL *active);
16259 
16260         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
16261             IDeckLinkOutput_v7_3 * This,
16262             BMDTimeScale desiredTimeScale,
16263             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);
16264 
16265         END_INTERFACE
16266     } IDeckLinkOutput_v7_3Vtbl;
16267 
16268     interface IDeckLinkOutput_v7_3
16269     {
16270         CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;
16271     };
16272 
16273 
16274 
16275 #ifdef COBJMACROS
16276 
16277 
16278 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject)	\
16279     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16280 
16281 #define IDeckLinkOutput_v7_3_AddRef(This)	\
16282     ( (This)->lpVtbl -> AddRef(This) )
16283 
16284 #define IDeckLinkOutput_v7_3_Release(This)	\
16285     ( (This)->lpVtbl -> Release(This) )
16286 
16287 
16288 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)	\
16289     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
16290 
16291 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator)	\
16292     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
16293 
16294 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback)	\
16295     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
16296 
16297 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags)	\
16298     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
16299 
16300 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This)	\
16301     ( (This)->lpVtbl -> DisableVideoOutput(This) )
16302 
16303 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator)	\
16304     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
16305 
16306 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)	\
16307     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
16308 
16309 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer)	\
16310     ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
16311 
16312 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame)	\
16313     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
16314 
16315 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)	\
16316     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
16317 
16318 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback)	\
16319     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
16320 
16321 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount)	\
16322     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
16323 
16324 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)	\
16325     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
16326 
16327 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This)	\
16328     ( (This)->lpVtbl -> DisableAudioOutput(This) )
16329 
16330 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)	\
16331     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
16332 
16333 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This)	\
16334     ( (This)->lpVtbl -> BeginAudioPreroll(This) )
16335 
16336 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This)	\
16337     ( (This)->lpVtbl -> EndAudioPreroll(This) )
16338 
16339 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)	\
16340     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
16341 
16342 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)	\
16343     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
16344 
16345 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This)	\
16346     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
16347 
16348 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback)	\
16349     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
16350 
16351 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)	\
16352     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
16353 
16354 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)	\
16355     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
16356 
16357 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active)	\
16358     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
16359 
16360 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)	\
16361     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )
16362 
16363 #endif /* COBJMACROS */
16364 
16365 
16366 #endif 	/* C style interface */
16367 
16368 
16369 
16370 
16371 #endif 	/* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */
16372 
16373 
16374 #ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
16375 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
16376 
16377 /* interface IDeckLinkInput_v7_3 */
16378 /* [helpstring][uuid][object] */
16379 
16380 
16381 EXTERN_C const IID IID_IDeckLinkInput_v7_3;
16382 
16383 #if defined(__cplusplus) && !defined(CINTERFACE)
16384 
16385     MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")
16386     IDeckLinkInput_v7_3 : public IUnknown
16387     {
16388     public:
16389         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
16390             BMDDisplayMode displayMode,
16391             BMDPixelFormat pixelFormat,
16392             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;
16393 
16394         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
16395             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
16396 
16397         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
16398             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
16399 
16400         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
16401             BMDDisplayMode displayMode,
16402             BMDPixelFormat pixelFormat,
16403             BMDVideoInputFlags flags) = 0;
16404 
16405         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
16406 
16407         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
16408             /* [out] */ unsigned int *availableFrameCount) = 0;
16409 
16410         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
16411             BMDAudioSampleRate sampleRate,
16412             BMDAudioSampleType sampleType,
16413             unsigned int channelCount) = 0;
16414 
16415         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
16416 
16417         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
16418             /* [out] */ unsigned int *availableSampleFrameCount) = 0;
16419 
16420         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
16421 
16422         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
16423 
16424         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
16425 
16426         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
16427 
16428         virtual HRESULT STDMETHODCALLTYPE SetCallback(
16429             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;
16430 
16431     };
16432 
16433 
16434 #else 	/* C style interface */
16435 
16436     typedef struct IDeckLinkInput_v7_3Vtbl
16437     {
16438         BEGIN_INTERFACE
16439 
16440         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16441             IDeckLinkInput_v7_3 * This,
16442             /* [in] */ REFIID riid,
16443             /* [annotation][iid_is][out] */
16444             _COM_Outptr_  void **ppvObject);
16445 
16446         ULONG ( STDMETHODCALLTYPE *AddRef )(
16447             IDeckLinkInput_v7_3 * This);
16448 
16449         ULONG ( STDMETHODCALLTYPE *Release )(
16450             IDeckLinkInput_v7_3 * This);
16451 
16452         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
16453             IDeckLinkInput_v7_3 * This,
16454             BMDDisplayMode displayMode,
16455             BMDPixelFormat pixelFormat,
16456             /* [out] */ BMDDisplayModeSupport_v10_11 *result);
16457 
16458         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
16459             IDeckLinkInput_v7_3 * This,
16460             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
16461 
16462         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
16463             IDeckLinkInput_v7_3 * This,
16464             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
16465 
16466         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
16467             IDeckLinkInput_v7_3 * This,
16468             BMDDisplayMode displayMode,
16469             BMDPixelFormat pixelFormat,
16470             BMDVideoInputFlags flags);
16471 
16472         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
16473             IDeckLinkInput_v7_3 * This);
16474 
16475         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
16476             IDeckLinkInput_v7_3 * This,
16477             /* [out] */ unsigned int *availableFrameCount);
16478 
16479         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
16480             IDeckLinkInput_v7_3 * This,
16481             BMDAudioSampleRate sampleRate,
16482             BMDAudioSampleType sampleType,
16483             unsigned int channelCount);
16484 
16485         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
16486             IDeckLinkInput_v7_3 * This);
16487 
16488         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
16489             IDeckLinkInput_v7_3 * This,
16490             /* [out] */ unsigned int *availableSampleFrameCount);
16491 
16492         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
16493             IDeckLinkInput_v7_3 * This);
16494 
16495         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
16496             IDeckLinkInput_v7_3 * This);
16497 
16498         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
16499             IDeckLinkInput_v7_3 * This);
16500 
16501         HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
16502             IDeckLinkInput_v7_3 * This);
16503 
16504         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
16505             IDeckLinkInput_v7_3 * This,
16506             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);
16507 
16508         END_INTERFACE
16509     } IDeckLinkInput_v7_3Vtbl;
16510 
16511     interface IDeckLinkInput_v7_3
16512     {
16513         CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;
16514     };
16515 
16516 
16517 
16518 #ifdef COBJMACROS
16519 
16520 
16521 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject)	\
16522     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16523 
16524 #define IDeckLinkInput_v7_3_AddRef(This)	\
16525     ( (This)->lpVtbl -> AddRef(This) )
16526 
16527 #define IDeckLinkInput_v7_3_Release(This)	\
16528     ( (This)->lpVtbl -> Release(This) )
16529 
16530 
16531 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)	\
16532     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
16533 
16534 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator)	\
16535     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
16536 
16537 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback)	\
16538     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
16539 
16540 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
16541     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
16542 
16543 #define IDeckLinkInput_v7_3_DisableVideoInput(This)	\
16544     ( (This)->lpVtbl -> DisableVideoInput(This) )
16545 
16546 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount)	\
16547     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
16548 
16549 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount)	\
16550     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
16551 
16552 #define IDeckLinkInput_v7_3_DisableAudioInput(This)	\
16553     ( (This)->lpVtbl -> DisableAudioInput(This) )
16554 
16555 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)	\
16556     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
16557 
16558 #define IDeckLinkInput_v7_3_StartStreams(This)	\
16559     ( (This)->lpVtbl -> StartStreams(This) )
16560 
16561 #define IDeckLinkInput_v7_3_StopStreams(This)	\
16562     ( (This)->lpVtbl -> StopStreams(This) )
16563 
16564 #define IDeckLinkInput_v7_3_PauseStreams(This)	\
16565     ( (This)->lpVtbl -> PauseStreams(This) )
16566 
16567 #define IDeckLinkInput_v7_3_FlushStreams(This)	\
16568     ( (This)->lpVtbl -> FlushStreams(This) )
16569 
16570 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback)	\
16571     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
16572 
16573 #endif /* COBJMACROS */
16574 
16575 
16576 #endif 	/* C style interface */
16577 
16578 
16579 
16580 
16581 #endif 	/* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */
16582 
16583 
16584 #ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
16585 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
16586 
16587 /* interface IDeckLinkVideoInputFrame_v7_3 */
16588 /* [helpstring][local][uuid][object] */
16589 
16590 
16591 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;
16592 
16593 #if defined(__cplusplus) && !defined(CINTERFACE)
16594 
16595     MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")
16596     IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6
16597     {
16598     public:
16599         virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
16600             /* [out] */ BMDTimeValue *frameTime,
16601             /* [out] */ BMDTimeValue *frameDuration,
16602             BMDTimeScale timeScale) = 0;
16603 
16604     };
16605 
16606 
16607 #else 	/* C style interface */
16608 
16609     typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl
16610     {
16611         BEGIN_INTERFACE
16612 
16613         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16614             IDeckLinkVideoInputFrame_v7_3 * This,
16615             /* [in] */ REFIID riid,
16616             /* [annotation][iid_is][out] */
16617             _COM_Outptr_  void **ppvObject);
16618 
16619         ULONG ( STDMETHODCALLTYPE *AddRef )(
16620             IDeckLinkVideoInputFrame_v7_3 * This);
16621 
16622         ULONG ( STDMETHODCALLTYPE *Release )(
16623             IDeckLinkVideoInputFrame_v7_3 * This);
16624 
16625         long ( STDMETHODCALLTYPE *GetWidth )(
16626             IDeckLinkVideoInputFrame_v7_3 * This);
16627 
16628         long ( STDMETHODCALLTYPE *GetHeight )(
16629             IDeckLinkVideoInputFrame_v7_3 * This);
16630 
16631         long ( STDMETHODCALLTYPE *GetRowBytes )(
16632             IDeckLinkVideoInputFrame_v7_3 * This);
16633 
16634         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
16635             IDeckLinkVideoInputFrame_v7_3 * This);
16636 
16637         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
16638             IDeckLinkVideoInputFrame_v7_3 * This);
16639 
16640         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
16641             IDeckLinkVideoInputFrame_v7_3 * This,
16642             /* [out] */ void **buffer);
16643 
16644         HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
16645             IDeckLinkVideoInputFrame_v7_3 * This,
16646             BMDTimecodeFormat format,
16647             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
16648 
16649         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
16650             IDeckLinkVideoInputFrame_v7_3 * This,
16651             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
16652 
16653         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
16654             IDeckLinkVideoInputFrame_v7_3 * This,
16655             /* [out] */ BMDTimeValue *frameTime,
16656             /* [out] */ BMDTimeValue *frameDuration,
16657             BMDTimeScale timeScale);
16658 
16659         END_INTERFACE
16660     } IDeckLinkVideoInputFrame_v7_3Vtbl;
16661 
16662     interface IDeckLinkVideoInputFrame_v7_3
16663     {
16664         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;
16665     };
16666 
16667 
16668 
16669 #ifdef COBJMACROS
16670 
16671 
16672 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject)	\
16673     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16674 
16675 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This)	\
16676     ( (This)->lpVtbl -> AddRef(This) )
16677 
16678 #define IDeckLinkVideoInputFrame_v7_3_Release(This)	\
16679     ( (This)->lpVtbl -> Release(This) )
16680 
16681 
16682 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This)	\
16683     ( (This)->lpVtbl -> GetWidth(This) )
16684 
16685 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This)	\
16686     ( (This)->lpVtbl -> GetHeight(This) )
16687 
16688 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This)	\
16689     ( (This)->lpVtbl -> GetRowBytes(This) )
16690 
16691 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This)	\
16692     ( (This)->lpVtbl -> GetPixelFormat(This) )
16693 
16694 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This)	\
16695     ( (This)->lpVtbl -> GetFlags(This) )
16696 
16697 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer)	\
16698     ( (This)->lpVtbl -> GetBytes(This,buffer) )
16699 
16700 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode)	\
16701     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
16702 
16703 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary)	\
16704     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
16705 
16706 
16707 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale)	\
16708     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
16709 
16710 #endif /* COBJMACROS */
16711 
16712 
16713 #endif 	/* C style interface */
16714 
16715 
16716 
16717 
16718 #endif 	/* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */
16719 
16720 
16721 #ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
16722 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
16723 
16724 /* interface IDeckLinkDisplayModeIterator_v7_1 */
16725 /* [helpstring][uuid][object] */
16726 
16727 
16728 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;
16729 
16730 #if defined(__cplusplus) && !defined(CINTERFACE)
16731 
16732     MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")
16733     IDeckLinkDisplayModeIterator_v7_1 : public IUnknown
16734     {
16735     public:
16736         virtual HRESULT STDMETHODCALLTYPE Next(
16737             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;
16738 
16739     };
16740 
16741 
16742 #else 	/* C style interface */
16743 
16744     typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl
16745     {
16746         BEGIN_INTERFACE
16747 
16748         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16749             IDeckLinkDisplayModeIterator_v7_1 * This,
16750             /* [in] */ REFIID riid,
16751             /* [annotation][iid_is][out] */
16752             _COM_Outptr_  void **ppvObject);
16753 
16754         ULONG ( STDMETHODCALLTYPE *AddRef )(
16755             IDeckLinkDisplayModeIterator_v7_1 * This);
16756 
16757         ULONG ( STDMETHODCALLTYPE *Release )(
16758             IDeckLinkDisplayModeIterator_v7_1 * This);
16759 
16760         HRESULT ( STDMETHODCALLTYPE *Next )(
16761             IDeckLinkDisplayModeIterator_v7_1 * This,
16762             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);
16763 
16764         END_INTERFACE
16765     } IDeckLinkDisplayModeIterator_v7_1Vtbl;
16766 
16767     interface IDeckLinkDisplayModeIterator_v7_1
16768     {
16769         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;
16770     };
16771 
16772 
16773 
16774 #ifdef COBJMACROS
16775 
16776 
16777 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject)	\
16778     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16779 
16780 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This)	\
16781     ( (This)->lpVtbl -> AddRef(This) )
16782 
16783 #define IDeckLinkDisplayModeIterator_v7_1_Release(This)	\
16784     ( (This)->lpVtbl -> Release(This) )
16785 
16786 
16787 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode)	\
16788     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
16789 
16790 #endif /* COBJMACROS */
16791 
16792 
16793 #endif 	/* C style interface */
16794 
16795 
16796 
16797 
16798 #endif 	/* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */
16799 
16800 
16801 #ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
16802 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
16803 
16804 /* interface IDeckLinkDisplayMode_v7_1 */
16805 /* [helpstring][uuid][object] */
16806 
16807 
16808 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;
16809 
16810 #if defined(__cplusplus) && !defined(CINTERFACE)
16811 
16812     MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")
16813     IDeckLinkDisplayMode_v7_1 : public IUnknown
16814     {
16815     public:
16816         virtual HRESULT STDMETHODCALLTYPE GetName(
16817             /* [out] */ BSTR *name) = 0;
16818 
16819         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
16820 
16821         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
16822 
16823         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
16824 
16825         virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
16826             /* [out] */ BMDTimeValue *frameDuration,
16827             /* [out] */ BMDTimeScale *timeScale) = 0;
16828 
16829     };
16830 
16831 
16832 #else 	/* C style interface */
16833 
16834     typedef struct IDeckLinkDisplayMode_v7_1Vtbl
16835     {
16836         BEGIN_INTERFACE
16837 
16838         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16839             IDeckLinkDisplayMode_v7_1 * This,
16840             /* [in] */ REFIID riid,
16841             /* [annotation][iid_is][out] */
16842             _COM_Outptr_  void **ppvObject);
16843 
16844         ULONG ( STDMETHODCALLTYPE *AddRef )(
16845             IDeckLinkDisplayMode_v7_1 * This);
16846 
16847         ULONG ( STDMETHODCALLTYPE *Release )(
16848             IDeckLinkDisplayMode_v7_1 * This);
16849 
16850         HRESULT ( STDMETHODCALLTYPE *GetName )(
16851             IDeckLinkDisplayMode_v7_1 * This,
16852             /* [out] */ BSTR *name);
16853 
16854         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
16855             IDeckLinkDisplayMode_v7_1 * This);
16856 
16857         long ( STDMETHODCALLTYPE *GetWidth )(
16858             IDeckLinkDisplayMode_v7_1 * This);
16859 
16860         long ( STDMETHODCALLTYPE *GetHeight )(
16861             IDeckLinkDisplayMode_v7_1 * This);
16862 
16863         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
16864             IDeckLinkDisplayMode_v7_1 * This,
16865             /* [out] */ BMDTimeValue *frameDuration,
16866             /* [out] */ BMDTimeScale *timeScale);
16867 
16868         END_INTERFACE
16869     } IDeckLinkDisplayMode_v7_1Vtbl;
16870 
16871     interface IDeckLinkDisplayMode_v7_1
16872     {
16873         CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;
16874     };
16875 
16876 
16877 
16878 #ifdef COBJMACROS
16879 
16880 
16881 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject)	\
16882     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
16883 
16884 #define IDeckLinkDisplayMode_v7_1_AddRef(This)	\
16885     ( (This)->lpVtbl -> AddRef(This) )
16886 
16887 #define IDeckLinkDisplayMode_v7_1_Release(This)	\
16888     ( (This)->lpVtbl -> Release(This) )
16889 
16890 
16891 #define IDeckLinkDisplayMode_v7_1_GetName(This,name)	\
16892     ( (This)->lpVtbl -> GetName(This,name) )
16893 
16894 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This)	\
16895     ( (This)->lpVtbl -> GetDisplayMode(This) )
16896 
16897 #define IDeckLinkDisplayMode_v7_1_GetWidth(This)	\
16898     ( (This)->lpVtbl -> GetWidth(This) )
16899 
16900 #define IDeckLinkDisplayMode_v7_1_GetHeight(This)	\
16901     ( (This)->lpVtbl -> GetHeight(This) )
16902 
16903 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale)	\
16904     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
16905 
16906 #endif /* COBJMACROS */
16907 
16908 
16909 #endif 	/* C style interface */
16910 
16911 
16912 
16913 
16914 #endif 	/* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */
16915 
16916 
16917 #ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
16918 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
16919 
16920 /* interface IDeckLinkVideoFrame_v7_1 */
16921 /* [helpstring][local][uuid][object] */
16922 
16923 
16924 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;
16925 
16926 #if defined(__cplusplus) && !defined(CINTERFACE)
16927 
16928     MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")
16929     IDeckLinkVideoFrame_v7_1 : public IUnknown
16930     {
16931     public:
16932         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
16933 
16934         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
16935 
16936         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
16937 
16938         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
16939 
16940         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
16941 
16942         virtual HRESULT STDMETHODCALLTYPE GetBytes(
16943             void **buffer) = 0;
16944 
16945     };
16946 
16947 
16948 #else 	/* C style interface */
16949 
16950     typedef struct IDeckLinkVideoFrame_v7_1Vtbl
16951     {
16952         BEGIN_INTERFACE
16953 
16954         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
16955             IDeckLinkVideoFrame_v7_1 * This,
16956             /* [in] */ REFIID riid,
16957             /* [annotation][iid_is][out] */
16958             _COM_Outptr_  void **ppvObject);
16959 
16960         ULONG ( STDMETHODCALLTYPE *AddRef )(
16961             IDeckLinkVideoFrame_v7_1 * This);
16962 
16963         ULONG ( STDMETHODCALLTYPE *Release )(
16964             IDeckLinkVideoFrame_v7_1 * This);
16965 
16966         long ( STDMETHODCALLTYPE *GetWidth )(
16967             IDeckLinkVideoFrame_v7_1 * This);
16968 
16969         long ( STDMETHODCALLTYPE *GetHeight )(
16970             IDeckLinkVideoFrame_v7_1 * This);
16971 
16972         long ( STDMETHODCALLTYPE *GetRowBytes )(
16973             IDeckLinkVideoFrame_v7_1 * This);
16974 
16975         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
16976             IDeckLinkVideoFrame_v7_1 * This);
16977 
16978         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
16979             IDeckLinkVideoFrame_v7_1 * This);
16980 
16981         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
16982             IDeckLinkVideoFrame_v7_1 * This,
16983             void **buffer);
16984 
16985         END_INTERFACE
16986     } IDeckLinkVideoFrame_v7_1Vtbl;
16987 
16988     interface IDeckLinkVideoFrame_v7_1
16989     {
16990         CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;
16991     };
16992 
16993 
16994 
16995 #ifdef COBJMACROS
16996 
16997 
16998 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject)	\
16999     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17000 
17001 #define IDeckLinkVideoFrame_v7_1_AddRef(This)	\
17002     ( (This)->lpVtbl -> AddRef(This) )
17003 
17004 #define IDeckLinkVideoFrame_v7_1_Release(This)	\
17005     ( (This)->lpVtbl -> Release(This) )
17006 
17007 
17008 #define IDeckLinkVideoFrame_v7_1_GetWidth(This)	\
17009     ( (This)->lpVtbl -> GetWidth(This) )
17010 
17011 #define IDeckLinkVideoFrame_v7_1_GetHeight(This)	\
17012     ( (This)->lpVtbl -> GetHeight(This) )
17013 
17014 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This)	\
17015     ( (This)->lpVtbl -> GetRowBytes(This) )
17016 
17017 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This)	\
17018     ( (This)->lpVtbl -> GetPixelFormat(This) )
17019 
17020 #define IDeckLinkVideoFrame_v7_1_GetFlags(This)	\
17021     ( (This)->lpVtbl -> GetFlags(This) )
17022 
17023 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer)	\
17024     ( (This)->lpVtbl -> GetBytes(This,buffer) )
17025 
17026 #endif /* COBJMACROS */
17027 
17028 
17029 #endif 	/* C style interface */
17030 
17031 
17032 
17033 
17034 #endif 	/* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */
17035 
17036 
17037 #ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
17038 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
17039 
17040 /* interface IDeckLinkVideoInputFrame_v7_1 */
17041 /* [helpstring][local][uuid][object] */
17042 
17043 
17044 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;
17045 
17046 #if defined(__cplusplus) && !defined(CINTERFACE)
17047 
17048     MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")
17049     IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1
17050     {
17051     public:
17052         virtual HRESULT STDMETHODCALLTYPE GetFrameTime(
17053             BMDTimeValue *frameTime,
17054             BMDTimeValue *frameDuration,
17055             BMDTimeScale timeScale) = 0;
17056 
17057     };
17058 
17059 
17060 #else 	/* C style interface */
17061 
17062     typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl
17063     {
17064         BEGIN_INTERFACE
17065 
17066         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17067             IDeckLinkVideoInputFrame_v7_1 * This,
17068             /* [in] */ REFIID riid,
17069             /* [annotation][iid_is][out] */
17070             _COM_Outptr_  void **ppvObject);
17071 
17072         ULONG ( STDMETHODCALLTYPE *AddRef )(
17073             IDeckLinkVideoInputFrame_v7_1 * This);
17074 
17075         ULONG ( STDMETHODCALLTYPE *Release )(
17076             IDeckLinkVideoInputFrame_v7_1 * This);
17077 
17078         long ( STDMETHODCALLTYPE *GetWidth )(
17079             IDeckLinkVideoInputFrame_v7_1 * This);
17080 
17081         long ( STDMETHODCALLTYPE *GetHeight )(
17082             IDeckLinkVideoInputFrame_v7_1 * This);
17083 
17084         long ( STDMETHODCALLTYPE *GetRowBytes )(
17085             IDeckLinkVideoInputFrame_v7_1 * This);
17086 
17087         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
17088             IDeckLinkVideoInputFrame_v7_1 * This);
17089 
17090         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
17091             IDeckLinkVideoInputFrame_v7_1 * This);
17092 
17093         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
17094             IDeckLinkVideoInputFrame_v7_1 * This,
17095             void **buffer);
17096 
17097         HRESULT ( STDMETHODCALLTYPE *GetFrameTime )(
17098             IDeckLinkVideoInputFrame_v7_1 * This,
17099             BMDTimeValue *frameTime,
17100             BMDTimeValue *frameDuration,
17101             BMDTimeScale timeScale);
17102 
17103         END_INTERFACE
17104     } IDeckLinkVideoInputFrame_v7_1Vtbl;
17105 
17106     interface IDeckLinkVideoInputFrame_v7_1
17107     {
17108         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;
17109     };
17110 
17111 
17112 
17113 #ifdef COBJMACROS
17114 
17115 
17116 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject)	\
17117     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17118 
17119 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This)	\
17120     ( (This)->lpVtbl -> AddRef(This) )
17121 
17122 #define IDeckLinkVideoInputFrame_v7_1_Release(This)	\
17123     ( (This)->lpVtbl -> Release(This) )
17124 
17125 
17126 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This)	\
17127     ( (This)->lpVtbl -> GetWidth(This) )
17128 
17129 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This)	\
17130     ( (This)->lpVtbl -> GetHeight(This) )
17131 
17132 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This)	\
17133     ( (This)->lpVtbl -> GetRowBytes(This) )
17134 
17135 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This)	\
17136     ( (This)->lpVtbl -> GetPixelFormat(This) )
17137 
17138 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This)	\
17139     ( (This)->lpVtbl -> GetFlags(This) )
17140 
17141 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer)	\
17142     ( (This)->lpVtbl -> GetBytes(This,buffer) )
17143 
17144 
17145 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale)	\
17146     ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) )
17147 
17148 #endif /* COBJMACROS */
17149 
17150 
17151 #endif 	/* C style interface */
17152 
17153 
17154 
17155 
17156 #endif 	/* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */
17157 
17158 
17159 #ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
17160 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
17161 
17162 /* interface IDeckLinkAudioInputPacket_v7_1 */
17163 /* [helpstring][local][uuid][object] */
17164 
17165 
17166 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;
17167 
17168 #if defined(__cplusplus) && !defined(CINTERFACE)
17169 
17170     MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")
17171     IDeckLinkAudioInputPacket_v7_1 : public IUnknown
17172     {
17173     public:
17174         virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;
17175 
17176         virtual HRESULT STDMETHODCALLTYPE GetBytes(
17177             void **buffer) = 0;
17178 
17179         virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime(
17180             BMDTimeValue *packetTime,
17181             BMDTimeScale timeScale) = 0;
17182 
17183     };
17184 
17185 
17186 #else 	/* C style interface */
17187 
17188     typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl
17189     {
17190         BEGIN_INTERFACE
17191 
17192         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17193             IDeckLinkAudioInputPacket_v7_1 * This,
17194             /* [in] */ REFIID riid,
17195             /* [annotation][iid_is][out] */
17196             _COM_Outptr_  void **ppvObject);
17197 
17198         ULONG ( STDMETHODCALLTYPE *AddRef )(
17199             IDeckLinkAudioInputPacket_v7_1 * This);
17200 
17201         ULONG ( STDMETHODCALLTYPE *Release )(
17202             IDeckLinkAudioInputPacket_v7_1 * This);
17203 
17204         long ( STDMETHODCALLTYPE *GetSampleCount )(
17205             IDeckLinkAudioInputPacket_v7_1 * This);
17206 
17207         HRESULT ( STDMETHODCALLTYPE *GetBytes )(
17208             IDeckLinkAudioInputPacket_v7_1 * This,
17209             void **buffer);
17210 
17211         HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )(
17212             IDeckLinkAudioInputPacket_v7_1 * This,
17213             BMDTimeValue *packetTime,
17214             BMDTimeScale timeScale);
17215 
17216         END_INTERFACE
17217     } IDeckLinkAudioInputPacket_v7_1Vtbl;
17218 
17219     interface IDeckLinkAudioInputPacket_v7_1
17220     {
17221         CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;
17222     };
17223 
17224 
17225 
17226 #ifdef COBJMACROS
17227 
17228 
17229 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject)	\
17230     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17231 
17232 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This)	\
17233     ( (This)->lpVtbl -> AddRef(This) )
17234 
17235 #define IDeckLinkAudioInputPacket_v7_1_Release(This)	\
17236     ( (This)->lpVtbl -> Release(This) )
17237 
17238 
17239 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This)	\
17240     ( (This)->lpVtbl -> GetSampleCount(This) )
17241 
17242 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer)	\
17243     ( (This)->lpVtbl -> GetBytes(This,buffer) )
17244 
17245 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale)	\
17246     ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) )
17247 
17248 #endif /* COBJMACROS */
17249 
17250 
17251 #endif 	/* C style interface */
17252 
17253 
17254 
17255 
17256 #endif 	/* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */
17257 
17258 
17259 #ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
17260 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
17261 
17262 /* interface IDeckLinkVideoOutputCallback_v7_1 */
17263 /* [helpstring][uuid][object] */
17264 
17265 
17266 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;
17267 
17268 #if defined(__cplusplus) && !defined(CINTERFACE)
17269 
17270     MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")
17271     IDeckLinkVideoOutputCallback_v7_1 : public IUnknown
17272     {
17273     public:
17274         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
17275             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
17276             /* [in] */ BMDOutputFrameCompletionResult result) = 0;
17277 
17278     };
17279 
17280 
17281 #else 	/* C style interface */
17282 
17283     typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl
17284     {
17285         BEGIN_INTERFACE
17286 
17287         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17288             IDeckLinkVideoOutputCallback_v7_1 * This,
17289             /* [in] */ REFIID riid,
17290             /* [annotation][iid_is][out] */
17291             _COM_Outptr_  void **ppvObject);
17292 
17293         ULONG ( STDMETHODCALLTYPE *AddRef )(
17294             IDeckLinkVideoOutputCallback_v7_1 * This);
17295 
17296         ULONG ( STDMETHODCALLTYPE *Release )(
17297             IDeckLinkVideoOutputCallback_v7_1 * This);
17298 
17299         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
17300             IDeckLinkVideoOutputCallback_v7_1 * This,
17301             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
17302             /* [in] */ BMDOutputFrameCompletionResult result);
17303 
17304         END_INTERFACE
17305     } IDeckLinkVideoOutputCallback_v7_1Vtbl;
17306 
17307     interface IDeckLinkVideoOutputCallback_v7_1
17308     {
17309         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;
17310     };
17311 
17312 
17313 
17314 #ifdef COBJMACROS
17315 
17316 
17317 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject)	\
17318     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17319 
17320 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This)	\
17321     ( (This)->lpVtbl -> AddRef(This) )
17322 
17323 #define IDeckLinkVideoOutputCallback_v7_1_Release(This)	\
17324     ( (This)->lpVtbl -> Release(This) )
17325 
17326 
17327 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result)	\
17328     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
17329 
17330 #endif /* COBJMACROS */
17331 
17332 
17333 #endif 	/* C style interface */
17334 
17335 
17336 
17337 
17338 #endif 	/* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */
17339 
17340 
17341 #ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
17342 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
17343 
17344 /* interface IDeckLinkInputCallback_v7_1 */
17345 /* [helpstring][uuid][object] */
17346 
17347 
17348 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;
17349 
17350 #if defined(__cplusplus) && !defined(CINTERFACE)
17351 
17352     MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")
17353     IDeckLinkInputCallback_v7_1 : public IUnknown
17354     {
17355     public:
17356         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
17357             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
17358             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;
17359 
17360     };
17361 
17362 
17363 #else 	/* C style interface */
17364 
17365     typedef struct IDeckLinkInputCallback_v7_1Vtbl
17366     {
17367         BEGIN_INTERFACE
17368 
17369         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17370             IDeckLinkInputCallback_v7_1 * This,
17371             /* [in] */ REFIID riid,
17372             /* [annotation][iid_is][out] */
17373             _COM_Outptr_  void **ppvObject);
17374 
17375         ULONG ( STDMETHODCALLTYPE *AddRef )(
17376             IDeckLinkInputCallback_v7_1 * This);
17377 
17378         ULONG ( STDMETHODCALLTYPE *Release )(
17379             IDeckLinkInputCallback_v7_1 * This);
17380 
17381         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
17382             IDeckLinkInputCallback_v7_1 * This,
17383             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
17384             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);
17385 
17386         END_INTERFACE
17387     } IDeckLinkInputCallback_v7_1Vtbl;
17388 
17389     interface IDeckLinkInputCallback_v7_1
17390     {
17391         CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;
17392     };
17393 
17394 
17395 
17396 #ifdef COBJMACROS
17397 
17398 
17399 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject)	\
17400     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17401 
17402 #define IDeckLinkInputCallback_v7_1_AddRef(This)	\
17403     ( (This)->lpVtbl -> AddRef(This) )
17404 
17405 #define IDeckLinkInputCallback_v7_1_Release(This)	\
17406     ( (This)->lpVtbl -> Release(This) )
17407 
17408 
17409 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket)	\
17410     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
17411 
17412 #endif /* COBJMACROS */
17413 
17414 
17415 #endif 	/* C style interface */
17416 
17417 
17418 
17419 
17420 #endif 	/* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */
17421 
17422 
17423 #ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
17424 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
17425 
17426 /* interface IDeckLinkOutput_v7_1 */
17427 /* [helpstring][local][uuid][object] */
17428 
17429 
17430 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
17431 
17432 #if defined(__cplusplus) && !defined(CINTERFACE)
17433 
17434     MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")
17435     IDeckLinkOutput_v7_1 : public IUnknown
17436     {
17437     public:
17438         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
17439             BMDDisplayMode displayMode,
17440             BMDPixelFormat pixelFormat,
17441             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;
17442 
17443         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
17444             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
17445 
17446         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
17447             BMDDisplayMode displayMode) = 0;
17448 
17449         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
17450 
17451         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
17452             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
17453 
17454         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
17455             int width,
17456             int height,
17457             int rowBytes,
17458             BMDPixelFormat pixelFormat,
17459             BMDFrameFlags flags,
17460             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
17461 
17462         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer(
17463             void *buffer,
17464             int width,
17465             int height,
17466             int rowBytes,
17467             BMDPixelFormat pixelFormat,
17468             BMDFrameFlags flags,
17469             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
17470 
17471         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
17472             IDeckLinkVideoFrame_v7_1 *theFrame) = 0;
17473 
17474         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
17475             IDeckLinkVideoFrame_v7_1 *theFrame,
17476             BMDTimeValue displayTime,
17477             BMDTimeValue displayDuration,
17478             BMDTimeScale timeScale) = 0;
17479 
17480         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
17481             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;
17482 
17483         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
17484             BMDAudioSampleRate sampleRate,
17485             BMDAudioSampleType sampleType,
17486             unsigned int channelCount) = 0;
17487 
17488         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
17489 
17490         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
17491             void *buffer,
17492             unsigned int sampleFrameCount,
17493             /* [out] */ unsigned int *sampleFramesWritten) = 0;
17494 
17495         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
17496 
17497         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
17498 
17499         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
17500             void *buffer,
17501             unsigned int sampleFrameCount,
17502             BMDTimeValue streamTime,
17503             BMDTimeScale timeScale,
17504             /* [out] */ unsigned int *sampleFramesWritten) = 0;
17505 
17506         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
17507             /* [out] */ unsigned int *bufferedSampleCount) = 0;
17508 
17509         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
17510 
17511         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
17512             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
17513 
17514         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
17515             BMDTimeValue playbackStartTime,
17516             BMDTimeScale timeScale,
17517             double playbackSpeed) = 0;
17518 
17519         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
17520             BMDTimeValue stopPlaybackAtTime,
17521             BMDTimeValue *actualStopTime,
17522             BMDTimeScale timeScale) = 0;
17523 
17524         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
17525             BMDTimeScale desiredTimeScale,
17526             BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
17527 
17528     };
17529 
17530 
17531 #else 	/* C style interface */
17532 
17533     typedef struct IDeckLinkOutput_v7_1Vtbl
17534     {
17535         BEGIN_INTERFACE
17536 
17537         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17538             IDeckLinkOutput_v7_1 * This,
17539             /* [in] */ REFIID riid,
17540             /* [annotation][iid_is][out] */
17541             _COM_Outptr_  void **ppvObject);
17542 
17543         ULONG ( STDMETHODCALLTYPE *AddRef )(
17544             IDeckLinkOutput_v7_1 * This);
17545 
17546         ULONG ( STDMETHODCALLTYPE *Release )(
17547             IDeckLinkOutput_v7_1 * This);
17548 
17549         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
17550             IDeckLinkOutput_v7_1 * This,
17551             BMDDisplayMode displayMode,
17552             BMDPixelFormat pixelFormat,
17553             /* [out] */ BMDDisplayModeSupport_v10_11 *result);
17554 
17555         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
17556             IDeckLinkOutput_v7_1 * This,
17557             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
17558 
17559         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
17560             IDeckLinkOutput_v7_1 * This,
17561             BMDDisplayMode displayMode);
17562 
17563         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
17564             IDeckLinkOutput_v7_1 * This);
17565 
17566         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
17567             IDeckLinkOutput_v7_1 * This,
17568             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
17569 
17570         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
17571             IDeckLinkOutput_v7_1 * This,
17572             int width,
17573             int height,
17574             int rowBytes,
17575             BMDPixelFormat pixelFormat,
17576             BMDFrameFlags flags,
17577             IDeckLinkVideoFrame_v7_1 **outFrame);
17578 
17579         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )(
17580             IDeckLinkOutput_v7_1 * This,
17581             void *buffer,
17582             int width,
17583             int height,
17584             int rowBytes,
17585             BMDPixelFormat pixelFormat,
17586             BMDFrameFlags flags,
17587             IDeckLinkVideoFrame_v7_1 **outFrame);
17588 
17589         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
17590             IDeckLinkOutput_v7_1 * This,
17591             IDeckLinkVideoFrame_v7_1 *theFrame);
17592 
17593         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
17594             IDeckLinkOutput_v7_1 * This,
17595             IDeckLinkVideoFrame_v7_1 *theFrame,
17596             BMDTimeValue displayTime,
17597             BMDTimeValue displayDuration,
17598             BMDTimeScale timeScale);
17599 
17600         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
17601             IDeckLinkOutput_v7_1 * This,
17602             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);
17603 
17604         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
17605             IDeckLinkOutput_v7_1 * This,
17606             BMDAudioSampleRate sampleRate,
17607             BMDAudioSampleType sampleType,
17608             unsigned int channelCount);
17609 
17610         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
17611             IDeckLinkOutput_v7_1 * This);
17612 
17613         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
17614             IDeckLinkOutput_v7_1 * This,
17615             void *buffer,
17616             unsigned int sampleFrameCount,
17617             /* [out] */ unsigned int *sampleFramesWritten);
17618 
17619         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
17620             IDeckLinkOutput_v7_1 * This);
17621 
17622         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
17623             IDeckLinkOutput_v7_1 * This);
17624 
17625         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
17626             IDeckLinkOutput_v7_1 * This,
17627             void *buffer,
17628             unsigned int sampleFrameCount,
17629             BMDTimeValue streamTime,
17630             BMDTimeScale timeScale,
17631             /* [out] */ unsigned int *sampleFramesWritten);
17632 
17633         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
17634             IDeckLinkOutput_v7_1 * This,
17635             /* [out] */ unsigned int *bufferedSampleCount);
17636 
17637         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
17638             IDeckLinkOutput_v7_1 * This);
17639 
17640         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
17641             IDeckLinkOutput_v7_1 * This,
17642             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
17643 
17644         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
17645             IDeckLinkOutput_v7_1 * This,
17646             BMDTimeValue playbackStartTime,
17647             BMDTimeScale timeScale,
17648             double playbackSpeed);
17649 
17650         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
17651             IDeckLinkOutput_v7_1 * This,
17652             BMDTimeValue stopPlaybackAtTime,
17653             BMDTimeValue *actualStopTime,
17654             BMDTimeScale timeScale);
17655 
17656         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
17657             IDeckLinkOutput_v7_1 * This,
17658             BMDTimeScale desiredTimeScale,
17659             BMDTimeValue *elapsedTimeSinceSchedulerBegan);
17660 
17661         END_INTERFACE
17662     } IDeckLinkOutput_v7_1Vtbl;
17663 
17664     interface IDeckLinkOutput_v7_1
17665     {
17666         CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;
17667     };
17668 
17669 
17670 
17671 #ifdef COBJMACROS
17672 
17673 
17674 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject)	\
17675     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17676 
17677 #define IDeckLinkOutput_v7_1_AddRef(This)	\
17678     ( (This)->lpVtbl -> AddRef(This) )
17679 
17680 #define IDeckLinkOutput_v7_1_Release(This)	\
17681     ( (This)->lpVtbl -> Release(This) )
17682 
17683 
17684 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)	\
17685     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
17686 
17687 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator)	\
17688     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
17689 
17690 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode)	\
17691     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) )
17692 
17693 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This)	\
17694     ( (This)->lpVtbl -> DisableVideoOutput(This) )
17695 
17696 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator)	\
17697     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
17698 
17699 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)	\
17700     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
17701 
17702 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame)	\
17703     ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) )
17704 
17705 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame)	\
17706     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
17707 
17708 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)	\
17709     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
17710 
17711 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback)	\
17712     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
17713 
17714 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount)	\
17715     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) )
17716 
17717 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This)	\
17718     ( (This)->lpVtbl -> DisableAudioOutput(This) )
17719 
17720 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)	\
17721     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
17722 
17723 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This)	\
17724     ( (This)->lpVtbl -> BeginAudioPreroll(This) )
17725 
17726 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This)	\
17727     ( (This)->lpVtbl -> EndAudioPreroll(This) )
17728 
17729 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)	\
17730     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
17731 
17732 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)	\
17733     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )
17734 
17735 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This)	\
17736     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
17737 
17738 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback)	\
17739     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
17740 
17741 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)	\
17742     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
17743 
17744 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)	\
17745     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
17746 
17747 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)	\
17748     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )
17749 
17750 #endif /* COBJMACROS */
17751 
17752 
17753 #endif 	/* C style interface */
17754 
17755 
17756 
17757 
17758 #endif 	/* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */
17759 
17760 
17761 #ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
17762 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
17763 
17764 /* interface IDeckLinkInput_v7_1 */
17765 /* [helpstring][uuid][object] */
17766 
17767 
17768 EXTERN_C const IID IID_IDeckLinkInput_v7_1;
17769 
17770 #if defined(__cplusplus) && !defined(CINTERFACE)
17771 
17772     MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")
17773     IDeckLinkInput_v7_1 : public IUnknown
17774     {
17775     public:
17776         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
17777             BMDDisplayMode displayMode,
17778             BMDPixelFormat pixelFormat,
17779             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;
17780 
17781         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
17782             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
17783 
17784         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
17785             BMDDisplayMode displayMode,
17786             BMDPixelFormat pixelFormat,
17787             BMDVideoInputFlags flags) = 0;
17788 
17789         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
17790 
17791         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
17792             BMDAudioSampleRate sampleRate,
17793             BMDAudioSampleType sampleType,
17794             unsigned int channelCount) = 0;
17795 
17796         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
17797 
17798         virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples(
17799             void *buffer,
17800             unsigned int sampleFrameCount,
17801             /* [out] */ unsigned int *sampleFramesRead,
17802             /* [out] */ BMDTimeValue *audioPacketTime,
17803             BMDTimeScale timeScale) = 0;
17804 
17805         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
17806             /* [out] */ unsigned int *bufferedSampleCount) = 0;
17807 
17808         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
17809 
17810         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
17811 
17812         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
17813 
17814         virtual HRESULT STDMETHODCALLTYPE SetCallback(
17815             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;
17816 
17817     };
17818 
17819 
17820 #else 	/* C style interface */
17821 
17822     typedef struct IDeckLinkInput_v7_1Vtbl
17823     {
17824         BEGIN_INTERFACE
17825 
17826         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
17827             IDeckLinkInput_v7_1 * This,
17828             /* [in] */ REFIID riid,
17829             /* [annotation][iid_is][out] */
17830             _COM_Outptr_  void **ppvObject);
17831 
17832         ULONG ( STDMETHODCALLTYPE *AddRef )(
17833             IDeckLinkInput_v7_1 * This);
17834 
17835         ULONG ( STDMETHODCALLTYPE *Release )(
17836             IDeckLinkInput_v7_1 * This);
17837 
17838         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
17839             IDeckLinkInput_v7_1 * This,
17840             BMDDisplayMode displayMode,
17841             BMDPixelFormat pixelFormat,
17842             /* [out] */ BMDDisplayModeSupport_v10_11 *result);
17843 
17844         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
17845             IDeckLinkInput_v7_1 * This,
17846             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
17847 
17848         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
17849             IDeckLinkInput_v7_1 * This,
17850             BMDDisplayMode displayMode,
17851             BMDPixelFormat pixelFormat,
17852             BMDVideoInputFlags flags);
17853 
17854         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
17855             IDeckLinkInput_v7_1 * This);
17856 
17857         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
17858             IDeckLinkInput_v7_1 * This,
17859             BMDAudioSampleRate sampleRate,
17860             BMDAudioSampleType sampleType,
17861             unsigned int channelCount);
17862 
17863         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
17864             IDeckLinkInput_v7_1 * This);
17865 
17866         HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )(
17867             IDeckLinkInput_v7_1 * This,
17868             void *buffer,
17869             unsigned int sampleFrameCount,
17870             /* [out] */ unsigned int *sampleFramesRead,
17871             /* [out] */ BMDTimeValue *audioPacketTime,
17872             BMDTimeScale timeScale);
17873 
17874         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
17875             IDeckLinkInput_v7_1 * This,
17876             /* [out] */ unsigned int *bufferedSampleCount);
17877 
17878         HRESULT ( STDMETHODCALLTYPE *StartStreams )(
17879             IDeckLinkInput_v7_1 * This);
17880 
17881         HRESULT ( STDMETHODCALLTYPE *StopStreams )(
17882             IDeckLinkInput_v7_1 * This);
17883 
17884         HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
17885             IDeckLinkInput_v7_1 * This);
17886 
17887         HRESULT ( STDMETHODCALLTYPE *SetCallback )(
17888             IDeckLinkInput_v7_1 * This,
17889             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);
17890 
17891         END_INTERFACE
17892     } IDeckLinkInput_v7_1Vtbl;
17893 
17894     interface IDeckLinkInput_v7_1
17895     {
17896         CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;
17897     };
17898 
17899 
17900 
17901 #ifdef COBJMACROS
17902 
17903 
17904 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject)	\
17905     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
17906 
17907 #define IDeckLinkInput_v7_1_AddRef(This)	\
17908     ( (This)->lpVtbl -> AddRef(This) )
17909 
17910 #define IDeckLinkInput_v7_1_Release(This)	\
17911     ( (This)->lpVtbl -> Release(This) )
17912 
17913 
17914 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)	\
17915     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
17916 
17917 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator)	\
17918     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
17919 
17920 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags)	\
17921     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
17922 
17923 #define IDeckLinkInput_v7_1_DisableVideoInput(This)	\
17924     ( (This)->lpVtbl -> DisableVideoInput(This) )
17925 
17926 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)	\
17927     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
17928 
17929 #define IDeckLinkInput_v7_1_DisableAudioInput(This)	\
17930     ( (This)->lpVtbl -> DisableAudioInput(This) )
17931 
17932 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale)	\
17933     ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) )
17934 
17935 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)	\
17936     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )
17937 
17938 #define IDeckLinkInput_v7_1_StartStreams(This)	\
17939     ( (This)->lpVtbl -> StartStreams(This) )
17940 
17941 #define IDeckLinkInput_v7_1_StopStreams(This)	\
17942     ( (This)->lpVtbl -> StopStreams(This) )
17943 
17944 #define IDeckLinkInput_v7_1_PauseStreams(This)	\
17945     ( (This)->lpVtbl -> PauseStreams(This) )
17946 
17947 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback)	\
17948     ( (This)->lpVtbl -> SetCallback(This,theCallback) )
17949 
17950 #endif /* COBJMACROS */
17951 
17952 
17953 #endif 	/* C style interface */
17954 
17955 
17956 
17957 
17958 #endif 	/* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */
17959 
17960 #endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */
17961 
17962 /* Additional Prototypes for ALL interfaces */
17963 
17964 /* end of Additional Prototypes */
17965 
17966 /* Functions */
17967 
17968 extern "C" {
17969 
17970     IDeckLinkIterator* CreateDeckLinkIteratorInstance (void);
17971 
17972 }
17973 
17974 #ifdef __cplusplus
17975 }
17976 #endif
17977 
17978 #endif
17979 
17980 
17981