]> git.sesse.net Git - casparcg/blob - modules/decklink/interop/DeckLinkAPI_h.h
2.0.0.2: Mayor solution reconfiguration.
[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.0500 */\r
7 /* at Wed Jan 13 09:58:01 2010\r
8  */\r
9 /* Compiler settings for .\consumers\declink\DeckLinkAPI.idl:\r
10     Oicf, W1, Zp8, env=Win32 (32b run)\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 __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
129 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
130 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;\r
131 #endif  /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */\r
132 \r
133 \r
134 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__\r
135 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__\r
136 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;\r
137 #endif  /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */\r
138 \r
139 \r
140 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
141 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
142 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;\r
143 #endif  /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */\r
144 \r
145 \r
146 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__\r
147 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__\r
148 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;\r
149 #endif  /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */\r
150 \r
151 \r
152 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
153 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
154 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;\r
155 #endif  /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */\r
156 \r
157 \r
158 #ifndef __IDeckLinkConfiguration_FWD_DEFINED__\r
159 #define __IDeckLinkConfiguration_FWD_DEFINED__\r
160 typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;\r
161 #endif  /* __IDeckLinkConfiguration_FWD_DEFINED__ */\r
162 \r
163 \r
164 #ifndef __IDeckLinkAttributes_FWD_DEFINED__\r
165 #define __IDeckLinkAttributes_FWD_DEFINED__\r
166 typedef interface IDeckLinkAttributes IDeckLinkAttributes;\r
167 #endif  /* __IDeckLinkAttributes_FWD_DEFINED__ */\r
168 \r
169 \r
170 #ifndef __IDeckLinkKeyer_FWD_DEFINED__\r
171 #define __IDeckLinkKeyer_FWD_DEFINED__\r
172 typedef interface IDeckLinkKeyer IDeckLinkKeyer;\r
173 #endif  /* __IDeckLinkKeyer_FWD_DEFINED__ */\r
174 \r
175 \r
176 #ifndef __CDeckLinkIterator_FWD_DEFINED__\r
177 #define __CDeckLinkIterator_FWD_DEFINED__\r
178 \r
179 #ifdef __cplusplus\r
180 typedef class CDeckLinkIterator CDeckLinkIterator;\r
181 #else\r
182 typedef struct CDeckLinkIterator CDeckLinkIterator;\r
183 #endif /* __cplusplus */\r
184 \r
185 #endif  /* __CDeckLinkIterator_FWD_DEFINED__ */\r
186 \r
187 \r
188 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
189 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
190 \r
191 #ifdef __cplusplus\r
192 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;\r
193 #else\r
194 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;\r
195 #endif /* __cplusplus */\r
196 \r
197 #endif  /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */\r
198 \r
199 \r
200 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__\r
201 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__\r
202 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;\r
203 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */\r
204 \r
205 \r
206 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__\r
207 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__\r
208 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;\r
209 #endif  /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */\r
210 \r
211 \r
212 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__\r
213 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__\r
214 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;\r
215 #endif  /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */\r
216 \r
217 \r
218 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__\r
219 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__\r
220 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;\r
221 #endif  /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */\r
222 \r
223 \r
224 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__\r
225 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__\r
226 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;\r
227 #endif  /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */\r
228 \r
229 \r
230 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__\r
231 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__\r
232 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;\r
233 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */\r
234 \r
235 \r
236 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__\r
237 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__\r
238 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;\r
239 #endif  /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */\r
240 \r
241 \r
242 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__\r
243 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__\r
244 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;\r
245 #endif  /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */\r
246 \r
247 \r
248 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__\r
249 #define __IDeckLinkInput_v7_1_FWD_DEFINED__\r
250 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;\r
251 #endif  /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */\r
252 \r
253 \r
254 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__\r
255 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__\r
256 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;\r
257 #endif  /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */\r
258 \r
259 \r
260 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__\r
261 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__\r
262 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;\r
263 #endif  /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */\r
264 \r
265 \r
266 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__\r
267 #define __IDeckLinkInput_v7_3_FWD_DEFINED__\r
268 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;\r
269 #endif  /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */\r
270 \r
271 \r
272 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__\r
273 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__\r
274 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;\r
275 #endif  /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */\r
276 \r
277 \r
278 /* header files for imported files */\r
279 #include "unknwn.h"\r
280 \r
281 #ifdef __cplusplus\r
282 extern "C"{\r
283 #endif \r
284 \r
285 \r
286 \r
287 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__\r
288 #define __DeckLinkAPI_LIBRARY_DEFINED__\r
289 \r
290 /* library DeckLinkAPI */\r
291 /* [helpstring][version][uuid] */ \r
292 \r
293 typedef LONGLONG BMDTimeValue;\r
294 \r
295 typedef LONGLONG BMDTimeScale;\r
296 \r
297 typedef unsigned long BMDTimecodeBCD;\r
298 \r
299 typedef unsigned long BMDFrameFlags;\r
300 typedef unsigned long BMDVideoInputFlags;\r
301 typedef unsigned long BMDVideoInputFormatChangedEvents;\r
302 typedef unsigned long BMDDetectedVideoInputFormatFlags;\r
303 typedef unsigned long BMDTimecodeFlags;\r
304 typedef unsigned long BMDAnalogVideoFlags;\r
305 #if 0\r
306 typedef enum _BMDFrameFlags BMDFrameFlags;\r
307 \r
308 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;\r
309 \r
310 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;\r
311 \r
312 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;\r
313 \r
314 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;\r
315 \r
316 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;\r
317 \r
318 #endif\r
319 typedef /* [v1_enum] */ \r
320 enum _BMDDisplayMode\r
321     {   bmdModeNTSC     = 0x6e747363,\r
322         bmdModeNTSC2398 = 0x6e743233,\r
323         bmdModePAL      = 0x70616c20,\r
324         bmdModeHD1080p2398      = 0x32337073,\r
325         bmdModeHD1080p24        = 0x32347073,\r
326         bmdModeHD1080p25        = 0x48703235,\r
327         bmdModeHD1080p2997      = 0x48703239,\r
328         bmdModeHD1080p30        = 0x48703330,\r
329         bmdModeHD1080i50        = 0x48693530,\r
330         bmdModeHD1080i5994      = 0x48693539,\r
331         bmdModeHD1080i6000      = 0x48693630,\r
332         bmdModeHD1080p50        = 0x48703530,\r
333         bmdModeHD1080p5994      = 0x48703539,\r
334         bmdModeHD1080p6000      = 0x48703630,\r
335         bmdModeHD720p50 = 0x68703530,\r
336         bmdModeHD720p5994       = 0x68703539,\r
337         bmdModeHD720p60 = 0x68703630,\r
338         bmdMode2k2398   = 0x326b3233,\r
339         bmdMode2k24     = 0x326b3234,\r
340         bmdMode2k25     = 0x326b3235\r
341     }   BMDDisplayMode;\r
342 \r
343 typedef /* [v1_enum] */ \r
344 enum _BMDFieldDominance\r
345     {   bmdUnknownFieldDominance        = 0,\r
346         bmdLowerFieldFirst      = 0x6c6f7772,\r
347         bmdUpperFieldFirst      = 0x75707072,\r
348         bmdProgressiveFrame     = 0x70726f67,\r
349         bmdProgressiveSegmentedFrame    = 0x70736620\r
350     }   BMDFieldDominance;\r
351 \r
352 typedef /* [v1_enum] */ \r
353 enum _BMDPixelFormat\r
354     {   bmdFormat8BitYUV        = 0x32767579,\r
355         bmdFormat10BitYUV       = 0x76323130,\r
356         bmdFormat8BitARGB       = 0x20,\r
357         bmdFormat8BitBGRA       = 0x42475241,\r
358         bmdFormat10BitRGB       = 0x72323130\r
359     }   BMDPixelFormat;\r
360 \r
361 typedef /* [v1_enum] */ \r
362 enum _BMDVideoOutputFlags\r
363     {   bmdVideoOutputFlagDefault       = 0,\r
364         bmdVideoOutputRP188     = ( 1 << 0 ) ,\r
365         bmdVideoOutputVANC      = ( 1 << 1 ) \r
366     }   BMDVideoOutputFlags;\r
367 \r
368 /* [v1_enum] */ \r
369 enum _BMDFrameFlags\r
370     {   bmdFrameFlagDefault     = 0,\r
371         bmdFrameFlagFlipVertical        = ( 1 << 0 ) ,\r
372         bmdFrameHasNoInputSource        = ( 1 << 31 ) \r
373     } ;\r
374 /* [v1_enum] */ \r
375 enum _BMDVideoInputFlags\r
376     {   bmdVideoInputFlagDefault        = 0,\r
377         bmdVideoInputEnableFormatDetection      = ( 1 << 0 ) \r
378     } ;\r
379 /* [v1_enum] */ \r
380 enum _BMDVideoInputFormatChangedEvents\r
381     {   bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,\r
382         bmdVideoInputFieldDominanceChanged      = ( 1 << 1 ) ,\r
383         bmdVideoInputColorspaceChanged  = ( 1 << 2 ) \r
384     } ;\r
385 /* [v1_enum] */ \r
386 enum _BMDDetectedVideoInputFormatFlags\r
387     {   bmdDetectedVideoInputYCbCr422   = ( 1 << 0 ) ,\r
388         bmdDetectedVideoInputRGB444     = ( 1 << 1 ) \r
389     } ;\r
390 typedef /* [v1_enum] */ \r
391 enum _BMDOutputFrameCompletionResult\r
392     {   bmdOutputFrameCompleted = 0,\r
393         bmdOutputFrameDisplayedLate     = ( bmdOutputFrameCompleted + 1 ) ,\r
394         bmdOutputFrameDropped   = ( bmdOutputFrameDisplayedLate + 1 ) ,\r
395         bmdOutputFrameFlushed   = ( bmdOutputFrameDropped + 1 ) \r
396     }   BMDOutputFrameCompletionResult;\r
397 \r
398 typedef /* [v1_enum] */ \r
399 enum _BMDAudioSampleRate\r
400     {   bmdAudioSampleRate48kHz = 48000\r
401     }   BMDAudioSampleRate;\r
402 \r
403 typedef /* [v1_enum] */ \r
404 enum _BMDAudioSampleType\r
405     {   bmdAudioSampleType16bitInteger  = 16,\r
406         bmdAudioSampleType32bitInteger  = 32\r
407     }   BMDAudioSampleType;\r
408 \r
409 typedef /* [v1_enum] */ \r
410 enum _BMDAudioOutputStreamType\r
411     {   bmdAudioOutputStreamContinuous  = 0,\r
412         bmdAudioOutputStreamContinuousDontResample      = ( bmdAudioOutputStreamContinuous + 1 ) ,\r
413         bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 ) \r
414     }   BMDAudioOutputStreamType;\r
415 \r
416 typedef /* [v1_enum] */ \r
417 enum _BMDDisplayModeSupport\r
418     {   bmdDisplayModeNotSupported      = 0,\r
419         bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,\r
420         bmdDisplayModeSupportedWithConversion   = ( bmdDisplayModeSupported + 1 ) \r
421     }   BMDDisplayModeSupport;\r
422 \r
423 typedef /* [v1_enum] */ \r
424 enum _BMDTimecodeFormat\r
425     {   bmdTimecodeRP188        = 0x72703138,\r
426         bmdTimecodeVITC = 0x76697463,\r
427         bmdTimecodeSerial       = 0x73657269\r
428     }   BMDTimecodeFormat;\r
429 \r
430 /* [v1_enum] */ \r
431 enum _BMDTimecodeFlags\r
432     {   bmdTimecodeFlagDefault  = 0,\r
433         bmdTimecodeIsDropFrame  = ( 1 << 0 ) \r
434     } ;\r
435 typedef /* [v1_enum] */ \r
436 enum _BMDVideoConnection\r
437     {   bmdVideoConnectionSDI   = 0x73646920,\r
438         bmdVideoConnectionHDMI  = 0x68646d69,\r
439         bmdVideoConnectionOpticalSDI    = 0x6f707469,\r
440         bmdVideoConnectionComponent     = 0x63706e74,\r
441         bmdVideoConnectionComposite     = 0x636d7374,\r
442         bmdVideoConnectionSVideo        = 0x73766964\r
443     }   BMDVideoConnection;\r
444 \r
445 /* [v1_enum] */ \r
446 enum _BMDAnalogVideoFlags\r
447     {   bmdAnalogVideoFlagCompositeSetup75      = ( 1 << 0 ) ,\r
448         bmdAnalogVideoFlagComponentBetacamLevels        = ( 1 << 1 ) \r
449     } ;\r
450 typedef /* [v1_enum] */ \r
451 enum _BMDAudioConnection\r
452     {   bmdAudioConnectionEmbedded      = 0x656d6264,\r
453         bmdAudioConnectionAESEBU        = 0x61657320,\r
454         bmdAudioConnectionAnalog        = 0x616e6c67\r
455     }   BMDAudioConnection;\r
456 \r
457 typedef /* [v1_enum] */ \r
458 enum _BMDVideoOutputConversionMode\r
459     {   bmdNoVideoOutputConversion      = 0x6e6f6e65,\r
460         bmdVideoOutputLetterboxDownonversion    = 0x6c746278,\r
461         bmdVideoOutputAnamorphicDownonversion   = 0x616d7068,\r
462         bmdVideoOutputHD720toHD1080Conversion   = 0x37323063,\r
463         bmdVideoOutputHardwareLetterboxDownconversion   = 0x48576c62,\r
464         bmdVideoOutputHardwareAnamorphicDownconversion  = 0x4857616d,\r
465         bmdVideoOutputHardwareCenterCutDownconversion   = 0x48576363\r
466     }   BMDVideoOutputConversionMode;\r
467 \r
468 typedef /* [v1_enum] */ \r
469 enum _BMDVideoInputConversionMode\r
470     {   bmdNoVideoInputConversion       = 0x6e6f6e65,\r
471         bmdVideoInputLetterboxDownconversionFromHD1080  = 0x31306c62,\r
472         bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,\r
473         bmdVideoInputLetterboxDownconversionFromHD720   = 0x37326c62,\r
474         bmdVideoInputAnamorphicDownconversionFromHD720  = 0x3732616d,\r
475         bmdVideoInputLetterboxUpconversion      = 0x6c627570,\r
476         bmdVideoInputAnamorphicUpconversion     = 0x616d7570\r
477     }   BMDVideoInputConversionMode;\r
478 \r
479 typedef /* [v1_enum] */ \r
480 enum _BMDDeckLinkAttributeID\r
481     {   BMDDeckLinkSupportsInternalKeying       = 0x6b657969,\r
482         BMDDeckLinkSupportsExternalKeying       = 0x6b657965,\r
483         BMDDeckLinkSupportsHDKeying     = 0x6b657968,\r
484         BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,\r
485         BMDDeckLinkHasSerialPort        = 0x68737074,\r
486         BMDDeckLinkMaximumAudioChannels = 0x6d616368,\r
487         BMDDeckLinkSerialPortDeviceName = 0x736c706e\r
488     }   BMDDeckLinkAttributeID;\r
489 \r
490 typedef /* [v1_enum] */ \r
491 enum _BMDDeckLinkAPIInformationID\r
492     {   BMDDeckLinkAPIVersion   = 0x76657273\r
493     }   BMDDeckLinkAPIInformationID;\r
494 \r
495 \r
496 \r
497 \r
498 \r
499 \r
500 \r
501 \r
502 \r
503 \r
504 \r
505 \r
506 \r
507 \r
508 \r
509 \r
510 \r
511 \r
512 \r
513 \r
514 \r
515 \r
516 \r
517 \r
518 \r
519 \r
520 \r
521 \r
522 \r
523 \r
524 \r
525 \r
526 \r
527 EXTERN_C const IID LIBID_DeckLinkAPI;\r
528 \r
529 #ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
530 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
531 \r
532 /* interface IDeckLinkVideoOutputCallback */\r
533 /* [helpstring][uuid][object] */ \r
534 \r
535 \r
536 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;\r
537 \r
538 #if defined(__cplusplus) && !defined(CINTERFACE)\r
539     \r
540     MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")\r
541     IDeckLinkVideoOutputCallback : public IUnknown\r
542     {\r
543     public:\r
544         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
545             /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
546             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
547         \r
548         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
549         \r
550     };\r
551     \r
552 #else   /* C style interface */\r
553 \r
554     typedef struct IDeckLinkVideoOutputCallbackVtbl\r
555     {\r
556         BEGIN_INTERFACE\r
557         \r
558         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
559             IDeckLinkVideoOutputCallback * This,\r
560             /* [in] */ REFIID riid,\r
561             /* [iid_is][out] */ \r
562             __RPC__deref_out  void **ppvObject);\r
563         \r
564         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
565             IDeckLinkVideoOutputCallback * This);\r
566         \r
567         ULONG ( STDMETHODCALLTYPE *Release )( \r
568             IDeckLinkVideoOutputCallback * This);\r
569         \r
570         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
571             IDeckLinkVideoOutputCallback * This,\r
572             /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
573             /* [in] */ BMDOutputFrameCompletionResult result);\r
574         \r
575         HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
576             IDeckLinkVideoOutputCallback * This);\r
577         \r
578         END_INTERFACE\r
579     } IDeckLinkVideoOutputCallbackVtbl;\r
580 \r
581     interface IDeckLinkVideoOutputCallback\r
582     {\r
583         CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;\r
584     };\r
585 \r
586     \r
587 \r
588 #ifdef COBJMACROS\r
589 \r
590 \r
591 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject)        \\r
592     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
593 \r
594 #define IDeckLinkVideoOutputCallback_AddRef(This)       \\r
595     ( (This)->lpVtbl -> AddRef(This) ) \r
596 \r
597 #define IDeckLinkVideoOutputCallback_Release(This)      \\r
598     ( (This)->lpVtbl -> Release(This) ) \r
599 \r
600 \r
601 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result)        \\r
602     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
603 \r
604 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This)  \\r
605     ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
606 \r
607 #endif /* COBJMACROS */\r
608 \r
609 \r
610 #endif  /* C style interface */\r
611 \r
612 \r
613 \r
614 \r
615 #endif  /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */\r
616 \r
617 \r
618 #ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
619 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
620 \r
621 /* interface IDeckLinkInputCallback */\r
622 /* [helpstring][uuid][object] */ \r
623 \r
624 \r
625 EXTERN_C const IID IID_IDeckLinkInputCallback;\r
626 \r
627 #if defined(__cplusplus) && !defined(CINTERFACE)\r
628     \r
629     MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")\r
630     IDeckLinkInputCallback : public IUnknown\r
631     {\r
632     public:\r
633         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
634             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
635             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
636             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
637         \r
638         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
639             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
640             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
641         \r
642     };\r
643     \r
644 #else   /* C style interface */\r
645 \r
646     typedef struct IDeckLinkInputCallbackVtbl\r
647     {\r
648         BEGIN_INTERFACE\r
649         \r
650         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
651             IDeckLinkInputCallback * This,\r
652             /* [in] */ REFIID riid,\r
653             /* [iid_is][out] */ \r
654             __RPC__deref_out  void **ppvObject);\r
655         \r
656         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
657             IDeckLinkInputCallback * This);\r
658         \r
659         ULONG ( STDMETHODCALLTYPE *Release )( \r
660             IDeckLinkInputCallback * This);\r
661         \r
662         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
663             IDeckLinkInputCallback * This,\r
664             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
665             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
666             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
667         \r
668         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
669             IDeckLinkInputCallback * This,\r
670             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
671             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
672         \r
673         END_INTERFACE\r
674     } IDeckLinkInputCallbackVtbl;\r
675 \r
676     interface IDeckLinkInputCallback\r
677     {\r
678         CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;\r
679     };\r
680 \r
681     \r
682 \r
683 #ifdef COBJMACROS\r
684 \r
685 \r
686 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject)      \\r
687     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
688 \r
689 #define IDeckLinkInputCallback_AddRef(This)     \\r
690     ( (This)->lpVtbl -> AddRef(This) ) \r
691 \r
692 #define IDeckLinkInputCallback_Release(This)    \\r
693     ( (This)->lpVtbl -> Release(This) ) \r
694 \r
695 \r
696 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)      \\r
697     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
698 \r
699 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket)      \\r
700     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
701 \r
702 #endif /* COBJMACROS */\r
703 \r
704 \r
705 #endif  /* C style interface */\r
706 \r
707 \r
708 \r
709 \r
710 #endif  /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */\r
711 \r
712 \r
713 #ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
714 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
715 \r
716 /* interface IDeckLinkMemoryAllocator */\r
717 /* [helpstring][local][uuid][object] */ \r
718 \r
719 \r
720 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;\r
721 \r
722 #if defined(__cplusplus) && !defined(CINTERFACE)\r
723     \r
724     MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")\r
725     IDeckLinkMemoryAllocator : public IUnknown\r
726     {\r
727     public:\r
728         virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( \r
729             unsigned long bufferSize,\r
730             /* [out] */ void **allocatedBuffer) = 0;\r
731         \r
732         virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( \r
733             /* [in] */ void *buffer) = 0;\r
734         \r
735         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;\r
736         \r
737         virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;\r
738         \r
739     };\r
740     \r
741 #else   /* C style interface */\r
742 \r
743     typedef struct IDeckLinkMemoryAllocatorVtbl\r
744     {\r
745         BEGIN_INTERFACE\r
746         \r
747         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
748             IDeckLinkMemoryAllocator * This,\r
749             /* [in] */ REFIID riid,\r
750             /* [iid_is][out] */ \r
751             __RPC__deref_out  void **ppvObject);\r
752         \r
753         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
754             IDeckLinkMemoryAllocator * This);\r
755         \r
756         ULONG ( STDMETHODCALLTYPE *Release )( \r
757             IDeckLinkMemoryAllocator * This);\r
758         \r
759         HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )( \r
760             IDeckLinkMemoryAllocator * This,\r
761             unsigned long bufferSize,\r
762             /* [out] */ void **allocatedBuffer);\r
763         \r
764         HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( \r
765             IDeckLinkMemoryAllocator * This,\r
766             /* [in] */ void *buffer);\r
767         \r
768         HRESULT ( STDMETHODCALLTYPE *Commit )( \r
769             IDeckLinkMemoryAllocator * This);\r
770         \r
771         HRESULT ( STDMETHODCALLTYPE *Decommit )( \r
772             IDeckLinkMemoryAllocator * This);\r
773         \r
774         END_INTERFACE\r
775     } IDeckLinkMemoryAllocatorVtbl;\r
776 \r
777     interface IDeckLinkMemoryAllocator\r
778     {\r
779         CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;\r
780     };\r
781 \r
782     \r
783 \r
784 #ifdef COBJMACROS\r
785 \r
786 \r
787 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)    \\r
788     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
789 \r
790 #define IDeckLinkMemoryAllocator_AddRef(This)   \\r
791     ( (This)->lpVtbl -> AddRef(This) ) \r
792 \r
793 #define IDeckLinkMemoryAllocator_Release(This)  \\r
794     ( (This)->lpVtbl -> Release(This) ) \r
795 \r
796 \r
797 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer)        \\r
798     ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) ) \r
799 \r
800 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer)     \\r
801     ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) ) \r
802 \r
803 #define IDeckLinkMemoryAllocator_Commit(This)   \\r
804     ( (This)->lpVtbl -> Commit(This) ) \r
805 \r
806 #define IDeckLinkMemoryAllocator_Decommit(This) \\r
807     ( (This)->lpVtbl -> Decommit(This) ) \r
808 \r
809 #endif /* COBJMACROS */\r
810 \r
811 \r
812 #endif  /* C style interface */\r
813 \r
814 \r
815 \r
816 \r
817 #endif  /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */\r
818 \r
819 \r
820 #ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
821 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
822 \r
823 /* interface IDeckLinkAudioOutputCallback */\r
824 /* [helpstring][local][uuid][object] */ \r
825 \r
826 \r
827 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;\r
828 \r
829 #if defined(__cplusplus) && !defined(CINTERFACE)\r
830     \r
831     MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")\r
832     IDeckLinkAudioOutputCallback : public IUnknown\r
833     {\r
834     public:\r
835         virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( \r
836             BOOL preroll) = 0;\r
837         \r
838     };\r
839     \r
840 #else   /* C style interface */\r
841 \r
842     typedef struct IDeckLinkAudioOutputCallbackVtbl\r
843     {\r
844         BEGIN_INTERFACE\r
845         \r
846         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
847             IDeckLinkAudioOutputCallback * This,\r
848             /* [in] */ REFIID riid,\r
849             /* [iid_is][out] */ \r
850             __RPC__deref_out  void **ppvObject);\r
851         \r
852         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
853             IDeckLinkAudioOutputCallback * This);\r
854         \r
855         ULONG ( STDMETHODCALLTYPE *Release )( \r
856             IDeckLinkAudioOutputCallback * This);\r
857         \r
858         HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )( \r
859             IDeckLinkAudioOutputCallback * This,\r
860             BOOL preroll);\r
861         \r
862         END_INTERFACE\r
863     } IDeckLinkAudioOutputCallbackVtbl;\r
864 \r
865     interface IDeckLinkAudioOutputCallback\r
866     {\r
867         CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;\r
868     };\r
869 \r
870     \r
871 \r
872 #ifdef COBJMACROS\r
873 \r
874 \r
875 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject)        \\r
876     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
877 \r
878 #define IDeckLinkAudioOutputCallback_AddRef(This)       \\r
879     ( (This)->lpVtbl -> AddRef(This) ) \r
880 \r
881 #define IDeckLinkAudioOutputCallback_Release(This)      \\r
882     ( (This)->lpVtbl -> Release(This) ) \r
883 \r
884 \r
885 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll)   \\r
886     ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) ) \r
887 \r
888 #endif /* COBJMACROS */\r
889 \r
890 \r
891 #endif  /* C style interface */\r
892 \r
893 \r
894 \r
895 \r
896 #endif  /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */\r
897 \r
898 \r
899 #ifndef __IDeckLinkIterator_INTERFACE_DEFINED__\r
900 #define __IDeckLinkIterator_INTERFACE_DEFINED__\r
901 \r
902 /* interface IDeckLinkIterator */\r
903 /* [helpstring][uuid][object] */ \r
904 \r
905 \r
906 EXTERN_C const IID IID_IDeckLinkIterator;\r
907 \r
908 #if defined(__cplusplus) && !defined(CINTERFACE)\r
909     \r
910     MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")\r
911     IDeckLinkIterator : public IUnknown\r
912     {\r
913     public:\r
914         virtual HRESULT STDMETHODCALLTYPE Next( \r
915             /* [out] */ IDeckLink **deckLinkInstance) = 0;\r
916         \r
917     };\r
918     \r
919 #else   /* C style interface */\r
920 \r
921     typedef struct IDeckLinkIteratorVtbl\r
922     {\r
923         BEGIN_INTERFACE\r
924         \r
925         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
926             IDeckLinkIterator * This,\r
927             /* [in] */ REFIID riid,\r
928             /* [iid_is][out] */ \r
929             __RPC__deref_out  void **ppvObject);\r
930         \r
931         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
932             IDeckLinkIterator * This);\r
933         \r
934         ULONG ( STDMETHODCALLTYPE *Release )( \r
935             IDeckLinkIterator * This);\r
936         \r
937         HRESULT ( STDMETHODCALLTYPE *Next )( \r
938             IDeckLinkIterator * This,\r
939             /* [out] */ IDeckLink **deckLinkInstance);\r
940         \r
941         END_INTERFACE\r
942     } IDeckLinkIteratorVtbl;\r
943 \r
944     interface IDeckLinkIterator\r
945     {\r
946         CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;\r
947     };\r
948 \r
949     \r
950 \r
951 #ifdef COBJMACROS\r
952 \r
953 \r
954 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject)   \\r
955     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
956 \r
957 #define IDeckLinkIterator_AddRef(This)  \\r
958     ( (This)->lpVtbl -> AddRef(This) ) \r
959 \r
960 #define IDeckLinkIterator_Release(This) \\r
961     ( (This)->lpVtbl -> Release(This) ) \r
962 \r
963 \r
964 #define IDeckLinkIterator_Next(This,deckLinkInstance)   \\r
965     ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) \r
966 \r
967 #endif /* COBJMACROS */\r
968 \r
969 \r
970 #endif  /* C style interface */\r
971 \r
972 \r
973 \r
974 \r
975 #endif  /* __IDeckLinkIterator_INTERFACE_DEFINED__ */\r
976 \r
977 \r
978 #ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
979 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
980 \r
981 /* interface IDeckLinkAPIInformation */\r
982 /* [helpstring][uuid][object] */ \r
983 \r
984 \r
985 EXTERN_C const IID IID_IDeckLinkAPIInformation;\r
986 \r
987 #if defined(__cplusplus) && !defined(CINTERFACE)\r
988     \r
989     MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")\r
990     IDeckLinkAPIInformation : public IUnknown\r
991     {\r
992     public:\r
993         virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
994             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
995             /* [out] */ BOOL *value) = 0;\r
996         \r
997         virtual HRESULT STDMETHODCALLTYPE GetInt( \r
998             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
999             /* [out] */ LONGLONG *value) = 0;\r
1000         \r
1001         virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
1002             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1003             /* [out] */ double *value) = 0;\r
1004         \r
1005         virtual HRESULT STDMETHODCALLTYPE GetString( \r
1006             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1007             /* [out] */ BSTR *value) = 0;\r
1008         \r
1009     };\r
1010     \r
1011 #else   /* C style interface */\r
1012 \r
1013     typedef struct IDeckLinkAPIInformationVtbl\r
1014     {\r
1015         BEGIN_INTERFACE\r
1016         \r
1017         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1018             IDeckLinkAPIInformation * This,\r
1019             /* [in] */ REFIID riid,\r
1020             /* [iid_is][out] */ \r
1021             __RPC__deref_out  void **ppvObject);\r
1022         \r
1023         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1024             IDeckLinkAPIInformation * This);\r
1025         \r
1026         ULONG ( STDMETHODCALLTYPE *Release )( \r
1027             IDeckLinkAPIInformation * This);\r
1028         \r
1029         HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
1030             IDeckLinkAPIInformation * This,\r
1031             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1032             /* [out] */ BOOL *value);\r
1033         \r
1034         HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
1035             IDeckLinkAPIInformation * This,\r
1036             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1037             /* [out] */ LONGLONG *value);\r
1038         \r
1039         HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
1040             IDeckLinkAPIInformation * This,\r
1041             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1042             /* [out] */ double *value);\r
1043         \r
1044         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
1045             IDeckLinkAPIInformation * This,\r
1046             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
1047             /* [out] */ BSTR *value);\r
1048         \r
1049         END_INTERFACE\r
1050     } IDeckLinkAPIInformationVtbl;\r
1051 \r
1052     interface IDeckLinkAPIInformation\r
1053     {\r
1054         CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;\r
1055     };\r
1056 \r
1057     \r
1058 \r
1059 #ifdef COBJMACROS\r
1060 \r
1061 \r
1062 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject)     \\r
1063     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1064 \r
1065 #define IDeckLinkAPIInformation_AddRef(This)    \\r
1066     ( (This)->lpVtbl -> AddRef(This) ) \r
1067 \r
1068 #define IDeckLinkAPIInformation_Release(This)   \\r
1069     ( (This)->lpVtbl -> Release(This) ) \r
1070 \r
1071 \r
1072 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value)       \\r
1073     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
1074 \r
1075 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value)        \\r
1076     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
1077 \r
1078 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value)      \\r
1079     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
1080 \r
1081 #define IDeckLinkAPIInformation_GetString(This,cfgID,value)     \\r
1082     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
1083 \r
1084 #endif /* COBJMACROS */\r
1085 \r
1086 \r
1087 #endif  /* C style interface */\r
1088 \r
1089 \r
1090 \r
1091 \r
1092 #endif  /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */\r
1093 \r
1094 \r
1095 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
1096 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
1097 \r
1098 /* interface IDeckLinkDisplayModeIterator */\r
1099 /* [helpstring][uuid][object] */ \r
1100 \r
1101 \r
1102 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;\r
1103 \r
1104 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1105     \r
1106     MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")\r
1107     IDeckLinkDisplayModeIterator : public IUnknown\r
1108     {\r
1109     public:\r
1110         virtual HRESULT STDMETHODCALLTYPE Next( \r
1111             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;\r
1112         \r
1113     };\r
1114     \r
1115 #else   /* C style interface */\r
1116 \r
1117     typedef struct IDeckLinkDisplayModeIteratorVtbl\r
1118     {\r
1119         BEGIN_INTERFACE\r
1120         \r
1121         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1122             IDeckLinkDisplayModeIterator * This,\r
1123             /* [in] */ REFIID riid,\r
1124             /* [iid_is][out] */ \r
1125             __RPC__deref_out  void **ppvObject);\r
1126         \r
1127         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1128             IDeckLinkDisplayModeIterator * This);\r
1129         \r
1130         ULONG ( STDMETHODCALLTYPE *Release )( \r
1131             IDeckLinkDisplayModeIterator * This);\r
1132         \r
1133         HRESULT ( STDMETHODCALLTYPE *Next )( \r
1134             IDeckLinkDisplayModeIterator * This,\r
1135             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);\r
1136         \r
1137         END_INTERFACE\r
1138     } IDeckLinkDisplayModeIteratorVtbl;\r
1139 \r
1140     interface IDeckLinkDisplayModeIterator\r
1141     {\r
1142         CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;\r
1143     };\r
1144 \r
1145     \r
1146 \r
1147 #ifdef COBJMACROS\r
1148 \r
1149 \r
1150 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)        \\r
1151     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1152 \r
1153 #define IDeckLinkDisplayModeIterator_AddRef(This)       \\r
1154     ( (This)->lpVtbl -> AddRef(This) ) \r
1155 \r
1156 #define IDeckLinkDisplayModeIterator_Release(This)      \\r
1157     ( (This)->lpVtbl -> Release(This) ) \r
1158 \r
1159 \r
1160 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)     \\r
1161     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
1162 \r
1163 #endif /* COBJMACROS */\r
1164 \r
1165 \r
1166 #endif  /* C style interface */\r
1167 \r
1168 \r
1169 \r
1170 \r
1171 #endif  /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */\r
1172 \r
1173 \r
1174 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
1175 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
1176 \r
1177 /* interface IDeckLinkDisplayMode */\r
1178 /* [helpstring][uuid][object] */ \r
1179 \r
1180 \r
1181 EXTERN_C const IID IID_IDeckLinkDisplayMode;\r
1182 \r
1183 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1184     \r
1185     MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")\r
1186     IDeckLinkDisplayMode : public IUnknown\r
1187     {\r
1188     public:\r
1189         virtual HRESULT STDMETHODCALLTYPE GetName( \r
1190             /* [out] */ BSTR *name) = 0;\r
1191         \r
1192         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
1193         \r
1194         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
1195         \r
1196         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
1197         \r
1198         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
1199             /* [out] */ BMDTimeValue *frameDuration,\r
1200             /* [out] */ BMDTimeScale *timeScale) = 0;\r
1201         \r
1202         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
1203         \r
1204     };\r
1205     \r
1206 #else   /* C style interface */\r
1207 \r
1208     typedef struct IDeckLinkDisplayModeVtbl\r
1209     {\r
1210         BEGIN_INTERFACE\r
1211         \r
1212         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1213             IDeckLinkDisplayMode * This,\r
1214             /* [in] */ REFIID riid,\r
1215             /* [iid_is][out] */ \r
1216             __RPC__deref_out  void **ppvObject);\r
1217         \r
1218         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1219             IDeckLinkDisplayMode * This);\r
1220         \r
1221         ULONG ( STDMETHODCALLTYPE *Release )( \r
1222             IDeckLinkDisplayMode * This);\r
1223         \r
1224         HRESULT ( STDMETHODCALLTYPE *GetName )( \r
1225             IDeckLinkDisplayMode * This,\r
1226             /* [out] */ BSTR *name);\r
1227         \r
1228         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
1229             IDeckLinkDisplayMode * This);\r
1230         \r
1231         long ( STDMETHODCALLTYPE *GetWidth )( \r
1232             IDeckLinkDisplayMode * This);\r
1233         \r
1234         long ( STDMETHODCALLTYPE *GetHeight )( \r
1235             IDeckLinkDisplayMode * This);\r
1236         \r
1237         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
1238             IDeckLinkDisplayMode * This,\r
1239             /* [out] */ BMDTimeValue *frameDuration,\r
1240             /* [out] */ BMDTimeScale *timeScale);\r
1241         \r
1242         BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
1243             IDeckLinkDisplayMode * This);\r
1244         \r
1245         END_INTERFACE\r
1246     } IDeckLinkDisplayModeVtbl;\r
1247 \r
1248     interface IDeckLinkDisplayMode\r
1249     {\r
1250         CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;\r
1251     };\r
1252 \r
1253     \r
1254 \r
1255 #ifdef COBJMACROS\r
1256 \r
1257 \r
1258 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)        \\r
1259     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1260 \r
1261 #define IDeckLinkDisplayMode_AddRef(This)       \\r
1262     ( (This)->lpVtbl -> AddRef(This) ) \r
1263 \r
1264 #define IDeckLinkDisplayMode_Release(This)      \\r
1265     ( (This)->lpVtbl -> Release(This) ) \r
1266 \r
1267 \r
1268 #define IDeckLinkDisplayMode_GetName(This,name) \\r
1269     ( (This)->lpVtbl -> GetName(This,name) ) \r
1270 \r
1271 #define IDeckLinkDisplayMode_GetDisplayMode(This)       \\r
1272     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
1273 \r
1274 #define IDeckLinkDisplayMode_GetWidth(This)     \\r
1275     ( (This)->lpVtbl -> GetWidth(This) ) \r
1276 \r
1277 #define IDeckLinkDisplayMode_GetHeight(This)    \\r
1278     ( (This)->lpVtbl -> GetHeight(This) ) \r
1279 \r
1280 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \\r
1281     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
1282 \r
1283 #define IDeckLinkDisplayMode_GetFieldDominance(This)    \\r
1284     ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
1285 \r
1286 #endif /* COBJMACROS */\r
1287 \r
1288 \r
1289 #endif  /* C style interface */\r
1290 \r
1291 \r
1292 \r
1293 \r
1294 #endif  /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */\r
1295 \r
1296 \r
1297 #ifndef __IDeckLink_INTERFACE_DEFINED__\r
1298 #define __IDeckLink_INTERFACE_DEFINED__\r
1299 \r
1300 /* interface IDeckLink */\r
1301 /* [helpstring][uuid][object] */ \r
1302 \r
1303 \r
1304 EXTERN_C const IID IID_IDeckLink;\r
1305 \r
1306 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1307     \r
1308     MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")\r
1309     IDeckLink : public IUnknown\r
1310     {\r
1311     public:\r
1312         virtual HRESULT STDMETHODCALLTYPE GetModelName( \r
1313             /* [out] */ BSTR *modelName) = 0;\r
1314         \r
1315     };\r
1316     \r
1317 #else   /* C style interface */\r
1318 \r
1319     typedef struct IDeckLinkVtbl\r
1320     {\r
1321         BEGIN_INTERFACE\r
1322         \r
1323         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1324             IDeckLink * This,\r
1325             /* [in] */ REFIID riid,\r
1326             /* [iid_is][out] */ \r
1327             __RPC__deref_out  void **ppvObject);\r
1328         \r
1329         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1330             IDeckLink * This);\r
1331         \r
1332         ULONG ( STDMETHODCALLTYPE *Release )( \r
1333             IDeckLink * This);\r
1334         \r
1335         HRESULT ( STDMETHODCALLTYPE *GetModelName )( \r
1336             IDeckLink * This,\r
1337             /* [out] */ BSTR *modelName);\r
1338         \r
1339         END_INTERFACE\r
1340     } IDeckLinkVtbl;\r
1341 \r
1342     interface IDeckLink\r
1343     {\r
1344         CONST_VTBL struct IDeckLinkVtbl *lpVtbl;\r
1345     };\r
1346 \r
1347     \r
1348 \r
1349 #ifdef COBJMACROS\r
1350 \r
1351 \r
1352 #define IDeckLink_QueryInterface(This,riid,ppvObject)   \\r
1353     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1354 \r
1355 #define IDeckLink_AddRef(This)  \\r
1356     ( (This)->lpVtbl -> AddRef(This) ) \r
1357 \r
1358 #define IDeckLink_Release(This) \\r
1359     ( (This)->lpVtbl -> Release(This) ) \r
1360 \r
1361 \r
1362 #define IDeckLink_GetModelName(This,modelName)  \\r
1363     ( (This)->lpVtbl -> GetModelName(This,modelName) ) \r
1364 \r
1365 #endif /* COBJMACROS */\r
1366 \r
1367 \r
1368 #endif  /* C style interface */\r
1369 \r
1370 \r
1371 \r
1372 \r
1373 #endif  /* __IDeckLink_INTERFACE_DEFINED__ */\r
1374 \r
1375 \r
1376 #ifndef __IDeckLinkOutput_INTERFACE_DEFINED__\r
1377 #define __IDeckLinkOutput_INTERFACE_DEFINED__\r
1378 \r
1379 /* interface IDeckLinkOutput */\r
1380 /* [helpstring][local][uuid][object] */ \r
1381 \r
1382 \r
1383 EXTERN_C const IID IID_IDeckLinkOutput;\r
1384 \r
1385 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1386     \r
1387     MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")\r
1388     IDeckLinkOutput : public IUnknown\r
1389     {\r
1390     public:\r
1391         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
1392             BMDDisplayMode displayMode,\r
1393             BMDPixelFormat pixelFormat,\r
1394             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
1395         \r
1396         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
1397             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
1398         \r
1399         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
1400             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
1401         \r
1402         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
1403             BMDDisplayMode displayMode,\r
1404             BMDVideoOutputFlags flags) = 0;\r
1405         \r
1406         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
1407         \r
1408         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
1409             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
1410         \r
1411         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
1412             long width,\r
1413             long height,\r
1414             long rowBytes,\r
1415             BMDPixelFormat pixelFormat,\r
1416             BMDFrameFlags flags,\r
1417             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
1418         \r
1419         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
1420             BMDDisplayMode displayMode,\r
1421             BMDPixelFormat pixelFormat,\r
1422             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
1423         \r
1424         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
1425             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
1426         \r
1427         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
1428             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
1429             BMDTimeValue displayTime,\r
1430             BMDTimeValue displayDuration,\r
1431             BMDTimeScale timeScale) = 0;\r
1432         \r
1433         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
1434             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
1435         \r
1436         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
1437             /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
1438         \r
1439         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
1440             BMDAudioSampleRate sampleRate,\r
1441             BMDAudioSampleType sampleType,\r
1442             unsigned long channelCount,\r
1443             BMDAudioOutputStreamType streamType) = 0;\r
1444         \r
1445         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
1446         \r
1447         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
1448             /* [in] */ void *buffer,\r
1449             unsigned long sampleFrameCount,\r
1450             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
1451         \r
1452         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
1453         \r
1454         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
1455         \r
1456         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
1457             /* [in] */ void *buffer,\r
1458             unsigned long sampleFrameCount,\r
1459             BMDTimeValue streamTime,\r
1460             BMDTimeScale timeScale,\r
1461             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
1462         \r
1463         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
1464             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
1465         \r
1466         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
1467         \r
1468         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
1469             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
1470         \r
1471         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
1472             BMDTimeValue playbackStartTime,\r
1473             BMDTimeScale timeScale,\r
1474             double playbackSpeed) = 0;\r
1475         \r
1476         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
1477             BMDTimeValue stopPlaybackAtTime,\r
1478             /* [out] */ BMDTimeValue *actualStopTime,\r
1479             BMDTimeScale timeScale) = 0;\r
1480         \r
1481         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
1482             /* [out] */ BOOL *active) = 0;\r
1483         \r
1484         virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
1485             BMDTimeScale desiredTimeScale,\r
1486             /* [out] */ BMDTimeValue *streamTime,\r
1487             /* [out] */ double *playbackSpeed) = 0;\r
1488         \r
1489         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
1490             BMDTimeScale desiredTimeScale,\r
1491             /* [out] */ BMDTimeValue *hardwareTime,\r
1492             /* [out] */ BMDTimeValue *timeInFrame,\r
1493             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
1494         \r
1495     };\r
1496     \r
1497 #else   /* C style interface */\r
1498 \r
1499     typedef struct IDeckLinkOutputVtbl\r
1500     {\r
1501         BEGIN_INTERFACE\r
1502         \r
1503         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1504             IDeckLinkOutput * This,\r
1505             /* [in] */ REFIID riid,\r
1506             /* [iid_is][out] */ \r
1507             __RPC__deref_out  void **ppvObject);\r
1508         \r
1509         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1510             IDeckLinkOutput * This);\r
1511         \r
1512         ULONG ( STDMETHODCALLTYPE *Release )( \r
1513             IDeckLinkOutput * This);\r
1514         \r
1515         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
1516             IDeckLinkOutput * This,\r
1517             BMDDisplayMode displayMode,\r
1518             BMDPixelFormat pixelFormat,\r
1519             /* [out] */ BMDDisplayModeSupport *result);\r
1520         \r
1521         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
1522             IDeckLinkOutput * This,\r
1523             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
1524         \r
1525         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
1526             IDeckLinkOutput * This,\r
1527             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
1528         \r
1529         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
1530             IDeckLinkOutput * This,\r
1531             BMDDisplayMode displayMode,\r
1532             BMDVideoOutputFlags flags);\r
1533         \r
1534         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
1535             IDeckLinkOutput * This);\r
1536         \r
1537         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
1538             IDeckLinkOutput * This,\r
1539             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
1540         \r
1541         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
1542             IDeckLinkOutput * This,\r
1543             long width,\r
1544             long height,\r
1545             long rowBytes,\r
1546             BMDPixelFormat pixelFormat,\r
1547             BMDFrameFlags flags,\r
1548             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
1549         \r
1550         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
1551             IDeckLinkOutput * This,\r
1552             BMDDisplayMode displayMode,\r
1553             BMDPixelFormat pixelFormat,\r
1554             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
1555         \r
1556         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
1557             IDeckLinkOutput * This,\r
1558             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
1559         \r
1560         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
1561             IDeckLinkOutput * This,\r
1562             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
1563             BMDTimeValue displayTime,\r
1564             BMDTimeValue displayDuration,\r
1565             BMDTimeScale timeScale);\r
1566         \r
1567         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
1568             IDeckLinkOutput * This,\r
1569             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
1570         \r
1571         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
1572             IDeckLinkOutput * This,\r
1573             /* [out] */ unsigned long *bufferedFrameCount);\r
1574         \r
1575         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
1576             IDeckLinkOutput * This,\r
1577             BMDAudioSampleRate sampleRate,\r
1578             BMDAudioSampleType sampleType,\r
1579             unsigned long channelCount,\r
1580             BMDAudioOutputStreamType streamType);\r
1581         \r
1582         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
1583             IDeckLinkOutput * This);\r
1584         \r
1585         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
1586             IDeckLinkOutput * This,\r
1587             /* [in] */ void *buffer,\r
1588             unsigned long sampleFrameCount,\r
1589             /* [out] */ unsigned long *sampleFramesWritten);\r
1590         \r
1591         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
1592             IDeckLinkOutput * This);\r
1593         \r
1594         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
1595             IDeckLinkOutput * This);\r
1596         \r
1597         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
1598             IDeckLinkOutput * This,\r
1599             /* [in] */ void *buffer,\r
1600             unsigned long sampleFrameCount,\r
1601             BMDTimeValue streamTime,\r
1602             BMDTimeScale timeScale,\r
1603             /* [out] */ unsigned long *sampleFramesWritten);\r
1604         \r
1605         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
1606             IDeckLinkOutput * This,\r
1607             /* [out] */ unsigned long *bufferedSampleFrameCount);\r
1608         \r
1609         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
1610             IDeckLinkOutput * This);\r
1611         \r
1612         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
1613             IDeckLinkOutput * This,\r
1614             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
1615         \r
1616         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
1617             IDeckLinkOutput * This,\r
1618             BMDTimeValue playbackStartTime,\r
1619             BMDTimeScale timeScale,\r
1620             double playbackSpeed);\r
1621         \r
1622         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
1623             IDeckLinkOutput * This,\r
1624             BMDTimeValue stopPlaybackAtTime,\r
1625             /* [out] */ BMDTimeValue *actualStopTime,\r
1626             BMDTimeScale timeScale);\r
1627         \r
1628         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
1629             IDeckLinkOutput * This,\r
1630             /* [out] */ BOOL *active);\r
1631         \r
1632         HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
1633             IDeckLinkOutput * This,\r
1634             BMDTimeScale desiredTimeScale,\r
1635             /* [out] */ BMDTimeValue *streamTime,\r
1636             /* [out] */ double *playbackSpeed);\r
1637         \r
1638         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
1639             IDeckLinkOutput * This,\r
1640             BMDTimeScale desiredTimeScale,\r
1641             /* [out] */ BMDTimeValue *hardwareTime,\r
1642             /* [out] */ BMDTimeValue *timeInFrame,\r
1643             /* [out] */ BMDTimeValue *ticksPerFrame);\r
1644         \r
1645         END_INTERFACE\r
1646     } IDeckLinkOutputVtbl;\r
1647 \r
1648     interface IDeckLinkOutput\r
1649     {\r
1650         CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;\r
1651     };\r
1652 \r
1653     \r
1654 \r
1655 #ifdef COBJMACROS\r
1656 \r
1657 \r
1658 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject)     \\r
1659     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1660 \r
1661 #define IDeckLinkOutput_AddRef(This)    \\r
1662     ( (This)->lpVtbl -> AddRef(This) ) \r
1663 \r
1664 #define IDeckLinkOutput_Release(This)   \\r
1665     ( (This)->lpVtbl -> Release(This) ) \r
1666 \r
1667 \r
1668 #define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,result)       \\r
1669     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
1670 \r
1671 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator)   \\r
1672     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
1673 \r
1674 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback)  \\r
1675     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
1676 \r
1677 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags)       \\r
1678     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
1679 \r
1680 #define IDeckLinkOutput_DisableVideoOutput(This)        \\r
1681     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
1682 \r
1683 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator)   \\r
1684     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
1685 \r
1686 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \\r
1687     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
1688 \r
1689 #define IDeckLinkOutput_CreateAncillaryData(This,displayMode,pixelFormat,outBuffer)     \\r
1690     ( (This)->lpVtbl -> CreateAncillaryData(This,displayMode,pixelFormat,outBuffer) ) \r
1691 \r
1692 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame)    \\r
1693     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
1694 \r
1695 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \\r
1696     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
1697 \r
1698 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback)   \\r
1699     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
1700 \r
1701 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount)     \\r
1702     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
1703 \r
1704 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)   \\r
1705     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
1706 \r
1707 #define IDeckLinkOutput_DisableAudioOutput(This)        \\r
1708     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
1709 \r
1710 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \\r
1711     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
1712 \r
1713 #define IDeckLinkOutput_BeginAudioPreroll(This) \\r
1714     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
1715 \r
1716 #define IDeckLinkOutput_EndAudioPreroll(This)   \\r
1717     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
1718 \r
1719 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)     \\r
1720     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
1721 \r
1722 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \\r
1723     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
1724 \r
1725 #define IDeckLinkOutput_FlushBufferedAudioSamples(This) \\r
1726     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
1727 \r
1728 #define IDeckLinkOutput_SetAudioCallback(This,theCallback)      \\r
1729     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
1730 \r
1731 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)  \\r
1732     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
1733 \r
1734 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \\r
1735     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
1736 \r
1737 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) \\r
1738     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
1739 \r
1740 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)  \\r
1741     ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
1742 \r
1743 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \\r
1744     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
1745 \r
1746 #endif /* COBJMACROS */\r
1747 \r
1748 \r
1749 #endif  /* C style interface */\r
1750 \r
1751 \r
1752 \r
1753 \r
1754 #endif  /* __IDeckLinkOutput_INTERFACE_DEFINED__ */\r
1755 \r
1756 \r
1757 #ifndef __IDeckLinkInput_INTERFACE_DEFINED__\r
1758 #define __IDeckLinkInput_INTERFACE_DEFINED__\r
1759 \r
1760 /* interface IDeckLinkInput */\r
1761 /* [helpstring][uuid][object] */ \r
1762 \r
1763 \r
1764 EXTERN_C const IID IID_IDeckLinkInput;\r
1765 \r
1766 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1767     \r
1768     MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")\r
1769     IDeckLinkInput : public IUnknown\r
1770     {\r
1771     public:\r
1772         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
1773             BMDDisplayMode displayMode,\r
1774             BMDPixelFormat pixelFormat,\r
1775             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
1776         \r
1777         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
1778             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
1779         \r
1780         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
1781             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
1782         \r
1783         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
1784             BMDDisplayMode displayMode,\r
1785             BMDPixelFormat pixelFormat,\r
1786             BMDVideoInputFlags flags) = 0;\r
1787         \r
1788         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
1789         \r
1790         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
1791             /* [out] */ unsigned long *availableFrameCount) = 0;\r
1792         \r
1793         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
1794             BMDAudioSampleRate sampleRate,\r
1795             BMDAudioSampleType sampleType,\r
1796             unsigned long channelCount) = 0;\r
1797         \r
1798         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
1799         \r
1800         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
1801             /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
1802         \r
1803         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
1804         \r
1805         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
1806         \r
1807         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
1808         \r
1809         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
1810         \r
1811         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
1812             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;\r
1813         \r
1814         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
1815             BMDTimeScale desiredTimeScale,\r
1816             /* [out] */ BMDTimeValue *hardwareTime,\r
1817             /* [out] */ BMDTimeValue *timeInFrame,\r
1818             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
1819         \r
1820     };\r
1821     \r
1822 #else   /* C style interface */\r
1823 \r
1824     typedef struct IDeckLinkInputVtbl\r
1825     {\r
1826         BEGIN_INTERFACE\r
1827         \r
1828         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
1829             IDeckLinkInput * This,\r
1830             /* [in] */ REFIID riid,\r
1831             /* [iid_is][out] */ \r
1832             __RPC__deref_out  void **ppvObject);\r
1833         \r
1834         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
1835             IDeckLinkInput * This);\r
1836         \r
1837         ULONG ( STDMETHODCALLTYPE *Release )( \r
1838             IDeckLinkInput * This);\r
1839         \r
1840         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
1841             IDeckLinkInput * This,\r
1842             BMDDisplayMode displayMode,\r
1843             BMDPixelFormat pixelFormat,\r
1844             /* [out] */ BMDDisplayModeSupport *result);\r
1845         \r
1846         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
1847             IDeckLinkInput * This,\r
1848             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
1849         \r
1850         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
1851             IDeckLinkInput * This,\r
1852             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
1853         \r
1854         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
1855             IDeckLinkInput * This,\r
1856             BMDDisplayMode displayMode,\r
1857             BMDPixelFormat pixelFormat,\r
1858             BMDVideoInputFlags flags);\r
1859         \r
1860         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
1861             IDeckLinkInput * This);\r
1862         \r
1863         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
1864             IDeckLinkInput * This,\r
1865             /* [out] */ unsigned long *availableFrameCount);\r
1866         \r
1867         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
1868             IDeckLinkInput * This,\r
1869             BMDAudioSampleRate sampleRate,\r
1870             BMDAudioSampleType sampleType,\r
1871             unsigned long channelCount);\r
1872         \r
1873         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
1874             IDeckLinkInput * This);\r
1875         \r
1876         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
1877             IDeckLinkInput * This,\r
1878             /* [out] */ unsigned long *availableSampleFrameCount);\r
1879         \r
1880         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
1881             IDeckLinkInput * This);\r
1882         \r
1883         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
1884             IDeckLinkInput * This);\r
1885         \r
1886         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
1887             IDeckLinkInput * This);\r
1888         \r
1889         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
1890             IDeckLinkInput * This);\r
1891         \r
1892         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
1893             IDeckLinkInput * This,\r
1894             /* [in] */ IDeckLinkInputCallback *theCallback);\r
1895         \r
1896         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
1897             IDeckLinkInput * This,\r
1898             BMDTimeScale desiredTimeScale,\r
1899             /* [out] */ BMDTimeValue *hardwareTime,\r
1900             /* [out] */ BMDTimeValue *timeInFrame,\r
1901             /* [out] */ BMDTimeValue *ticksPerFrame);\r
1902         \r
1903         END_INTERFACE\r
1904     } IDeckLinkInputVtbl;\r
1905 \r
1906     interface IDeckLinkInput\r
1907     {\r
1908         CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;\r
1909     };\r
1910 \r
1911     \r
1912 \r
1913 #ifdef COBJMACROS\r
1914 \r
1915 \r
1916 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject)      \\r
1917     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
1918 \r
1919 #define IDeckLinkInput_AddRef(This)     \\r
1920     ( (This)->lpVtbl -> AddRef(This) ) \r
1921 \r
1922 #define IDeckLinkInput_Release(This)    \\r
1923     ( (This)->lpVtbl -> Release(This) ) \r
1924 \r
1925 \r
1926 #define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,result)        \\r
1927     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
1928 \r
1929 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator)    \\r
1930     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
1931 \r
1932 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback)   \\r
1933     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
1934 \r
1935 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags)     \\r
1936     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
1937 \r
1938 #define IDeckLinkInput_DisableVideoInput(This)  \\r
1939     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
1940 \r
1941 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount)    \\r
1942     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
1943 \r
1944 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount)        \\r
1945     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
1946 \r
1947 #define IDeckLinkInput_DisableAudioInput(This)  \\r
1948     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
1949 \r
1950 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)        \\r
1951     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
1952 \r
1953 #define IDeckLinkInput_StartStreams(This)       \\r
1954     ( (This)->lpVtbl -> StartStreams(This) ) \r
1955 \r
1956 #define IDeckLinkInput_StopStreams(This)        \\r
1957     ( (This)->lpVtbl -> StopStreams(This) ) \r
1958 \r
1959 #define IDeckLinkInput_PauseStreams(This)       \\r
1960     ( (This)->lpVtbl -> PauseStreams(This) ) \r
1961 \r
1962 #define IDeckLinkInput_FlushStreams(This)       \\r
1963     ( (This)->lpVtbl -> FlushStreams(This) ) \r
1964 \r
1965 #define IDeckLinkInput_SetCallback(This,theCallback)    \\r
1966     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
1967 \r
1968 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \\r
1969     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
1970 \r
1971 #endif /* COBJMACROS */\r
1972 \r
1973 \r
1974 #endif  /* C style interface */\r
1975 \r
1976 \r
1977 \r
1978 \r
1979 #endif  /* __IDeckLinkInput_INTERFACE_DEFINED__ */\r
1980 \r
1981 \r
1982 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__\r
1983 #define __IDeckLinkTimecode_INTERFACE_DEFINED__\r
1984 \r
1985 /* interface IDeckLinkTimecode */\r
1986 /* [helpstring][uuid][object] */ \r
1987 \r
1988 \r
1989 EXTERN_C const IID IID_IDeckLinkTimecode;\r
1990 \r
1991 #if defined(__cplusplus) && !defined(CINTERFACE)\r
1992     \r
1993     MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")\r
1994     IDeckLinkTimecode : public IUnknown\r
1995     {\r
1996     public:\r
1997         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
1998         \r
1999         virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
2000             /* [out] */ unsigned char *hours,\r
2001             /* [out] */ unsigned char *minutes,\r
2002             /* [out] */ unsigned char *seconds,\r
2003             /* [out] */ unsigned char *frames) = 0;\r
2004         \r
2005         virtual HRESULT STDMETHODCALLTYPE GetString( \r
2006             /* [out] */ BSTR *timecode) = 0;\r
2007         \r
2008         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
2009         \r
2010     };\r
2011     \r
2012 #else   /* C style interface */\r
2013 \r
2014     typedef struct IDeckLinkTimecodeVtbl\r
2015     {\r
2016         BEGIN_INTERFACE\r
2017         \r
2018         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2019             IDeckLinkTimecode * This,\r
2020             /* [in] */ REFIID riid,\r
2021             /* [iid_is][out] */ \r
2022             __RPC__deref_out  void **ppvObject);\r
2023         \r
2024         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2025             IDeckLinkTimecode * This);\r
2026         \r
2027         ULONG ( STDMETHODCALLTYPE *Release )( \r
2028             IDeckLinkTimecode * This);\r
2029         \r
2030         BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
2031             IDeckLinkTimecode * This);\r
2032         \r
2033         HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
2034             IDeckLinkTimecode * This,\r
2035             /* [out] */ unsigned char *hours,\r
2036             /* [out] */ unsigned char *minutes,\r
2037             /* [out] */ unsigned char *seconds,\r
2038             /* [out] */ unsigned char *frames);\r
2039         \r
2040         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
2041             IDeckLinkTimecode * This,\r
2042             /* [out] */ BSTR *timecode);\r
2043         \r
2044         BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2045             IDeckLinkTimecode * This);\r
2046         \r
2047         END_INTERFACE\r
2048     } IDeckLinkTimecodeVtbl;\r
2049 \r
2050     interface IDeckLinkTimecode\r
2051     {\r
2052         CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;\r
2053     };\r
2054 \r
2055     \r
2056 \r
2057 #ifdef COBJMACROS\r
2058 \r
2059 \r
2060 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)   \\r
2061     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2062 \r
2063 #define IDeckLinkTimecode_AddRef(This)  \\r
2064     ( (This)->lpVtbl -> AddRef(This) ) \r
2065 \r
2066 #define IDeckLinkTimecode_Release(This) \\r
2067     ( (This)->lpVtbl -> Release(This) ) \r
2068 \r
2069 \r
2070 #define IDeckLinkTimecode_GetBCD(This)  \\r
2071     ( (This)->lpVtbl -> GetBCD(This) ) \r
2072 \r
2073 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)      \\r
2074     ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
2075 \r
2076 #define IDeckLinkTimecode_GetString(This,timecode)      \\r
2077     ( (This)->lpVtbl -> GetString(This,timecode) ) \r
2078 \r
2079 #define IDeckLinkTimecode_GetFlags(This)        \\r
2080     ( (This)->lpVtbl -> GetFlags(This) ) \r
2081 \r
2082 #endif /* COBJMACROS */\r
2083 \r
2084 \r
2085 #endif  /* C style interface */\r
2086 \r
2087 \r
2088 \r
2089 \r
2090 #endif  /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */\r
2091 \r
2092 \r
2093 #ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
2094 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
2095 \r
2096 /* interface IDeckLinkVideoFrame */\r
2097 /* [helpstring][local][uuid][object] */ \r
2098 \r
2099 \r
2100 EXTERN_C const IID IID_IDeckLinkVideoFrame;\r
2101 \r
2102 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2103     \r
2104     MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")\r
2105     IDeckLinkVideoFrame : public IUnknown\r
2106     {\r
2107     public:\r
2108         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
2109         \r
2110         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
2111         \r
2112         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
2113         \r
2114         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
2115         \r
2116         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
2117         \r
2118         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
2119             /* [out] */ void **buffer) = 0;\r
2120         \r
2121         virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
2122             BMDTimecodeFormat format,\r
2123             /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
2124         \r
2125         virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
2126             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
2127         \r
2128     };\r
2129     \r
2130 #else   /* C style interface */\r
2131 \r
2132     typedef struct IDeckLinkVideoFrameVtbl\r
2133     {\r
2134         BEGIN_INTERFACE\r
2135         \r
2136         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2137             IDeckLinkVideoFrame * This,\r
2138             /* [in] */ REFIID riid,\r
2139             /* [iid_is][out] */ \r
2140             __RPC__deref_out  void **ppvObject);\r
2141         \r
2142         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2143             IDeckLinkVideoFrame * This);\r
2144         \r
2145         ULONG ( STDMETHODCALLTYPE *Release )( \r
2146             IDeckLinkVideoFrame * This);\r
2147         \r
2148         long ( STDMETHODCALLTYPE *GetWidth )( \r
2149             IDeckLinkVideoFrame * This);\r
2150         \r
2151         long ( STDMETHODCALLTYPE *GetHeight )( \r
2152             IDeckLinkVideoFrame * This);\r
2153         \r
2154         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
2155             IDeckLinkVideoFrame * This);\r
2156         \r
2157         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2158             IDeckLinkVideoFrame * This);\r
2159         \r
2160         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2161             IDeckLinkVideoFrame * This);\r
2162         \r
2163         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2164             IDeckLinkVideoFrame * This,\r
2165             /* [out] */ void **buffer);\r
2166         \r
2167         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
2168             IDeckLinkVideoFrame * This,\r
2169             BMDTimecodeFormat format,\r
2170             /* [out] */ IDeckLinkTimecode **timecode);\r
2171         \r
2172         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
2173             IDeckLinkVideoFrame * This,\r
2174             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
2175         \r
2176         END_INTERFACE\r
2177     } IDeckLinkVideoFrameVtbl;\r
2178 \r
2179     interface IDeckLinkVideoFrame\r
2180     {\r
2181         CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;\r
2182     };\r
2183 \r
2184     \r
2185 \r
2186 #ifdef COBJMACROS\r
2187 \r
2188 \r
2189 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) \\r
2190     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2191 \r
2192 #define IDeckLinkVideoFrame_AddRef(This)        \\r
2193     ( (This)->lpVtbl -> AddRef(This) ) \r
2194 \r
2195 #define IDeckLinkVideoFrame_Release(This)       \\r
2196     ( (This)->lpVtbl -> Release(This) ) \r
2197 \r
2198 \r
2199 #define IDeckLinkVideoFrame_GetWidth(This)      \\r
2200     ( (This)->lpVtbl -> GetWidth(This) ) \r
2201 \r
2202 #define IDeckLinkVideoFrame_GetHeight(This)     \\r
2203     ( (This)->lpVtbl -> GetHeight(This) ) \r
2204 \r
2205 #define IDeckLinkVideoFrame_GetRowBytes(This)   \\r
2206     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
2207 \r
2208 #define IDeckLinkVideoFrame_GetPixelFormat(This)        \\r
2209     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
2210 \r
2211 #define IDeckLinkVideoFrame_GetFlags(This)      \\r
2212     ( (This)->lpVtbl -> GetFlags(This) ) \r
2213 \r
2214 #define IDeckLinkVideoFrame_GetBytes(This,buffer)       \\r
2215     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
2216 \r
2217 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)   \\r
2218     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
2219 \r
2220 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)    \\r
2221     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
2222 \r
2223 #endif /* COBJMACROS */\r
2224 \r
2225 \r
2226 #endif  /* C style interface */\r
2227 \r
2228 \r
2229 \r
2230 \r
2231 #endif  /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */\r
2232 \r
2233 \r
2234 #ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
2235 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
2236 \r
2237 /* interface IDeckLinkMutableVideoFrame */\r
2238 /* [helpstring][local][uuid][object] */ \r
2239 \r
2240 \r
2241 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;\r
2242 \r
2243 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2244     \r
2245     MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")\r
2246     IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame\r
2247     {\r
2248     public:\r
2249         virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
2250             BMDFrameFlags newFlags) = 0;\r
2251         \r
2252         virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
2253             BMDTimecodeFormat format,\r
2254             /* [in] */ IDeckLinkTimecode *timecode) = 0;\r
2255         \r
2256         virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
2257             BMDTimecodeFormat format,\r
2258             unsigned char hours,\r
2259             unsigned char minutes,\r
2260             unsigned char seconds,\r
2261             unsigned char frames,\r
2262             BMDTimecodeFlags flags) = 0;\r
2263         \r
2264         virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
2265             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
2266         \r
2267     };\r
2268     \r
2269 #else   /* C style interface */\r
2270 \r
2271     typedef struct IDeckLinkMutableVideoFrameVtbl\r
2272     {\r
2273         BEGIN_INTERFACE\r
2274         \r
2275         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2276             IDeckLinkMutableVideoFrame * This,\r
2277             /* [in] */ REFIID riid,\r
2278             /* [iid_is][out] */ \r
2279             __RPC__deref_out  void **ppvObject);\r
2280         \r
2281         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2282             IDeckLinkMutableVideoFrame * This);\r
2283         \r
2284         ULONG ( STDMETHODCALLTYPE *Release )( \r
2285             IDeckLinkMutableVideoFrame * This);\r
2286         \r
2287         long ( STDMETHODCALLTYPE *GetWidth )( \r
2288             IDeckLinkMutableVideoFrame * This);\r
2289         \r
2290         long ( STDMETHODCALLTYPE *GetHeight )( \r
2291             IDeckLinkMutableVideoFrame * This);\r
2292         \r
2293         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
2294             IDeckLinkMutableVideoFrame * This);\r
2295         \r
2296         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2297             IDeckLinkMutableVideoFrame * This);\r
2298         \r
2299         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2300             IDeckLinkMutableVideoFrame * This);\r
2301         \r
2302         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2303             IDeckLinkMutableVideoFrame * This,\r
2304             /* [out] */ void **buffer);\r
2305         \r
2306         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
2307             IDeckLinkMutableVideoFrame * This,\r
2308             BMDTimecodeFormat format,\r
2309             /* [out] */ IDeckLinkTimecode **timecode);\r
2310         \r
2311         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
2312             IDeckLinkMutableVideoFrame * This,\r
2313             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
2314         \r
2315         HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
2316             IDeckLinkMutableVideoFrame * This,\r
2317             BMDFrameFlags newFlags);\r
2318         \r
2319         HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
2320             IDeckLinkMutableVideoFrame * This,\r
2321             BMDTimecodeFormat format,\r
2322             /* [in] */ IDeckLinkTimecode *timecode);\r
2323         \r
2324         HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
2325             IDeckLinkMutableVideoFrame * This,\r
2326             BMDTimecodeFormat format,\r
2327             unsigned char hours,\r
2328             unsigned char minutes,\r
2329             unsigned char seconds,\r
2330             unsigned char frames,\r
2331             BMDTimecodeFlags flags);\r
2332         \r
2333         HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
2334             IDeckLinkMutableVideoFrame * This,\r
2335             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
2336         \r
2337         END_INTERFACE\r
2338     } IDeckLinkMutableVideoFrameVtbl;\r
2339 \r
2340     interface IDeckLinkMutableVideoFrame\r
2341     {\r
2342         CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;\r
2343     };\r
2344 \r
2345     \r
2346 \r
2347 #ifdef COBJMACROS\r
2348 \r
2349 \r
2350 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject)  \\r
2351     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2352 \r
2353 #define IDeckLinkMutableVideoFrame_AddRef(This) \\r
2354     ( (This)->lpVtbl -> AddRef(This) ) \r
2355 \r
2356 #define IDeckLinkMutableVideoFrame_Release(This)        \\r
2357     ( (This)->lpVtbl -> Release(This) ) \r
2358 \r
2359 \r
2360 #define IDeckLinkMutableVideoFrame_GetWidth(This)       \\r
2361     ( (This)->lpVtbl -> GetWidth(This) ) \r
2362 \r
2363 #define IDeckLinkMutableVideoFrame_GetHeight(This)      \\r
2364     ( (This)->lpVtbl -> GetHeight(This) ) \r
2365 \r
2366 #define IDeckLinkMutableVideoFrame_GetRowBytes(This)    \\r
2367     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
2368 \r
2369 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This) \\r
2370     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
2371 \r
2372 #define IDeckLinkMutableVideoFrame_GetFlags(This)       \\r
2373     ( (This)->lpVtbl -> GetFlags(This) ) \r
2374 \r
2375 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer)        \\r
2376     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
2377 \r
2378 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode)    \\r
2379     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
2380 \r
2381 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary)     \\r
2382     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
2383 \r
2384 \r
2385 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags)      \\r
2386     ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
2387 \r
2388 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode)    \\r
2389     ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
2390 \r
2391 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)    \\r
2392     ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
2393 \r
2394 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary)     \\r
2395     ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
2396 \r
2397 #endif /* COBJMACROS */\r
2398 \r
2399 \r
2400 #endif  /* C style interface */\r
2401 \r
2402 \r
2403 \r
2404 \r
2405 #endif  /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */\r
2406 \r
2407 \r
2408 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
2409 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
2410 \r
2411 /* interface IDeckLinkVideoInputFrame */\r
2412 /* [helpstring][local][uuid][object] */ \r
2413 \r
2414 \r
2415 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;\r
2416 \r
2417 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2418     \r
2419     MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")\r
2420     IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame\r
2421     {\r
2422     public:\r
2423         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
2424             /* [out] */ BMDTimeValue *frameTime,\r
2425             /* [out] */ BMDTimeValue *frameDuration,\r
2426             BMDTimeScale timeScale) = 0;\r
2427         \r
2428         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
2429             BMDTimeScale timeScale,\r
2430             /* [out] */ BMDTimeValue *frameTime,\r
2431             /* [out] */ BMDTimeValue *frameDuration) = 0;\r
2432         \r
2433     };\r
2434     \r
2435 #else   /* C style interface */\r
2436 \r
2437     typedef struct IDeckLinkVideoInputFrameVtbl\r
2438     {\r
2439         BEGIN_INTERFACE\r
2440         \r
2441         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2442             IDeckLinkVideoInputFrame * This,\r
2443             /* [in] */ REFIID riid,\r
2444             /* [iid_is][out] */ \r
2445             __RPC__deref_out  void **ppvObject);\r
2446         \r
2447         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2448             IDeckLinkVideoInputFrame * This);\r
2449         \r
2450         ULONG ( STDMETHODCALLTYPE *Release )( \r
2451             IDeckLinkVideoInputFrame * This);\r
2452         \r
2453         long ( STDMETHODCALLTYPE *GetWidth )( \r
2454             IDeckLinkVideoInputFrame * This);\r
2455         \r
2456         long ( STDMETHODCALLTYPE *GetHeight )( \r
2457             IDeckLinkVideoInputFrame * This);\r
2458         \r
2459         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
2460             IDeckLinkVideoInputFrame * This);\r
2461         \r
2462         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2463             IDeckLinkVideoInputFrame * This);\r
2464         \r
2465         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
2466             IDeckLinkVideoInputFrame * This);\r
2467         \r
2468         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2469             IDeckLinkVideoInputFrame * This,\r
2470             /* [out] */ void **buffer);\r
2471         \r
2472         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
2473             IDeckLinkVideoInputFrame * This,\r
2474             BMDTimecodeFormat format,\r
2475             /* [out] */ IDeckLinkTimecode **timecode);\r
2476         \r
2477         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
2478             IDeckLinkVideoInputFrame * This,\r
2479             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
2480         \r
2481         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
2482             IDeckLinkVideoInputFrame * This,\r
2483             /* [out] */ BMDTimeValue *frameTime,\r
2484             /* [out] */ BMDTimeValue *frameDuration,\r
2485             BMDTimeScale timeScale);\r
2486         \r
2487         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
2488             IDeckLinkVideoInputFrame * This,\r
2489             BMDTimeScale timeScale,\r
2490             /* [out] */ BMDTimeValue *frameTime,\r
2491             /* [out] */ BMDTimeValue *frameDuration);\r
2492         \r
2493         END_INTERFACE\r
2494     } IDeckLinkVideoInputFrameVtbl;\r
2495 \r
2496     interface IDeckLinkVideoInputFrame\r
2497     {\r
2498         CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;\r
2499     };\r
2500 \r
2501     \r
2502 \r
2503 #ifdef COBJMACROS\r
2504 \r
2505 \r
2506 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject)    \\r
2507     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2508 \r
2509 #define IDeckLinkVideoInputFrame_AddRef(This)   \\r
2510     ( (This)->lpVtbl -> AddRef(This) ) \r
2511 \r
2512 #define IDeckLinkVideoInputFrame_Release(This)  \\r
2513     ( (This)->lpVtbl -> Release(This) ) \r
2514 \r
2515 \r
2516 #define IDeckLinkVideoInputFrame_GetWidth(This) \\r
2517     ( (This)->lpVtbl -> GetWidth(This) ) \r
2518 \r
2519 #define IDeckLinkVideoInputFrame_GetHeight(This)        \\r
2520     ( (This)->lpVtbl -> GetHeight(This) ) \r
2521 \r
2522 #define IDeckLinkVideoInputFrame_GetRowBytes(This)      \\r
2523     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
2524 \r
2525 #define IDeckLinkVideoInputFrame_GetPixelFormat(This)   \\r
2526     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
2527 \r
2528 #define IDeckLinkVideoInputFrame_GetFlags(This) \\r
2529     ( (This)->lpVtbl -> GetFlags(This) ) \r
2530 \r
2531 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer)  \\r
2532     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
2533 \r
2534 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode)      \\r
2535     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
2536 \r
2537 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary)       \\r
2538     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
2539 \r
2540 \r
2541 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale)  \\r
2542     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
2543 \r
2544 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)  \\r
2545     ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
2546 \r
2547 #endif /* COBJMACROS */\r
2548 \r
2549 \r
2550 #endif  /* C style interface */\r
2551 \r
2552 \r
2553 \r
2554 \r
2555 #endif  /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */\r
2556 \r
2557 \r
2558 #ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
2559 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
2560 \r
2561 /* interface IDeckLinkVideoFrameAncillary */\r
2562 /* [helpstring][local][uuid][object] */ \r
2563 \r
2564 \r
2565 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;\r
2566 \r
2567 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2568     \r
2569     MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")\r
2570     IDeckLinkVideoFrameAncillary : public IUnknown\r
2571     {\r
2572     public:\r
2573         virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( \r
2574             unsigned long lineNumber,\r
2575             /* [out] */ void **buffer) = 0;\r
2576         \r
2577         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
2578         \r
2579         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
2580         \r
2581     };\r
2582     \r
2583 #else   /* C style interface */\r
2584 \r
2585     typedef struct IDeckLinkVideoFrameAncillaryVtbl\r
2586     {\r
2587         BEGIN_INTERFACE\r
2588         \r
2589         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2590             IDeckLinkVideoFrameAncillary * This,\r
2591             /* [in] */ REFIID riid,\r
2592             /* [iid_is][out] */ \r
2593             __RPC__deref_out  void **ppvObject);\r
2594         \r
2595         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2596             IDeckLinkVideoFrameAncillary * This);\r
2597         \r
2598         ULONG ( STDMETHODCALLTYPE *Release )( \r
2599             IDeckLinkVideoFrameAncillary * This);\r
2600         \r
2601         HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( \r
2602             IDeckLinkVideoFrameAncillary * This,\r
2603             unsigned long lineNumber,\r
2604             /* [out] */ void **buffer);\r
2605         \r
2606         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
2607             IDeckLinkVideoFrameAncillary * This);\r
2608         \r
2609         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
2610             IDeckLinkVideoFrameAncillary * This);\r
2611         \r
2612         END_INTERFACE\r
2613     } IDeckLinkVideoFrameAncillaryVtbl;\r
2614 \r
2615     interface IDeckLinkVideoFrameAncillary\r
2616     {\r
2617         CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;\r
2618     };\r
2619 \r
2620     \r
2621 \r
2622 #ifdef COBJMACROS\r
2623 \r
2624 \r
2625 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject)        \\r
2626     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2627 \r
2628 #define IDeckLinkVideoFrameAncillary_AddRef(This)       \\r
2629     ( (This)->lpVtbl -> AddRef(This) ) \r
2630 \r
2631 #define IDeckLinkVideoFrameAncillary_Release(This)      \\r
2632     ( (This)->lpVtbl -> Release(This) ) \r
2633 \r
2634 \r
2635 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer)   \\r
2636     ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) ) \r
2637 \r
2638 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This)       \\r
2639     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
2640 \r
2641 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This)       \\r
2642     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
2643 \r
2644 #endif /* COBJMACROS */\r
2645 \r
2646 \r
2647 #endif  /* C style interface */\r
2648 \r
2649 \r
2650 \r
2651 \r
2652 #endif  /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */\r
2653 \r
2654 \r
2655 #ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
2656 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
2657 \r
2658 /* interface IDeckLinkAudioInputPacket */\r
2659 /* [helpstring][local][uuid][object] */ \r
2660 \r
2661 \r
2662 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;\r
2663 \r
2664 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2665     \r
2666     MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")\r
2667     IDeckLinkAudioInputPacket : public IUnknown\r
2668     {\r
2669     public:\r
2670         virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;\r
2671         \r
2672         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
2673             /* [out] */ void **buffer) = 0;\r
2674         \r
2675         virtual HRESULT STDMETHODCALLTYPE GetPacketTime( \r
2676             /* [out] */ BMDTimeValue *packetTime,\r
2677             BMDTimeScale timeScale) = 0;\r
2678         \r
2679     };\r
2680     \r
2681 #else   /* C style interface */\r
2682 \r
2683     typedef struct IDeckLinkAudioInputPacketVtbl\r
2684     {\r
2685         BEGIN_INTERFACE\r
2686         \r
2687         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2688             IDeckLinkAudioInputPacket * This,\r
2689             /* [in] */ REFIID riid,\r
2690             /* [iid_is][out] */ \r
2691             __RPC__deref_out  void **ppvObject);\r
2692         \r
2693         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2694             IDeckLinkAudioInputPacket * This);\r
2695         \r
2696         ULONG ( STDMETHODCALLTYPE *Release )( \r
2697             IDeckLinkAudioInputPacket * This);\r
2698         \r
2699         long ( STDMETHODCALLTYPE *GetSampleFrameCount )( \r
2700             IDeckLinkAudioInputPacket * This);\r
2701         \r
2702         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
2703             IDeckLinkAudioInputPacket * This,\r
2704             /* [out] */ void **buffer);\r
2705         \r
2706         HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( \r
2707             IDeckLinkAudioInputPacket * This,\r
2708             /* [out] */ BMDTimeValue *packetTime,\r
2709             BMDTimeScale timeScale);\r
2710         \r
2711         END_INTERFACE\r
2712     } IDeckLinkAudioInputPacketVtbl;\r
2713 \r
2714     interface IDeckLinkAudioInputPacket\r
2715     {\r
2716         CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;\r
2717     };\r
2718 \r
2719     \r
2720 \r
2721 #ifdef COBJMACROS\r
2722 \r
2723 \r
2724 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)   \\r
2725     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2726 \r
2727 #define IDeckLinkAudioInputPacket_AddRef(This)  \\r
2728     ( (This)->lpVtbl -> AddRef(This) ) \r
2729 \r
2730 #define IDeckLinkAudioInputPacket_Release(This) \\r
2731     ( (This)->lpVtbl -> Release(This) ) \r
2732 \r
2733 \r
2734 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This)     \\r
2735     ( (This)->lpVtbl -> GetSampleFrameCount(This) ) \r
2736 \r
2737 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer) \\r
2738     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
2739 \r
2740 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale)      \\r
2741     ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) ) \r
2742 \r
2743 #endif /* COBJMACROS */\r
2744 \r
2745 \r
2746 #endif  /* C style interface */\r
2747 \r
2748 \r
2749 \r
2750 \r
2751 #endif  /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */\r
2752 \r
2753 \r
2754 #ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
2755 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
2756 \r
2757 /* interface IDeckLinkScreenPreviewCallback */\r
2758 /* [helpstring][local][uuid][object] */ \r
2759 \r
2760 \r
2761 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;\r
2762 \r
2763 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2764     \r
2765     MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")\r
2766     IDeckLinkScreenPreviewCallback : public IUnknown\r
2767     {\r
2768     public:\r
2769         virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
2770             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
2771         \r
2772     };\r
2773     \r
2774 #else   /* C style interface */\r
2775 \r
2776     typedef struct IDeckLinkScreenPreviewCallbackVtbl\r
2777     {\r
2778         BEGIN_INTERFACE\r
2779         \r
2780         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2781             IDeckLinkScreenPreviewCallback * This,\r
2782             /* [in] */ REFIID riid,\r
2783             /* [iid_is][out] */ \r
2784             __RPC__deref_out  void **ppvObject);\r
2785         \r
2786         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2787             IDeckLinkScreenPreviewCallback * This);\r
2788         \r
2789         ULONG ( STDMETHODCALLTYPE *Release )( \r
2790             IDeckLinkScreenPreviewCallback * This);\r
2791         \r
2792         HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
2793             IDeckLinkScreenPreviewCallback * This,\r
2794             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
2795         \r
2796         END_INTERFACE\r
2797     } IDeckLinkScreenPreviewCallbackVtbl;\r
2798 \r
2799     interface IDeckLinkScreenPreviewCallback\r
2800     {\r
2801         CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;\r
2802     };\r
2803 \r
2804     \r
2805 \r
2806 #ifdef COBJMACROS\r
2807 \r
2808 \r
2809 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)      \\r
2810     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2811 \r
2812 #define IDeckLinkScreenPreviewCallback_AddRef(This)     \\r
2813     ( (This)->lpVtbl -> AddRef(This) ) \r
2814 \r
2815 #define IDeckLinkScreenPreviewCallback_Release(This)    \\r
2816     ( (This)->lpVtbl -> Release(This) ) \r
2817 \r
2818 \r
2819 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) \\r
2820     ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
2821 \r
2822 #endif /* COBJMACROS */\r
2823 \r
2824 \r
2825 #endif  /* C style interface */\r
2826 \r
2827 \r
2828 \r
2829 \r
2830 #endif  /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */\r
2831 \r
2832 \r
2833 #ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
2834 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
2835 \r
2836 /* interface IDeckLinkGLScreenPreviewHelper */\r
2837 /* [helpstring][local][uuid][object] */ \r
2838 \r
2839 \r
2840 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;\r
2841 \r
2842 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2843     \r
2844     MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")\r
2845     IDeckLinkGLScreenPreviewHelper : public IUnknown\r
2846     {\r
2847     public:\r
2848         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
2849         \r
2850         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
2851         \r
2852         virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
2853             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
2854         \r
2855     };\r
2856     \r
2857 #else   /* C style interface */\r
2858 \r
2859     typedef struct IDeckLinkGLScreenPreviewHelperVtbl\r
2860     {\r
2861         BEGIN_INTERFACE\r
2862         \r
2863         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
2864             IDeckLinkGLScreenPreviewHelper * This,\r
2865             /* [in] */ REFIID riid,\r
2866             /* [iid_is][out] */ \r
2867             __RPC__deref_out  void **ppvObject);\r
2868         \r
2869         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
2870             IDeckLinkGLScreenPreviewHelper * This);\r
2871         \r
2872         ULONG ( STDMETHODCALLTYPE *Release )( \r
2873             IDeckLinkGLScreenPreviewHelper * This);\r
2874         \r
2875         HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
2876             IDeckLinkGLScreenPreviewHelper * This);\r
2877         \r
2878         HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
2879             IDeckLinkGLScreenPreviewHelper * This);\r
2880         \r
2881         HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
2882             IDeckLinkGLScreenPreviewHelper * This,\r
2883             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
2884         \r
2885         END_INTERFACE\r
2886     } IDeckLinkGLScreenPreviewHelperVtbl;\r
2887 \r
2888     interface IDeckLinkGLScreenPreviewHelper\r
2889     {\r
2890         CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;\r
2891     };\r
2892 \r
2893     \r
2894 \r
2895 #ifdef COBJMACROS\r
2896 \r
2897 \r
2898 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)      \\r
2899     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
2900 \r
2901 #define IDeckLinkGLScreenPreviewHelper_AddRef(This)     \\r
2902     ( (This)->lpVtbl -> AddRef(This) ) \r
2903 \r
2904 #define IDeckLinkGLScreenPreviewHelper_Release(This)    \\r
2905     ( (This)->lpVtbl -> Release(This) ) \r
2906 \r
2907 \r
2908 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)       \\r
2909     ( (This)->lpVtbl -> InitializeGL(This) ) \r
2910 \r
2911 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This)    \\r
2912     ( (This)->lpVtbl -> PaintGL(This) ) \r
2913 \r
2914 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame)  \\r
2915     ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
2916 \r
2917 #endif /* COBJMACROS */\r
2918 \r
2919 \r
2920 #endif  /* C style interface */\r
2921 \r
2922 \r
2923 \r
2924 \r
2925 #endif  /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */\r
2926 \r
2927 \r
2928 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
2929 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
2930 \r
2931 /* interface IDeckLinkConfiguration */\r
2932 /* [helpstring][uuid][object] */ \r
2933 \r
2934 \r
2935 EXTERN_C const IID IID_IDeckLinkConfiguration;\r
2936 \r
2937 #if defined(__cplusplus) && !defined(CINTERFACE)\r
2938     \r
2939     MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")\r
2940     IDeckLinkConfiguration : public IUnknown\r
2941     {\r
2942     public:\r
2943         virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( \r
2944             /* [out] */ IDeckLinkConfiguration **configObject) = 0;\r
2945         \r
2946         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
2947         \r
2948         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( \r
2949             BMDVideoConnection videoOutputConnection) = 0;\r
2950         \r
2951         virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( \r
2952             BMDVideoConnection videoOutputConnection,\r
2953             /* [out] */ BOOL *active) = 0;\r
2954         \r
2955         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( \r
2956             BMDAnalogVideoFlags analogVideoFlags) = 0;\r
2957         \r
2958         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( \r
2959             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
2960         \r
2961         virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( \r
2962             BOOL enable) = 0;\r
2963         \r
2964         virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( \r
2965             /* [out] */ BOOL *enabled) = 0;\r
2966         \r
2967         virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( \r
2968             BOOL enable444VideoOutput,\r
2969             BOOL enable3GbsOutput) = 0;\r
2970         \r
2971         virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( \r
2972             /* [out] */ BOOL *is444VideoOutputEnabled,\r
2973             /* [out] */ BOOL *threeGbsOutputEnabled) = 0;\r
2974         \r
2975         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( \r
2976             BMDVideoOutputConversionMode conversionMode) = 0;\r
2977         \r
2978         virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( \r
2979             /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;\r
2980         \r
2981         virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( \r
2982             BOOL enable) = 0;\r
2983         \r
2984         virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( \r
2985             /* [out] */ BOOL *enabled) = 0;\r
2986         \r
2987         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( \r
2988             BMDVideoConnection videoInputFormat) = 0;\r
2989         \r
2990         virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( \r
2991             /* [out] */ BMDVideoConnection *videoInputFormat) = 0;\r
2992         \r
2993         virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( \r
2994             BMDAnalogVideoFlags analogVideoFlags) = 0;\r
2995         \r
2996         virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( \r
2997             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
2998         \r
2999         virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( \r
3000             BMDVideoInputConversionMode conversionMode) = 0;\r
3001         \r
3002         virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( \r
3003             /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;\r
3004         \r
3005         virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( \r
3006             BOOL blackOutInCapture) = 0;\r
3007         \r
3008         virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( \r
3009             /* [out] */ BOOL *blackOutInCapture) = 0;\r
3010         \r
3011         virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( \r
3012             unsigned long aFrameTimecode) = 0;\r
3013         \r
3014         virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( \r
3015             /* [out] */ unsigned long *aFrameTimecode) = 0;\r
3016         \r
3017         virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( \r
3018             unsigned long activeLine1VANCsource,\r
3019             unsigned long activeLine2VANCsource,\r
3020             unsigned long activeLine3VANCsource) = 0;\r
3021         \r
3022         virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( \r
3023             /* [out] */ unsigned long *activeLine1VANCsource,\r
3024             /* [out] */ unsigned long *activeLine2VANCsource,\r
3025             /* [out] */ unsigned long *activeLine3VANCsource) = 0;\r
3026         \r
3027         virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( \r
3028             BMDAudioConnection audioInputFormat) = 0;\r
3029         \r
3030         virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( \r
3031             /* [out] */ BMDAudioConnection *audioInputFormat) = 0;\r
3032         \r
3033     };\r
3034     \r
3035 #else   /* C style interface */\r
3036 \r
3037     typedef struct IDeckLinkConfigurationVtbl\r
3038     {\r
3039         BEGIN_INTERFACE\r
3040         \r
3041         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3042             IDeckLinkConfiguration * This,\r
3043             /* [in] */ REFIID riid,\r
3044             /* [iid_is][out] */ \r
3045             __RPC__deref_out  void **ppvObject);\r
3046         \r
3047         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3048             IDeckLinkConfiguration * This);\r
3049         \r
3050         ULONG ( STDMETHODCALLTYPE *Release )( \r
3051             IDeckLinkConfiguration * This);\r
3052         \r
3053         HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )( \r
3054             IDeckLinkConfiguration * This,\r
3055             /* [out] */ IDeckLinkConfiguration **configObject);\r
3056         \r
3057         HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
3058             IDeckLinkConfiguration * This);\r
3059         \r
3060         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )( \r
3061             IDeckLinkConfiguration * This,\r
3062             BMDVideoConnection videoOutputConnection);\r
3063         \r
3064         HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )( \r
3065             IDeckLinkConfiguration * This,\r
3066             BMDVideoConnection videoOutputConnection,\r
3067             /* [out] */ BOOL *active);\r
3068         \r
3069         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )( \r
3070             IDeckLinkConfiguration * This,\r
3071             BMDAnalogVideoFlags analogVideoFlags);\r
3072         \r
3073         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )( \r
3074             IDeckLinkConfiguration * This,\r
3075             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
3076         \r
3077         HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )( \r
3078             IDeckLinkConfiguration * This,\r
3079             BOOL enable);\r
3080         \r
3081         HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )( \r
3082             IDeckLinkConfiguration * This,\r
3083             /* [out] */ BOOL *enabled);\r
3084         \r
3085         HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )( \r
3086             IDeckLinkConfiguration * This,\r
3087             BOOL enable444VideoOutput,\r
3088             BOOL enable3GbsOutput);\r
3089         \r
3090         HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )( \r
3091             IDeckLinkConfiguration * This,\r
3092             /* [out] */ BOOL *is444VideoOutputEnabled,\r
3093             /* [out] */ BOOL *threeGbsOutputEnabled);\r
3094         \r
3095         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )( \r
3096             IDeckLinkConfiguration * This,\r
3097             BMDVideoOutputConversionMode conversionMode);\r
3098         \r
3099         HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )( \r
3100             IDeckLinkConfiguration * This,\r
3101             /* [out] */ BMDVideoOutputConversionMode *conversionMode);\r
3102         \r
3103         HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )( \r
3104             IDeckLinkConfiguration * This,\r
3105             BOOL enable);\r
3106         \r
3107         HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )( \r
3108             IDeckLinkConfiguration * This,\r
3109             /* [out] */ BOOL *enabled);\r
3110         \r
3111         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )( \r
3112             IDeckLinkConfiguration * This,\r
3113             BMDVideoConnection videoInputFormat);\r
3114         \r
3115         HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )( \r
3116             IDeckLinkConfiguration * This,\r
3117             /* [out] */ BMDVideoConnection *videoInputFormat);\r
3118         \r
3119         HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )( \r
3120             IDeckLinkConfiguration * This,\r
3121             BMDAnalogVideoFlags analogVideoFlags);\r
3122         \r
3123         HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )( \r
3124             IDeckLinkConfiguration * This,\r
3125             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
3126         \r
3127         HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )( \r
3128             IDeckLinkConfiguration * This,\r
3129             BMDVideoInputConversionMode conversionMode);\r
3130         \r
3131         HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )( \r
3132             IDeckLinkConfiguration * This,\r
3133             /* [out] */ BMDVideoInputConversionMode *conversionMode);\r
3134         \r
3135         HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )( \r
3136             IDeckLinkConfiguration * This,\r
3137             BOOL blackOutInCapture);\r
3138         \r
3139         HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )( \r
3140             IDeckLinkConfiguration * This,\r
3141             /* [out] */ BOOL *blackOutInCapture);\r
3142         \r
3143         HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( \r
3144             IDeckLinkConfiguration * This,\r
3145             unsigned long aFrameTimecode);\r
3146         \r
3147         HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( \r
3148             IDeckLinkConfiguration * This,\r
3149             /* [out] */ unsigned long *aFrameTimecode);\r
3150         \r
3151         HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )( \r
3152             IDeckLinkConfiguration * This,\r
3153             unsigned long activeLine1VANCsource,\r
3154             unsigned long activeLine2VANCsource,\r
3155             unsigned long activeLine3VANCsource);\r
3156         \r
3157         HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )( \r
3158             IDeckLinkConfiguration * This,\r
3159             /* [out] */ unsigned long *activeLine1VANCsource,\r
3160             /* [out] */ unsigned long *activeLine2VANCsource,\r
3161             /* [out] */ unsigned long *activeLine3VANCsource);\r
3162         \r
3163         HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( \r
3164             IDeckLinkConfiguration * This,\r
3165             BMDAudioConnection audioInputFormat);\r
3166         \r
3167         HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )( \r
3168             IDeckLinkConfiguration * This,\r
3169             /* [out] */ BMDAudioConnection *audioInputFormat);\r
3170         \r
3171         END_INTERFACE\r
3172     } IDeckLinkConfigurationVtbl;\r
3173 \r
3174     interface IDeckLinkConfiguration\r
3175     {\r
3176         CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;\r
3177     };\r
3178 \r
3179     \r
3180 \r
3181 #ifdef COBJMACROS\r
3182 \r
3183 \r
3184 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)      \\r
3185     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3186 \r
3187 #define IDeckLinkConfiguration_AddRef(This)     \\r
3188     ( (This)->lpVtbl -> AddRef(This) ) \r
3189 \r
3190 #define IDeckLinkConfiguration_Release(This)    \\r
3191     ( (This)->lpVtbl -> Release(This) ) \r
3192 \r
3193 \r
3194 #define IDeckLinkConfiguration_GetConfigurationValidator(This,configObject)     \\r
3195     ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) ) \r
3196 \r
3197 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)    \\r
3198     ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
3199 \r
3200 #define IDeckLinkConfiguration_SetVideoOutputFormat(This,videoOutputConnection) \\r
3201     ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) ) \r
3202 \r
3203 #define IDeckLinkConfiguration_IsVideoOutputActive(This,videoOutputConnection,active)   \\r
3204     ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) ) \r
3205 \r
3206 #define IDeckLinkConfiguration_SetAnalogVideoOutputFlags(This,analogVideoFlags) \\r
3207     ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
3208 \r
3209 #define IDeckLinkConfiguration_GetAnalogVideoOutputFlags(This,analogVideoFlags) \\r
3210     ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
3211 \r
3212 #define IDeckLinkConfiguration_EnableFieldFlickerRemovalWhenPaused(This,enable) \\r
3213     ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) ) \r
3214 \r
3215 #define IDeckLinkConfiguration_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled)     \\r
3216     ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) ) \r
3217 \r
3218 #define IDeckLinkConfiguration_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput)    \\r
3219     ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) ) \r
3220 \r
3221 #define IDeckLinkConfiguration_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled)    \\r
3222     ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) ) \r
3223 \r
3224 #define IDeckLinkConfiguration_SetVideoOutputConversionMode(This,conversionMode)        \\r
3225     ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) ) \r
3226 \r
3227 #define IDeckLinkConfiguration_GetVideoOutputConversionMode(This,conversionMode)        \\r
3228     ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) ) \r
3229 \r
3230 #define IDeckLinkConfiguration_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable)     \\r
3231     ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) ) \r
3232 \r
3233 #define IDeckLinkConfiguration_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled)    \\r
3234     ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) ) \r
3235 \r
3236 #define IDeckLinkConfiguration_SetVideoInputFormat(This,videoInputFormat)       \\r
3237     ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) ) \r
3238 \r
3239 #define IDeckLinkConfiguration_GetVideoInputFormat(This,videoInputFormat)       \\r
3240     ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) ) \r
3241 \r
3242 #define IDeckLinkConfiguration_SetAnalogVideoInputFlags(This,analogVideoFlags)  \\r
3243     ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
3244 \r
3245 #define IDeckLinkConfiguration_GetAnalogVideoInputFlags(This,analogVideoFlags)  \\r
3246     ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
3247 \r
3248 #define IDeckLinkConfiguration_SetVideoInputConversionMode(This,conversionMode) \\r
3249     ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) ) \r
3250 \r
3251 #define IDeckLinkConfiguration_GetVideoInputConversionMode(This,conversionMode) \\r
3252     ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) ) \r
3253 \r
3254 #define IDeckLinkConfiguration_SetBlackVideoOutputDuringCapture(This,blackOutInCapture) \\r
3255     ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
3256 \r
3257 #define IDeckLinkConfiguration_GetBlackVideoOutputDuringCapture(This,blackOutInCapture) \\r
3258     ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
3259 \r
3260 #define IDeckLinkConfiguration_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)   \\r
3261     ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
3262 \r
3263 #define IDeckLinkConfiguration_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)   \\r
3264     ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
3265 \r
3266 #define IDeckLinkConfiguration_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \\r
3267     ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
3268 \r
3269 #define IDeckLinkConfiguration_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \\r
3270     ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
3271 \r
3272 #define IDeckLinkConfiguration_SetAudioInputFormat(This,audioInputFormat)       \\r
3273     ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) ) \r
3274 \r
3275 #define IDeckLinkConfiguration_GetAudioInputFormat(This,audioInputFormat)       \\r
3276     ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) ) \r
3277 \r
3278 #endif /* COBJMACROS */\r
3279 \r
3280 \r
3281 #endif  /* C style interface */\r
3282 \r
3283 \r
3284 \r
3285 \r
3286 #endif  /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */\r
3287 \r
3288 \r
3289 #ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__\r
3290 #define __IDeckLinkAttributes_INTERFACE_DEFINED__\r
3291 \r
3292 /* interface IDeckLinkAttributes */\r
3293 /* [helpstring][local][uuid][object] */ \r
3294 \r
3295 \r
3296 EXTERN_C const IID IID_IDeckLinkAttributes;\r
3297 \r
3298 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3299     \r
3300     MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")\r
3301     IDeckLinkAttributes : public IUnknown\r
3302     {\r
3303     public:\r
3304         virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
3305             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3306             /* [out] */ BOOL *value) = 0;\r
3307         \r
3308         virtual HRESULT STDMETHODCALLTYPE GetInt( \r
3309             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3310             /* [out] */ LONGLONG *value) = 0;\r
3311         \r
3312         virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
3313             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3314             /* [out] */ double *value) = 0;\r
3315         \r
3316         virtual HRESULT STDMETHODCALLTYPE GetString( \r
3317             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3318             /* [out] */ BSTR *value) = 0;\r
3319         \r
3320     };\r
3321     \r
3322 #else   /* C style interface */\r
3323 \r
3324     typedef struct IDeckLinkAttributesVtbl\r
3325     {\r
3326         BEGIN_INTERFACE\r
3327         \r
3328         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3329             IDeckLinkAttributes * This,\r
3330             /* [in] */ REFIID riid,\r
3331             /* [iid_is][out] */ \r
3332             __RPC__deref_out  void **ppvObject);\r
3333         \r
3334         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3335             IDeckLinkAttributes * This);\r
3336         \r
3337         ULONG ( STDMETHODCALLTYPE *Release )( \r
3338             IDeckLinkAttributes * This);\r
3339         \r
3340         HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
3341             IDeckLinkAttributes * This,\r
3342             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3343             /* [out] */ BOOL *value);\r
3344         \r
3345         HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
3346             IDeckLinkAttributes * This,\r
3347             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3348             /* [out] */ LONGLONG *value);\r
3349         \r
3350         HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
3351             IDeckLinkAttributes * This,\r
3352             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3353             /* [out] */ double *value);\r
3354         \r
3355         HRESULT ( STDMETHODCALLTYPE *GetString )( \r
3356             IDeckLinkAttributes * This,\r
3357             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
3358             /* [out] */ BSTR *value);\r
3359         \r
3360         END_INTERFACE\r
3361     } IDeckLinkAttributesVtbl;\r
3362 \r
3363     interface IDeckLinkAttributes\r
3364     {\r
3365         CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;\r
3366     };\r
3367 \r
3368     \r
3369 \r
3370 #ifdef COBJMACROS\r
3371 \r
3372 \r
3373 #define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) \\r
3374     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3375 \r
3376 #define IDeckLinkAttributes_AddRef(This)        \\r
3377     ( (This)->lpVtbl -> AddRef(This) ) \r
3378 \r
3379 #define IDeckLinkAttributes_Release(This)       \\r
3380     ( (This)->lpVtbl -> Release(This) ) \r
3381 \r
3382 \r
3383 #define IDeckLinkAttributes_GetFlag(This,cfgID,value)   \\r
3384     ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
3385 \r
3386 #define IDeckLinkAttributes_GetInt(This,cfgID,value)    \\r
3387     ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
3388 \r
3389 #define IDeckLinkAttributes_GetFloat(This,cfgID,value)  \\r
3390     ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
3391 \r
3392 #define IDeckLinkAttributes_GetString(This,cfgID,value) \\r
3393     ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
3394 \r
3395 #endif /* COBJMACROS */\r
3396 \r
3397 \r
3398 #endif  /* C style interface */\r
3399 \r
3400 \r
3401 \r
3402 \r
3403 #endif  /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */\r
3404 \r
3405 \r
3406 #ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__\r
3407 #define __IDeckLinkKeyer_INTERFACE_DEFINED__\r
3408 \r
3409 /* interface IDeckLinkKeyer */\r
3410 /* [helpstring][local][uuid][object] */ \r
3411 \r
3412 \r
3413 EXTERN_C const IID IID_IDeckLinkKeyer;\r
3414 \r
3415 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3416     \r
3417     MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")\r
3418     IDeckLinkKeyer : public IUnknown\r
3419     {\r
3420     public:\r
3421         virtual HRESULT STDMETHODCALLTYPE Enable( \r
3422             /* [in] */ BOOL isExternal) = 0;\r
3423         \r
3424         virtual HRESULT STDMETHODCALLTYPE SetLevel( \r
3425             /* [in] */ unsigned char level) = 0;\r
3426         \r
3427         virtual HRESULT STDMETHODCALLTYPE RampUp( \r
3428             /* [in] */ unsigned long numberOfFrames) = 0;\r
3429         \r
3430         virtual HRESULT STDMETHODCALLTYPE RampDown( \r
3431             /* [in] */ unsigned long numberOfFrames) = 0;\r
3432         \r
3433         virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;\r
3434         \r
3435     };\r
3436     \r
3437 #else   /* C style interface */\r
3438 \r
3439     typedef struct IDeckLinkKeyerVtbl\r
3440     {\r
3441         BEGIN_INTERFACE\r
3442         \r
3443         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3444             IDeckLinkKeyer * This,\r
3445             /* [in] */ REFIID riid,\r
3446             /* [iid_is][out] */ \r
3447             __RPC__deref_out  void **ppvObject);\r
3448         \r
3449         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3450             IDeckLinkKeyer * This);\r
3451         \r
3452         ULONG ( STDMETHODCALLTYPE *Release )( \r
3453             IDeckLinkKeyer * This);\r
3454         \r
3455         HRESULT ( STDMETHODCALLTYPE *Enable )( \r
3456             IDeckLinkKeyer * This,\r
3457             /* [in] */ BOOL isExternal);\r
3458         \r
3459         HRESULT ( STDMETHODCALLTYPE *SetLevel )( \r
3460             IDeckLinkKeyer * This,\r
3461             /* [in] */ unsigned char level);\r
3462         \r
3463         HRESULT ( STDMETHODCALLTYPE *RampUp )( \r
3464             IDeckLinkKeyer * This,\r
3465             /* [in] */ unsigned long numberOfFrames);\r
3466         \r
3467         HRESULT ( STDMETHODCALLTYPE *RampDown )( \r
3468             IDeckLinkKeyer * This,\r
3469             /* [in] */ unsigned long numberOfFrames);\r
3470         \r
3471         HRESULT ( STDMETHODCALLTYPE *Disable )( \r
3472             IDeckLinkKeyer * This);\r
3473         \r
3474         END_INTERFACE\r
3475     } IDeckLinkKeyerVtbl;\r
3476 \r
3477     interface IDeckLinkKeyer\r
3478     {\r
3479         CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;\r
3480     };\r
3481 \r
3482     \r
3483 \r
3484 #ifdef COBJMACROS\r
3485 \r
3486 \r
3487 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)      \\r
3488     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3489 \r
3490 #define IDeckLinkKeyer_AddRef(This)     \\r
3491     ( (This)->lpVtbl -> AddRef(This) ) \r
3492 \r
3493 #define IDeckLinkKeyer_Release(This)    \\r
3494     ( (This)->lpVtbl -> Release(This) ) \r
3495 \r
3496 \r
3497 #define IDeckLinkKeyer_Enable(This,isExternal)  \\r
3498     ( (This)->lpVtbl -> Enable(This,isExternal) ) \r
3499 \r
3500 #define IDeckLinkKeyer_SetLevel(This,level)     \\r
3501     ( (This)->lpVtbl -> SetLevel(This,level) ) \r
3502 \r
3503 #define IDeckLinkKeyer_RampUp(This,numberOfFrames)      \\r
3504     ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) \r
3505 \r
3506 #define IDeckLinkKeyer_RampDown(This,numberOfFrames)    \\r
3507     ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) \r
3508 \r
3509 #define IDeckLinkKeyer_Disable(This)    \\r
3510     ( (This)->lpVtbl -> Disable(This) ) \r
3511 \r
3512 #endif /* COBJMACROS */\r
3513 \r
3514 \r
3515 #endif  /* C style interface */\r
3516 \r
3517 \r
3518 \r
3519 \r
3520 #endif  /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */\r
3521 \r
3522 \r
3523 EXTERN_C const CLSID CLSID_CDeckLinkIterator;\r
3524 \r
3525 #ifdef __cplusplus\r
3526 \r
3527 class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")\r
3528 CDeckLinkIterator;\r
3529 #endif\r
3530 \r
3531 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;\r
3532 \r
3533 #ifdef __cplusplus\r
3534 \r
3535 class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")\r
3536 CDeckLinkGLScreenPreviewHelper;\r
3537 #endif\r
3538 \r
3539 #ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
3540 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
3541 \r
3542 /* interface IDeckLinkDisplayModeIterator_v7_1 */\r
3543 /* [helpstring][uuid][object] */ \r
3544 \r
3545 \r
3546 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;\r
3547 \r
3548 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3549     \r
3550     MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")\r
3551     IDeckLinkDisplayModeIterator_v7_1 : public IUnknown\r
3552     {\r
3553     public:\r
3554         virtual HRESULT STDMETHODCALLTYPE Next( \r
3555             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;\r
3556         \r
3557     };\r
3558     \r
3559 #else   /* C style interface */\r
3560 \r
3561     typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl\r
3562     {\r
3563         BEGIN_INTERFACE\r
3564         \r
3565         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3566             IDeckLinkDisplayModeIterator_v7_1 * This,\r
3567             /* [in] */ REFIID riid,\r
3568             /* [iid_is][out] */ \r
3569             __RPC__deref_out  void **ppvObject);\r
3570         \r
3571         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3572             IDeckLinkDisplayModeIterator_v7_1 * This);\r
3573         \r
3574         ULONG ( STDMETHODCALLTYPE *Release )( \r
3575             IDeckLinkDisplayModeIterator_v7_1 * This);\r
3576         \r
3577         HRESULT ( STDMETHODCALLTYPE *Next )( \r
3578             IDeckLinkDisplayModeIterator_v7_1 * This,\r
3579             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);\r
3580         \r
3581         END_INTERFACE\r
3582     } IDeckLinkDisplayModeIterator_v7_1Vtbl;\r
3583 \r
3584     interface IDeckLinkDisplayModeIterator_v7_1\r
3585     {\r
3586         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;\r
3587     };\r
3588 \r
3589     \r
3590 \r
3591 #ifdef COBJMACROS\r
3592 \r
3593 \r
3594 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject)   \\r
3595     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3596 \r
3597 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This)  \\r
3598     ( (This)->lpVtbl -> AddRef(This) ) \r
3599 \r
3600 #define IDeckLinkDisplayModeIterator_v7_1_Release(This) \\r
3601     ( (This)->lpVtbl -> Release(This) ) \r
3602 \r
3603 \r
3604 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode)        \\r
3605     ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
3606 \r
3607 #endif /* COBJMACROS */\r
3608 \r
3609 \r
3610 #endif  /* C style interface */\r
3611 \r
3612 \r
3613 \r
3614 \r
3615 #endif  /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */\r
3616 \r
3617 \r
3618 #ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
3619 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
3620 \r
3621 /* interface IDeckLinkDisplayMode_v7_1 */\r
3622 /* [helpstring][uuid][object] */ \r
3623 \r
3624 \r
3625 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;\r
3626 \r
3627 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3628     \r
3629     MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")\r
3630     IDeckLinkDisplayMode_v7_1 : public IUnknown\r
3631     {\r
3632     public:\r
3633         virtual HRESULT STDMETHODCALLTYPE GetName( \r
3634             /* [out] */ BSTR *name) = 0;\r
3635         \r
3636         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
3637         \r
3638         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
3639         \r
3640         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
3641         \r
3642         virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
3643             /* [out] */ BMDTimeValue *frameDuration,\r
3644             /* [out] */ BMDTimeScale *timeScale) = 0;\r
3645         \r
3646     };\r
3647     \r
3648 #else   /* C style interface */\r
3649 \r
3650     typedef struct IDeckLinkDisplayMode_v7_1Vtbl\r
3651     {\r
3652         BEGIN_INTERFACE\r
3653         \r
3654         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3655             IDeckLinkDisplayMode_v7_1 * This,\r
3656             /* [in] */ REFIID riid,\r
3657             /* [iid_is][out] */ \r
3658             __RPC__deref_out  void **ppvObject);\r
3659         \r
3660         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3661             IDeckLinkDisplayMode_v7_1 * This);\r
3662         \r
3663         ULONG ( STDMETHODCALLTYPE *Release )( \r
3664             IDeckLinkDisplayMode_v7_1 * This);\r
3665         \r
3666         HRESULT ( STDMETHODCALLTYPE *GetName )( \r
3667             IDeckLinkDisplayMode_v7_1 * This,\r
3668             /* [out] */ BSTR *name);\r
3669         \r
3670         BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
3671             IDeckLinkDisplayMode_v7_1 * This);\r
3672         \r
3673         long ( STDMETHODCALLTYPE *GetWidth )( \r
3674             IDeckLinkDisplayMode_v7_1 * This);\r
3675         \r
3676         long ( STDMETHODCALLTYPE *GetHeight )( \r
3677             IDeckLinkDisplayMode_v7_1 * This);\r
3678         \r
3679         HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
3680             IDeckLinkDisplayMode_v7_1 * This,\r
3681             /* [out] */ BMDTimeValue *frameDuration,\r
3682             /* [out] */ BMDTimeScale *timeScale);\r
3683         \r
3684         END_INTERFACE\r
3685     } IDeckLinkDisplayMode_v7_1Vtbl;\r
3686 \r
3687     interface IDeckLinkDisplayMode_v7_1\r
3688     {\r
3689         CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;\r
3690     };\r
3691 \r
3692     \r
3693 \r
3694 #ifdef COBJMACROS\r
3695 \r
3696 \r
3697 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject)   \\r
3698     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3699 \r
3700 #define IDeckLinkDisplayMode_v7_1_AddRef(This)  \\r
3701     ( (This)->lpVtbl -> AddRef(This) ) \r
3702 \r
3703 #define IDeckLinkDisplayMode_v7_1_Release(This) \\r
3704     ( (This)->lpVtbl -> Release(This) ) \r
3705 \r
3706 \r
3707 #define IDeckLinkDisplayMode_v7_1_GetName(This,name)    \\r
3708     ( (This)->lpVtbl -> GetName(This,name) ) \r
3709 \r
3710 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This)  \\r
3711     ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
3712 \r
3713 #define IDeckLinkDisplayMode_v7_1_GetWidth(This)        \\r
3714     ( (This)->lpVtbl -> GetWidth(This) ) \r
3715 \r
3716 #define IDeckLinkDisplayMode_v7_1_GetHeight(This)       \\r
3717     ( (This)->lpVtbl -> GetHeight(This) ) \r
3718 \r
3719 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale)    \\r
3720     ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
3721 \r
3722 #endif /* COBJMACROS */\r
3723 \r
3724 \r
3725 #endif  /* C style interface */\r
3726 \r
3727 \r
3728 \r
3729 \r
3730 #endif  /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */\r
3731 \r
3732 \r
3733 #ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
3734 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
3735 \r
3736 /* interface IDeckLinkVideoFrame_v7_1 */\r
3737 /* [helpstring][local][uuid][object] */ \r
3738 \r
3739 \r
3740 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;\r
3741 \r
3742 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3743     \r
3744     MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")\r
3745     IDeckLinkVideoFrame_v7_1 : public IUnknown\r
3746     {\r
3747     public:\r
3748         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
3749         \r
3750         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
3751         \r
3752         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
3753         \r
3754         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
3755         \r
3756         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
3757         \r
3758         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
3759             void **buffer) = 0;\r
3760         \r
3761     };\r
3762     \r
3763 #else   /* C style interface */\r
3764 \r
3765     typedef struct IDeckLinkVideoFrame_v7_1Vtbl\r
3766     {\r
3767         BEGIN_INTERFACE\r
3768         \r
3769         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3770             IDeckLinkVideoFrame_v7_1 * This,\r
3771             /* [in] */ REFIID riid,\r
3772             /* [iid_is][out] */ \r
3773             __RPC__deref_out  void **ppvObject);\r
3774         \r
3775         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3776             IDeckLinkVideoFrame_v7_1 * This);\r
3777         \r
3778         ULONG ( STDMETHODCALLTYPE *Release )( \r
3779             IDeckLinkVideoFrame_v7_1 * This);\r
3780         \r
3781         long ( STDMETHODCALLTYPE *GetWidth )( \r
3782             IDeckLinkVideoFrame_v7_1 * This);\r
3783         \r
3784         long ( STDMETHODCALLTYPE *GetHeight )( \r
3785             IDeckLinkVideoFrame_v7_1 * This);\r
3786         \r
3787         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
3788             IDeckLinkVideoFrame_v7_1 * This);\r
3789         \r
3790         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
3791             IDeckLinkVideoFrame_v7_1 * This);\r
3792         \r
3793         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
3794             IDeckLinkVideoFrame_v7_1 * This);\r
3795         \r
3796         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
3797             IDeckLinkVideoFrame_v7_1 * This,\r
3798             void **buffer);\r
3799         \r
3800         END_INTERFACE\r
3801     } IDeckLinkVideoFrame_v7_1Vtbl;\r
3802 \r
3803     interface IDeckLinkVideoFrame_v7_1\r
3804     {\r
3805         CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;\r
3806     };\r
3807 \r
3808     \r
3809 \r
3810 #ifdef COBJMACROS\r
3811 \r
3812 \r
3813 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject)    \\r
3814     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3815 \r
3816 #define IDeckLinkVideoFrame_v7_1_AddRef(This)   \\r
3817     ( (This)->lpVtbl -> AddRef(This) ) \r
3818 \r
3819 #define IDeckLinkVideoFrame_v7_1_Release(This)  \\r
3820     ( (This)->lpVtbl -> Release(This) ) \r
3821 \r
3822 \r
3823 #define IDeckLinkVideoFrame_v7_1_GetWidth(This) \\r
3824     ( (This)->lpVtbl -> GetWidth(This) ) \r
3825 \r
3826 #define IDeckLinkVideoFrame_v7_1_GetHeight(This)        \\r
3827     ( (This)->lpVtbl -> GetHeight(This) ) \r
3828 \r
3829 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This)      \\r
3830     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
3831 \r
3832 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This)   \\r
3833     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
3834 \r
3835 #define IDeckLinkVideoFrame_v7_1_GetFlags(This) \\r
3836     ( (This)->lpVtbl -> GetFlags(This) ) \r
3837 \r
3838 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer)  \\r
3839     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
3840 \r
3841 #endif /* COBJMACROS */\r
3842 \r
3843 \r
3844 #endif  /* C style interface */\r
3845 \r
3846 \r
3847 \r
3848 \r
3849 #endif  /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */\r
3850 \r
3851 \r
3852 #ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
3853 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
3854 \r
3855 /* interface IDeckLinkVideoInputFrame_v7_1 */\r
3856 /* [helpstring][local][uuid][object] */ \r
3857 \r
3858 \r
3859 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;\r
3860 \r
3861 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3862     \r
3863     MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")\r
3864     IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1\r
3865     {\r
3866     public:\r
3867         virtual HRESULT STDMETHODCALLTYPE GetFrameTime( \r
3868             BMDTimeValue *frameTime,\r
3869             BMDTimeValue *frameDuration,\r
3870             BMDTimeScale timeScale) = 0;\r
3871         \r
3872     };\r
3873     \r
3874 #else   /* C style interface */\r
3875 \r
3876     typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl\r
3877     {\r
3878         BEGIN_INTERFACE\r
3879         \r
3880         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
3881             IDeckLinkVideoInputFrame_v7_1 * This,\r
3882             /* [in] */ REFIID riid,\r
3883             /* [iid_is][out] */ \r
3884             __RPC__deref_out  void **ppvObject);\r
3885         \r
3886         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
3887             IDeckLinkVideoInputFrame_v7_1 * This);\r
3888         \r
3889         ULONG ( STDMETHODCALLTYPE *Release )( \r
3890             IDeckLinkVideoInputFrame_v7_1 * This);\r
3891         \r
3892         long ( STDMETHODCALLTYPE *GetWidth )( \r
3893             IDeckLinkVideoInputFrame_v7_1 * This);\r
3894         \r
3895         long ( STDMETHODCALLTYPE *GetHeight )( \r
3896             IDeckLinkVideoInputFrame_v7_1 * This);\r
3897         \r
3898         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
3899             IDeckLinkVideoInputFrame_v7_1 * This);\r
3900         \r
3901         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
3902             IDeckLinkVideoInputFrame_v7_1 * This);\r
3903         \r
3904         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
3905             IDeckLinkVideoInputFrame_v7_1 * This);\r
3906         \r
3907         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
3908             IDeckLinkVideoInputFrame_v7_1 * This,\r
3909             void **buffer);\r
3910         \r
3911         HRESULT ( STDMETHODCALLTYPE *GetFrameTime )( \r
3912             IDeckLinkVideoInputFrame_v7_1 * This,\r
3913             BMDTimeValue *frameTime,\r
3914             BMDTimeValue *frameDuration,\r
3915             BMDTimeScale timeScale);\r
3916         \r
3917         END_INTERFACE\r
3918     } IDeckLinkVideoInputFrame_v7_1Vtbl;\r
3919 \r
3920     interface IDeckLinkVideoInputFrame_v7_1\r
3921     {\r
3922         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;\r
3923     };\r
3924 \r
3925     \r
3926 \r
3927 #ifdef COBJMACROS\r
3928 \r
3929 \r
3930 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject)       \\r
3931     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
3932 \r
3933 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This)      \\r
3934     ( (This)->lpVtbl -> AddRef(This) ) \r
3935 \r
3936 #define IDeckLinkVideoInputFrame_v7_1_Release(This)     \\r
3937     ( (This)->lpVtbl -> Release(This) ) \r
3938 \r
3939 \r
3940 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This)    \\r
3941     ( (This)->lpVtbl -> GetWidth(This) ) \r
3942 \r
3943 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This)   \\r
3944     ( (This)->lpVtbl -> GetHeight(This) ) \r
3945 \r
3946 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) \\r
3947     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
3948 \r
3949 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This)      \\r
3950     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
3951 \r
3952 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This)    \\r
3953     ( (This)->lpVtbl -> GetFlags(This) ) \r
3954 \r
3955 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer)     \\r
3956     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
3957 \r
3958 \r
3959 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale)      \\r
3960     ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) ) \r
3961 \r
3962 #endif /* COBJMACROS */\r
3963 \r
3964 \r
3965 #endif  /* C style interface */\r
3966 \r
3967 \r
3968 \r
3969 \r
3970 #endif  /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */\r
3971 \r
3972 \r
3973 #ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
3974 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
3975 \r
3976 /* interface IDeckLinkAudioInputPacket_v7_1 */\r
3977 /* [helpstring][local][uuid][object] */ \r
3978 \r
3979 \r
3980 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;\r
3981 \r
3982 #if defined(__cplusplus) && !defined(CINTERFACE)\r
3983     \r
3984     MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")\r
3985     IDeckLinkAudioInputPacket_v7_1 : public IUnknown\r
3986     {\r
3987     public:\r
3988         virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;\r
3989         \r
3990         virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
3991             void **buffer) = 0;\r
3992         \r
3993         virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( \r
3994             BMDTimeValue *packetTime,\r
3995             BMDTimeScale timeScale) = 0;\r
3996         \r
3997     };\r
3998     \r
3999 #else   /* C style interface */\r
4000 \r
4001     typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl\r
4002     {\r
4003         BEGIN_INTERFACE\r
4004         \r
4005         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4006             IDeckLinkAudioInputPacket_v7_1 * This,\r
4007             /* [in] */ REFIID riid,\r
4008             /* [iid_is][out] */ \r
4009             __RPC__deref_out  void **ppvObject);\r
4010         \r
4011         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4012             IDeckLinkAudioInputPacket_v7_1 * This);\r
4013         \r
4014         ULONG ( STDMETHODCALLTYPE *Release )( \r
4015             IDeckLinkAudioInputPacket_v7_1 * This);\r
4016         \r
4017         long ( STDMETHODCALLTYPE *GetSampleCount )( \r
4018             IDeckLinkAudioInputPacket_v7_1 * This);\r
4019         \r
4020         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
4021             IDeckLinkAudioInputPacket_v7_1 * This,\r
4022             void **buffer);\r
4023         \r
4024         HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )( \r
4025             IDeckLinkAudioInputPacket_v7_1 * This,\r
4026             BMDTimeValue *packetTime,\r
4027             BMDTimeScale timeScale);\r
4028         \r
4029         END_INTERFACE\r
4030     } IDeckLinkAudioInputPacket_v7_1Vtbl;\r
4031 \r
4032     interface IDeckLinkAudioInputPacket_v7_1\r
4033     {\r
4034         CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;\r
4035     };\r
4036 \r
4037     \r
4038 \r
4039 #ifdef COBJMACROS\r
4040 \r
4041 \r
4042 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject)      \\r
4043     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4044 \r
4045 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This)     \\r
4046     ( (This)->lpVtbl -> AddRef(This) ) \r
4047 \r
4048 #define IDeckLinkAudioInputPacket_v7_1_Release(This)    \\r
4049     ( (This)->lpVtbl -> Release(This) ) \r
4050 \r
4051 \r
4052 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This)     \\r
4053     ( (This)->lpVtbl -> GetSampleCount(This) ) \r
4054 \r
4055 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer)    \\r
4056     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
4057 \r
4058 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale)    \\r
4059     ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) ) \r
4060 \r
4061 #endif /* COBJMACROS */\r
4062 \r
4063 \r
4064 #endif  /* C style interface */\r
4065 \r
4066 \r
4067 \r
4068 \r
4069 #endif  /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */\r
4070 \r
4071 \r
4072 #ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
4073 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
4074 \r
4075 /* interface IDeckLinkVideoOutputCallback_v7_1 */\r
4076 /* [helpstring][uuid][object] */ \r
4077 \r
4078 \r
4079 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;\r
4080 \r
4081 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4082     \r
4083     MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")\r
4084     IDeckLinkVideoOutputCallback_v7_1 : public IUnknown\r
4085     {\r
4086     public:\r
4087         virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
4088             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
4089             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
4090         \r
4091     };\r
4092     \r
4093 #else   /* C style interface */\r
4094 \r
4095     typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl\r
4096     {\r
4097         BEGIN_INTERFACE\r
4098         \r
4099         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4100             IDeckLinkVideoOutputCallback_v7_1 * This,\r
4101             /* [in] */ REFIID riid,\r
4102             /* [iid_is][out] */ \r
4103             __RPC__deref_out  void **ppvObject);\r
4104         \r
4105         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4106             IDeckLinkVideoOutputCallback_v7_1 * This);\r
4107         \r
4108         ULONG ( STDMETHODCALLTYPE *Release )( \r
4109             IDeckLinkVideoOutputCallback_v7_1 * This);\r
4110         \r
4111         HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
4112             IDeckLinkVideoOutputCallback_v7_1 * This,\r
4113             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
4114             /* [in] */ BMDOutputFrameCompletionResult result);\r
4115         \r
4116         END_INTERFACE\r
4117     } IDeckLinkVideoOutputCallback_v7_1Vtbl;\r
4118 \r
4119     interface IDeckLinkVideoOutputCallback_v7_1\r
4120     {\r
4121         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;\r
4122     };\r
4123 \r
4124     \r
4125 \r
4126 #ifdef COBJMACROS\r
4127 \r
4128 \r
4129 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject)   \\r
4130     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4131 \r
4132 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This)  \\r
4133     ( (This)->lpVtbl -> AddRef(This) ) \r
4134 \r
4135 #define IDeckLinkVideoOutputCallback_v7_1_Release(This) \\r
4136     ( (This)->lpVtbl -> Release(This) ) \r
4137 \r
4138 \r
4139 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result)   \\r
4140     ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
4141 \r
4142 #endif /* COBJMACROS */\r
4143 \r
4144 \r
4145 #endif  /* C style interface */\r
4146 \r
4147 \r
4148 \r
4149 \r
4150 #endif  /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */\r
4151 \r
4152 \r
4153 #ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
4154 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
4155 \r
4156 /* interface IDeckLinkInputCallback_v7_1 */\r
4157 /* [helpstring][uuid][object] */ \r
4158 \r
4159 \r
4160 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;\r
4161 \r
4162 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4163     \r
4164     MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")\r
4165     IDeckLinkInputCallback_v7_1 : public IUnknown\r
4166     {\r
4167     public:\r
4168         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
4169             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
4170             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;\r
4171         \r
4172     };\r
4173     \r
4174 #else   /* C style interface */\r
4175 \r
4176     typedef struct IDeckLinkInputCallback_v7_1Vtbl\r
4177     {\r
4178         BEGIN_INTERFACE\r
4179         \r
4180         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4181             IDeckLinkInputCallback_v7_1 * This,\r
4182             /* [in] */ REFIID riid,\r
4183             /* [iid_is][out] */ \r
4184             __RPC__deref_out  void **ppvObject);\r
4185         \r
4186         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4187             IDeckLinkInputCallback_v7_1 * This);\r
4188         \r
4189         ULONG ( STDMETHODCALLTYPE *Release )( \r
4190             IDeckLinkInputCallback_v7_1 * This);\r
4191         \r
4192         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
4193             IDeckLinkInputCallback_v7_1 * This,\r
4194             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
4195             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);\r
4196         \r
4197         END_INTERFACE\r
4198     } IDeckLinkInputCallback_v7_1Vtbl;\r
4199 \r
4200     interface IDeckLinkInputCallback_v7_1\r
4201     {\r
4202         CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;\r
4203     };\r
4204 \r
4205     \r
4206 \r
4207 #ifdef COBJMACROS\r
4208 \r
4209 \r
4210 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) \\r
4211     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4212 \r
4213 #define IDeckLinkInputCallback_v7_1_AddRef(This)        \\r
4214     ( (This)->lpVtbl -> AddRef(This) ) \r
4215 \r
4216 #define IDeckLinkInputCallback_v7_1_Release(This)       \\r
4217     ( (This)->lpVtbl -> Release(This) ) \r
4218 \r
4219 \r
4220 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) \\r
4221     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
4222 \r
4223 #endif /* COBJMACROS */\r
4224 \r
4225 \r
4226 #endif  /* C style interface */\r
4227 \r
4228 \r
4229 \r
4230 \r
4231 #endif  /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */\r
4232 \r
4233 \r
4234 #ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
4235 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
4236 \r
4237 /* interface IDeckLinkOutput_v7_1 */\r
4238 /* [helpstring][local][uuid][object] */ \r
4239 \r
4240 \r
4241 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;\r
4242 \r
4243 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4244     \r
4245     MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")\r
4246     IDeckLinkOutput_v7_1 : public IUnknown\r
4247     {\r
4248     public:\r
4249         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
4250             BMDDisplayMode displayMode,\r
4251             BMDPixelFormat pixelFormat,\r
4252             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
4253         \r
4254         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
4255             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
4256         \r
4257         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
4258             BMDDisplayMode displayMode) = 0;\r
4259         \r
4260         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
4261         \r
4262         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
4263             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
4264         \r
4265         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
4266             long width,\r
4267             long height,\r
4268             long rowBytes,\r
4269             BMDPixelFormat pixelFormat,\r
4270             BMDFrameFlags flags,\r
4271             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
4272         \r
4273         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( \r
4274             void *buffer,\r
4275             long width,\r
4276             long height,\r
4277             long rowBytes,\r
4278             BMDPixelFormat pixelFormat,\r
4279             BMDFrameFlags flags,\r
4280             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
4281         \r
4282         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
4283             IDeckLinkVideoFrame_v7_1 *theFrame) = 0;\r
4284         \r
4285         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
4286             IDeckLinkVideoFrame_v7_1 *theFrame,\r
4287             BMDTimeValue displayTime,\r
4288             BMDTimeValue displayDuration,\r
4289             BMDTimeScale timeScale) = 0;\r
4290         \r
4291         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
4292             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;\r
4293         \r
4294         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
4295             BMDAudioSampleRate sampleRate,\r
4296             BMDAudioSampleType sampleType,\r
4297             unsigned long channelCount) = 0;\r
4298         \r
4299         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
4300         \r
4301         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
4302             void *buffer,\r
4303             unsigned long sampleFrameCount,\r
4304             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
4305         \r
4306         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
4307         \r
4308         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
4309         \r
4310         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
4311             void *buffer,\r
4312             unsigned long sampleFrameCount,\r
4313             BMDTimeValue streamTime,\r
4314             BMDTimeScale timeScale,\r
4315             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
4316         \r
4317         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
4318             /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
4319         \r
4320         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
4321         \r
4322         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
4323             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
4324         \r
4325         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
4326             BMDTimeValue playbackStartTime,\r
4327             BMDTimeScale timeScale,\r
4328             double playbackSpeed) = 0;\r
4329         \r
4330         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
4331             BMDTimeValue stopPlaybackAtTime,\r
4332             BMDTimeValue *actualStopTime,\r
4333             BMDTimeScale timeScale) = 0;\r
4334         \r
4335         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
4336             BMDTimeScale desiredTimeScale,\r
4337             BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
4338         \r
4339     };\r
4340     \r
4341 #else   /* C style interface */\r
4342 \r
4343     typedef struct IDeckLinkOutput_v7_1Vtbl\r
4344     {\r
4345         BEGIN_INTERFACE\r
4346         \r
4347         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4348             IDeckLinkOutput_v7_1 * This,\r
4349             /* [in] */ REFIID riid,\r
4350             /* [iid_is][out] */ \r
4351             __RPC__deref_out  void **ppvObject);\r
4352         \r
4353         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4354             IDeckLinkOutput_v7_1 * This);\r
4355         \r
4356         ULONG ( STDMETHODCALLTYPE *Release )( \r
4357             IDeckLinkOutput_v7_1 * This);\r
4358         \r
4359         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
4360             IDeckLinkOutput_v7_1 * This,\r
4361             BMDDisplayMode displayMode,\r
4362             BMDPixelFormat pixelFormat,\r
4363             /* [out] */ BMDDisplayModeSupport *result);\r
4364         \r
4365         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
4366             IDeckLinkOutput_v7_1 * This,\r
4367             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
4368         \r
4369         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
4370             IDeckLinkOutput_v7_1 * This,\r
4371             BMDDisplayMode displayMode);\r
4372         \r
4373         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
4374             IDeckLinkOutput_v7_1 * This);\r
4375         \r
4376         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
4377             IDeckLinkOutput_v7_1 * This,\r
4378             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
4379         \r
4380         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
4381             IDeckLinkOutput_v7_1 * This,\r
4382             long width,\r
4383             long height,\r
4384             long rowBytes,\r
4385             BMDPixelFormat pixelFormat,\r
4386             BMDFrameFlags flags,\r
4387             IDeckLinkVideoFrame_v7_1 **outFrame);\r
4388         \r
4389         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( \r
4390             IDeckLinkOutput_v7_1 * This,\r
4391             void *buffer,\r
4392             long width,\r
4393             long height,\r
4394             long rowBytes,\r
4395             BMDPixelFormat pixelFormat,\r
4396             BMDFrameFlags flags,\r
4397             IDeckLinkVideoFrame_v7_1 **outFrame);\r
4398         \r
4399         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
4400             IDeckLinkOutput_v7_1 * This,\r
4401             IDeckLinkVideoFrame_v7_1 *theFrame);\r
4402         \r
4403         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
4404             IDeckLinkOutput_v7_1 * This,\r
4405             IDeckLinkVideoFrame_v7_1 *theFrame,\r
4406             BMDTimeValue displayTime,\r
4407             BMDTimeValue displayDuration,\r
4408             BMDTimeScale timeScale);\r
4409         \r
4410         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
4411             IDeckLinkOutput_v7_1 * This,\r
4412             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);\r
4413         \r
4414         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
4415             IDeckLinkOutput_v7_1 * This,\r
4416             BMDAudioSampleRate sampleRate,\r
4417             BMDAudioSampleType sampleType,\r
4418             unsigned long channelCount);\r
4419         \r
4420         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
4421             IDeckLinkOutput_v7_1 * This);\r
4422         \r
4423         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
4424             IDeckLinkOutput_v7_1 * This,\r
4425             void *buffer,\r
4426             unsigned long sampleFrameCount,\r
4427             /* [out] */ unsigned long *sampleFramesWritten);\r
4428         \r
4429         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
4430             IDeckLinkOutput_v7_1 * This);\r
4431         \r
4432         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
4433             IDeckLinkOutput_v7_1 * This);\r
4434         \r
4435         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
4436             IDeckLinkOutput_v7_1 * This,\r
4437             void *buffer,\r
4438             unsigned long sampleFrameCount,\r
4439             BMDTimeValue streamTime,\r
4440             BMDTimeScale timeScale,\r
4441             /* [out] */ unsigned long *sampleFramesWritten);\r
4442         \r
4443         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
4444             IDeckLinkOutput_v7_1 * This,\r
4445             /* [out] */ unsigned long *bufferedSampleCount);\r
4446         \r
4447         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
4448             IDeckLinkOutput_v7_1 * This);\r
4449         \r
4450         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
4451             IDeckLinkOutput_v7_1 * This,\r
4452             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
4453         \r
4454         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
4455             IDeckLinkOutput_v7_1 * This,\r
4456             BMDTimeValue playbackStartTime,\r
4457             BMDTimeScale timeScale,\r
4458             double playbackSpeed);\r
4459         \r
4460         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
4461             IDeckLinkOutput_v7_1 * This,\r
4462             BMDTimeValue stopPlaybackAtTime,\r
4463             BMDTimeValue *actualStopTime,\r
4464             BMDTimeScale timeScale);\r
4465         \r
4466         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
4467             IDeckLinkOutput_v7_1 * This,\r
4468             BMDTimeScale desiredTimeScale,\r
4469             BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
4470         \r
4471         END_INTERFACE\r
4472     } IDeckLinkOutput_v7_1Vtbl;\r
4473 \r
4474     interface IDeckLinkOutput_v7_1\r
4475     {\r
4476         CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;\r
4477     };\r
4478 \r
4479     \r
4480 \r
4481 #ifdef COBJMACROS\r
4482 \r
4483 \r
4484 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject)        \\r
4485     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4486 \r
4487 #define IDeckLinkOutput_v7_1_AddRef(This)       \\r
4488     ( (This)->lpVtbl -> AddRef(This) ) \r
4489 \r
4490 #define IDeckLinkOutput_v7_1_Release(This)      \\r
4491     ( (This)->lpVtbl -> Release(This) ) \r
4492 \r
4493 \r
4494 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
4495     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
4496 \r
4497 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator)      \\r
4498     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
4499 \r
4500 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode)        \\r
4501     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) ) \r
4502 \r
4503 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This)   \\r
4504     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
4505 \r
4506 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \\r
4507     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
4508 \r
4509 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \\r
4510     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
4511 \r
4512 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
4513     ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
4514 \r
4515 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame)       \\r
4516     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
4517 \r
4518 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \\r
4519     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
4520 \r
4521 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback)      \\r
4522     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
4523 \r
4524 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) \\r
4525     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) ) \r
4526 \r
4527 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This)   \\r
4528     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
4529 \r
4530 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \\r
4531     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
4532 \r
4533 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This)    \\r
4534     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
4535 \r
4536 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This)      \\r
4537     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
4538 \r
4539 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \\r
4540     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
4541 \r
4542 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \\r
4543     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
4544 \r
4545 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This)    \\r
4546     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
4547 \r
4548 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) \\r
4549     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
4550 \r
4551 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \\r
4552     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
4553 \r
4554 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \\r
4555     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
4556 \r
4557 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)    \\r
4558     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
4559 \r
4560 #endif /* COBJMACROS */\r
4561 \r
4562 \r
4563 #endif  /* C style interface */\r
4564 \r
4565 \r
4566 \r
4567 \r
4568 #endif  /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */\r
4569 \r
4570 \r
4571 #ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
4572 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
4573 \r
4574 /* interface IDeckLinkInput_v7_1 */\r
4575 /* [helpstring][uuid][object] */ \r
4576 \r
4577 \r
4578 EXTERN_C const IID IID_IDeckLinkInput_v7_1;\r
4579 \r
4580 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4581     \r
4582     MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")\r
4583     IDeckLinkInput_v7_1 : public IUnknown\r
4584     {\r
4585     public:\r
4586         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
4587             BMDDisplayMode displayMode,\r
4588             BMDPixelFormat pixelFormat,\r
4589             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
4590         \r
4591         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
4592             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
4593         \r
4594         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
4595             BMDDisplayMode displayMode,\r
4596             BMDPixelFormat pixelFormat,\r
4597             BMDVideoInputFlags flags) = 0;\r
4598         \r
4599         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
4600         \r
4601         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
4602             BMDAudioSampleRate sampleRate,\r
4603             BMDAudioSampleType sampleType,\r
4604             unsigned long channelCount) = 0;\r
4605         \r
4606         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
4607         \r
4608         virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( \r
4609             void *buffer,\r
4610             unsigned long sampleFrameCount,\r
4611             /* [out] */ unsigned long *sampleFramesRead,\r
4612             /* [out] */ BMDTimeValue *audioPacketTime,\r
4613             BMDTimeScale timeScale) = 0;\r
4614         \r
4615         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
4616             /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
4617         \r
4618         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
4619         \r
4620         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
4621         \r
4622         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
4623         \r
4624         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
4625             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;\r
4626         \r
4627     };\r
4628     \r
4629 #else   /* C style interface */\r
4630 \r
4631     typedef struct IDeckLinkInput_v7_1Vtbl\r
4632     {\r
4633         BEGIN_INTERFACE\r
4634         \r
4635         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4636             IDeckLinkInput_v7_1 * This,\r
4637             /* [in] */ REFIID riid,\r
4638             /* [iid_is][out] */ \r
4639             __RPC__deref_out  void **ppvObject);\r
4640         \r
4641         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4642             IDeckLinkInput_v7_1 * This);\r
4643         \r
4644         ULONG ( STDMETHODCALLTYPE *Release )( \r
4645             IDeckLinkInput_v7_1 * This);\r
4646         \r
4647         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
4648             IDeckLinkInput_v7_1 * This,\r
4649             BMDDisplayMode displayMode,\r
4650             BMDPixelFormat pixelFormat,\r
4651             /* [out] */ BMDDisplayModeSupport *result);\r
4652         \r
4653         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
4654             IDeckLinkInput_v7_1 * This,\r
4655             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
4656         \r
4657         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
4658             IDeckLinkInput_v7_1 * This,\r
4659             BMDDisplayMode displayMode,\r
4660             BMDPixelFormat pixelFormat,\r
4661             BMDVideoInputFlags flags);\r
4662         \r
4663         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
4664             IDeckLinkInput_v7_1 * This);\r
4665         \r
4666         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
4667             IDeckLinkInput_v7_1 * This,\r
4668             BMDAudioSampleRate sampleRate,\r
4669             BMDAudioSampleType sampleType,\r
4670             unsigned long channelCount);\r
4671         \r
4672         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
4673             IDeckLinkInput_v7_1 * This);\r
4674         \r
4675         HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( \r
4676             IDeckLinkInput_v7_1 * This,\r
4677             void *buffer,\r
4678             unsigned long sampleFrameCount,\r
4679             /* [out] */ unsigned long *sampleFramesRead,\r
4680             /* [out] */ BMDTimeValue *audioPacketTime,\r
4681             BMDTimeScale timeScale);\r
4682         \r
4683         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
4684             IDeckLinkInput_v7_1 * This,\r
4685             /* [out] */ unsigned long *bufferedSampleCount);\r
4686         \r
4687         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
4688             IDeckLinkInput_v7_1 * This);\r
4689         \r
4690         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
4691             IDeckLinkInput_v7_1 * This);\r
4692         \r
4693         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
4694             IDeckLinkInput_v7_1 * This);\r
4695         \r
4696         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
4697             IDeckLinkInput_v7_1 * This,\r
4698             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);\r
4699         \r
4700         END_INTERFACE\r
4701     } IDeckLinkInput_v7_1Vtbl;\r
4702 \r
4703     interface IDeckLinkInput_v7_1\r
4704     {\r
4705         CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;\r
4706     };\r
4707 \r
4708     \r
4709 \r
4710 #ifdef COBJMACROS\r
4711 \r
4712 \r
4713 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) \\r
4714     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4715 \r
4716 #define IDeckLinkInput_v7_1_AddRef(This)        \\r
4717     ( (This)->lpVtbl -> AddRef(This) ) \r
4718 \r
4719 #define IDeckLinkInput_v7_1_Release(This)       \\r
4720     ( (This)->lpVtbl -> Release(This) ) \r
4721 \r
4722 \r
4723 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \\r
4724     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
4725 \r
4726 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator)       \\r
4727     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
4728 \r
4729 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags)        \\r
4730     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
4731 \r
4732 #define IDeckLinkInput_v7_1_DisableVideoInput(This)     \\r
4733     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
4734 \r
4735 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \\r
4736     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
4737 \r
4738 #define IDeckLinkInput_v7_1_DisableAudioInput(This)     \\r
4739     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
4740 \r
4741 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale)   \\r
4742     ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) ) \r
4743 \r
4744 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)  \\r
4745     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
4746 \r
4747 #define IDeckLinkInput_v7_1_StartStreams(This)  \\r
4748     ( (This)->lpVtbl -> StartStreams(This) ) \r
4749 \r
4750 #define IDeckLinkInput_v7_1_StopStreams(This)   \\r
4751     ( (This)->lpVtbl -> StopStreams(This) ) \r
4752 \r
4753 #define IDeckLinkInput_v7_1_PauseStreams(This)  \\r
4754     ( (This)->lpVtbl -> PauseStreams(This) ) \r
4755 \r
4756 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback)       \\r
4757     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
4758 \r
4759 #endif /* COBJMACROS */\r
4760 \r
4761 \r
4762 #endif  /* C style interface */\r
4763 \r
4764 \r
4765 \r
4766 \r
4767 #endif  /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */\r
4768 \r
4769 \r
4770 #ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
4771 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
4772 \r
4773 /* interface IDeckLinkInputCallback_v7_3 */\r
4774 /* [helpstring][uuid][object] */ \r
4775 \r
4776 \r
4777 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;\r
4778 \r
4779 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4780     \r
4781     MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")\r
4782     IDeckLinkInputCallback_v7_3 : public IUnknown\r
4783     {\r
4784     public:\r
4785         virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
4786             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
4787             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
4788             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
4789         \r
4790         virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
4791             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
4792             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
4793         \r
4794     };\r
4795     \r
4796 #else   /* C style interface */\r
4797 \r
4798     typedef struct IDeckLinkInputCallback_v7_3Vtbl\r
4799     {\r
4800         BEGIN_INTERFACE\r
4801         \r
4802         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4803             IDeckLinkInputCallback_v7_3 * This,\r
4804             /* [in] */ REFIID riid,\r
4805             /* [iid_is][out] */ \r
4806             __RPC__deref_out  void **ppvObject);\r
4807         \r
4808         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4809             IDeckLinkInputCallback_v7_3 * This);\r
4810         \r
4811         ULONG ( STDMETHODCALLTYPE *Release )( \r
4812             IDeckLinkInputCallback_v7_3 * This);\r
4813         \r
4814         HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
4815             IDeckLinkInputCallback_v7_3 * This,\r
4816             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
4817             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
4818             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
4819         \r
4820         HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
4821             IDeckLinkInputCallback_v7_3 * This,\r
4822             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
4823             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
4824         \r
4825         END_INTERFACE\r
4826     } IDeckLinkInputCallback_v7_3Vtbl;\r
4827 \r
4828     interface IDeckLinkInputCallback_v7_3\r
4829     {\r
4830         CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;\r
4831     };\r
4832 \r
4833     \r
4834 \r
4835 #ifdef COBJMACROS\r
4836 \r
4837 \r
4838 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) \\r
4839     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
4840 \r
4841 #define IDeckLinkInputCallback_v7_3_AddRef(This)        \\r
4842     ( (This)->lpVtbl -> AddRef(This) ) \r
4843 \r
4844 #define IDeckLinkInputCallback_v7_3_Release(This)       \\r
4845     ( (This)->lpVtbl -> Release(This) ) \r
4846 \r
4847 \r
4848 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \\r
4849     ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
4850 \r
4851 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) \\r
4852     ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
4853 \r
4854 #endif /* COBJMACROS */\r
4855 \r
4856 \r
4857 #endif  /* C style interface */\r
4858 \r
4859 \r
4860 \r
4861 \r
4862 #endif  /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */\r
4863 \r
4864 \r
4865 #ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
4866 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
4867 \r
4868 /* interface IDeckLinkOutput_v7_3 */\r
4869 /* [helpstring][local][uuid][object] */ \r
4870 \r
4871 \r
4872 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;\r
4873 \r
4874 #if defined(__cplusplus) && !defined(CINTERFACE)\r
4875     \r
4876     MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")\r
4877     IDeckLinkOutput_v7_3 : public IUnknown\r
4878     {\r
4879     public:\r
4880         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
4881             BMDDisplayMode displayMode,\r
4882             BMDPixelFormat pixelFormat,\r
4883             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
4884         \r
4885         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
4886             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
4887         \r
4888         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
4889             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
4890         \r
4891         virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
4892             BMDDisplayMode displayMode,\r
4893             BMDVideoOutputFlags flags) = 0;\r
4894         \r
4895         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
4896         \r
4897         virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
4898             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
4899         \r
4900         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
4901             long width,\r
4902             long height,\r
4903             long rowBytes,\r
4904             BMDPixelFormat pixelFormat,\r
4905             BMDFrameFlags flags,\r
4906             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
4907         \r
4908         virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
4909             BMDDisplayMode displayMode,\r
4910             BMDPixelFormat pixelFormat,\r
4911             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
4912         \r
4913         virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
4914             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
4915         \r
4916         virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
4917             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
4918             BMDTimeValue displayTime,\r
4919             BMDTimeValue displayDuration,\r
4920             BMDTimeScale timeScale) = 0;\r
4921         \r
4922         virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
4923             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
4924         \r
4925         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
4926             /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
4927         \r
4928         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
4929             BMDAudioSampleRate sampleRate,\r
4930             BMDAudioSampleType sampleType,\r
4931             unsigned long channelCount,\r
4932             BMDAudioOutputStreamType streamType) = 0;\r
4933         \r
4934         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
4935         \r
4936         virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
4937             /* [in] */ void *buffer,\r
4938             unsigned long sampleFrameCount,\r
4939             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
4940         \r
4941         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
4942         \r
4943         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
4944         \r
4945         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
4946             /* [in] */ void *buffer,\r
4947             unsigned long sampleFrameCount,\r
4948             BMDTimeValue streamTime,\r
4949             BMDTimeScale timeScale,\r
4950             /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
4951         \r
4952         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
4953             /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
4954         \r
4955         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
4956         \r
4957         virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
4958             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
4959         \r
4960         virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
4961             BMDTimeValue playbackStartTime,\r
4962             BMDTimeScale timeScale,\r
4963             double playbackSpeed) = 0;\r
4964         \r
4965         virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
4966             BMDTimeValue stopPlaybackAtTime,\r
4967             /* [out] */ BMDTimeValue *actualStopTime,\r
4968             BMDTimeScale timeScale) = 0;\r
4969         \r
4970         virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
4971             /* [out] */ BOOL *active) = 0;\r
4972         \r
4973         virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
4974             BMDTimeScale desiredTimeScale,\r
4975             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
4976         \r
4977     };\r
4978     \r
4979 #else   /* C style interface */\r
4980 \r
4981     typedef struct IDeckLinkOutput_v7_3Vtbl\r
4982     {\r
4983         BEGIN_INTERFACE\r
4984         \r
4985         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
4986             IDeckLinkOutput_v7_3 * This,\r
4987             /* [in] */ REFIID riid,\r
4988             /* [iid_is][out] */ \r
4989             __RPC__deref_out  void **ppvObject);\r
4990         \r
4991         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
4992             IDeckLinkOutput_v7_3 * This);\r
4993         \r
4994         ULONG ( STDMETHODCALLTYPE *Release )( \r
4995             IDeckLinkOutput_v7_3 * This);\r
4996         \r
4997         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
4998             IDeckLinkOutput_v7_3 * This,\r
4999             BMDDisplayMode displayMode,\r
5000             BMDPixelFormat pixelFormat,\r
5001             /* [out] */ BMDDisplayModeSupport *result);\r
5002         \r
5003         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
5004             IDeckLinkOutput_v7_3 * This,\r
5005             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
5006         \r
5007         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
5008             IDeckLinkOutput_v7_3 * This,\r
5009             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
5010         \r
5011         HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
5012             IDeckLinkOutput_v7_3 * This,\r
5013             BMDDisplayMode displayMode,\r
5014             BMDVideoOutputFlags flags);\r
5015         \r
5016         HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
5017             IDeckLinkOutput_v7_3 * This);\r
5018         \r
5019         HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
5020             IDeckLinkOutput_v7_3 * This,\r
5021             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
5022         \r
5023         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
5024             IDeckLinkOutput_v7_3 * This,\r
5025             long width,\r
5026             long height,\r
5027             long rowBytes,\r
5028             BMDPixelFormat pixelFormat,\r
5029             BMDFrameFlags flags,\r
5030             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
5031         \r
5032         HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
5033             IDeckLinkOutput_v7_3 * This,\r
5034             BMDDisplayMode displayMode,\r
5035             BMDPixelFormat pixelFormat,\r
5036             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
5037         \r
5038         HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
5039             IDeckLinkOutput_v7_3 * This,\r
5040             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
5041         \r
5042         HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
5043             IDeckLinkOutput_v7_3 * This,\r
5044             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
5045             BMDTimeValue displayTime,\r
5046             BMDTimeValue displayDuration,\r
5047             BMDTimeScale timeScale);\r
5048         \r
5049         HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
5050             IDeckLinkOutput_v7_3 * This,\r
5051             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
5052         \r
5053         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
5054             IDeckLinkOutput_v7_3 * This,\r
5055             /* [out] */ unsigned long *bufferedFrameCount);\r
5056         \r
5057         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
5058             IDeckLinkOutput_v7_3 * This,\r
5059             BMDAudioSampleRate sampleRate,\r
5060             BMDAudioSampleType sampleType,\r
5061             unsigned long channelCount,\r
5062             BMDAudioOutputStreamType streamType);\r
5063         \r
5064         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
5065             IDeckLinkOutput_v7_3 * This);\r
5066         \r
5067         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
5068             IDeckLinkOutput_v7_3 * This,\r
5069             /* [in] */ void *buffer,\r
5070             unsigned long sampleFrameCount,\r
5071             /* [out] */ unsigned long *sampleFramesWritten);\r
5072         \r
5073         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
5074             IDeckLinkOutput_v7_3 * This);\r
5075         \r
5076         HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
5077             IDeckLinkOutput_v7_3 * This);\r
5078         \r
5079         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
5080             IDeckLinkOutput_v7_3 * This,\r
5081             /* [in] */ void *buffer,\r
5082             unsigned long sampleFrameCount,\r
5083             BMDTimeValue streamTime,\r
5084             BMDTimeScale timeScale,\r
5085             /* [out] */ unsigned long *sampleFramesWritten);\r
5086         \r
5087         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
5088             IDeckLinkOutput_v7_3 * This,\r
5089             /* [out] */ unsigned long *bufferedSampleFrameCount);\r
5090         \r
5091         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
5092             IDeckLinkOutput_v7_3 * This);\r
5093         \r
5094         HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
5095             IDeckLinkOutput_v7_3 * This,\r
5096             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
5097         \r
5098         HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
5099             IDeckLinkOutput_v7_3 * This,\r
5100             BMDTimeValue playbackStartTime,\r
5101             BMDTimeScale timeScale,\r
5102             double playbackSpeed);\r
5103         \r
5104         HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
5105             IDeckLinkOutput_v7_3 * This,\r
5106             BMDTimeValue stopPlaybackAtTime,\r
5107             /* [out] */ BMDTimeValue *actualStopTime,\r
5108             BMDTimeScale timeScale);\r
5109         \r
5110         HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
5111             IDeckLinkOutput_v7_3 * This,\r
5112             /* [out] */ BOOL *active);\r
5113         \r
5114         HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
5115             IDeckLinkOutput_v7_3 * This,\r
5116             BMDTimeScale desiredTimeScale,\r
5117             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
5118         \r
5119         END_INTERFACE\r
5120     } IDeckLinkOutput_v7_3Vtbl;\r
5121 \r
5122     interface IDeckLinkOutput_v7_3\r
5123     {\r
5124         CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;\r
5125     };\r
5126 \r
5127     \r
5128 \r
5129 #ifdef COBJMACROS\r
5130 \r
5131 \r
5132 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject)        \\r
5133     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5134 \r
5135 #define IDeckLinkOutput_v7_3_AddRef(This)       \\r
5136     ( (This)->lpVtbl -> AddRef(This) ) \r
5137 \r
5138 #define IDeckLinkOutput_v7_3_Release(This)      \\r
5139     ( (This)->lpVtbl -> Release(This) ) \r
5140 \r
5141 \r
5142 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
5143     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
5144 \r
5145 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator)      \\r
5146     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
5147 \r
5148 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback)     \\r
5149     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
5150 \r
5151 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags)  \\r
5152     ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
5153 \r
5154 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This)   \\r
5155     ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
5156 \r
5157 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator)      \\r
5158     ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
5159 \r
5160 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)    \\r
5161     ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
5162 \r
5163 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,displayMode,pixelFormat,outBuffer)        \\r
5164     ( (This)->lpVtbl -> CreateAncillaryData(This,displayMode,pixelFormat,outBuffer) ) \r
5165 \r
5166 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame)       \\r
5167     ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
5168 \r
5169 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)    \\r
5170     ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
5171 \r
5172 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback)      \\r
5173     ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
5174 \r
5175 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount)        \\r
5176     ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
5177 \r
5178 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)      \\r
5179     ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
5180 \r
5181 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This)   \\r
5182     ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
5183 \r
5184 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)    \\r
5185     ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
5186 \r
5187 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This)    \\r
5188     ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
5189 \r
5190 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This)      \\r
5191     ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
5192 \r
5193 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)        \\r
5194     ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
5195 \r
5196 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)    \\r
5197     ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
5198 \r
5199 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This)    \\r
5200     ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
5201 \r
5202 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) \\r
5203     ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
5204 \r
5205 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)     \\r
5206     ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
5207 \r
5208 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)    \\r
5209     ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
5210 \r
5211 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active)    \\r
5212     ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
5213 \r
5214 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)    \\r
5215     ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
5216 \r
5217 #endif /* COBJMACROS */\r
5218 \r
5219 \r
5220 #endif  /* C style interface */\r
5221 \r
5222 \r
5223 \r
5224 \r
5225 #endif  /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */\r
5226 \r
5227 \r
5228 #ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
5229 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
5230 \r
5231 /* interface IDeckLinkInput_v7_3 */\r
5232 /* [helpstring][uuid][object] */ \r
5233 \r
5234 \r
5235 EXTERN_C const IID IID_IDeckLinkInput_v7_3;\r
5236 \r
5237 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5238     \r
5239     MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")\r
5240     IDeckLinkInput_v7_3 : public IUnknown\r
5241     {\r
5242     public:\r
5243         virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
5244             BMDDisplayMode displayMode,\r
5245             BMDPixelFormat pixelFormat,\r
5246             /* [out] */ BMDDisplayModeSupport *result) = 0;\r
5247         \r
5248         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
5249             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
5250         \r
5251         virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
5252             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
5253         \r
5254         virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
5255             BMDDisplayMode displayMode,\r
5256             BMDPixelFormat pixelFormat,\r
5257             BMDVideoInputFlags flags) = 0;\r
5258         \r
5259         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
5260         \r
5261         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
5262             /* [out] */ unsigned long *availableFrameCount) = 0;\r
5263         \r
5264         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
5265             BMDAudioSampleRate sampleRate,\r
5266             BMDAudioSampleType sampleType,\r
5267             unsigned long channelCount) = 0;\r
5268         \r
5269         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
5270         \r
5271         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
5272             /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
5273         \r
5274         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
5275         \r
5276         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
5277         \r
5278         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
5279         \r
5280         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
5281         \r
5282         virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
5283             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;\r
5284         \r
5285     };\r
5286     \r
5287 #else   /* C style interface */\r
5288 \r
5289     typedef struct IDeckLinkInput_v7_3Vtbl\r
5290     {\r
5291         BEGIN_INTERFACE\r
5292         \r
5293         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5294             IDeckLinkInput_v7_3 * This,\r
5295             /* [in] */ REFIID riid,\r
5296             /* [iid_is][out] */ \r
5297             __RPC__deref_out  void **ppvObject);\r
5298         \r
5299         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5300             IDeckLinkInput_v7_3 * This);\r
5301         \r
5302         ULONG ( STDMETHODCALLTYPE *Release )( \r
5303             IDeckLinkInput_v7_3 * This);\r
5304         \r
5305         HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
5306             IDeckLinkInput_v7_3 * This,\r
5307             BMDDisplayMode displayMode,\r
5308             BMDPixelFormat pixelFormat,\r
5309             /* [out] */ BMDDisplayModeSupport *result);\r
5310         \r
5311         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
5312             IDeckLinkInput_v7_3 * This,\r
5313             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
5314         \r
5315         HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
5316             IDeckLinkInput_v7_3 * This,\r
5317             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
5318         \r
5319         HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
5320             IDeckLinkInput_v7_3 * This,\r
5321             BMDDisplayMode displayMode,\r
5322             BMDPixelFormat pixelFormat,\r
5323             BMDVideoInputFlags flags);\r
5324         \r
5325         HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
5326             IDeckLinkInput_v7_3 * This);\r
5327         \r
5328         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
5329             IDeckLinkInput_v7_3 * This,\r
5330             /* [out] */ unsigned long *availableFrameCount);\r
5331         \r
5332         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
5333             IDeckLinkInput_v7_3 * This,\r
5334             BMDAudioSampleRate sampleRate,\r
5335             BMDAudioSampleType sampleType,\r
5336             unsigned long channelCount);\r
5337         \r
5338         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
5339             IDeckLinkInput_v7_3 * This);\r
5340         \r
5341         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
5342             IDeckLinkInput_v7_3 * This,\r
5343             /* [out] */ unsigned long *availableSampleFrameCount);\r
5344         \r
5345         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
5346             IDeckLinkInput_v7_3 * This);\r
5347         \r
5348         HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
5349             IDeckLinkInput_v7_3 * This);\r
5350         \r
5351         HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
5352             IDeckLinkInput_v7_3 * This);\r
5353         \r
5354         HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
5355             IDeckLinkInput_v7_3 * This);\r
5356         \r
5357         HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
5358             IDeckLinkInput_v7_3 * This,\r
5359             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);\r
5360         \r
5361         END_INTERFACE\r
5362     } IDeckLinkInput_v7_3Vtbl;\r
5363 \r
5364     interface IDeckLinkInput_v7_3\r
5365     {\r
5366         CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;\r
5367     };\r
5368 \r
5369     \r
5370 \r
5371 #ifdef COBJMACROS\r
5372 \r
5373 \r
5374 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) \\r
5375     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5376 \r
5377 #define IDeckLinkInput_v7_3_AddRef(This)        \\r
5378     ( (This)->lpVtbl -> AddRef(This) ) \r
5379 \r
5380 #define IDeckLinkInput_v7_3_Release(This)       \\r
5381     ( (This)->lpVtbl -> Release(This) ) \r
5382 \r
5383 \r
5384 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)   \\r
5385     ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
5386 \r
5387 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator)       \\r
5388     ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
5389 \r
5390 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback)      \\r
5391     ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
5392 \r
5393 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags)        \\r
5394     ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
5395 \r
5396 #define IDeckLinkInput_v7_3_DisableVideoInput(This)     \\r
5397     ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
5398 \r
5399 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount)       \\r
5400     ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
5401 \r
5402 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount)   \\r
5403     ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
5404 \r
5405 #define IDeckLinkInput_v7_3_DisableAudioInput(This)     \\r
5406     ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
5407 \r
5408 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)   \\r
5409     ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
5410 \r
5411 #define IDeckLinkInput_v7_3_StartStreams(This)  \\r
5412     ( (This)->lpVtbl -> StartStreams(This) ) \r
5413 \r
5414 #define IDeckLinkInput_v7_3_StopStreams(This)   \\r
5415     ( (This)->lpVtbl -> StopStreams(This) ) \r
5416 \r
5417 #define IDeckLinkInput_v7_3_PauseStreams(This)  \\r
5418     ( (This)->lpVtbl -> PauseStreams(This) ) \r
5419 \r
5420 #define IDeckLinkInput_v7_3_FlushStreams(This)  \\r
5421     ( (This)->lpVtbl -> FlushStreams(This) ) \r
5422 \r
5423 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback)       \\r
5424     ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
5425 \r
5426 #endif /* COBJMACROS */\r
5427 \r
5428 \r
5429 #endif  /* C style interface */\r
5430 \r
5431 \r
5432 \r
5433 \r
5434 #endif  /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */\r
5435 \r
5436 \r
5437 #ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
5438 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
5439 \r
5440 /* interface IDeckLinkVideoInputFrame_v7_3 */\r
5441 /* [helpstring][local][uuid][object] */ \r
5442 \r
5443 \r
5444 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;\r
5445 \r
5446 #if defined(__cplusplus) && !defined(CINTERFACE)\r
5447     \r
5448     MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")\r
5449     IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame\r
5450     {\r
5451     public:\r
5452         virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
5453             /* [out] */ BMDTimeValue *frameTime,\r
5454             /* [out] */ BMDTimeValue *frameDuration,\r
5455             BMDTimeScale timeScale) = 0;\r
5456         \r
5457     };\r
5458     \r
5459 #else   /* C style interface */\r
5460 \r
5461     typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl\r
5462     {\r
5463         BEGIN_INTERFACE\r
5464         \r
5465         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
5466             IDeckLinkVideoInputFrame_v7_3 * This,\r
5467             /* [in] */ REFIID riid,\r
5468             /* [iid_is][out] */ \r
5469             __RPC__deref_out  void **ppvObject);\r
5470         \r
5471         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
5472             IDeckLinkVideoInputFrame_v7_3 * This);\r
5473         \r
5474         ULONG ( STDMETHODCALLTYPE *Release )( \r
5475             IDeckLinkVideoInputFrame_v7_3 * This);\r
5476         \r
5477         long ( STDMETHODCALLTYPE *GetWidth )( \r
5478             IDeckLinkVideoInputFrame_v7_3 * This);\r
5479         \r
5480         long ( STDMETHODCALLTYPE *GetHeight )( \r
5481             IDeckLinkVideoInputFrame_v7_3 * This);\r
5482         \r
5483         long ( STDMETHODCALLTYPE *GetRowBytes )( \r
5484             IDeckLinkVideoInputFrame_v7_3 * This);\r
5485         \r
5486         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
5487             IDeckLinkVideoInputFrame_v7_3 * This);\r
5488         \r
5489         BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
5490             IDeckLinkVideoInputFrame_v7_3 * This);\r
5491         \r
5492         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
5493             IDeckLinkVideoInputFrame_v7_3 * This,\r
5494             /* [out] */ void **buffer);\r
5495         \r
5496         HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
5497             IDeckLinkVideoInputFrame_v7_3 * This,\r
5498             BMDTimecodeFormat format,\r
5499             /* [out] */ IDeckLinkTimecode **timecode);\r
5500         \r
5501         HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
5502             IDeckLinkVideoInputFrame_v7_3 * This,\r
5503             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
5504         \r
5505         HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
5506             IDeckLinkVideoInputFrame_v7_3 * This,\r
5507             /* [out] */ BMDTimeValue *frameTime,\r
5508             /* [out] */ BMDTimeValue *frameDuration,\r
5509             BMDTimeScale timeScale);\r
5510         \r
5511         END_INTERFACE\r
5512     } IDeckLinkVideoInputFrame_v7_3Vtbl;\r
5513 \r
5514     interface IDeckLinkVideoInputFrame_v7_3\r
5515     {\r
5516         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;\r
5517     };\r
5518 \r
5519     \r
5520 \r
5521 #ifdef COBJMACROS\r
5522 \r
5523 \r
5524 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject)       \\r
5525     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
5526 \r
5527 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This)      \\r
5528     ( (This)->lpVtbl -> AddRef(This) ) \r
5529 \r
5530 #define IDeckLinkVideoInputFrame_v7_3_Release(This)     \\r
5531     ( (This)->lpVtbl -> Release(This) ) \r
5532 \r
5533 \r
5534 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This)    \\r
5535     ( (This)->lpVtbl -> GetWidth(This) ) \r
5536 \r
5537 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This)   \\r
5538     ( (This)->lpVtbl -> GetHeight(This) ) \r
5539 \r
5540 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) \\r
5541     ( (This)->lpVtbl -> GetRowBytes(This) ) \r
5542 \r
5543 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This)      \\r
5544     ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
5545 \r
5546 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This)    \\r
5547     ( (This)->lpVtbl -> GetFlags(This) ) \r
5548 \r
5549 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer)     \\r
5550     ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
5551 \r
5552 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) \\r
5553     ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
5554 \r
5555 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary)  \\r
5556     ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
5557 \r
5558 \r
5559 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale)     \\r
5560     ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
5561 \r
5562 #endif /* COBJMACROS */\r
5563 \r
5564 \r
5565 #endif  /* C style interface */\r
5566 \r
5567 \r
5568 \r
5569 \r
5570 #endif  /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */\r
5571 \r
5572 #endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */\r
5573 \r
5574 /* Additional Prototypes for ALL interfaces */\r
5575 \r
5576 /* end of Additional Prototypes */\r
5577 \r
5578 #ifdef __cplusplus\r
5579 }\r
5580 #endif\r
5581 \r
5582 #endif\r
5583 \r
5584 \r