]> git.sesse.net Git - casparcg/blobdiff - modules/decklink/interop/DeckLinkAPI_h.h
2.0.0: Fixed potential pure virtual function call.
[casparcg] / modules / decklink / interop / DeckLinkAPI_h.h
index c3f22b3110ba95e09270bcfd93bf18165fb1e253..df6064712e08e7ac64700698689610146c9e68b4 100644 (file)
@@ -4,7 +4,7 @@
 \r
 \r
  /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Wed Mar 09 13:57:51 2011\r
+/* at Wed Sep 21 23:31:49 2011\r
  */\r
 /* Compiler settings for interop\DeckLinkAPI.idl:\r
     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
@@ -209,6 +209,18 @@ typedef struct CDeckLinkIterator CDeckLinkIterator;
 #endif         /* __CDeckLinkIterator_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __CDeckLinkAPIInformation_FWD_DEFINED__\r
+#define __CDeckLinkAPIInformation_FWD_DEFINED__\r
+\r
+#ifdef __cplusplus\r
+typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;\r
+#else\r
+typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;\r
+#endif /* __cplusplus */\r
+\r
+#endif         /* __CDeckLinkAPIInformation_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
 \r
@@ -233,6 +245,12 @@ typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;
 #endif         /* __CDeckLinkVideoConversion_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__\r
+#define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__\r
+typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;\r
+#endif         /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__\r
 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__\r
 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;\r
@@ -595,7 +613,9 @@ enum _BMDDisplayModeSupport
 typedef /* [v1_enum] */ \r
 enum _BMDTimecodeFormat\r
     {  bmdTimecodeRP188        = 0x72703138,\r
+       bmdTimecodeRP188Field2  = 0x72703132,\r
        bmdTimecodeVITC = 0x76697463,\r
+       bmdTimecodeVITCField2   = 0x76697432,\r
        bmdTimecodeSerial       = 0x73657269\r
     }  BMDTimecodeFormat;\r
 \r
@@ -671,10 +691,18 @@ enum _BMDVideo3DPackingFormat
        bmdVideo3DPackingRightOnly      = 0x72696768\r
     }  BMDVideo3DPackingFormat;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDIdleVideoOutputOperation\r
+    {  bmdIdleVideoOutputBlack = 0x626c6163,\r
+       bmdIdleVideoOutputLastFrame     = 0x6c616661\r
+    }  BMDIdleVideoOutputOperation;\r
+\r
 typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkConfigurationID\r
-    {  bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,\r
+    {  bmdDeckLinkConfigSwapSerialRxTx = 0x73737274,\r
+       bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,\r
        bmdDeckLinkConfigHDMI3DPackingFormat    = 0x33647066,\r
+       bmdDeckLinkConfigBypass = 0x62797073,\r
        bmdDeckLinkConfigAnalogAudioConsumerLevels      = 0x6161636c,\r
        bmdDeckLinkConfigFieldFlickerRemoval    = 0x66646672,\r
        bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion       = 0x746f3539,\r
@@ -686,6 +714,14 @@ enum _BMDDeckLinkConfigurationID
        bmdDeckLinkConfigVideoOutputConversionMode      = 0x766f636d,\r
        bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,\r
        bmdDeckLinkConfigReferenceInputTimingOffset     = 0x676c6f74,\r
+       bmdDeckLinkConfigVideoOutputIdleOperation       = 0x766f696f,\r
+       bmdDeckLinkConfigVideoOutputComponentLumaGain   = 0x6f636c67,\r
+       bmdDeckLinkConfigVideoOutputComponentChromaBlueGain     = 0x6f636362,\r
+       bmdDeckLinkConfigVideoOutputComponentChromaRedGain      = 0x6f636372,\r
+       bmdDeckLinkConfigVideoOutputCompositeLumaGain   = 0x6f696c67,\r
+       bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367,\r
+       bmdDeckLinkConfigVideoOutputSVideoLumaGain      = 0x6f736c67,\r
+       bmdDeckLinkConfigVideoOutputSVideoChromaGain    = 0x6f736367,\r
        bmdDeckLinkConfigVideoInputConnection   = 0x7669636e,\r
        bmdDeckLinkConfigAnalogVideoInputFlags  = 0x61766966,\r
        bmdDeckLinkConfigVideoInputConversionMode       = 0x7669636d,\r
@@ -693,6 +729,13 @@ enum _BMDDeckLinkConfigurationID
        bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,\r
        bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,\r
        bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,\r
+       bmdDeckLinkConfigVideoInputComponentLumaGain    = 0x69636c67,\r
+       bmdDeckLinkConfigVideoInputComponentChromaBlueGain      = 0x69636362,\r
+       bmdDeckLinkConfigVideoInputComponentChromaRedGain       = 0x69636372,\r
+       bmdDeckLinkConfigVideoInputCompositeLumaGain    = 0x69696c67,\r
+       bmdDeckLinkConfigVideoInputCompositeChromaGain  = 0x69696367,\r
+       bmdDeckLinkConfigVideoInputSVideoLumaGain       = 0x69736c67,\r
+       bmdDeckLinkConfigVideoInputSVideoChromaGain     = 0x69736367,\r
        bmdDeckLinkConfigAudioInputConnection   = 0x6169636e,\r
        bmdDeckLinkConfigAnalogAudioInputScaleChannel1  = 0x61697331,\r
        bmdDeckLinkConfigAnalogAudioInputScaleChannel2  = 0x61697332,\r
@@ -715,11 +758,19 @@ enum _BMDDeckLinkAttributeID
        BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,\r
        BMDDeckLinkHasReferenceInput    = 0x6872696e,\r
        BMDDeckLinkHasSerialPort        = 0x68737074,\r
+       BMDDeckLinkHasAnalogVideoOutputGain     = 0x61766f67,\r
+       BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain  = 0x6f766f67,\r
+       BMDDeckLinkHasVideoInputAntiAliasingFilter      = 0x6161666c,\r
+       BMDDeckLinkHasBypass    = 0x62797073,\r
        BMDDeckLinkMaximumAudioChannels = 0x6d616368,\r
        BMDDeckLinkNumberOfSubDevices   = 0x6e736264,\r
        BMDDeckLinkSubDeviceIndex       = 0x73756269,\r
        BMDDeckLinkVideoOutputConnections       = 0x766f636e,\r
        BMDDeckLinkVideoInputConnections        = 0x7669636e,\r
+       BMDDeckLinkVideoInputGainMinimum        = 0x7669676d,\r
+       BMDDeckLinkVideoInputGainMaximum        = 0x76696778,\r
+       BMDDeckLinkVideoOutputGainMinimum       = 0x766f676d,\r
+       BMDDeckLinkVideoOutputGainMaximum       = 0x766f6778,\r
        BMDDeckLinkSerialPortDeviceName = 0x736c706e\r
     }  BMDDeckLinkAttributeID;\r
 \r
@@ -797,6 +848,8 @@ enum _BMDDeckControlError
        bmdDeckControlNoTapeInDeckError = 0x6e746572,\r
        bmdDeckControlNoVideoFromCardError      = 0x6e766663,\r
        bmdDeckControlNoCommunicationError      = 0x6e636f6d,\r
+       bmdDeckControlBufferTooSmallError       = 0x6274736d,\r
+       bmdDeckControlBadChecksumError  = 0x63686b73,\r
        bmdDeckControlUnknownError      = 0x756e6572\r
     }  BMDDeckControlError;\r
 \r
@@ -4025,7 +4078,7 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")\r
+    MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")\r
     IDeckLinkDeckControl : public IUnknown\r
     {\r
     public:\r
@@ -4046,6 +4099,14 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
         virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
             /* [in] */ BOOL standbyOn) = 0;\r
         \r
+        virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
+            /* [in] */ unsigned char *inBuffer,\r
+            /* [in] */ unsigned long inBufferSize,\r
+            /* [out] */ unsigned char *outBuffer,\r
+            /* [out] */ unsigned long *outDataSize,\r
+            /* [in] */ unsigned long outBufferSize,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Play( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
         \r
@@ -4185,6 +4246,15 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
             IDeckLinkDeckControl * This,\r
             /* [in] */ BOOL standbyOn);\r
         \r
+        HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
+            IDeckLinkDeckControl * This,\r
+            /* [in] */ unsigned char *inBuffer,\r
+            /* [in] */ unsigned long inBufferSize,\r
+            /* [out] */ unsigned char *outBuffer,\r
+            /* [out] */ unsigned long *outDataSize,\r
+            /* [in] */ unsigned long outBufferSize,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
         HRESULT ( STDMETHODCALLTYPE *Play )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
@@ -4346,6 +4416,9 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
 #define IDeckLinkDeckControl_SetStandby(This,standbyOn)        \\r
     ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
 \r
+#define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) \\r
+    ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) \r
+\r
 #define IDeckLinkDeckControl_Play(This,error)  \\r
     ( (This)->lpVtbl -> Play(This,error) ) \r
 \r
@@ -4449,6 +4522,14 @@ class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")
 CDeckLinkIterator;\r
 #endif\r
 \r
+EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;\r
+\r
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")\r
+CDeckLinkAPIInformation;\r
+#endif\r
+\r
 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;\r
 \r
 #ifdef __cplusplus\r
@@ -4465,6 +4546,433 @@ class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")
 CDeckLinkVideoConversion;\r
 #endif\r
 \r
+#ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
+#define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkDeckControl_v7_9 */\r
+/* [helpstring][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")\r
+    IDeckLinkDeckControl_v7_9 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE Open( \r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [in] */ BMDTimeValue timeValue,\r
+            /* [in] */ BOOL timecodeIsDropFrame,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Close( \r
+            /* [in] */ BOOL standbyOn) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCurrentState( \r
+            /* [out] */ BMDDeckControlMode *mode,\r
+            /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
+            /* [out] */ BMDDeckControlStatusFlags *flags) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
+            /* [in] */ BOOL standbyOn) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Play( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Stop( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Eject( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
+            /* [in] */ BMDTimecodeBCD timecode,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FastForward( \r
+            /* [in] */ BOOL viewTape,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Rewind( \r
+            /* [in] */ BOOL viewTape,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepForward( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepBack( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Jog( \r
+            /* [in] */ double rate,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
+            /* [in] */ double rate,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
+            /* [out] */ BSTR *currentTimeCode,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
+            /* [out] */ IDeckLinkTimecode **currentTimecode,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
+            /* [out] */ BMDTimecodeBCD *currentTimecode,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
+            /* [in] */ unsigned long prerollSeconds) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
+            /* [out] */ unsigned long *prerollSeconds) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
+            /* [in] */ long exportOffsetFields) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
+            /* [out] */ long *exportOffsetFields) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
+            /* [out] */ long *deckManualExportOffsetFields) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
+            /* [in] */ long captureOffsetFields) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
+            /* [out] */ long *captureOffsetFields) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartExport( \r
+            /* [in] */ BMDTimecodeBCD inTimecode,\r
+            /* [in] */ BMDTimecodeBCD outTimecode,\r
+            /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartCapture( \r
+            /* [in] */ BOOL useVITC,\r
+            /* [in] */ BMDTimecodeBCD inTimecode,\r
+            /* [in] */ BMDTimecodeBCD outTimecode,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
+            /* [out] */ unsigned short *deviceId,\r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
+            /* [out] */ BMDDeckControlError *error) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
+            /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
+        \r
+    };\r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkDeckControl_v7_9Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            __RPC__deref_out  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkDeckControl_v7_9 * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkDeckControl_v7_9 * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Open )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [in] */ BMDTimeValue timeValue,\r
+            /* [in] */ BOOL timecodeIsDropFrame,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Close )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BOOL standbyOn);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlMode *mode,\r
+            /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
+            /* [out] */ BMDDeckControlStatusFlags *flags);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BOOL standbyOn);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Play )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Stop )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Eject )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BMDTimecodeBCD timecode,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BOOL viewTape,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BOOL viewTape,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Jog )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ double rate,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ double rate,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BSTR *currentTimeCode,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ IDeckLinkTimecode **currentTimecode,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDTimecodeBCD *currentTimecode,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ unsigned long prerollSeconds);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ unsigned long *prerollSeconds);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ long exportOffsetFields);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ long *exportOffsetFields);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ long *deckManualExportOffsetFields);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ long captureOffsetFields);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ long *captureOffsetFields);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BMDTimecodeBCD inTimecode,\r
+            /* [in] */ BMDTimecodeBCD outTimecode,\r
+            /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ BOOL useVITC,\r
+            /* [in] */ BMDTimecodeBCD inTimecode,\r
+            /* [in] */ BMDTimecodeBCD outTimecode,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ unsigned short *deviceId,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *Abort )( \r
+            IDeckLinkDeckControl_v7_9 * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [out] */ BMDDeckControlError *error);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
+            IDeckLinkDeckControl_v7_9 * This,\r
+            /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkDeckControl_v7_9Vtbl;\r
+\r
+    interface IDeckLinkDeckControl_v7_9\r
+    {\r
+        CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject)  \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_AddRef(This) \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Release(This)        \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)     \\r
+    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Close(This,standbyOn)        \\r
+    ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags)     \\r
+    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn)   \\r
+    ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Play(This,error)     \\r
+    ( (This)->lpVtbl -> Play(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Stop(This,error)     \\r
+    ( (This)->lpVtbl -> Stop(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error)   \\r
+    ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Eject(This,error)    \\r
+    ( (This)->lpVtbl -> Eject(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error)    \\r
+    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error)     \\r
+    ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error)  \\r
+    ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_StepForward(This,error)      \\r
+    ( (This)->lpVtbl -> StepForward(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_StepBack(This,error) \\r
+    ( (This)->lpVtbl -> StepBack(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Jog(This,rate,error) \\r
+    ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error)     \\r
+    ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error)        \\r
+    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error)      \\r
+    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error)   \\r
+    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds)      \\r
+    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds)      \\r
+    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields)     \\r
+    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields)     \\r
+    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields)     \\r
+    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields)   \\r
+    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields)   \\r
+    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \\r
+    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error)      \\r
+    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error)     \\r
+    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_Abort(This)  \\r
+    ( (This)->lpVtbl -> Abort(This) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error) \\r
+    ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error)  \\r
+    ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
+\r
+#define IDeckLinkDeckControl_v7_9_SetCallback(This,callback)   \\r
+    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
 \r