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