Cleanup: code style & cmake
[blender.git] / intern / decklink / win / DeckLinkAPI_h.h
1
2
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6  /* File created by MIDL compiler version 8.00.0603 */
7 /* at Mon Apr 13 20:57:05 2015
8  */
9 /* Compiler settings for ..\..\include\DeckLinkAPI.idl:
10     Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.00.0603 
11     protocol : dce , ms_ext, c_ext, robust
12     error checks: allocation ref bounds_check enum stub_data 
13     VC __declspec() decoration level: 
14          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15          DECLSPEC_UUID(), MIDL_INTERFACE()
16 */
17 /* @@MIDL_FILE_HEADING(  ) */
18
19 #pragma warning( disable: 4049 )  /* more than 64k source lines */
20
21
22 /* verify that the <rpcndr.h> version is high enough to compile this file*/
23 #ifndef __REQUIRED_RPCNDR_H_VERSION__
24 #define __REQUIRED_RPCNDR_H_VERSION__ 475
25 #endif
26
27 #include "rpc.h"
28 #include "rpcndr.h"
29
30 #ifndef __RPCNDR_H_VERSION__
31 #error this stub requires an updated version of <rpcndr.h>
32 #endif // __RPCNDR_H_VERSION__
33
34
35 #ifndef __DeckLinkAPI_h_h__
36 #define __DeckLinkAPI_h_h__
37
38 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
39 #pragma once
40 #endif
41
42 /* Forward Declarations */ 
43
44 #ifndef __IDeckLinkTimecode_FWD_DEFINED__
45 #define __IDeckLinkTimecode_FWD_DEFINED__
46 typedef interface IDeckLinkTimecode IDeckLinkTimecode;
47
48 #endif  /* __IDeckLinkTimecode_FWD_DEFINED__ */
49
50
51 #ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__
52 #define __IDeckLinkDisplayModeIterator_FWD_DEFINED__
53 typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator;
54
55 #endif  /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */
56
57
58 #ifndef __IDeckLinkDisplayMode_FWD_DEFINED__
59 #define __IDeckLinkDisplayMode_FWD_DEFINED__
60 typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode;
61
62 #endif  /* __IDeckLinkDisplayMode_FWD_DEFINED__ */
63
64
65 #ifndef __IDeckLink_FWD_DEFINED__
66 #define __IDeckLink_FWD_DEFINED__
67 typedef interface IDeckLink IDeckLink;
68
69 #endif  /* __IDeckLink_FWD_DEFINED__ */
70
71
72 #ifndef __IDeckLinkConfiguration_FWD_DEFINED__
73 #define __IDeckLinkConfiguration_FWD_DEFINED__
74 typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;
75
76 #endif  /* __IDeckLinkConfiguration_FWD_DEFINED__ */
77
78
79 #ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
80 #define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
81 typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;
82
83 #endif  /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */
84
85
86 #ifndef __IDeckLinkDeckControl_FWD_DEFINED__
87 #define __IDeckLinkDeckControl_FWD_DEFINED__
88 typedef interface IDeckLinkDeckControl IDeckLinkDeckControl;
89
90 #endif  /* __IDeckLinkDeckControl_FWD_DEFINED__ */
91
92
93 #ifndef __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__
94 #define __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__
95 typedef interface IBMDStreamingDeviceNotificationCallback IBMDStreamingDeviceNotificationCallback;
96
97 #endif  /* __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ */
98
99
100 #ifndef __IBMDStreamingH264InputCallback_FWD_DEFINED__
101 #define __IBMDStreamingH264InputCallback_FWD_DEFINED__
102 typedef interface IBMDStreamingH264InputCallback IBMDStreamingH264InputCallback;
103
104 #endif  /* __IBMDStreamingH264InputCallback_FWD_DEFINED__ */
105
106
107 #ifndef __IBMDStreamingDiscovery_FWD_DEFINED__
108 #define __IBMDStreamingDiscovery_FWD_DEFINED__
109 typedef interface IBMDStreamingDiscovery IBMDStreamingDiscovery;
110
111 #endif  /* __IBMDStreamingDiscovery_FWD_DEFINED__ */
112
113
114 #ifndef __IBMDStreamingVideoEncodingMode_FWD_DEFINED__
115 #define __IBMDStreamingVideoEncodingMode_FWD_DEFINED__
116 typedef interface IBMDStreamingVideoEncodingMode IBMDStreamingVideoEncodingMode;
117
118 #endif  /* __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ */
119
120
121 #ifndef __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__
122 #define __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__
123 typedef interface IBMDStreamingMutableVideoEncodingMode IBMDStreamingMutableVideoEncodingMode;
124
125 #endif  /* __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ */
126
127
128 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__
129 #define __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__
130 typedef interface IBMDStreamingVideoEncodingModePresetIterator IBMDStreamingVideoEncodingModePresetIterator;
131
132 #endif  /* __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ */
133
134
135 #ifndef __IBMDStreamingDeviceInput_FWD_DEFINED__
136 #define __IBMDStreamingDeviceInput_FWD_DEFINED__
137 typedef interface IBMDStreamingDeviceInput IBMDStreamingDeviceInput;
138
139 #endif  /* __IBMDStreamingDeviceInput_FWD_DEFINED__ */
140
141
142 #ifndef __IBMDStreamingH264NALPacket_FWD_DEFINED__
143 #define __IBMDStreamingH264NALPacket_FWD_DEFINED__
144 typedef interface IBMDStreamingH264NALPacket IBMDStreamingH264NALPacket;
145
146 #endif  /* __IBMDStreamingH264NALPacket_FWD_DEFINED__ */
147
148
149 #ifndef __IBMDStreamingAudioPacket_FWD_DEFINED__
150 #define __IBMDStreamingAudioPacket_FWD_DEFINED__
151 typedef interface IBMDStreamingAudioPacket IBMDStreamingAudioPacket;
152
153 #endif  /* __IBMDStreamingAudioPacket_FWD_DEFINED__ */
154
155
156 #ifndef __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__
157 #define __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__
158 typedef interface IBMDStreamingMPEG2TSPacket IBMDStreamingMPEG2TSPacket;
159
160 #endif  /* __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ */
161
162
163 #ifndef __IBMDStreamingH264NALParser_FWD_DEFINED__
164 #define __IBMDStreamingH264NALParser_FWD_DEFINED__
165 typedef interface IBMDStreamingH264NALParser IBMDStreamingH264NALParser;
166
167 #endif  /* __IBMDStreamingH264NALParser_FWD_DEFINED__ */
168
169
170 #ifndef __CBMDStreamingDiscovery_FWD_DEFINED__
171 #define __CBMDStreamingDiscovery_FWD_DEFINED__
172
173 #ifdef __cplusplus
174 typedef class CBMDStreamingDiscovery CBMDStreamingDiscovery;
175 #else
176 typedef struct CBMDStreamingDiscovery CBMDStreamingDiscovery;
177 #endif /* __cplusplus */
178
179 #endif  /* __CBMDStreamingDiscovery_FWD_DEFINED__ */
180
181
182 #ifndef __CBMDStreamingH264NALParser_FWD_DEFINED__
183 #define __CBMDStreamingH264NALParser_FWD_DEFINED__
184
185 #ifdef __cplusplus
186 typedef class CBMDStreamingH264NALParser CBMDStreamingH264NALParser;
187 #else
188 typedef struct CBMDStreamingH264NALParser CBMDStreamingH264NALParser;
189 #endif /* __cplusplus */
190
191 #endif  /* __CBMDStreamingH264NALParser_FWD_DEFINED__ */
192
193
194 #ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__
195 #define __IDeckLinkVideoOutputCallback_FWD_DEFINED__
196 typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback;
197
198 #endif  /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */
199
200
201 #ifndef __IDeckLinkInputCallback_FWD_DEFINED__
202 #define __IDeckLinkInputCallback_FWD_DEFINED__
203 typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;
204
205 #endif  /* __IDeckLinkInputCallback_FWD_DEFINED__ */
206
207
208 #ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__
209 #define __IDeckLinkMemoryAllocator_FWD_DEFINED__
210 typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;
211
212 #endif  /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */
213
214
215 #ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__
216 #define __IDeckLinkAudioOutputCallback_FWD_DEFINED__
217 typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback;
218
219 #endif  /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */
220
221
222 #ifndef __IDeckLinkIterator_FWD_DEFINED__
223 #define __IDeckLinkIterator_FWD_DEFINED__
224 typedef interface IDeckLinkIterator IDeckLinkIterator;
225
226 #endif  /* __IDeckLinkIterator_FWD_DEFINED__ */
227
228
229 #ifndef __IDeckLinkAPIInformation_FWD_DEFINED__
230 #define __IDeckLinkAPIInformation_FWD_DEFINED__
231 typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation;
232
233 #endif  /* __IDeckLinkAPIInformation_FWD_DEFINED__ */
234
235
236 #ifndef __IDeckLinkOutput_FWD_DEFINED__
237 #define __IDeckLinkOutput_FWD_DEFINED__
238 typedef interface IDeckLinkOutput IDeckLinkOutput;
239
240 #endif  /* __IDeckLinkOutput_FWD_DEFINED__ */
241
242
243 #ifndef __IDeckLinkInput_FWD_DEFINED__
244 #define __IDeckLinkInput_FWD_DEFINED__
245 typedef interface IDeckLinkInput IDeckLinkInput;
246
247 #endif  /* __IDeckLinkInput_FWD_DEFINED__ */
248
249
250 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__
251 #define __IDeckLinkVideoFrame_FWD_DEFINED__
252 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;
253
254 #endif  /* __IDeckLinkVideoFrame_FWD_DEFINED__ */
255
256
257 #ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__
258 #define __IDeckLinkMutableVideoFrame_FWD_DEFINED__
259 typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;
260
261 #endif  /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */
262
263
264 #ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
265 #define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
266 typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;
267
268 #endif  /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */
269
270
271 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__
272 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__
273 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;
274
275 #endif  /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */
276
277
278 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
279 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
280 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;
281
282 #endif  /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */
283
284
285 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__
286 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__
287 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;
288
289 #endif  /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */
290
291
292 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
293 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
294 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;
295
296 #endif  /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */
297
298
299 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
300 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
301 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;
302
303 #endif  /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
304
305
306 #ifndef __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
307 #define __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
308 typedef interface IDeckLinkDX9ScreenPreviewHelper IDeckLinkDX9ScreenPreviewHelper;
309
310 #endif  /* __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
311
312
313 #ifndef __IDeckLinkNotificationCallback_FWD_DEFINED__
314 #define __IDeckLinkNotificationCallback_FWD_DEFINED__
315 typedef interface IDeckLinkNotificationCallback IDeckLinkNotificationCallback;
316
317 #endif  /* __IDeckLinkNotificationCallback_FWD_DEFINED__ */
318
319
320 #ifndef __IDeckLinkNotification_FWD_DEFINED__
321 #define __IDeckLinkNotification_FWD_DEFINED__
322 typedef interface IDeckLinkNotification IDeckLinkNotification;
323
324 #endif  /* __IDeckLinkNotification_FWD_DEFINED__ */
325
326
327 #ifndef __IDeckLinkAttributes_FWD_DEFINED__
328 #define __IDeckLinkAttributes_FWD_DEFINED__
329 typedef interface IDeckLinkAttributes IDeckLinkAttributes;
330
331 #endif  /* __IDeckLinkAttributes_FWD_DEFINED__ */
332
333
334 #ifndef __IDeckLinkKeyer_FWD_DEFINED__
335 #define __IDeckLinkKeyer_FWD_DEFINED__
336 typedef interface IDeckLinkKeyer IDeckLinkKeyer;
337
338 #endif  /* __IDeckLinkKeyer_FWD_DEFINED__ */
339
340
341 #ifndef __IDeckLinkVideoConversion_FWD_DEFINED__
342 #define __IDeckLinkVideoConversion_FWD_DEFINED__
343 typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;
344
345 #endif  /* __IDeckLinkVideoConversion_FWD_DEFINED__ */
346
347
348 #ifndef __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__
349 #define __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__
350 typedef interface IDeckLinkDeviceNotificationCallback IDeckLinkDeviceNotificationCallback;
351
352 #endif  /* __IDeckLinkDeviceNotificationCallback_FWD_DEFINED__ */
353
354
355 #ifndef __IDeckLinkDiscovery_FWD_DEFINED__
356 #define __IDeckLinkDiscovery_FWD_DEFINED__
357 typedef interface IDeckLinkDiscovery IDeckLinkDiscovery;
358
359 #endif  /* __IDeckLinkDiscovery_FWD_DEFINED__ */
360
361
362 #ifndef __CDeckLinkIterator_FWD_DEFINED__
363 #define __CDeckLinkIterator_FWD_DEFINED__
364
365 #ifdef __cplusplus
366 typedef class CDeckLinkIterator CDeckLinkIterator;
367 #else
368 typedef struct CDeckLinkIterator CDeckLinkIterator;
369 #endif /* __cplusplus */
370
371 #endif  /* __CDeckLinkIterator_FWD_DEFINED__ */
372
373
374 #ifndef __CDeckLinkAPIInformation_FWD_DEFINED__
375 #define __CDeckLinkAPIInformation_FWD_DEFINED__
376
377 #ifdef __cplusplus
378 typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;
379 #else
380 typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;
381 #endif /* __cplusplus */
382
383 #endif  /* __CDeckLinkAPIInformation_FWD_DEFINED__ */
384
385
386 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
387 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
388
389 #ifdef __cplusplus
390 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
391 #else
392 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
393 #endif /* __cplusplus */
394
395 #endif  /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
396
397
398 #ifndef __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
399 #define __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
400
401 #ifdef __cplusplus
402 typedef class CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
403 #else
404 typedef struct CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
405 #endif /* __cplusplus */
406
407 #endif  /* __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
408
409
410 #ifndef __CDeckLinkVideoConversion_FWD_DEFINED__
411 #define __CDeckLinkVideoConversion_FWD_DEFINED__
412
413 #ifdef __cplusplus
414 typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;
415 #else
416 typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;
417 #endif /* __cplusplus */
418
419 #endif  /* __CDeckLinkVideoConversion_FWD_DEFINED__ */
420
421
422 #ifndef __CDeckLinkDiscovery_FWD_DEFINED__
423 #define __CDeckLinkDiscovery_FWD_DEFINED__
424
425 #ifdef __cplusplus
426 typedef class CDeckLinkDiscovery CDeckLinkDiscovery;
427 #else
428 typedef struct CDeckLinkDiscovery CDeckLinkDiscovery;
429 #endif /* __cplusplus */
430
431 #endif  /* __CDeckLinkDiscovery_FWD_DEFINED__ */
432
433
434 #ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__
435 #define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__
436 typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2;
437
438 #endif  /* __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ */
439
440
441 #ifndef __IDeckLinkOutput_v9_9_FWD_DEFINED__
442 #define __IDeckLinkOutput_v9_9_FWD_DEFINED__
443 typedef interface IDeckLinkOutput_v9_9 IDeckLinkOutput_v9_9;
444
445 #endif  /* __IDeckLinkOutput_v9_9_FWD_DEFINED__ */
446
447
448 #ifndef __IDeckLinkInput_v9_2_FWD_DEFINED__
449 #define __IDeckLinkInput_v9_2_FWD_DEFINED__
450 typedef interface IDeckLinkInput_v9_2 IDeckLinkInput_v9_2;
451
452 #endif  /* __IDeckLinkInput_v9_2_FWD_DEFINED__ */
453
454
455 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
456 #define __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
457 typedef interface IDeckLinkDeckControlStatusCallback_v8_1 IDeckLinkDeckControlStatusCallback_v8_1;
458
459 #endif  /* __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__ */
460
461
462 #ifndef __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
463 #define __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
464 typedef interface IDeckLinkDeckControl_v8_1 IDeckLinkDeckControl_v8_1;
465
466 #endif  /* __IDeckLinkDeckControl_v8_1_FWD_DEFINED__ */
467
468
469 #ifndef __IDeckLink_v8_0_FWD_DEFINED__
470 #define __IDeckLink_v8_0_FWD_DEFINED__
471 typedef interface IDeckLink_v8_0 IDeckLink_v8_0;
472
473 #endif  /* __IDeckLink_v8_0_FWD_DEFINED__ */
474
475
476 #ifndef __IDeckLinkIterator_v8_0_FWD_DEFINED__
477 #define __IDeckLinkIterator_v8_0_FWD_DEFINED__
478 typedef interface IDeckLinkIterator_v8_0 IDeckLinkIterator_v8_0;
479
480 #endif  /* __IDeckLinkIterator_v8_0_FWD_DEFINED__ */
481
482
483 #ifndef __CDeckLinkIterator_v8_0_FWD_DEFINED__
484 #define __CDeckLinkIterator_v8_0_FWD_DEFINED__
485
486 #ifdef __cplusplus
487 typedef class CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
488 #else
489 typedef struct CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
490 #endif /* __cplusplus */
491
492 #endif  /* __CDeckLinkIterator_v8_0_FWD_DEFINED__ */
493
494
495 #ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
496 #define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
497 typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;
498
499 #endif  /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */
500
501
502 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
503 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
504 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;
505
506 #endif  /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */
507
508
509 #ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
510 #define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
511 typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;
512
513 #endif  /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */
514
515
516 #ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__
517 #define __IDeckLinkOutput_v7_6_FWD_DEFINED__
518 typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;
519
520 #endif  /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */
521
522
523 #ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__
524 #define __IDeckLinkInput_v7_6_FWD_DEFINED__
525 typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;
526
527 #endif  /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */
528
529
530 #ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__
531 #define __IDeckLinkTimecode_v7_6_FWD_DEFINED__
532 typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;
533
534 #endif  /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */
535
536
537 #ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
538 #define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
539 typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;
540
541 #endif  /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */
542
543
544 #ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
545 #define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
546 typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;
547
548 #endif  /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */
549
550
551 #ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
552 #define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
553 typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;
554
555 #endif  /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */
556
557
558 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
559 #define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
560 typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;
561
562 #endif  /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */
563
564
565 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
566 #define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
567 typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;
568
569 #endif  /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
570
571
572 #ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
573 #define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
574 typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;
575
576 #endif  /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
577
578
579 #ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
580 #define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
581 typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;
582
583 #endif  /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */
584
585
586 #ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
587 #define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
588 typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;
589
590 #endif  /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */
591
592
593 #ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
594 #define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
595 typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;
596
597 #endif  /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */
598
599
600 #ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
601 #define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
602
603 #ifdef __cplusplus
604 typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
605 #else
606 typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
607 #endif /* __cplusplus */
608
609 #endif  /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
610
611
612 #ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
613 #define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
614
615 #ifdef __cplusplus
616 typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
617 #else
618 typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
619 #endif /* __cplusplus */
620
621 #endif  /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
622
623
624 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
625 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
626 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;
627
628 #endif  /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */
629
630
631 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__
632 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__
633 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;
634
635 #endif  /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */
636
637
638 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__
639 #define __IDeckLinkInput_v7_3_FWD_DEFINED__
640 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;
641
642 #endif  /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */
643
644
645 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
646 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
647 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;
648
649 #endif  /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */
650
651
652 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
653 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
654 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;
655
656 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */
657
658
659 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
660 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
661 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;
662
663 #endif  /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */
664
665
666 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
667 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
668 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;
669
670 #endif  /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */
671
672
673 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
674 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
675 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;
676
677 #endif  /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */
678
679
680 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
681 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
682 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;
683
684 #endif  /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */
685
686
687 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
688 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
689 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;
690
691 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */
692
693
694 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
695 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
696 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;
697
698 #endif  /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */
699
700
701 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__
702 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__
703 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;
704
705 #endif  /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */
706
707
708 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__
709 #define __IDeckLinkInput_v7_1_FWD_DEFINED__
710 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;
711
712 #endif  /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */
713
714
715 /* header files for imported files */
716 #include "unknwn.h"
717
718 #ifdef __cplusplus
719 extern "C"{
720 #endif 
721
722
723
724 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__
725 #define __DeckLinkAPI_LIBRARY_DEFINED__
726
727 /* library DeckLinkAPI */
728 /* [helpstring][version][uuid] */ 
729
730 typedef LONGLONG BMDTimeValue;
731
732 typedef LONGLONG BMDTimeScale;
733
734 typedef unsigned int BMDTimecodeBCD;
735
736 typedef unsigned int BMDTimecodeUserBits;
737
738 typedef unsigned int BMDTimecodeFlags;
739 #if 0
740 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;
741
742 #endif
743 /* [v1_enum] */ 
744 enum _BMDTimecodeFlags
745     {
746         bmdTimecodeFlagDefault  = 0,
747         bmdTimecodeIsDropFrame  = ( 1 << 0 ) ,
748         bmdTimecodeFieldMark    = ( 1 << 1 ) 
749     } ;
750 typedef /* [v1_enum] */ 
751 enum _BMDVideoConnection
752     {
753         bmdVideoConnectionSDI   = ( 1 << 0 ) ,
754         bmdVideoConnectionHDMI  = ( 1 << 1 ) ,
755         bmdVideoConnectionOpticalSDI    = ( 1 << 2 ) ,
756         bmdVideoConnectionComponent     = ( 1 << 3 ) ,
757         bmdVideoConnectionComposite     = ( 1 << 4 ) ,
758         bmdVideoConnectionSVideo        = ( 1 << 5 ) 
759     }   BMDVideoConnection;
760
761 typedef /* [v1_enum] */ 
762 enum _BMDAudioConnection
763     {
764         bmdAudioConnectionEmbedded      = ( 1 << 0 ) ,
765         bmdAudioConnectionAESEBU        = ( 1 << 1 ) ,
766         bmdAudioConnectionAnalog        = ( 1 << 2 ) ,
767         bmdAudioConnectionAnalogXLR     = ( 1 << 3 ) ,
768         bmdAudioConnectionAnalogRCA     = ( 1 << 4 ) 
769     }   BMDAudioConnection;
770
771
772 typedef unsigned int BMDDisplayModeFlags;
773 #if 0
774 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;
775
776 #endif
777 typedef /* [v1_enum] */ 
778 enum _BMDDisplayMode
779     {
780         bmdModeNTSC     = 0x6e747363,
781         bmdModeNTSC2398 = 0x6e743233,
782         bmdModePAL      = 0x70616c20,
783         bmdModeNTSCp    = 0x6e747370,
784         bmdModePALp     = 0x70616c70,
785         bmdModeHD1080p2398      = 0x32337073,
786         bmdModeHD1080p24        = 0x32347073,
787         bmdModeHD1080p25        = 0x48703235,
788         bmdModeHD1080p2997      = 0x48703239,
789         bmdModeHD1080p30        = 0x48703330,
790         bmdModeHD1080i50        = 0x48693530,
791         bmdModeHD1080i5994      = 0x48693539,
792         bmdModeHD1080i6000      = 0x48693630,
793         bmdModeHD1080p50        = 0x48703530,
794         bmdModeHD1080p5994      = 0x48703539,
795         bmdModeHD1080p6000      = 0x48703630,
796         bmdModeHD720p50 = 0x68703530,
797         bmdModeHD720p5994       = 0x68703539,
798         bmdModeHD720p60 = 0x68703630,
799         bmdMode2k2398   = 0x326b3233,
800         bmdMode2k24     = 0x326b3234,
801         bmdMode2k25     = 0x326b3235,
802         bmdMode2kDCI2398        = 0x32643233,
803         bmdMode2kDCI24  = 0x32643234,
804         bmdMode2kDCI25  = 0x32643235,
805         bmdMode4K2160p2398      = 0x346b3233,
806         bmdMode4K2160p24        = 0x346b3234,
807         bmdMode4K2160p25        = 0x346b3235,
808         bmdMode4K2160p2997      = 0x346b3239,
809         bmdMode4K2160p30        = 0x346b3330,
810         bmdMode4K2160p50        = 0x346b3530,
811         bmdMode4K2160p5994      = 0x346b3539,
812         bmdMode4K2160p60        = 0x346b3630,
813         bmdMode4kDCI2398        = 0x34643233,
814         bmdMode4kDCI24  = 0x34643234,
815         bmdMode4kDCI25  = 0x34643235,
816         bmdModeUnknown  = 0x69756e6b
817     }   BMDDisplayMode;
818
819 typedef /* [v1_enum] */ 
820 enum _BMDFieldDominance
821     {
822         bmdUnknownFieldDominance        = 0,
823         bmdLowerFieldFirst      = 0x6c6f7772,
824         bmdUpperFieldFirst      = 0x75707072,
825         bmdProgressiveFrame     = 0x70726f67,
826         bmdProgressiveSegmentedFrame    = 0x70736620
827     }   BMDFieldDominance;
828
829 typedef /* [v1_enum] */ 
830 enum _BMDPixelFormat
831     {
832         bmdFormat8BitYUV        = 0x32767579,
833         bmdFormat10BitYUV       = 0x76323130,
834         bmdFormat8BitARGB       = 32,
835         bmdFormat8BitBGRA       = 0x42475241,
836         bmdFormat10BitRGB       = 0x72323130,
837         bmdFormat12BitRGB       = 0x52313242,
838         bmdFormat12BitRGBLE     = 0x5231324c,
839         bmdFormat10BitRGBXLE    = 0x5231306c,
840         bmdFormat10BitRGBX      = 0x52313062
841     }   BMDPixelFormat;
842
843 /* [v1_enum] */ 
844 enum _BMDDisplayModeFlags
845     {
846         bmdDisplayModeSupports3D        = ( 1 << 0 ) ,
847         bmdDisplayModeColorspaceRec601  = ( 1 << 1 ) ,
848         bmdDisplayModeColorspaceRec709  = ( 1 << 2 ) 
849     } ;
850
851
852 #if 0
853 #endif
854
855 #if 0
856 #endif
857 typedef /* [v1_enum] */ 
858 enum _BMDDeckLinkConfigurationID
859     {
860         bmdDeckLinkConfigSwapSerialRxTx = 0x73737274,
861         bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,
862         bmdDeckLinkConfigHDMI3DPackingFormat    = 0x33647066,
863         bmdDeckLinkConfigBypass = 0x62797073,
864         bmdDeckLinkConfigClockTimingAdjustment  = 0x63746164,
865         bmdDeckLinkConfigAnalogAudioConsumerLevels      = 0x6161636c,
866         bmdDeckLinkConfigFieldFlickerRemoval    = 0x66646672,
867         bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion       = 0x746f3539,
868         bmdDeckLinkConfig444SDIVideoOutput      = 0x3434346f,
869         bmdDeckLinkConfigSingleLinkVideoOutput  = 0x73676c6f,
870         bmdDeckLinkConfigBlackVideoOutputDuringCapture  = 0x62766f63,
871         bmdDeckLinkConfigLowLatencyVideoOutput  = 0x6c6c766f,
872         bmdDeckLinkConfigDownConversionOnAllAnalogOutput        = 0x6361616f,
873         bmdDeckLinkConfigSMPTELevelAOutput      = 0x736d7461,
874         bmdDeckLinkConfigVideoOutputConnection  = 0x766f636e,
875         bmdDeckLinkConfigVideoOutputConversionMode      = 0x766f636d,
876         bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,
877         bmdDeckLinkConfigReferenceInputTimingOffset     = 0x676c6f74,
878         bmdDeckLinkConfigVideoOutputIdleOperation       = 0x766f696f,
879         bmdDeckLinkConfigDefaultVideoOutputMode = 0x64766f6d,
880         bmdDeckLinkConfigDefaultVideoOutputModeFlags    = 0x64766f66,
881         bmdDeckLinkConfigVideoOutputComponentLumaGain   = 0x6f636c67,
882         bmdDeckLinkConfigVideoOutputComponentChromaBlueGain     = 0x6f636362,
883         bmdDeckLinkConfigVideoOutputComponentChromaRedGain      = 0x6f636372,
884         bmdDeckLinkConfigVideoOutputCompositeLumaGain   = 0x6f696c67,
885         bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367,
886         bmdDeckLinkConfigVideoOutputSVideoLumaGain      = 0x6f736c67,
887         bmdDeckLinkConfigVideoOutputSVideoChromaGain    = 0x6f736367,
888         bmdDeckLinkConfigVideoInputScanning     = 0x76697363,
889         bmdDeckLinkConfigUseDedicatedLTCInput   = 0x646c7463,
890         bmdDeckLinkConfigVideoInputConnection   = 0x7669636e,
891         bmdDeckLinkConfigAnalogVideoInputFlags  = 0x61766966,
892         bmdDeckLinkConfigVideoInputConversionMode       = 0x7669636d,
893         bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966,
894         bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,
895         bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,
896         bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,
897         bmdDeckLinkConfigCapturePassThroughMode = 0x6370746d,
898         bmdDeckLinkConfigVideoInputComponentLumaGain    = 0x69636c67,
899         bmdDeckLinkConfigVideoInputComponentChromaBlueGain      = 0x69636362,
900         bmdDeckLinkConfigVideoInputComponentChromaRedGain       = 0x69636372,
901         bmdDeckLinkConfigVideoInputCompositeLumaGain    = 0x69696c67,
902         bmdDeckLinkConfigVideoInputCompositeChromaGain  = 0x69696367,
903         bmdDeckLinkConfigVideoInputSVideoLumaGain       = 0x69736c67,
904         bmdDeckLinkConfigVideoInputSVideoChromaGain     = 0x69736367,
905         bmdDeckLinkConfigAudioInputConnection   = 0x6169636e,
906         bmdDeckLinkConfigAnalogAudioInputScaleChannel1  = 0x61697331,
907         bmdDeckLinkConfigAnalogAudioInputScaleChannel2  = 0x61697332,
908         bmdDeckLinkConfigAnalogAudioInputScaleChannel3  = 0x61697333,
909         bmdDeckLinkConfigAnalogAudioInputScaleChannel4  = 0x61697334,
910         bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973,
911         bmdDeckLinkConfigAudioOutputAESAnalogSwitch     = 0x616f6161,
912         bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331,
913         bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332,
914         bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333,
915         bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334,
916         bmdDeckLinkConfigDigitalAudioOutputScale        = 0x64616f73,
917         bmdDeckLinkConfigDeviceInformationLabel = 0x64696c61,
918         bmdDeckLinkConfigDeviceInformationSerialNumber  = 0x6469736e,
919         bmdDeckLinkConfigDeviceInformationCompany       = 0x6469636f,
920         bmdDeckLinkConfigDeviceInformationPhone = 0x64697068,
921         bmdDeckLinkConfigDeviceInformationEmail = 0x6469656d,
922         bmdDeckLinkConfigDeviceInformationDate  = 0x64696461
923     }   BMDDeckLinkConfigurationID;
924
925
926 typedef unsigned int BMDDeckControlStatusFlags;
927 typedef unsigned int BMDDeckControlExportModeOpsFlags;
928 #if 0
929 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;
930
931 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;
932
933 #endif
934 typedef /* [v1_enum] */ 
935 enum _BMDDeckControlMode
936     {
937         bmdDeckControlNotOpened = 0x6e746f70,
938         bmdDeckControlVTRControlMode    = 0x76747263,
939         bmdDeckControlExportMode        = 0x6578706d,
940         bmdDeckControlCaptureMode       = 0x6361706d
941     }   BMDDeckControlMode;
942
943 typedef /* [v1_enum] */ 
944 enum _BMDDeckControlEvent
945     {
946         bmdDeckControlAbortedEvent      = 0x61627465,
947         bmdDeckControlPrepareForExportEvent     = 0x70666565,
948         bmdDeckControlExportCompleteEvent       = 0x65786365,
949         bmdDeckControlPrepareForCaptureEvent    = 0x70666365,
950         bmdDeckControlCaptureCompleteEvent      = 0x63636576
951     }   BMDDeckControlEvent;
952
953 typedef /* [v1_enum] */ 
954 enum _BMDDeckControlVTRControlState
955     {
956         bmdDeckControlNotInVTRControlMode       = 0x6e76636d,
957         bmdDeckControlVTRControlPlaying = 0x76747270,
958         bmdDeckControlVTRControlRecording       = 0x76747272,
959         bmdDeckControlVTRControlStill   = 0x76747261,
960         bmdDeckControlVTRControlShuttleForward  = 0x76747366,
961         bmdDeckControlVTRControlShuttleReverse  = 0x76747372,
962         bmdDeckControlVTRControlJogForward      = 0x76746a66,
963         bmdDeckControlVTRControlJogReverse      = 0x76746a72,
964         bmdDeckControlVTRControlStopped = 0x7674726f
965     }   BMDDeckControlVTRControlState;
966
967 /* [v1_enum] */ 
968 enum _BMDDeckControlStatusFlags
969     {
970         bmdDeckControlStatusDeckConnected       = ( 1 << 0 ) ,
971         bmdDeckControlStatusRemoteMode  = ( 1 << 1 ) ,
972         bmdDeckControlStatusRecordInhibited     = ( 1 << 2 ) ,
973         bmdDeckControlStatusCassetteOut = ( 1 << 3 ) 
974     } ;
975 /* [v1_enum] */ 
976 enum _BMDDeckControlExportModeOpsFlags
977     {
978         bmdDeckControlExportModeInsertVideo     = ( 1 << 0 ) ,
979         bmdDeckControlExportModeInsertAudio1    = ( 1 << 1 ) ,
980         bmdDeckControlExportModeInsertAudio2    = ( 1 << 2 ) ,
981         bmdDeckControlExportModeInsertAudio3    = ( 1 << 3 ) ,
982         bmdDeckControlExportModeInsertAudio4    = ( 1 << 4 ) ,
983         bmdDeckControlExportModeInsertAudio5    = ( 1 << 5 ) ,
984         bmdDeckControlExportModeInsertAudio6    = ( 1 << 6 ) ,
985         bmdDeckControlExportModeInsertAudio7    = ( 1 << 7 ) ,
986         bmdDeckControlExportModeInsertAudio8    = ( 1 << 8 ) ,
987         bmdDeckControlExportModeInsertAudio9    = ( 1 << 9 ) ,
988         bmdDeckControlExportModeInsertAudio10   = ( 1 << 10 ) ,
989         bmdDeckControlExportModeInsertAudio11   = ( 1 << 11 ) ,
990         bmdDeckControlExportModeInsertAudio12   = ( 1 << 12 ) ,
991         bmdDeckControlExportModeInsertTimeCode  = ( 1 << 13 ) ,
992         bmdDeckControlExportModeInsertAssemble  = ( 1 << 14 ) ,
993         bmdDeckControlExportModeInsertPreview   = ( 1 << 15 ) ,
994         bmdDeckControlUseManualExport   = ( 1 << 16 ) 
995     } ;
996 typedef /* [v1_enum] */ 
997 enum _BMDDeckControlError
998     {
999         bmdDeckControlNoError   = 0x6e6f6572,
1000         bmdDeckControlModeError = 0x6d6f6572,
1001         bmdDeckControlMissedInPointError        = 0x6d696572,
1002         bmdDeckControlDeckTimeoutError  = 0x64746572,
1003         bmdDeckControlCommandFailedError        = 0x63666572,
1004         bmdDeckControlDeviceAlreadyOpenedError  = 0x64616c6f,
1005         bmdDeckControlFailedToOpenDeviceError   = 0x66646572,
1006         bmdDeckControlInLocalModeError  = 0x6c6d6572,
1007         bmdDeckControlEndOfTapeError    = 0x65746572,
1008         bmdDeckControlUserAbortError    = 0x75616572,
1009         bmdDeckControlNoTapeInDeckError = 0x6e746572,
1010         bmdDeckControlNoVideoFromCardError      = 0x6e766663,
1011         bmdDeckControlNoCommunicationError      = 0x6e636f6d,
1012         bmdDeckControlBufferTooSmallError       = 0x6274736d,
1013         bmdDeckControlBadChecksumError  = 0x63686b73,
1014         bmdDeckControlUnknownError      = 0x756e6572
1015     }   BMDDeckControlError;
1016
1017
1018
1019 #if 0
1020 #endif
1021 typedef /* [v1_enum] */ 
1022 enum _BMDStreamingDeviceMode
1023     {
1024         bmdStreamingDeviceIdle  = 0x69646c65,
1025         bmdStreamingDeviceEncoding      = 0x656e636f,
1026         bmdStreamingDeviceStopping      = 0x73746f70,
1027         bmdStreamingDeviceUnknown       = 0x6d756e6b
1028     }   BMDStreamingDeviceMode;
1029
1030 typedef /* [v1_enum] */ 
1031 enum _BMDStreamingEncodingFrameRate
1032     {
1033         bmdStreamingEncodedFrameRate50i = 0x65353069,
1034         bmdStreamingEncodedFrameRate5994i       = 0x65353969,
1035         bmdStreamingEncodedFrameRate60i = 0x65363069,
1036         bmdStreamingEncodedFrameRate2398p       = 0x65323370,
1037         bmdStreamingEncodedFrameRate24p = 0x65323470,
1038         bmdStreamingEncodedFrameRate25p = 0x65323570,
1039         bmdStreamingEncodedFrameRate2997p       = 0x65323970,
1040         bmdStreamingEncodedFrameRate30p = 0x65333070,
1041         bmdStreamingEncodedFrameRate50p = 0x65353070,
1042         bmdStreamingEncodedFrameRate5994p       = 0x65353970,
1043         bmdStreamingEncodedFrameRate60p = 0x65363070
1044     }   BMDStreamingEncodingFrameRate;
1045
1046 typedef /* [v1_enum] */ 
1047 enum _BMDStreamingEncodingSupport
1048     {
1049         bmdStreamingEncodingModeNotSupported    = 0,
1050         bmdStreamingEncodingModeSupported       = ( bmdStreamingEncodingModeNotSupported + 1 ) ,
1051         bmdStreamingEncodingModeSupportedWithChanges    = ( bmdStreamingEncodingModeSupported + 1 ) 
1052     }   BMDStreamingEncodingSupport;
1053
1054 typedef /* [v1_enum] */ 
1055 enum _BMDStreamingVideoCodec
1056     {
1057         bmdStreamingVideoCodecH264      = 0x48323634
1058     }   BMDStreamingVideoCodec;
1059
1060 typedef /* [v1_enum] */ 
1061 enum _BMDStreamingH264Profile
1062     {
1063         bmdStreamingH264ProfileHigh     = 0x68696768,
1064         bmdStreamingH264ProfileMain     = 0x6d61696e,
1065         bmdStreamingH264ProfileBaseline = 0x62617365
1066     }   BMDStreamingH264Profile;
1067
1068 typedef /* [v1_enum] */ 
1069 enum _BMDStreamingH264Level
1070     {
1071         bmdStreamingH264Level12 = 0x6c763132,
1072         bmdStreamingH264Level13 = 0x6c763133,
1073         bmdStreamingH264Level2  = 0x6c763220,
1074         bmdStreamingH264Level21 = 0x6c763231,
1075         bmdStreamingH264Level22 = 0x6c763232,
1076         bmdStreamingH264Level3  = 0x6c763320,
1077         bmdStreamingH264Level31 = 0x6c763331,
1078         bmdStreamingH264Level32 = 0x6c763332,
1079         bmdStreamingH264Level4  = 0x6c763420,
1080         bmdStreamingH264Level41 = 0x6c763431,
1081         bmdStreamingH264Level42 = 0x6c763432
1082     }   BMDStreamingH264Level;
1083
1084 typedef /* [v1_enum] */ 
1085 enum _BMDStreamingH264EntropyCoding
1086     {
1087         bmdStreamingH264EntropyCodingCAVLC      = 0x45564c43,
1088         bmdStreamingH264EntropyCodingCABAC      = 0x45424143
1089     }   BMDStreamingH264EntropyCoding;
1090
1091 typedef /* [v1_enum] */ 
1092 enum _BMDStreamingAudioCodec
1093     {
1094         bmdStreamingAudioCodecAAC       = 0x41414320
1095     }   BMDStreamingAudioCodec;
1096
1097 typedef /* [v1_enum] */ 
1098 enum _BMDStreamingEncodingModePropertyID
1099     {
1100         bmdStreamingEncodingPropertyVideoFrameRate      = 0x76667274,
1101         bmdStreamingEncodingPropertyVideoBitRateKbps    = 0x76627274,
1102         bmdStreamingEncodingPropertyH264Profile = 0x68707266,
1103         bmdStreamingEncodingPropertyH264Level   = 0x686c766c,
1104         bmdStreamingEncodingPropertyH264EntropyCoding   = 0x68656e74,
1105         bmdStreamingEncodingPropertyH264HasBFrames      = 0x68426672,
1106         bmdStreamingEncodingPropertyAudioCodec  = 0x61636463,
1107         bmdStreamingEncodingPropertyAudioSampleRate     = 0x61737274,
1108         bmdStreamingEncodingPropertyAudioChannelCount   = 0x61636863,
1109         bmdStreamingEncodingPropertyAudioBitRateKbps    = 0x61627274
1110     }   BMDStreamingEncodingModePropertyID;
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123 typedef unsigned int BMDFrameFlags;
1124 typedef unsigned int BMDVideoInputFlags;
1125 typedef unsigned int BMDVideoInputFormatChangedEvents;
1126 typedef unsigned int BMDDetectedVideoInputFormatFlags;
1127 typedef unsigned int BMDDeckLinkCapturePassthroughMode;
1128 typedef unsigned int BMDAnalogVideoFlags;
1129 typedef unsigned int BMDDeviceBusyState;
1130 #if 0
1131 typedef enum _BMDFrameFlags BMDFrameFlags;
1132
1133 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;
1134
1135 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;
1136
1137 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;
1138
1139 typedef enum _BMDDeckLinkCapturePassthroughMode BMDDeckLinkCapturePassthroughMode;
1140
1141 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;
1142
1143 typedef enum _BMDDeviceBusyState BMDDeviceBusyState;
1144
1145 #endif
1146 typedef /* [v1_enum] */ 
1147 enum _BMDVideoOutputFlags
1148     {
1149         bmdVideoOutputFlagDefault       = 0,
1150         bmdVideoOutputVANC      = ( 1 << 0 ) ,
1151         bmdVideoOutputVITC      = ( 1 << 1 ) ,
1152         bmdVideoOutputRP188     = ( 1 << 2 ) ,
1153         bmdVideoOutputDualStream3D      = ( 1 << 4 ) 
1154     }   BMDVideoOutputFlags;
1155
1156 /* [v1_enum] */ 
1157 enum _BMDFrameFlags
1158     {
1159         bmdFrameFlagDefault     = 0,
1160         bmdFrameFlagFlipVertical        = ( 1 << 0 ) ,
1161         bmdFrameHasNoInputSource        = ( 1 << 31 ) 
1162     } ;
1163 /* [v1_enum] */ 
1164 enum _BMDVideoInputFlags
1165     {
1166         bmdVideoInputFlagDefault        = 0,
1167         bmdVideoInputEnableFormatDetection      = ( 1 << 0 ) ,
1168         bmdVideoInputDualStream3D       = ( 1 << 1 ) 
1169     } ;
1170 /* [v1_enum] */ 
1171 enum _BMDVideoInputFormatChangedEvents
1172     {
1173         bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,
1174         bmdVideoInputFieldDominanceChanged      = ( 1 << 1 ) ,
1175         bmdVideoInputColorspaceChanged  = ( 1 << 2 ) 
1176     } ;
1177 /* [v1_enum] */ 
1178 enum _BMDDetectedVideoInputFormatFlags
1179     {
1180         bmdDetectedVideoInputYCbCr422   = ( 1 << 0 ) ,
1181         bmdDetectedVideoInputRGB444     = ( 1 << 1 ) ,
1182         bmdDetectedVideoInputDualStream3D       = ( 1 << 2 ) 
1183     } ;
1184 /* [v1_enum] */ 
1185 enum _BMDDeckLinkCapturePassthroughMode
1186     {
1187         bmdDeckLinkCapturePassthroughModeDirect = 0x70646972,
1188         bmdDeckLinkCapturePassthroughModeCleanSwitch    = 0x70636c6e
1189     } ;
1190 typedef /* [v1_enum] */ 
1191 enum _BMDOutputFrameCompletionResult
1192     {
1193         bmdOutputFrameCompleted = 0,
1194         bmdOutputFrameDisplayedLate     = ( bmdOutputFrameCompleted + 1 ) ,
1195         bmdOutputFrameDropped   = ( bmdOutputFrameDisplayedLate + 1 ) ,
1196         bmdOutputFrameFlushed   = ( bmdOutputFrameDropped + 1 ) 
1197     }   BMDOutputFrameCompletionResult;
1198
1199 typedef /* [v1_enum] */ 
1200 enum _BMDReferenceStatus
1201     {
1202         bmdReferenceNotSupportedByHardware      = ( 1 << 0 ) ,
1203         bmdReferenceLocked      = ( 1 << 1 ) 
1204     }   BMDReferenceStatus;
1205
1206 typedef /* [v1_enum] */ 
1207 enum _BMDAudioSampleRate
1208     {
1209         bmdAudioSampleRate48kHz = 48000
1210     }   BMDAudioSampleRate;
1211
1212 typedef /* [v1_enum] */ 
1213 enum _BMDAudioSampleType
1214     {
1215         bmdAudioSampleType16bitInteger  = 16,
1216         bmdAudioSampleType32bitInteger  = 32
1217     }   BMDAudioSampleType;
1218
1219 typedef /* [v1_enum] */ 
1220 enum _BMDAudioOutputStreamType
1221     {
1222         bmdAudioOutputStreamContinuous  = 0,
1223         bmdAudioOutputStreamContinuousDontResample      = ( bmdAudioOutputStreamContinuous + 1 ) ,
1224         bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 ) 
1225     }   BMDAudioOutputStreamType;
1226
1227 typedef /* [v1_enum] */ 
1228 enum _BMDDisplayModeSupport
1229     {
1230         bmdDisplayModeNotSupported      = 0,
1231         bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,
1232         bmdDisplayModeSupportedWithConversion   = ( bmdDisplayModeSupported + 1 ) 
1233     }   BMDDisplayModeSupport;
1234
1235 typedef /* [v1_enum] */ 
1236 enum _BMDTimecodeFormat
1237     {
1238         bmdTimecodeRP188VITC1   = 0x72707631,
1239         bmdTimecodeRP188VITC2   = 0x72703132,
1240         bmdTimecodeRP188LTC     = 0x72706c74,
1241         bmdTimecodeRP188Any     = 0x72703138,
1242         bmdTimecodeVITC = 0x76697463,
1243         bmdTimecodeVITCField2   = 0x76697432,
1244         bmdTimecodeSerial       = 0x73657269
1245     }   BMDTimecodeFormat;
1246
1247 /* [v1_enum] */ 
1248 enum _BMDAnalogVideoFlags
1249     {
1250         bmdAnalogVideoFlagCompositeSetup75      = ( 1 << 0 ) ,
1251         bmdAnalogVideoFlagComponentBetacamLevels        = ( 1 << 1 ) 
1252     } ;
1253 typedef /* [v1_enum] */ 
1254 enum _BMDAudioOutputAnalogAESSwitch
1255     {
1256         bmdAudioOutputSwitchAESEBU      = 0x61657320,
1257         bmdAudioOutputSwitchAnalog      = 0x616e6c67
1258     }   BMDAudioOutputAnalogAESSwitch;
1259
1260 typedef /* [v1_enum] */ 
1261 enum _BMDVideoOutputConversionMode
1262     {
1263         bmdNoVideoOutputConversion      = 0x6e6f6e65,
1264         bmdVideoOutputLetterboxDownconversion   = 0x6c746278,
1265         bmdVideoOutputAnamorphicDownconversion  = 0x616d7068,
1266         bmdVideoOutputHD720toHD1080Conversion   = 0x37323063,
1267         bmdVideoOutputHardwareLetterboxDownconversion   = 0x48576c62,
1268         bmdVideoOutputHardwareAnamorphicDownconversion  = 0x4857616d,
1269         bmdVideoOutputHardwareCenterCutDownconversion   = 0x48576363,
1270         bmdVideoOutputHardware720p1080pCrossconversion  = 0x78636170,
1271         bmdVideoOutputHardwareAnamorphic720pUpconversion        = 0x75613770,
1272         bmdVideoOutputHardwareAnamorphic1080iUpconversion       = 0x75613169,
1273         bmdVideoOutputHardwareAnamorphic149To720pUpconversion   = 0x75343770,
1274         bmdVideoOutputHardwareAnamorphic149To1080iUpconversion  = 0x75343169,
1275         bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770,
1276         bmdVideoOutputHardwarePillarbox1080iUpconversion        = 0x75703169
1277     }   BMDVideoOutputConversionMode;
1278
1279 typedef /* [v1_enum] */ 
1280 enum _BMDVideoInputConversionMode
1281     {
1282         bmdNoVideoInputConversion       = 0x6e6f6e65,
1283         bmdVideoInputLetterboxDownconversionFromHD1080  = 0x31306c62,
1284         bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,
1285         bmdVideoInputLetterboxDownconversionFromHD720   = 0x37326c62,
1286         bmdVideoInputAnamorphicDownconversionFromHD720  = 0x3732616d,
1287         bmdVideoInputLetterboxUpconversion      = 0x6c627570,
1288         bmdVideoInputAnamorphicUpconversion     = 0x616d7570
1289     }   BMDVideoInputConversionMode;
1290
1291 typedef /* [v1_enum] */ 
1292 enum _BMDVideo3DPackingFormat
1293     {
1294         bmdVideo3DPackingSidebySideHalf = 0x73627368,
1295         bmdVideo3DPackingLinebyLine     = 0x6c62796c,
1296         bmdVideo3DPackingTopAndBottom   = 0x7461626f,
1297         bmdVideo3DPackingFramePacking   = 0x6672706b,
1298         bmdVideo3DPackingLeftOnly       = 0x6c656674,
1299         bmdVideo3DPackingRightOnly      = 0x72696768
1300     }   BMDVideo3DPackingFormat;
1301
1302 typedef /* [v1_enum] */ 
1303 enum _BMDIdleVideoOutputOperation
1304     {
1305         bmdIdleVideoOutputBlack = 0x626c6163,
1306         bmdIdleVideoOutputLastFrame     = 0x6c616661,
1307         bmdIdleVideoOutputDesktop       = 0x6465736b
1308     }   BMDIdleVideoOutputOperation;
1309
1310 typedef /* [v1_enum] */ 
1311 enum _BMDDeckLinkAttributeID
1312     {
1313         BMDDeckLinkSupportsInternalKeying       = 0x6b657969,
1314         BMDDeckLinkSupportsExternalKeying       = 0x6b657965,
1315         BMDDeckLinkSupportsHDKeying     = 0x6b657968,
1316         BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,
1317         BMDDeckLinkHasReferenceInput    = 0x6872696e,
1318         BMDDeckLinkHasSerialPort        = 0x68737074,
1319         BMDDeckLinkHasAnalogVideoOutputGain     = 0x61766f67,
1320         BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain  = 0x6f766f67,
1321         BMDDeckLinkHasVideoInputAntiAliasingFilter      = 0x6161666c,
1322         BMDDeckLinkHasBypass    = 0x62797073,
1323         BMDDeckLinkSupportsDesktopDisplay       = 0x65787464,
1324         BMDDeckLinkSupportsClockTimingAdjustment        = 0x63746164,
1325         BMDDeckLinkSupportsFullDuplex   = 0x66647570,
1326         BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset  = 0x6672696e,
1327         BMDDeckLinkSupportsSMPTELevelAOutput    = 0x6c766c61,
1328         BMDDeckLinkSupportsDualLinkSDI  = 0x73646c73,
1329         BMDDeckLinkSupportsIdleOutput   = 0x69646f75,
1330         BMDDeckLinkMaximumAudioChannels = 0x6d616368,
1331         BMDDeckLinkMaximumAnalogAudioChannels   = 0x61616368,
1332         BMDDeckLinkNumberOfSubDevices   = 0x6e736264,
1333         BMDDeckLinkSubDeviceIndex       = 0x73756269,
1334         BMDDeckLinkPersistentID = 0x70656964,
1335         BMDDeckLinkTopologicalID        = 0x746f6964,
1336         BMDDeckLinkVideoOutputConnections       = 0x766f636e,
1337         BMDDeckLinkVideoInputConnections        = 0x7669636e,
1338         BMDDeckLinkAudioOutputConnections       = 0x616f636e,
1339         BMDDeckLinkAudioInputConnections        = 0x6169636e,
1340         BMDDeckLinkDeviceBusyState      = 0x64627374,
1341         BMDDeckLinkVideoIOSupport       = 0x76696f73,
1342         BMDDeckLinkVideoInputGainMinimum        = 0x7669676d,
1343         BMDDeckLinkVideoInputGainMaximum        = 0x76696778,
1344         BMDDeckLinkVideoOutputGainMinimum       = 0x766f676d,
1345         BMDDeckLinkVideoOutputGainMaximum       = 0x766f6778,
1346         BMDDeckLinkSerialPortDeviceName = 0x736c706e
1347     }   BMDDeckLinkAttributeID;
1348
1349 typedef /* [v1_enum] */ 
1350 enum _BMDDeckLinkAPIInformationID
1351     {
1352         BMDDeckLinkAPIVersion   = 0x76657273
1353     }   BMDDeckLinkAPIInformationID;
1354
1355 /* [v1_enum] */ 
1356 enum _BMDDeviceBusyState
1357     {
1358         bmdDeviceCaptureBusy    = ( 1 << 0 ) ,
1359         bmdDevicePlaybackBusy   = ( 1 << 1 ) ,
1360         bmdDeviceSerialPortBusy = ( 1 << 2 ) 
1361     } ;
1362 typedef /* [v1_enum] */ 
1363 enum _BMDVideoIOSupport
1364     {
1365         bmdDeviceSupportsCapture        = ( 1 << 0 ) ,
1366         bmdDeviceSupportsPlayback       = ( 1 << 1 ) 
1367     }   BMDVideoIOSupport;
1368
1369 typedef /* [v1_enum] */ 
1370 enum _BMD3DPreviewFormat
1371     {
1372         bmd3DPreviewFormatDefault       = 0x64656661,
1373         bmd3DPreviewFormatLeftOnly      = 0x6c656674,
1374         bmd3DPreviewFormatRightOnly     = 0x72696768,
1375         bmd3DPreviewFormatSideBySide    = 0x73696465,
1376         bmd3DPreviewFormatTopBottom     = 0x746f7062
1377     }   BMD3DPreviewFormat;
1378
1379 typedef /* [v1_enum] */ 
1380 enum _BMDNotifications
1381     {
1382         bmdPreferencesChanged   = 0x70726566
1383     }   BMDNotifications;
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409 typedef /* [v1_enum] */ 
1410 enum _BMDDeckLinkConfigurationID_v10_2
1411     {
1412         bmdDeckLinkConfig3GBpsVideoOutput_v10_2 = 0x33676273
1413     }   BMDDeckLinkConfigurationID_v10_2;
1414
1415 typedef /* [v1_enum] */ 
1416 enum _BMDAudioConnection_v10_2
1417     {
1418         bmdAudioConnectionEmbedded_v10_2        = 0x656d6264,
1419         bmdAudioConnectionAESEBU_v10_2  = 0x61657320,
1420         bmdAudioConnectionAnalog_v10_2  = 0x616e6c67,
1421         bmdAudioConnectionAnalogXLR_v10_2       = 0x61786c72,
1422         bmdAudioConnectionAnalogRCA_v10_2       = 0x61726361
1423     }   BMDAudioConnection_v10_2;
1424
1425
1426 typedef /* [v1_enum] */ 
1427 enum _BMDDeckControlVTRControlState_v8_1
1428     {
1429         bmdDeckControlNotInVTRControlMode_v8_1  = 0x6e76636d,
1430         bmdDeckControlVTRControlPlaying_v8_1    = 0x76747270,
1431         bmdDeckControlVTRControlRecording_v8_1  = 0x76747272,
1432         bmdDeckControlVTRControlStill_v8_1      = 0x76747261,
1433         bmdDeckControlVTRControlSeeking_v8_1    = 0x76747273,
1434         bmdDeckControlVTRControlStopped_v8_1    = 0x7674726f
1435     }   BMDDeckControlVTRControlState_v8_1;
1436
1437
1438
1439 typedef /* [v1_enum] */ 
1440 enum _BMDVideoConnection_v7_6
1441     {
1442         bmdVideoConnectionSDI_v7_6      = 0x73646920,
1443         bmdVideoConnectionHDMI_v7_6     = 0x68646d69,
1444         bmdVideoConnectionOpticalSDI_v7_6       = 0x6f707469,
1445         bmdVideoConnectionComponent_v7_6        = 0x63706e74,
1446         bmdVideoConnectionComposite_v7_6        = 0x636d7374,
1447         bmdVideoConnectionSVideo_v7_6   = 0x73766964
1448     }   BMDVideoConnection_v7_6;
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472 EXTERN_C const IID LIBID_DeckLinkAPI;
1473
1474 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__
1475 #define __IDeckLinkTimecode_INTERFACE_DEFINED__
1476
1477 /* interface IDeckLinkTimecode */
1478 /* [helpstring][uuid][object] */ 
1479
1480
1481 EXTERN_C const IID IID_IDeckLinkTimecode;
1482
1483 #if defined(__cplusplus) && !defined(CINTERFACE)
1484     
1485     MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")
1486     IDeckLinkTimecode : public IUnknown
1487     {
1488     public:
1489         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
1490         
1491         virtual HRESULT STDMETHODCALLTYPE GetComponents( 
1492             /* [out] */ unsigned char *hours,
1493             /* [out] */ unsigned char *minutes,
1494             /* [out] */ unsigned char *seconds,
1495             /* [out] */ unsigned char *frames) = 0;
1496         
1497         virtual HRESULT STDMETHODCALLTYPE GetString( 
1498             /* [out] */ BSTR *timecode) = 0;
1499         
1500         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1501         
1502         virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( 
1503             /* [out] */ BMDTimecodeUserBits *userBits) = 0;
1504         
1505     };
1506     
1507     
1508 #else   /* C style interface */
1509
1510     typedef struct IDeckLinkTimecodeVtbl
1511     {
1512         BEGIN_INTERFACE
1513         
1514         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1515             IDeckLinkTimecode * This,
1516             /* [in] */ REFIID riid,
1517             /* [annotation][iid_is][out] */ 
1518             _COM_Outptr_  void **ppvObject);
1519         
1520         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1521             IDeckLinkTimecode * This);
1522         
1523         ULONG ( STDMETHODCALLTYPE *Release )( 
1524             IDeckLinkTimecode * This);
1525         
1526         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( 
1527             IDeckLinkTimecode * This);
1528         
1529         HRESULT ( STDMETHODCALLTYPE *GetComponents )( 
1530             IDeckLinkTimecode * This,
1531             /* [out] */ unsigned char *hours,
1532             /* [out] */ unsigned char *minutes,
1533             /* [out] */ unsigned char *seconds,
1534             /* [out] */ unsigned char *frames);
1535         
1536         HRESULT ( STDMETHODCALLTYPE *GetString )( 
1537             IDeckLinkTimecode * This,
1538             /* [out] */ BSTR *timecode);
1539         
1540         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( 
1541             IDeckLinkTimecode * This);
1542         
1543         HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )( 
1544             IDeckLinkTimecode * This,
1545             /* [out] */ BMDTimecodeUserBits *userBits);
1546         
1547         END_INTERFACE
1548     } IDeckLinkTimecodeVtbl;
1549
1550     interface IDeckLinkTimecode
1551     {
1552         CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;
1553     };
1554
1555     
1556
1557 #ifdef COBJMACROS
1558
1559
1560 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)   \
1561     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1562
1563 #define IDeckLinkTimecode_AddRef(This)  \
1564     ( (This)->lpVtbl -> AddRef(This) ) 
1565
1566 #define IDeckLinkTimecode_Release(This) \
1567     ( (This)->lpVtbl -> Release(This) ) 
1568
1569
1570 #define IDeckLinkTimecode_GetBCD(This)  \
1571     ( (This)->lpVtbl -> GetBCD(This) ) 
1572
1573 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)      \
1574     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) 
1575
1576 #define IDeckLinkTimecode_GetString(This,timecode)      \
1577     ( (This)->lpVtbl -> GetString(This,timecode) ) 
1578
1579 #define IDeckLinkTimecode_GetFlags(This)        \
1580     ( (This)->lpVtbl -> GetFlags(This) ) 
1581
1582 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits)    \
1583     ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) ) 
1584
1585 #endif /* COBJMACROS */
1586
1587
1588 #endif  /* C style interface */
1589
1590
1591
1592
1593 #endif  /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */
1594
1595
1596 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1597 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1598
1599 /* interface IDeckLinkDisplayModeIterator */
1600 /* [helpstring][uuid][object] */ 
1601
1602
1603 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
1604
1605 #if defined(__cplusplus) && !defined(CINTERFACE)
1606     
1607     MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")
1608     IDeckLinkDisplayModeIterator : public IUnknown
1609     {
1610     public:
1611         virtual HRESULT STDMETHODCALLTYPE Next( 
1612             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
1613         
1614     };
1615     
1616     
1617 #else   /* C style interface */
1618
1619     typedef struct IDeckLinkDisplayModeIteratorVtbl
1620     {
1621         BEGIN_INTERFACE
1622         
1623         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1624             IDeckLinkDisplayModeIterator * This,
1625             /* [in] */ REFIID riid,
1626             /* [annotation][iid_is][out] */ 
1627             _COM_Outptr_  void **ppvObject);
1628         
1629         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1630             IDeckLinkDisplayModeIterator * This);
1631         
1632         ULONG ( STDMETHODCALLTYPE *Release )( 
1633             IDeckLinkDisplayModeIterator * This);
1634         
1635         HRESULT ( STDMETHODCALLTYPE *Next )( 
1636             IDeckLinkDisplayModeIterator * This,
1637             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);
1638         
1639         END_INTERFACE
1640     } IDeckLinkDisplayModeIteratorVtbl;
1641
1642     interface IDeckLinkDisplayModeIterator
1643     {
1644         CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;
1645     };
1646
1647     
1648
1649 #ifdef COBJMACROS
1650
1651
1652 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)        \
1653     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1654
1655 #define IDeckLinkDisplayModeIterator_AddRef(This)       \
1656     ( (This)->lpVtbl -> AddRef(This) ) 
1657
1658 #define IDeckLinkDisplayModeIterator_Release(This)      \
1659     ( (This)->lpVtbl -> Release(This) ) 
1660
1661
1662 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)     \
1663     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) 
1664
1665 #endif /* COBJMACROS */
1666
1667
1668 #endif  /* C style interface */
1669
1670
1671
1672
1673 #endif  /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */
1674
1675
1676 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1677 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1678
1679 /* interface IDeckLinkDisplayMode */
1680 /* [helpstring][uuid][object] */ 
1681
1682
1683 EXTERN_C const IID IID_IDeckLinkDisplayMode;
1684
1685 #if defined(__cplusplus) && !defined(CINTERFACE)
1686     
1687     MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")
1688     IDeckLinkDisplayMode : public IUnknown
1689     {
1690     public:
1691         virtual HRESULT STDMETHODCALLTYPE GetName( 
1692             /* [out] */ BSTR *name) = 0;
1693         
1694         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
1695         
1696         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
1697         
1698         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
1699         
1700         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( 
1701             /* [out] */ BMDTimeValue *frameDuration,
1702             /* [out] */ BMDTimeScale *timeScale) = 0;
1703         
1704         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
1705         
1706         virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1707         
1708     };
1709     
1710     
1711 #else   /* C style interface */
1712
1713     typedef struct IDeckLinkDisplayModeVtbl
1714     {
1715         BEGIN_INTERFACE
1716         
1717         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1718             IDeckLinkDisplayMode * This,
1719             /* [in] */ REFIID riid,
1720             /* [annotation][iid_is][out] */ 
1721             _COM_Outptr_  void **ppvObject);
1722         
1723         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1724             IDeckLinkDisplayMode * This);
1725         
1726         ULONG ( STDMETHODCALLTYPE *Release )( 
1727             IDeckLinkDisplayMode * This);
1728         
1729         HRESULT ( STDMETHODCALLTYPE *GetName )( 
1730             IDeckLinkDisplayMode * This,
1731             /* [out] */ BSTR *name);
1732         
1733         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( 
1734             IDeckLinkDisplayMode * This);
1735         
1736         long ( STDMETHODCALLTYPE *GetWidth )( 
1737             IDeckLinkDisplayMode * This);
1738         
1739         long ( STDMETHODCALLTYPE *GetHeight )( 
1740             IDeckLinkDisplayMode * This);
1741         
1742         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( 
1743             IDeckLinkDisplayMode * This,
1744             /* [out] */ BMDTimeValue *frameDuration,
1745             /* [out] */ BMDTimeScale *timeScale);
1746         
1747         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( 
1748             IDeckLinkDisplayMode * This);
1749         
1750         BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )( 
1751             IDeckLinkDisplayMode * This);
1752         
1753         END_INTERFACE
1754     } IDeckLinkDisplayModeVtbl;
1755
1756     interface IDeckLinkDisplayMode
1757     {
1758         CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;
1759     };
1760
1761     
1762
1763 #ifdef COBJMACROS
1764
1765
1766 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)        \
1767     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1768
1769 #define IDeckLinkDisplayMode_AddRef(This)       \
1770     ( (This)->lpVtbl -> AddRef(This) ) 
1771
1772 #define IDeckLinkDisplayMode_Release(This)      \
1773     ( (This)->lpVtbl -> Release(This) ) 
1774
1775
1776 #define IDeckLinkDisplayMode_GetName(This,name) \
1777     ( (This)->lpVtbl -> GetName(This,name) ) 
1778
1779 #define IDeckLinkDisplayMode_GetDisplayMode(This)       \
1780     ( (This)->lpVtbl -> GetDisplayMode(This) ) 
1781
1782 #define IDeckLinkDisplayMode_GetWidth(This)     \
1783     ( (This)->lpVtbl -> GetWidth(This) ) 
1784
1785 #define IDeckLinkDisplayMode_GetHeight(This)    \
1786     ( (This)->lpVtbl -> GetHeight(This) ) 
1787
1788 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \
1789     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) 
1790
1791 #define IDeckLinkDisplayMode_GetFieldDominance(This)    \
1792     ( (This)->lpVtbl -> GetFieldDominance(This) ) 
1793
1794 #define IDeckLinkDisplayMode_GetFlags(This)     \
1795     ( (This)->lpVtbl -> GetFlags(This) ) 
1796
1797 #endif /* COBJMACROS */
1798
1799
1800 #endif  /* C style interface */
1801
1802
1803
1804
1805 #endif  /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */
1806
1807
1808 #ifndef __IDeckLink_INTERFACE_DEFINED__
1809 #define __IDeckLink_INTERFACE_DEFINED__
1810
1811 /* interface IDeckLink */
1812 /* [helpstring][uuid][object] */ 
1813
1814
1815 EXTERN_C const IID IID_IDeckLink;
1816
1817 #if defined(__cplusplus) && !defined(CINTERFACE)
1818     
1819     MIDL_INTERFACE("C418FBDD-0587-48ED-8FE5-640F0A14AF91")
1820     IDeckLink : public IUnknown
1821     {
1822     public:
1823         virtual HRESULT STDMETHODCALLTYPE GetModelName( 
1824             /* [out] */ BSTR *modelName) = 0;
1825         
1826         virtual HRESULT STDMETHODCALLTYPE GetDisplayName( 
1827             /* [out] */ BSTR *displayName) = 0;
1828         
1829     };
1830     
1831     
1832 #else   /* C style interface */
1833
1834     typedef struct IDeckLinkVtbl
1835     {
1836         BEGIN_INTERFACE
1837         
1838         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1839             IDeckLink * This,
1840             /* [in] */ REFIID riid,
1841             /* [annotation][iid_is][out] */ 
1842             _COM_Outptr_  void **ppvObject);
1843         
1844         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1845             IDeckLink * This);
1846         
1847         ULONG ( STDMETHODCALLTYPE *Release )( 
1848             IDeckLink * This);
1849         
1850         HRESULT ( STDMETHODCALLTYPE *GetModelName )( 
1851             IDeckLink * This,
1852             /* [out] */ BSTR *modelName);
1853         
1854         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( 
1855             IDeckLink * This,
1856             /* [out] */ BSTR *displayName);
1857         
1858         END_INTERFACE
1859     } IDeckLinkVtbl;
1860
1861     interface IDeckLink
1862     {
1863         CONST_VTBL struct IDeckLinkVtbl *lpVtbl;
1864     };
1865
1866     
1867
1868 #ifdef COBJMACROS
1869
1870
1871 #define IDeckLink_QueryInterface(This,riid,ppvObject)   \
1872     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1873
1874 #define IDeckLink_AddRef(This)  \
1875     ( (This)->lpVtbl -> AddRef(This) ) 
1876
1877 #define IDeckLink_Release(This) \
1878     ( (This)->lpVtbl -> Release(This) ) 
1879
1880
1881 #define IDeckLink_GetModelName(This,modelName)  \
1882     ( (This)->lpVtbl -> GetModelName(This,modelName) ) 
1883
1884 #define IDeckLink_GetDisplayName(This,displayName)      \
1885     ( (This)->lpVtbl -> GetDisplayName(This,displayName) ) 
1886
1887 #endif /* COBJMACROS */
1888
1889
1890 #endif  /* C style interface */
1891
1892
1893
1894
1895 #endif  /* __IDeckLink_INTERFACE_DEFINED__ */
1896
1897
1898 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__
1899 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__
1900
1901 /* interface IDeckLinkConfiguration */
1902 /* [helpstring][local][uuid][object] */ 
1903
1904
1905 EXTERN_C const IID IID_IDeckLinkConfiguration;
1906
1907 #if defined(__cplusplus) && !defined(CINTERFACE)
1908     
1909     MIDL_INTERFACE("1E69FCF6-4203-4936-8076-2A9F4CFD50CB")
1910     IDeckLinkConfiguration : public IUnknown
1911     {
1912     public:
1913         virtual HRESULT STDMETHODCALLTYPE SetFlag( 
1914             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1915             /* [in] */ BOOL value) = 0;
1916         
1917         virtual HRESULT STDMETHODCALLTYPE GetFlag( 
1918             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1919             /* [out] */ BOOL *value) = 0;
1920         
1921         virtual HRESULT STDMETHODCALLTYPE SetInt( 
1922             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1923             /* [in] */ LONGLONG value) = 0;
1924         
1925         virtual HRESULT STDMETHODCALLTYPE GetInt( 
1926             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1927             /* [out] */ LONGLONG *value) = 0;
1928         
1929         virtual HRESULT STDMETHODCALLTYPE SetFloat( 
1930             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1931             /* [in] */ double value) = 0;
1932         
1933         virtual HRESULT STDMETHODCALLTYPE GetFloat( 
1934             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1935             /* [out] */ double *value) = 0;
1936         
1937         virtual HRESULT STDMETHODCALLTYPE SetString( 
1938             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1939             /* [in] */ BSTR value) = 0;
1940         
1941         virtual HRESULT STDMETHODCALLTYPE GetString( 
1942             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1943             /* [out] */ BSTR *value) = 0;
1944         
1945         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
1946         
1947     };
1948     
1949     
1950 #else   /* C style interface */
1951
1952     typedef struct IDeckLinkConfigurationVtbl
1953     {
1954         BEGIN_INTERFACE
1955         
1956         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1957             IDeckLinkConfiguration * This,
1958             /* [in] */ REFIID riid,
1959             /* [annotation][iid_is][out] */ 
1960             _COM_Outptr_  void **ppvObject);
1961         
1962         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1963             IDeckLinkConfiguration * This);
1964         
1965         ULONG ( STDMETHODCALLTYPE *Release )( 
1966             IDeckLinkConfiguration * This);
1967         
1968         HRESULT ( STDMETHODCALLTYPE *SetFlag )( 
1969             IDeckLinkConfiguration * This,
1970             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1971             /* [in] */ BOOL value);
1972         
1973         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
1974             IDeckLinkConfiguration * This,
1975             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1976             /* [out] */ BOOL *value);
1977         
1978         HRESULT ( STDMETHODCALLTYPE *SetInt )( 
1979             IDeckLinkConfiguration * This,
1980             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1981             /* [in] */ LONGLONG value);
1982         
1983         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
1984             IDeckLinkConfiguration * This,
1985             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1986             /* [out] */ LONGLONG *value);
1987         
1988         HRESULT ( STDMETHODCALLTYPE *SetFloat )( 
1989             IDeckLinkConfiguration * This,
1990             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1991             /* [in] */ double value);
1992         
1993         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
1994             IDeckLinkConfiguration * This,
1995             /* [in] */ BMDDeckLinkConfigurationID cfgID,
1996             /* [out] */ double *value);
1997         
1998         HRESULT ( STDMETHODCALLTYPE *SetString )( 
1999             IDeckLinkConfiguration * This,
2000             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2001             /* [in] */ BSTR value);
2002         
2003         HRESULT ( STDMETHODCALLTYPE *GetString )( 
2004             IDeckLinkConfiguration * This,
2005             /* [in] */ BMDDeckLinkConfigurationID cfgID,
2006             /* [out] */ BSTR *value);
2007         
2008         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( 
2009             IDeckLinkConfiguration * This);
2010         
2011         END_INTERFACE
2012     } IDeckLinkConfigurationVtbl;
2013
2014     interface IDeckLinkConfiguration
2015     {
2016         CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;
2017     };
2018
2019     
2020
2021 #ifdef COBJMACROS
2022
2023
2024 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)      \
2025     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2026
2027 #define IDeckLinkConfiguration_AddRef(This)     \
2028     ( (This)->lpVtbl -> AddRef(This) ) 
2029
2030 #define IDeckLinkConfiguration_Release(This)    \
2031     ( (This)->lpVtbl -> Release(This) ) 
2032
2033
2034 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value)        \
2035     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) 
2036
2037 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value)        \
2038     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
2039
2040 #define IDeckLinkConfiguration_SetInt(This,cfgID,value) \
2041     ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) 
2042
2043 #define IDeckLinkConfiguration_GetInt(This,cfgID,value) \
2044     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
2045
2046 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value)       \
2047     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) 
2048
2049 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value)       \
2050     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
2051
2052 #define IDeckLinkConfiguration_SetString(This,cfgID,value)      \
2053     ( (This)->lpVtbl -> SetString(This,cfgID,value) ) 
2054
2055 #define IDeckLinkConfiguration_GetString(This,cfgID,value)      \
2056     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
2057
2058 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)    \
2059     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) 
2060
2061 #endif /* COBJMACROS */
2062
2063
2064 #endif  /* C style interface */
2065
2066
2067
2068
2069 #endif  /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */
2070
2071
2072 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
2073 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
2074
2075 /* interface IDeckLinkDeckControlStatusCallback */
2076 /* [helpstring][uuid][object] */ 
2077
2078
2079 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
2080
2081 #if defined(__cplusplus) && !defined(CINTERFACE)
2082     
2083     MIDL_INTERFACE("53436FFB-B434-4906-BADC-AE3060FFE8EF")
2084     IDeckLinkDeckControlStatusCallback : public IUnknown
2085     {
2086     public:
2087         virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( 
2088             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
2089         
2090         virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( 
2091             /* [in] */ BMDDeckControlVTRControlState newState,
2092             /* [in] */ BMDDeckControlError error) = 0;
2093         
2094         virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( 
2095             /* [in] */ BMDDeckControlEvent event,
2096             /* [in] */ BMDDeckControlError error) = 0;
2097         
2098         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( 
2099             /* [in] */ BMDDeckControlStatusFlags flags,
2100             /* [in] */ unsigned int mask) = 0;
2101         
2102     };
2103     
2104     
2105 #else   /* C style interface */
2106
2107     typedef struct IDeckLinkDeckControlStatusCallbackVtbl
2108     {
2109         BEGIN_INTERFACE
2110         
2111         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2112             IDeckLinkDeckControlStatusCallback * This,
2113             /* [in] */ REFIID riid,
2114             /* [annotation][iid_is][out] */ 
2115             _COM_Outptr_  void **ppvObject);
2116         
2117         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2118             IDeckLinkDeckControlStatusCallback * This);
2119         
2120         ULONG ( STDMETHODCALLTYPE *Release )( 
2121             IDeckLinkDeckControlStatusCallback * This);
2122         
2123         HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( 
2124             IDeckLinkDeckControlStatusCallback * This,
2125             /* [in] */ BMDTimecodeBCD currentTimecode);
2126         
2127         HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( 
2128             IDeckLinkDeckControlStatusCallback * This,
2129             /* [in] */ BMDDeckControlVTRControlState newState,
2130             /* [in] */ BMDDeckControlError error);
2131         
2132         HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( 
2133             IDeckLinkDeckControlStatusCallback * This,
2134             /* [in] */ BMDDeckControlEvent event,
2135             /* [in] */ BMDDeckControlError error);
2136         
2137         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( 
2138             IDeckLinkDeckControlStatusCallback * This,
2139             /* [in] */ BMDDeckControlStatusFlags flags,
2140             /* [in] */ unsigned int mask);
2141         
2142         END_INTERFACE
2143     } IDeckLinkDeckControlStatusCallbackVtbl;
2144
2145     interface IDeckLinkDeckControlStatusCallback
2146     {
2147         CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;
2148     };
2149
2150     
2151
2152 #ifdef COBJMACROS
2153
2154
2155 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject)  \
2156     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2157
2158 #define IDeckLinkDeckControlStatusCallback_AddRef(This) \
2159     ( (This)->lpVtbl -> AddRef(This) ) 
2160
2161 #define IDeckLinkDeckControlStatusCallback_Release(This)        \
2162     ( (This)->lpVtbl -> Release(This) ) 
2163
2164
2165 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) \
2166     ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) 
2167
2168 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error)  \
2169     ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) 
2170
2171 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error)   \
2172     ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) 
2173
2174 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask)    \
2175     ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) 
2176
2177 #endif /* COBJMACROS */
2178
2179
2180 #endif  /* C style interface */
2181
2182
2183
2184
2185 #endif  /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */
2186
2187
2188 #ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__
2189 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__
2190
2191 /* interface IDeckLinkDeckControl */
2192 /* [helpstring][uuid][object] */ 
2193
2194
2195 EXTERN_C const IID IID_IDeckLinkDeckControl;
2196
2197 #if defined(__cplusplus) && !defined(CINTERFACE)
2198     
2199     MIDL_INTERFACE("8E1C3ACE-19C7-4E00-8B92-D80431D958BE")
2200     IDeckLinkDeckControl : public IUnknown
2201     {
2202     public:
2203         virtual HRESULT STDMETHODCALLTYPE Open( 
2204             /* [in] */ BMDTimeScale timeScale,
2205             /* [in] */ BMDTimeValue timeValue,
2206             /* [in] */ BOOL timecodeIsDropFrame,
2207             /* [out] */ BMDDeckControlError *error) = 0;
2208         
2209         virtual HRESULT STDMETHODCALLTYPE Close( 
2210             /* [in] */ BOOL standbyOn) = 0;
2211         
2212         virtual HRESULT STDMETHODCALLTYPE GetCurrentState( 
2213             /* [out] */ BMDDeckControlMode *mode,
2214             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
2215             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
2216         
2217         virtual HRESULT STDMETHODCALLTYPE SetStandby( 
2218             /* [in] */ BOOL standbyOn) = 0;
2219         
2220         virtual HRESULT STDMETHODCALLTYPE SendCommand( 
2221             /* [in] */ unsigned char *inBuffer,
2222             /* [in] */ unsigned int inBufferSize,
2223             /* [out] */ unsigned char *outBuffer,
2224             /* [out] */ unsigned int *outDataSize,
2225             /* [in] */ unsigned int outBufferSize,
2226             /* [out] */ BMDDeckControlError *error) = 0;
2227         
2228         virtual HRESULT STDMETHODCALLTYPE Play( 
2229             /* [out] */ BMDDeckControlError *error) = 0;
2230         
2231         virtual HRESULT STDMETHODCALLTYPE Stop( 
2232             /* [out] */ BMDDeckControlError *error) = 0;
2233         
2234         virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( 
2235             /* [out] */ BMDDeckControlError *error) = 0;
2236         
2237         virtual HRESULT STDMETHODCALLTYPE Eject( 
2238             /* [out] */ BMDDeckControlError *error) = 0;
2239         
2240         virtual HRESULT STDMETHODCALLTYPE GoToTimecode( 
2241             /* [in] */ BMDTimecodeBCD timecode,
2242             /* [out] */ BMDDeckControlError *error) = 0;
2243         
2244         virtual HRESULT STDMETHODCALLTYPE FastForward( 
2245             /* [in] */ BOOL viewTape,
2246             /* [out] */ BMDDeckControlError *error) = 0;
2247         
2248         virtual HRESULT STDMETHODCALLTYPE Rewind( 
2249             /* [in] */ BOOL viewTape,
2250             /* [out] */ BMDDeckControlError *error) = 0;
2251         
2252         virtual HRESULT STDMETHODCALLTYPE StepForward( 
2253             /* [out] */ BMDDeckControlError *error) = 0;
2254         
2255         virtual HRESULT STDMETHODCALLTYPE StepBack( 
2256             /* [out] */ BMDDeckControlError *error) = 0;
2257         
2258         virtual HRESULT STDMETHODCALLTYPE Jog( 
2259             /* [in] */ double rate,
2260             /* [out] */ BMDDeckControlError *error) = 0;
2261         
2262         virtual HRESULT STDMETHODCALLTYPE Shuttle( 
2263             /* [in] */ double rate,
2264             /* [out] */ BMDDeckControlError *error) = 0;
2265         
2266         virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( 
2267             /* [out] */ BSTR *currentTimeCode,
2268             /* [out] */ BMDDeckControlError *error) = 0;
2269         
2270         virtual HRESULT STDMETHODCALLTYPE GetTimecode( 
2271             /* [out] */ IDeckLinkTimecode **currentTimecode,
2272             /* [out] */ BMDDeckControlError *error) = 0;
2273         
2274         virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( 
2275             /* [out] */ BMDTimecodeBCD *currentTimecode,
2276             /* [out] */ BMDDeckControlError *error) = 0;
2277         
2278         virtual HRESULT STDMETHODCALLTYPE SetPreroll( 
2279             /* [in] */ unsigned int prerollSeconds) = 0;
2280         
2281         virtual HRESULT STDMETHODCALLTYPE GetPreroll( 
2282             /* [out] */ unsigned int *prerollSeconds) = 0;
2283         
2284         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( 
2285             /* [in] */ int exportOffsetFields) = 0;
2286         
2287         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( 
2288             /* [out] */ int *exportOffsetFields) = 0;
2289         
2290         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( 
2291             /* [out] */ int *deckManualExportOffsetFields) = 0;
2292         
2293         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( 
2294             /* [in] */ int captureOffsetFields) = 0;
2295         
2296         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( 
2297             /* [out] */ int *captureOffsetFields) = 0;
2298         
2299         virtual HRESULT STDMETHODCALLTYPE StartExport( 
2300             /* [in] */ BMDTimecodeBCD inTimecode,
2301             /* [in] */ BMDTimecodeBCD outTimecode,
2302             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
2303             /* [out] */ BMDDeckControlError *error) = 0;
2304         
2305         virtual HRESULT STDMETHODCALLTYPE StartCapture( 
2306             /* [in] */ BOOL useVITC,
2307             /* [in] */ BMDTimecodeBCD inTimecode,
2308             /* [in] */ BMDTimecodeBCD outTimecode,
2309             /* [out] */ BMDDeckControlError *error) = 0;
2310         
2311         virtual HRESULT STDMETHODCALLTYPE GetDeviceID( 
2312             /* [out] */ unsigned short *deviceId,
2313             /* [out] */ BMDDeckControlError *error) = 0;
2314         
2315         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
2316         
2317         virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( 
2318             /* [out] */ BMDDeckControlError *error) = 0;
2319         
2320         virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( 
2321             /* [out] */ BMDDeckControlError *error) = 0;
2322         
2323         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
2324             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
2325         
2326     };
2327     
2328     
2329 #else   /* C style interface */
2330
2331     typedef struct IDeckLinkDeckControlVtbl
2332     {
2333         BEGIN_INTERFACE
2334         
2335         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2336             IDeckLinkDeckControl * This,
2337             /* [in] */ REFIID riid,
2338             /* [annotation][iid_is][out] */ 
2339             _COM_Outptr_  void **ppvObject);
2340         
2341         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2342             IDeckLinkDeckControl * This);
2343         
2344         ULONG ( STDMETHODCALLTYPE *Release )( 
2345             IDeckLinkDeckControl * This);
2346         
2347         HRESULT ( STDMETHODCALLTYPE *Open )( 
2348             IDeckLinkDeckControl * This,
2349             /* [in] */ BMDTimeScale timeScale,
2350             /* [in] */ BMDTimeValue timeValue,
2351             /* [in] */ BOOL timecodeIsDropFrame,
2352             /* [out] */ BMDDeckControlError *error);
2353         
2354         HRESULT ( STDMETHODCALLTYPE *Close )( 
2355             IDeckLinkDeckControl * This,
2356             /* [in] */ BOOL standbyOn);
2357         
2358         HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( 
2359             IDeckLinkDeckControl * This,
2360             /* [out] */ BMDDeckControlMode *mode,
2361             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
2362             /* [out] */ BMDDeckControlStatusFlags *flags);
2363         
2364         HRESULT ( STDMETHODCALLTYPE *SetStandby )( 
2365             IDeckLinkDeckControl * This,
2366             /* [in] */ BOOL standbyOn);
2367         
2368         HRESULT ( STDMETHODCALLTYPE *SendCommand )( 
2369             IDeckLinkDeckControl * This,
2370             /* [in] */ unsigned char *inBuffer,
2371             /* [in] */ unsigned int inBufferSize,
2372             /* [out] */ unsigned char *outBuffer,
2373             /* [out] */ unsigned int *outDataSize,
2374             /* [in] */ unsigned int outBufferSize,
2375             /* [out] */ BMDDeckControlError *error);
2376         
2377         HRESULT ( STDMETHODCALLTYPE *Play )( 
2378             IDeckLinkDeckControl * This,
2379             /* [out] */ BMDDeckControlError *error);
2380         
2381         HRESULT ( STDMETHODCALLTYPE *Stop )( 
2382             IDeckLinkDeckControl * This,
2383             /* [out] */ BMDDeckControlError *error);
2384         
2385         HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( 
2386             IDeckLinkDeckControl * This,
2387             /* [out] */ BMDDeckControlError *error);
2388         
2389         HRESULT ( STDMETHODCALLTYPE *Eject )( 
2390             IDeckLinkDeckControl * This,
2391             /* [out] */ BMDDeckControlError *error);
2392         
2393         HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( 
2394             IDeckLinkDeckControl * This,
2395             /* [in] */ BMDTimecodeBCD timecode,
2396             /* [out] */ BMDDeckControlError *error);
2397         
2398         HRESULT ( STDMETHODCALLTYPE *FastForward )( 
2399             IDeckLinkDeckControl * This,
2400             /* [in] */ BOOL viewTape,
2401             /* [out] */ BMDDeckControlError *error);
2402         
2403         HRESULT ( STDMETHODCALLTYPE *Rewind )( 
2404             IDeckLinkDeckControl * This,
2405             /* [in] */ BOOL viewTape,
2406             /* [out] */ BMDDeckControlError *error);
2407         
2408         HRESULT ( STDMETHODCALLTYPE *StepForward )( 
2409             IDeckLinkDeckControl * This,
2410             /* [out] */ BMDDeckControlError *error);
2411         
2412         HRESULT ( STDMETHODCALLTYPE *StepBack )( 
2413             IDeckLinkDeckControl * This,
2414             /* [out] */ BMDDeckControlError *error);
2415         
2416         HRESULT ( STDMETHODCALLTYPE *Jog )( 
2417             IDeckLinkDeckControl * This,
2418             /* [in] */ double rate,
2419             /* [out] */ BMDDeckControlError *error);
2420         
2421         HRESULT ( STDMETHODCALLTYPE *Shuttle )( 
2422             IDeckLinkDeckControl * This,
2423             /* [in] */ double rate,
2424             /* [out] */ BMDDeckControlError *error);
2425         
2426         HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( 
2427             IDeckLinkDeckControl * This,
2428             /* [out] */ BSTR *currentTimeCode,
2429             /* [out] */ BMDDeckControlError *error);
2430         
2431         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( 
2432             IDeckLinkDeckControl * This,
2433             /* [out] */ IDeckLinkTimecode **currentTimecode,
2434             /* [out] */ BMDDeckControlError *error);
2435         
2436         HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( 
2437             IDeckLinkDeckControl * This,
2438             /* [out] */ BMDTimecodeBCD *currentTimecode,
2439             /* [out] */ BMDDeckControlError *error);
2440         
2441         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( 
2442             IDeckLinkDeckControl * This,
2443             /* [in] */ unsigned int prerollSeconds);
2444         
2445         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( 
2446             IDeckLinkDeckControl * This,
2447             /* [out] */ unsigned int *prerollSeconds);
2448         
2449         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( 
2450             IDeckLinkDeckControl * This,
2451             /* [in] */ int exportOffsetFields);
2452         
2453         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( 
2454             IDeckLinkDeckControl * This,
2455             /* [out] */ int *exportOffsetFields);
2456         
2457         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( 
2458             IDeckLinkDeckControl * This,
2459             /* [out] */ int *deckManualExportOffsetFields);
2460         
2461         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( 
2462             IDeckLinkDeckControl * This,
2463             /* [in] */ int captureOffsetFields);
2464         
2465         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( 
2466             IDeckLinkDeckControl * This,
2467             /* [out] */ int *captureOffsetFields);
2468         
2469         HRESULT ( STDMETHODCALLTYPE *StartExport )( 
2470             IDeckLinkDeckControl * This,
2471             /* [in] */ BMDTimecodeBCD inTimecode,
2472             /* [in] */ BMDTimecodeBCD outTimecode,
2473             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
2474             /* [out] */ BMDDeckControlError *error);
2475         
2476         HRESULT ( STDMETHODCALLTYPE *StartCapture )( 
2477             IDeckLinkDeckControl * This,
2478             /* [in] */ BOOL useVITC,
2479             /* [in] */ BMDTimecodeBCD inTimecode,
2480             /* [in] */ BMDTimecodeBCD outTimecode,
2481             /* [out] */ BMDDeckControlError *error);
2482         
2483         HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( 
2484             IDeckLinkDeckControl * This,
2485             /* [out] */ unsigned short *deviceId,
2486             /* [out] */ BMDDeckControlError *error);
2487         
2488         HRESULT ( STDMETHODCALLTYPE *Abort )( 
2489             IDeckLinkDeckControl * This);
2490         
2491         HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( 
2492             IDeckLinkDeckControl * This,
2493             /* [out] */ BMDDeckControlError *error);
2494         
2495         HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( 
2496             IDeckLinkDeckControl * This,
2497             /* [out] */ BMDDeckControlError *error);
2498         
2499         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
2500             IDeckLinkDeckControl * This,
2501             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
2502         
2503         END_INTERFACE
2504     } IDeckLinkDeckControlVtbl;
2505
2506     interface IDeckLinkDeckControl
2507     {
2508         CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;
2509     };
2510
2511     
2512
2513 #ifdef COBJMACROS
2514
2515
2516 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject)        \
2517     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2518
2519 #define IDeckLinkDeckControl_AddRef(This)       \
2520     ( (This)->lpVtbl -> AddRef(This) ) 
2521
2522 #define IDeckLinkDeckControl_Release(This)      \
2523     ( (This)->lpVtbl -> Release(This) ) 
2524
2525
2526 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)   \
2527     ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) 
2528
2529 #define IDeckLinkDeckControl_Close(This,standbyOn)      \
2530     ( (This)->lpVtbl -> Close(This,standbyOn) ) 
2531
2532 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags)   \
2533     ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) 
2534
2535 #define IDeckLinkDeckControl_SetStandby(This,standbyOn) \
2536     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) 
2537
2538 #define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)  \
2539     ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) 
2540
2541 #define IDeckLinkDeckControl_Play(This,error)   \
2542     ( (This)->lpVtbl -> Play(This,error) ) 
2543
2544 #define IDeckLinkDeckControl_Stop(This,error)   \
2545     ( (This)->lpVtbl -> Stop(This,error) ) 
2546
2547 #define IDeckLinkDeckControl_TogglePlayStop(This,error) \
2548     ( (This)->lpVtbl -> TogglePlayStop(This,error) ) 
2549
2550 #define IDeckLinkDeckControl_Eject(This,error)  \
2551     ( (This)->lpVtbl -> Eject(This,error) ) 
2552
2553 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error)  \
2554     ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) 
2555
2556 #define IDeckLinkDeckControl_FastForward(This,viewTape,error)   \
2557     ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) 
2558
2559 #define IDeckLinkDeckControl_Rewind(This,viewTape,error)        \
2560     ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) 
2561
2562 #define IDeckLinkDeckControl_StepForward(This,error)    \
2563     ( (This)->lpVtbl -> StepForward(This,error) ) 
2564
2565 #define IDeckLinkDeckControl_StepBack(This,error)       \
2566     ( (This)->lpVtbl -> StepBack(This,error) ) 
2567
2568 #define IDeckLinkDeckControl_Jog(This,rate,error)       \
2569     ( (This)->lpVtbl -> Jog(This,rate,error) ) 
2570
2571 #define IDeckLinkDeckControl_Shuttle(This,rate,error)   \
2572     ( (This)->lpVtbl -> Shuttle(This,rate,error) ) 
2573
2574 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error)      \
2575     ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) 
2576
2577 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error)    \
2578     ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) 
2579
2580 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) \
2581     ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) 
2582
2583 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds)    \
2584     ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) 
2585
2586 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds)    \
2587     ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) 
2588
2589 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields)   \
2590     ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) 
2591
2592 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields)   \
2593     ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) 
2594
2595 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields)   \
2596     ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) 
2597
2598 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) \
2599     ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) 
2600
2601 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) \
2602     ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) 
2603
2604 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error)       \
2605     ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) 
2606
2607 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error)    \
2608     ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) 
2609
2610 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error)   \
2611     ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) 
2612
2613 #define IDeckLinkDeckControl_Abort(This)        \
2614     ( (This)->lpVtbl -> Abort(This) ) 
2615
2616 #define IDeckLinkDeckControl_CrashRecordStart(This,error)       \
2617     ( (This)->lpVtbl -> CrashRecordStart(This,error) ) 
2618
2619 #define IDeckLinkDeckControl_CrashRecordStop(This,error)        \
2620     ( (This)->lpVtbl -> CrashRecordStop(This,error) ) 
2621
2622 #define IDeckLinkDeckControl_SetCallback(This,callback) \
2623     ( (This)->lpVtbl -> SetCallback(This,callback) ) 
2624
2625 #endif /* COBJMACROS */
2626
2627
2628 #endif  /* C style interface */
2629
2630
2631
2632
2633 #endif  /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */
2634
2635
2636 #ifndef __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
2637 #define __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
2638
2639 /* interface IBMDStreamingDeviceNotificationCallback */
2640 /* [helpstring][uuid][object] */ 
2641
2642
2643 EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;
2644
2645 #if defined(__cplusplus) && !defined(CINTERFACE)
2646     
2647     MIDL_INTERFACE("F9531D64-3305-4B29-A387-7F74BB0D0E84")
2648     IBMDStreamingDeviceNotificationCallback : public IUnknown
2649     {
2650     public:
2651         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived( 
2652             /* [in] */ IDeckLink *device) = 0;
2653         
2654         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved( 
2655             /* [in] */ IDeckLink *device) = 0;
2656         
2657         virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged( 
2658             /* [in] */ IDeckLink *device,
2659             /* [in] */ BMDStreamingDeviceMode mode) = 0;
2660         
2661     };
2662     
2663     
2664 #else   /* C style interface */
2665
2666     typedef struct IBMDStreamingDeviceNotificationCallbackVtbl
2667     {
2668         BEGIN_INTERFACE
2669         
2670         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2671             IBMDStreamingDeviceNotificationCallback * This,
2672             /* [in] */ REFIID riid,
2673             /* [annotation][iid_is][out] */ 
2674             _COM_Outptr_  void **ppvObject);
2675         
2676         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2677             IBMDStreamingDeviceNotificationCallback * This);
2678         
2679         ULONG ( STDMETHODCALLTYPE *Release )( 
2680             IBMDStreamingDeviceNotificationCallback * This);
2681         
2682         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceArrived )( 
2683             IBMDStreamingDeviceNotificationCallback * This,
2684             /* [in] */ IDeckLink *device);
2685         
2686         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceRemoved )( 
2687             IBMDStreamingDeviceNotificationCallback * This,
2688             /* [in] */ IDeckLink *device);
2689         
2690         HRESULT ( STDMETHODCALLTYPE *StreamingDeviceModeChanged )( 
2691             IBMDStreamingDeviceNotificationCallback * This,
2692             /* [in] */ IDeckLink *device,
2693             /* [in] */ BMDStreamingDeviceMode mode);
2694         
2695         END_INTERFACE
2696     } IBMDStreamingDeviceNotificationCallbackVtbl;
2697
2698     interface IBMDStreamingDeviceNotificationCallback
2699     {
2700         CONST_VTBL struct IBMDStreamingDeviceNotificationCallbackVtbl *lpVtbl;
2701     };
2702
2703     
2704
2705 #ifdef COBJMACROS
2706
2707
2708 #define IBMDStreamingDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)     \
2709     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2710
2711 #define IBMDStreamingDeviceNotificationCallback_AddRef(This)    \
2712     ( (This)->lpVtbl -> AddRef(This) ) 
2713
2714 #define IBMDStreamingDeviceNotificationCallback_Release(This)   \
2715     ( (This)->lpVtbl -> Release(This) ) 
2716
2717
2718 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(This,device)     \
2719     ( (This)->lpVtbl -> StreamingDeviceArrived(This,device) ) 
2720
2721 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(This,device)     \
2722     ( (This)->lpVtbl -> StreamingDeviceRemoved(This,device) ) 
2723
2724 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(This,device,mode)    \
2725     ( (This)->lpVtbl -> StreamingDeviceModeChanged(This,device,mode) ) 
2726
2727 #endif /* COBJMACROS */
2728
2729
2730 #endif  /* C style interface */
2731
2732
2733
2734
2735 #endif  /* __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ */
2736
2737
2738 #ifndef __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
2739 #define __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
2740
2741 /* interface IBMDStreamingH264InputCallback */
2742 /* [helpstring][uuid][object] */ 
2743
2744
2745 EXTERN_C const IID IID_IBMDStreamingH264InputCallback;
2746
2747 #if defined(__cplusplus) && !defined(CINTERFACE)
2748     
2749     MIDL_INTERFACE("823C475F-55AE-46F9-890C-537CC5CEDCCA")
2750     IBMDStreamingH264InputCallback : public IUnknown
2751     {
2752     public:
2753         virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived( 
2754             /* [in] */ IBMDStreamingH264NALPacket *nalPacket) = 0;
2755         
2756         virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived( 
2757             /* [in] */ IBMDStreamingAudioPacket *audioPacket) = 0;
2758         
2759         virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived( 
2760             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket) = 0;
2761         
2762         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorScanningChanged( void) = 0;
2763         
2764         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorChanged( void) = 0;
2765         
2766         virtual HRESULT STDMETHODCALLTYPE H264VideoInputModeChanged( void) = 0;
2767         
2768     };
2769     
2770     
2771 #else   /* C style interface */
2772
2773     typedef struct IBMDStreamingH264InputCallbackVtbl
2774     {
2775         BEGIN_INTERFACE
2776         
2777         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2778             IBMDStreamingH264InputCallback * This,
2779             /* [in] */ REFIID riid,
2780             /* [annotation][iid_is][out] */ 
2781             _COM_Outptr_  void **ppvObject);
2782         
2783         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2784             IBMDStreamingH264InputCallback * This);
2785         
2786         ULONG ( STDMETHODCALLTYPE *Release )( 
2787             IBMDStreamingH264InputCallback * This);
2788         
2789         HRESULT ( STDMETHODCALLTYPE *H264NALPacketArrived )( 
2790             IBMDStreamingH264InputCallback * This,
2791             /* [in] */ IBMDStreamingH264NALPacket *nalPacket);
2792         
2793         HRESULT ( STDMETHODCALLTYPE *H264AudioPacketArrived )( 
2794             IBMDStreamingH264InputCallback * This,
2795             /* [in] */ IBMDStreamingAudioPacket *audioPacket);
2796         
2797         HRESULT ( STDMETHODCALLTYPE *MPEG2TSPacketArrived )( 
2798             IBMDStreamingH264InputCallback * This,
2799             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket);
2800         
2801         HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged )( 
2802             IBMDStreamingH264InputCallback * This);
2803         
2804         HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorChanged )( 
2805             IBMDStreamingH264InputCallback * This);
2806         
2807         HRESULT ( STDMETHODCALLTYPE *H264VideoInputModeChanged )( 
2808             IBMDStreamingH264InputCallback * This);
2809         
2810         END_INTERFACE
2811     } IBMDStreamingH264InputCallbackVtbl;
2812
2813     interface IBMDStreamingH264InputCallback
2814     {
2815         CONST_VTBL struct IBMDStreamingH264InputCallbackVtbl *lpVtbl;
2816     };
2817
2818     
2819
2820 #ifdef COBJMACROS
2821
2822
2823 #define IBMDStreamingH264InputCallback_QueryInterface(This,riid,ppvObject)      \
2824     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2825
2826 #define IBMDStreamingH264InputCallback_AddRef(This)     \
2827     ( (This)->lpVtbl -> AddRef(This) ) 
2828
2829 #define IBMDStreamingH264InputCallback_Release(This)    \
2830     ( (This)->lpVtbl -> Release(This) ) 
2831
2832
2833 #define IBMDStreamingH264InputCallback_H264NALPacketArrived(This,nalPacket)     \
2834     ( (This)->lpVtbl -> H264NALPacketArrived(This,nalPacket) ) 
2835
2836 #define IBMDStreamingH264InputCallback_H264AudioPacketArrived(This,audioPacket) \
2837     ( (This)->lpVtbl -> H264AudioPacketArrived(This,audioPacket) ) 
2838
2839 #define IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(This,tsPacket)      \
2840     ( (This)->lpVtbl -> MPEG2TSPacketArrived(This,tsPacket) ) 
2841
2842 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(This)     \
2843     ( (This)->lpVtbl -> H264VideoInputConnectorScanningChanged(This) ) 
2844
2845 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(This)     \
2846     ( (This)->lpVtbl -> H264VideoInputConnectorChanged(This) ) 
2847
2848 #define IBMDStreamingH264InputCallback_H264VideoInputModeChanged(This)  \
2849     ( (This)->lpVtbl -> H264VideoInputModeChanged(This) ) 
2850
2851 #endif /* COBJMACROS */
2852
2853
2854 #endif  /* C style interface */
2855
2856
2857
2858
2859 #endif  /* __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ */
2860
2861
2862 #ifndef __IBMDStreamingDiscovery_INTERFACE_DEFINED__
2863 #define __IBMDStreamingDiscovery_INTERFACE_DEFINED__
2864
2865 /* interface IBMDStreamingDiscovery */
2866 /* [helpstring][uuid][object] */ 
2867
2868
2869 EXTERN_C const IID IID_IBMDStreamingDiscovery;
2870
2871 #if defined(__cplusplus) && !defined(CINTERFACE)
2872     
2873     MIDL_INTERFACE("2C837444-F989-4D87-901A-47C8A36D096D")
2874     IBMDStreamingDiscovery : public IUnknown
2875     {
2876     public:
2877         virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( 
2878             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback) = 0;
2879         
2880         virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;
2881         
2882     };
2883     
2884     
2885 #else   /* C style interface */
2886
2887     typedef struct IBMDStreamingDiscoveryVtbl
2888     {
2889         BEGIN_INTERFACE
2890         
2891         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2892             IBMDStreamingDiscovery * This,
2893             /* [in] */ REFIID riid,
2894             /* [annotation][iid_is][out] */ 
2895             _COM_Outptr_  void **ppvObject);
2896         
2897         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2898             IBMDStreamingDiscovery * This);
2899         
2900         ULONG ( STDMETHODCALLTYPE *Release )( 
2901             IBMDStreamingDiscovery * This);
2902         
2903         HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )( 
2904             IBMDStreamingDiscovery * This,
2905             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback);
2906         
2907         HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )( 
2908             IBMDStreamingDiscovery * This);
2909         
2910         END_INTERFACE
2911     } IBMDStreamingDiscoveryVtbl;
2912
2913     interface IBMDStreamingDiscovery
2914     {
2915         CONST_VTBL struct IBMDStreamingDiscoveryVtbl *lpVtbl;
2916     };
2917
2918     
2919
2920 #ifdef COBJMACROS
2921
2922
2923 #define IBMDStreamingDiscovery_QueryInterface(This,riid,ppvObject)      \
2924     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2925
2926 #define IBMDStreamingDiscovery_AddRef(This)     \
2927     ( (This)->lpVtbl -> AddRef(This) ) 
2928
2929 #define IBMDStreamingDiscovery_Release(This)    \
2930     ( (This)->lpVtbl -> Release(This) ) 
2931
2932
2933 #define IBMDStreamingDiscovery_InstallDeviceNotifications(This,theCallback)     \
2934     ( (This)->lpVtbl -> InstallDeviceNotifications(This,theCallback) ) 
2935
2936 #define IBMDStreamingDiscovery_UninstallDeviceNotifications(This)       \
2937     ( (This)->lpVtbl -> UninstallDeviceNotifications(This) ) 
2938
2939 #endif /* COBJMACROS */
2940
2941
2942 #endif  /* C style interface */
2943
2944
2945
2946
2947 #endif  /* __IBMDStreamingDiscovery_INTERFACE_DEFINED__ */
2948
2949
2950 #ifndef __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
2951 #define __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
2952
2953 /* interface IBMDStreamingVideoEncodingMode */
2954 /* [helpstring][uuid][object] */ 
2955
2956
2957 EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;
2958
2959 #if defined(__cplusplus) && !defined(CINTERFACE)
2960     
2961     MIDL_INTERFACE("1AB8035B-CD13-458D-B6DF-5E8F7C2141D9")
2962     IBMDStreamingVideoEncodingMode : public IUnknown
2963     {
2964     public:
2965         virtual HRESULT STDMETHODCALLTYPE GetName( 
2966             /* [out] */ BSTR *name) = 0;
2967         
2968         virtual unsigned int STDMETHODCALLTYPE GetPresetID( void) = 0;
2969         
2970         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionX( void) = 0;
2971         
2972         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionY( void) = 0;
2973         
2974         virtual unsigned int STDMETHODCALLTYPE GetSourceWidth( void) = 0;
2975         
2976         virtual unsigned int STDMETHODCALLTYPE GetSourceHeight( void) = 0;
2977         
2978         virtual unsigned int STDMETHODCALLTYPE GetDestWidth( void) = 0;
2979         
2980         virtual unsigned int STDMETHODCALLTYPE GetDestHeight( void) = 0;
2981         
2982         virtual HRESULT STDMETHODCALLTYPE GetFlag( 
2983             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2984             /* [out] */ BOOL *value) = 0;
2985         
2986         virtual HRESULT STDMETHODCALLTYPE GetInt( 
2987             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2988             /* [out] */ LONGLONG *value) = 0;
2989         
2990         virtual HRESULT STDMETHODCALLTYPE GetFloat( 
2991             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2992             /* [out] */ double *value) = 0;
2993         
2994         virtual HRESULT STDMETHODCALLTYPE GetString( 
2995             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2996             /* [out] */ BSTR *value) = 0;
2997         
2998         virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode( 
2999             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode) = 0;
3000         
3001     };
3002     
3003     
3004 #else   /* C style interface */
3005
3006     typedef struct IBMDStreamingVideoEncodingModeVtbl
3007     {
3008         BEGIN_INTERFACE
3009         
3010         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3011             IBMDStreamingVideoEncodingMode * This,
3012             /* [in] */ REFIID riid,
3013             /* [annotation][iid_is][out] */ 
3014             _COM_Outptr_  void **ppvObject);
3015         
3016         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3017             IBMDStreamingVideoEncodingMode * This);
3018         
3019         ULONG ( STDMETHODCALLTYPE *Release )( 
3020             IBMDStreamingVideoEncodingMode * This);
3021         
3022         HRESULT ( STDMETHODCALLTYPE *GetName )( 
3023             IBMDStreamingVideoEncodingMode * This,
3024             /* [out] */ BSTR *name);
3025         
3026         unsigned int ( STDMETHODCALLTYPE *GetPresetID )( 
3027             IBMDStreamingVideoEncodingMode * This);
3028         
3029         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )( 
3030             IBMDStreamingVideoEncodingMode * This);
3031         
3032         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )( 
3033             IBMDStreamingVideoEncodingMode * This);
3034         
3035         unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )( 
3036             IBMDStreamingVideoEncodingMode * This);
3037         
3038         unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )( 
3039             IBMDStreamingVideoEncodingMode * This);
3040         
3041         unsigned int ( STDMETHODCALLTYPE *GetDestWidth )( 
3042             IBMDStreamingVideoEncodingMode * This);
3043         
3044         unsigned int ( STDMETHODCALLTYPE *GetDestHeight )( 
3045             IBMDStreamingVideoEncodingMode * This);
3046         
3047         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
3048             IBMDStreamingVideoEncodingMode * This,
3049             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3050             /* [out] */ BOOL *value);
3051         
3052         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
3053             IBMDStreamingVideoEncodingMode * This,
3054             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3055             /* [out] */ LONGLONG *value);
3056         
3057         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
3058             IBMDStreamingVideoEncodingMode * This,
3059             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3060             /* [out] */ double *value);
3061         
3062         HRESULT ( STDMETHODCALLTYPE *GetString )( 
3063             IBMDStreamingVideoEncodingMode * This,
3064             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3065             /* [out] */ BSTR *value);
3066         
3067         HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )( 
3068             IBMDStreamingVideoEncodingMode * This,
3069             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
3070         
3071         END_INTERFACE
3072     } IBMDStreamingVideoEncodingModeVtbl;
3073
3074     interface IBMDStreamingVideoEncodingMode
3075     {
3076         CONST_VTBL struct IBMDStreamingVideoEncodingModeVtbl *lpVtbl;
3077     };
3078
3079     
3080
3081 #ifdef COBJMACROS
3082
3083
3084 #define IBMDStreamingVideoEncodingMode_QueryInterface(This,riid,ppvObject)      \
3085     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3086
3087 #define IBMDStreamingVideoEncodingMode_AddRef(This)     \
3088     ( (This)->lpVtbl -> AddRef(This) ) 
3089
3090 #define IBMDStreamingVideoEncodingMode_Release(This)    \
3091     ( (This)->lpVtbl -> Release(This) ) 
3092
3093
3094 #define IBMDStreamingVideoEncodingMode_GetName(This,name)       \
3095     ( (This)->lpVtbl -> GetName(This,name) ) 
3096
3097 #define IBMDStreamingVideoEncodingMode_GetPresetID(This)        \
3098     ( (This)->lpVtbl -> GetPresetID(This) ) 
3099
3100 #define IBMDStreamingVideoEncodingMode_GetSourcePositionX(This) \
3101     ( (This)->lpVtbl -> GetSourcePositionX(This) ) 
3102
3103 #define IBMDStreamingVideoEncodingMode_GetSourcePositionY(This) \
3104     ( (This)->lpVtbl -> GetSourcePositionY(This) ) 
3105
3106 #define IBMDStreamingVideoEncodingMode_GetSourceWidth(This)     \
3107     ( (This)->lpVtbl -> GetSourceWidth(This) ) 
3108
3109 #define IBMDStreamingVideoEncodingMode_GetSourceHeight(This)    \
3110     ( (This)->lpVtbl -> GetSourceHeight(This) ) 
3111
3112 #define IBMDStreamingVideoEncodingMode_GetDestWidth(This)       \
3113     ( (This)->lpVtbl -> GetDestWidth(This) ) 
3114
3115 #define IBMDStreamingVideoEncodingMode_GetDestHeight(This)      \
3116     ( (This)->lpVtbl -> GetDestHeight(This) ) 
3117
3118 #define IBMDStreamingVideoEncodingMode_GetFlag(This,cfgID,value)        \
3119     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
3120
3121 #define IBMDStreamingVideoEncodingMode_GetInt(This,cfgID,value) \
3122     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
3123
3124 #define IBMDStreamingVideoEncodingMode_GetFloat(This,cfgID,value)       \
3125     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
3126
3127 #define IBMDStreamingVideoEncodingMode_GetString(This,cfgID,value)      \
3128     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
3129
3130 #define IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)     \
3131     ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) ) 
3132
3133 #endif /* COBJMACROS */
3134
3135
3136 #endif  /* C style interface */
3137
3138
3139
3140
3141 #endif  /* __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ */
3142
3143
3144 #ifndef __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
3145 #define __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
3146
3147 /* interface IBMDStreamingMutableVideoEncodingMode */
3148 /* [helpstring][uuid][object] */ 
3149
3150
3151 EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
3152
3153 #if defined(__cplusplus) && !defined(CINTERFACE)
3154     
3155     MIDL_INTERFACE("19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D")
3156     IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode
3157     {
3158     public:
3159         virtual HRESULT STDMETHODCALLTYPE SetSourceRect( 
3160             /* [in] */ unsigned int posX,
3161             /* [in] */ unsigned int posY,
3162             /* [in] */ unsigned int width,
3163             /* [in] */ unsigned int height) = 0;
3164         
3165         virtual HRESULT STDMETHODCALLTYPE SetDestSize( 
3166             /* [in] */ unsigned int width,
3167             /* [in] */ unsigned int height) = 0;
3168         
3169         virtual HRESULT STDMETHODCALLTYPE SetFlag( 
3170             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3171             /* [in] */ BOOL value) = 0;
3172         
3173         virtual HRESULT STDMETHODCALLTYPE SetInt( 
3174             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3175             /* [in] */ LONGLONG value) = 0;
3176         
3177         virtual HRESULT STDMETHODCALLTYPE SetFloat( 
3178             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3179             /* [in] */ double value) = 0;
3180         
3181         virtual HRESULT STDMETHODCALLTYPE SetString( 
3182             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3183             /* [in] */ BSTR value) = 0;
3184         
3185     };
3186     
3187     
3188 #else   /* C style interface */
3189
3190     typedef struct IBMDStreamingMutableVideoEncodingModeVtbl
3191     {
3192         BEGIN_INTERFACE
3193         
3194         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3195             IBMDStreamingMutableVideoEncodingMode * This,
3196             /* [in] */ REFIID riid,
3197             /* [annotation][iid_is][out] */ 
3198             _COM_Outptr_  void **ppvObject);
3199         
3200         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3201             IBMDStreamingMutableVideoEncodingMode * This);
3202         
3203         ULONG ( STDMETHODCALLTYPE *Release )( 
3204             IBMDStreamingMutableVideoEncodingMode * This);
3205         
3206         HRESULT ( STDMETHODCALLTYPE *GetName )( 
3207             IBMDStreamingMutableVideoEncodingMode * This,
3208             /* [out] */ BSTR *name);
3209         
3210         unsigned int ( STDMETHODCALLTYPE *GetPresetID )( 
3211             IBMDStreamingMutableVideoEncodingMode * This);
3212         
3213         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )( 
3214             IBMDStreamingMutableVideoEncodingMode * This);
3215         
3216         unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )( 
3217             IBMDStreamingMutableVideoEncodingMode * This);
3218         
3219         unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )( 
3220             IBMDStreamingMutableVideoEncodingMode * This);
3221         
3222         unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )( 
3223             IBMDStreamingMutableVideoEncodingMode * This);
3224         
3225         unsigned int ( STDMETHODCALLTYPE *GetDestWidth )( 
3226             IBMDStreamingMutableVideoEncodingMode * This);
3227         
3228         unsigned int ( STDMETHODCALLTYPE *GetDestHeight )( 
3229             IBMDStreamingMutableVideoEncodingMode * This);
3230         
3231         HRESULT ( STDMETHODCALLTYPE *GetFlag )( 
3232             IBMDStreamingMutableVideoEncodingMode * This,
3233             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3234             /* [out] */ BOOL *value);
3235         
3236         HRESULT ( STDMETHODCALLTYPE *GetInt )( 
3237             IBMDStreamingMutableVideoEncodingMode * This,
3238             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3239             /* [out] */ LONGLONG *value);
3240         
3241         HRESULT ( STDMETHODCALLTYPE *GetFloat )( 
3242             IBMDStreamingMutableVideoEncodingMode * This,
3243             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3244             /* [out] */ double *value);
3245         
3246         HRESULT ( STDMETHODCALLTYPE *GetString )( 
3247             IBMDStreamingMutableVideoEncodingMode * This,
3248             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3249             /* [out] */ BSTR *value);
3250         
3251         HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )( 
3252             IBMDStreamingMutableVideoEncodingMode * This,
3253             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
3254         
3255         HRESULT ( STDMETHODCALLTYPE *SetSourceRect )( 
3256             IBMDStreamingMutableVideoEncodingMode * This,
3257             /* [in] */ unsigned int posX,
3258             /* [in] */ unsigned int posY,
3259             /* [in] */ unsigned int width,
3260             /* [in] */ unsigned int height);
3261         
3262         HRESULT ( STDMETHODCALLTYPE *SetDestSize )( 
3263             IBMDStreamingMutableVideoEncodingMode * This,
3264             /* [in] */ unsigned int width,
3265             /* [in] */ unsigned int height);
3266         
3267         HRESULT ( STDMETHODCALLTYPE *SetFlag )( 
3268             IBMDStreamingMutableVideoEncodingMode * This,
3269             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3270             /* [in] */ BOOL value);
3271         
3272         HRESULT ( STDMETHODCALLTYPE *SetInt )( 
3273             IBMDStreamingMutableVideoEncodingMode * This,
3274             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3275             /* [in] */ LONGLONG value);
3276         
3277         HRESULT ( STDMETHODCALLTYPE *SetFloat )( 
3278             IBMDStreamingMutableVideoEncodingMode * This,
3279             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3280             /* [in] */ double value);
3281         
3282         HRESULT ( STDMETHODCALLTYPE *SetString )( 
3283             IBMDStreamingMutableVideoEncodingMode * This,
3284             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3285             /* [in] */ BSTR value);
3286         
3287         END_INTERFACE
3288     } IBMDStreamingMutableVideoEncodingModeVtbl;
3289
3290     interface IBMDStreamingMutableVideoEncodingMode
3291     {
3292         CONST_VTBL struct IBMDStreamingMutableVideoEncodingModeVtbl *lpVtbl;
3293     };
3294
3295     
3296
3297 #ifdef COBJMACROS
3298
3299
3300 #define IBMDStreamingMutableVideoEncodingMode_QueryInterface(This,riid,ppvObject)       \
3301     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3302
3303 #define IBMDStreamingMutableVideoEncodingMode_AddRef(This)      \
3304     ( (This)->lpVtbl -> AddRef(This) ) 
3305
3306 #define IBMDStreamingMutableVideoEncodingMode_Release(This)     \
3307     ( (This)->lpVtbl -> Release(This) ) 
3308
3309
3310 #define IBMDStreamingMutableVideoEncodingMode_GetName(This,name)        \
3311     ( (This)->lpVtbl -> GetName(This,name) ) 
3312
3313 #define IBMDStreamingMutableVideoEncodingMode_GetPresetID(This) \
3314     ( (This)->lpVtbl -> GetPresetID(This) ) 
3315
3316 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(This)  \
3317     ( (This)->lpVtbl -> GetSourcePositionX(This) ) 
3318
3319 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(This)  \
3320     ( (This)->lpVtbl -> GetSourcePositionY(This) ) 
3321
3322 #define IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(This)      \
3323     ( (This)->lpVtbl -> GetSourceWidth(This) ) 
3324
3325 #define IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(This)     \
3326     ( (This)->lpVtbl -> GetSourceHeight(This) ) 
3327
3328 #define IBMDStreamingMutableVideoEncodingMode_GetDestWidth(This)        \
3329     ( (This)->lpVtbl -> GetDestWidth(This) ) 
3330
3331 #define IBMDStreamingMutableVideoEncodingMode_GetDestHeight(This)       \
3332     ( (This)->lpVtbl -> GetDestHeight(This) ) 
3333
3334 #define IBMDStreamingMutableVideoEncodingMode_GetFlag(This,cfgID,value) \
3335     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) 
3336
3337 #define IBMDStreamingMutableVideoEncodingMode_GetInt(This,cfgID,value)  \
3338     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) 
3339
3340 #define IBMDStreamingMutableVideoEncodingMode_GetFloat(This,cfgID,value)        \
3341     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) 
3342
3343 #define IBMDStreamingMutableVideoEncodingMode_GetString(This,cfgID,value)       \
3344     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) 
3345
3346 #define IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)      \
3347     ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) ) 
3348
3349
3350 #define IBMDStreamingMutableVideoEncodingMode_SetSourceRect(This,posX,posY,width,height)        \
3351     ( (This)->lpVtbl -> SetSourceRect(This,posX,posY,width,height) ) 
3352
3353 #define IBMDStreamingMutableVideoEncodingMode_SetDestSize(This,width,height)    \
3354     ( (This)->lpVtbl -> SetDestSize(This,width,height) ) 
3355
3356 #define IBMDStreamingMutableVideoEncodingMode_SetFlag(This,cfgID,value) \
3357     ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) 
3358
3359 #define IBMDStreamingMutableVideoEncodingMode_SetInt(This,cfgID,value)  \
3360     ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) 
3361
3362 #define IBMDStreamingMutableVideoEncodingMode_SetFloat(This,cfgID,value)        \
3363     ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) 
3364
3365 #define IBMDStreamingMutableVideoEncodingMode_SetString(This,cfgID,value)       \
3366     ( (This)->lpVtbl -> SetString(This,cfgID,value) ) 
3367
3368 #endif /* COBJMACROS */
3369
3370
3371 #endif  /* C style interface */
3372
3373
3374
3375
3376 #endif  /* __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ */
3377
3378
3379 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
3380 #define __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
3381
3382 /* interface IBMDStreamingVideoEncodingModePresetIterator */
3383 /* [helpstring][uuid][object] */ 
3384
3385
3386 EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;
3387
3388 #if defined(__cplusplus) && !defined(CINTERFACE)
3389     
3390     MIDL_INTERFACE("7AC731A3-C950-4AD0-804A-8377AA51C6C4")
3391     IBMDStreamingVideoEncodingModePresetIterator : public IUnknown
3392     {
3393     public:
3394         virtual HRESULT STDMETHODCALLTYPE Next( 
3395             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode) = 0;
3396         
3397     };
3398     
3399     
3400 #else   /* C style interface */
3401
3402     typedef struct IBMDStreamingVideoEncodingModePresetIteratorVtbl
3403     {
3404         BEGIN_INTERFACE
3405         
3406         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3407             IBMDStreamingVideoEncodingModePresetIterator * This,
3408             /* [in] */ REFIID riid,
3409             /* [annotation][iid_is][out] */ 
3410             _COM_Outptr_  void **ppvObject);
3411         
3412         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3413             IBMDStreamingVideoEncodingModePresetIterator * This);
3414         
3415         ULONG ( STDMETHODCALLTYPE *Release )( 
3416             IBMDStreamingVideoEncodingModePresetIterator * This);
3417         
3418         HRESULT ( STDMETHODCALLTYPE *Next )( 
3419             IBMDStreamingVideoEncodingModePresetIterator * This,
3420             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode);
3421         
3422         END_INTERFACE
3423     } IBMDStreamingVideoEncodingModePresetIteratorVtbl;
3424
3425     interface IBMDStreamingVideoEncodingModePresetIterator
3426     {
3427         CONST_VTBL struct IBMDStreamingVideoEncodingModePresetIteratorVtbl *lpVtbl;
3428     };
3429
3430     
3431
3432 #ifdef COBJMACROS
3433
3434
3435 #define IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(This,riid,ppvObject)        \
3436     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3437
3438 #define IBMDStreamingVideoEncodingModePresetIterator_AddRef(This)       \
3439     ( (This)->lpVtbl -> AddRef(This) ) 
3440
3441 #define IBMDStreamingVideoEncodingModePresetIterator_Release(This)      \
3442     ( (This)->lpVtbl -> Release(This) ) 
3443
3444
3445 #define IBMDStreamingVideoEncodingModePresetIterator_Next(This,videoEncodingMode)       \
3446     ( (This)->lpVtbl -> Next(This,videoEncodingMode) ) 
3447
3448 #endif /* COBJMACROS */
3449
3450
3451 #endif  /* C style interface */
3452
3453
3454
3455
3456 #endif  /* __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ */
3457
3458
3459 #ifndef __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
3460 #define __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
3461
3462 /* interface IBMDStreamingDeviceInput */
3463 /* [helpstring][uuid][object] */ 
3464
3465
3466 EXTERN_C const IID IID_IBMDStreamingDeviceInput;
3467
3468 #if defined(__cplusplus) && !defined(CINTERFACE)
3469     
3470     MIDL_INTERFACE("24B6B6EC-1727-44BB-9818-34FF086ACF98")
3471     IBMDStreamingDeviceInput : public IUnknown
3472     {
3473     public:
3474         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode( 
3475             /* [in] */ BMDDisplayMode inputMode,
3476             /* [out] */ BOOL *result) = 0;
3477         
3478         virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator( 
3479             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
3480         
3481         virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode( 
3482             /* [in] */ BMDDisplayMode inputMode) = 0;
3483         
3484         virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode( 
3485             /* [out] */ BMDDisplayMode *detectedMode) = 0;
3486         
3487         virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode( 
3488             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode) = 0;
3489         
3490         virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator( 
3491             /* [in] */ BMDDisplayMode inputMode,
3492             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator) = 0;
3493         
3494         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode( 
3495             /* [in] */ BMDDisplayMode inputMode,
3496             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
3497             /* [out] */ BMDStreamingEncodingSupport *result,
3498             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode) = 0;
3499         
3500         virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode( 
3501             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode) = 0;
3502         
3503         virtual HRESULT STDMETHODCALLTYPE StartCapture( void) = 0;
3504         
3505         virtual HRESULT STDMETHODCALLTYPE StopCapture( void) = 0;
3506         
3507         virtual HRESULT STDMETHODCALLTYPE SetCallback( 
3508             /* [in] */ IUnknown *theCallback) = 0;
3509         
3510     };
3511     
3512     
3513 #else   /* C style interface */
3514
3515     typedef struct IBMDStreamingDeviceInputVtbl
3516     {
3517         BEGIN_INTERFACE
3518         
3519         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3520             IBMDStreamingDeviceInput * This,
3521             /* [in] */ REFIID riid,
3522             /* [annotation][iid_is][out] */ 
3523             _COM_Outptr_  void **ppvObject);
3524         
3525         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3526             IBMDStreamingDeviceInput * This);
3527         
3528         ULONG ( STDMETHODCALLTYPE *Release )( 
3529             IBMDStreamingDeviceInput * This);
3530         
3531         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoInputMode )( 
3532             IBMDStreamingDeviceInput * This,
3533             /* [in] */ BMDDisplayMode inputMode,
3534             /* [out] */ BOOL *result);
3535         
3536         HRESULT ( STDMETHODCALLTYPE *GetVideoInputModeIterator )( 
3537             IBMDStreamingDeviceInput * This,
3538             /* [out] */ IDeckLinkDisplayModeIterator **iterator);
3539         
3540         HRESULT ( STDMETHODCALLTYPE *SetVideoInputMode )( 
3541             IBMDStreamingDeviceInput * This,
3542             /* [in] */ BMDDisplayMode inputMode);
3543         
3544         HRESULT ( STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode )( 
3545             IBMDStreamingDeviceInput * This,
3546             /* [out] */ BMDDisplayMode *detectedMode);
3547         
3548         HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingMode )( 
3549             IBMDStreamingDeviceInput * This,
3550             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode);
3551         
3552         HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator )( 
3553             IBMDStreamingDeviceInput * This,
3554             /* [in] */ BMDDisplayMode inputMode,
3555             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator);
3556         
3557         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoEncodingMode )( 
3558             IBMDStreamingDeviceInput * This,
3559             /* [in] */ BMDDisplayMode inputMode,
3560             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
3561             /* [out] */ BMDStreamingEncodingSupport *result,
3562             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode);
3563         
3564         HRESULT ( STDMETHODCALLTYPE *SetVideoEncodingMode )( 
3565             IBMDStreamingDeviceInput * This,
3566             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode);
3567         
3568         HRESULT ( STDMETHODCALLTYPE *StartCapture )( 
3569             IBMDStreamingDeviceInput * This);
3570         
3571         HRESULT ( STDMETHODCALLTYPE *StopCapture )( 
3572             IBMDStreamingDeviceInput * This);
3573         
3574         HRESULT ( STDMETHODCALLTYPE *SetCallback )( 
3575             IBMDStreamingDeviceInput * This,
3576             /* [in] */ IUnknown *theCallback);
3577         
3578         END_INTERFACE
3579     } IBMDStreamingDeviceInputVtbl;
3580
3581     interface IBMDStreamingDeviceInput
3582     {
3583         CONST_VTBL struct IBMDStreamingDeviceInputVtbl *lpVtbl;
3584     };
3585
3586     
3587
3588 #ifdef COBJMACROS
3589
3590
3591 #define IBMDStreamingDeviceInput_QueryInterface(This,riid,ppvObject)    \
3592     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3593
3594 #define IBMDStreamingDeviceInput_AddRef(This)   \
3595     ( (This)->lpVtbl -> AddRef(This) ) 
3596
3597 #define IBMDStreamingDeviceInput_Release(This)  \
3598     ( (This)->lpVtbl -> Release(This) ) 
3599
3600
3601 #define IBMDStreamingDeviceInput_DoesSupportVideoInputMode(This,inputMode,result)       \
3602     ( (This)->lpVtbl -> DoesSupportVideoInputMode(This,inputMode,result) ) 
3603
3604 #define IBMDStreamingDeviceInput_GetVideoInputModeIterator(This,iterator)       \
3605     ( (This)->lpVtbl -> GetVideoInputModeIterator(This,iterator) ) 
3606
3607 #define IBMDStreamingDeviceInput_SetVideoInputMode(This,inputMode)      \
3608     ( (This)->lpVtbl -> SetVideoInputMode(This,inputMode) ) 
3609
3610 #define IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(This,detectedMode)    \
3611     ( (This)->lpVtbl -> GetCurrentDetectedVideoInputMode(This,detectedMode) ) 
3612
3613 #define IBMDStreamingDeviceInput_GetVideoEncodingMode(This,encodingMode)        \
3614     ( (This)->lpVtbl -> GetVideoEncodingMode(This,encodingMode) ) 
3615
3616 #define IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(This,inputMode,iterator)    \
3617     ( (This)->lpVtbl -> GetVideoEncodingModePresetIterator(This,inputMode,iterator) ) 
3618
3619 #define IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode)   \
3620     ( (This)->lpVtbl -> DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) ) 
3621
3622 #define IBMDStreamingDeviceInput_SetVideoEncodingMode(This,encodingMode)        \
3623     ( (This)->lpVtbl -> SetVideoEncodingMode(This,encodingMode) ) 
3624
3625 #define IBMDStreamingDeviceInput_StartCapture(This)     \
3626     ( (This)->lpVtbl -> StartCapture(This) ) 
3627
3628 #define IBMDStreamingDeviceInput_StopCapture(This)      \
3629     ( (This)->lpVtbl -> StopCapture(This) ) 
3630
3631 #define IBMDStreamingDeviceInput_SetCallback(This,theCallback)  \
3632     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) 
3633
3634 #endif /* COBJMACROS */
3635
3636
3637 #endif  /* C style interface */
3638
3639
3640
3641
3642 #endif  /* __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ */
3643
3644
3645 #ifndef __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
3646 #define __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
3647
3648 /* interface IBMDStreamingH264NALPacket */
3649 /* [helpstring][uuid][object] */ 
3650
3651
3652 EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
3653
3654 #if defined(__cplusplus) && !defined(CINTERFACE)
3655     
3656     MIDL_INTERFACE("E260E955-14BE-4395-9775-9F02CC0A9D89")
3657     IBMDStreamingH264NALPacket : public IUnknown
3658     {
3659     public:
3660         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3661         
3662         virtual HRESULT STDMETHODCALLTYPE GetBytes( 
3663             /* [out] */ void **buffer) = 0;
3664         
3665         virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix( 
3666             /* [out] */ void **buffer) = 0;
3667         
3668         virtual HRESULT STDMETHODCALLTYPE GetDisplayTime( 
3669             /* [in] */ ULONGLONG requestedTimeScale,
3670             /* [out] */ ULONGLONG *displayTime) = 0;
3671         
3672         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( 
3673             /* [out] */ unsigned int *packetIndex) = 0;
3674         
3675     };
3676     
3677     
3678 #else   /* C style interface */
3679
3680     typedef struct IBMDStreamingH264NALPacketVtbl
3681     {
3682         BEGIN_INTERFACE
3683         
3684         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3685             IBMDStreamingH264NALPacket * This,
3686             /* [in] */ REFIID riid,
3687             /* [annotation][iid_is][out] */ 
3688             _COM_Outptr_  void **ppvObject);
3689         
3690         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3691             IBMDStreamingH264NALPacket * This);
3692         
3693         ULONG ( STDMETHODCALLTYPE *Release )( 
3694             IBMDStreamingH264NALPacket * This);
3695         
3696         long ( STDMETHODCALLTYPE *GetPayloadSize )( 
3697             IBMDStreamingH264NALPacket * This);
3698         
3699         HRESULT ( STDMETHODCALLTYPE *GetBytes )( 
3700             IBMDStreamingH264NALPacket * This,
3701             /* [out] */ void **buffer);
3702         
3703         HRESULT ( STDMETHODCALLTYPE *GetBytesWithSizePrefix )( 
3704             IBMDStreamingH264NALPacket * This,
3705             /* [out] */ void **buffer);
3706         
3707         HRESULT ( STDMETHODCALLTYPE *GetDisplayTime )( 
3708             IBMDStreamingH264NALPacket * This,
3709             /* [in] */ ULONGLONG requestedTimeScale,
3710             /* [out] */ ULONGLONG *displayTime);
3711         
3712         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( 
3713             IBMDStreamingH264NALPacket * This,
3714             /* [out] */ unsigned int *packetIndex);
3715         
3716         END_INTERFACE
3717     } IBMDStreamingH264NALPacketVtbl;
3718
3719     interface IBMDStreamingH264NALPacket
3720     {
3721         CONST_VTBL struct IBMDStreamingH264NALPacketVtbl *lpVtbl;
3722     };
3723
3724     
3725
3726 #ifdef COBJMACROS
3727
3728
3729 #define IBMDStreamingH264NALPacket_QueryInterface(This,riid,ppvObject)  \
3730     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3731
3732 #define IBMDStreamingH264NALPacket_AddRef(This) \
3733     ( (This)->lpVtbl -> AddRef(This) ) 
3734
3735 #define IBMDStreamingH264NALPacket_Release(This)        \
3736     ( (This)->lpVtbl -> Release(This) ) 
3737
3738
3739 #define IBMDStreamingH264NALPacket_GetPayloadSize(This) \
3740     ( (This)->lpVtbl -> GetPayloadSize(This) ) 
3741
3742 #define IBMDStreamingH264NALPacket_GetBytes(This,buffer)        \