decklink: Update SDK version to 12.2.2
authorSeungha Yang <seungha@centricular.com>
Mon, 7 Mar 2022 16:26:50 +0000 (01:26 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 8 Mar 2022 10:16:29 +0000 (10:16 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1883>

20 files changed:
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPI.h
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPIConfiguration.h
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPIDeckControl.h
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPIDiscovery.h
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPIDispatch.cpp
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPIModes.h
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPITypes.h
subprojects/gst-plugins-bad/sys/decklink/linux/DeckLinkAPIVersion.h
subprojects/gst-plugins-bad/sys/decklink/linux/LinuxCOM.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPI.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIConfiguration.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIDeckControl.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIDiscovery.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIDispatch.cpp
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIModes.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIStreaming.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPITypes.h
subprojects/gst-plugins-bad/sys/decklink/osx/DeckLinkAPIVersion.h
subprojects/gst-plugins-bad/sys/decklink/win/DeckLinkAPI.h
subprojects/gst-plugins-bad/sys/decklink/win/DeckLinkAPI_i.c

index 21d172b..181705b 100644 (file)
@@ -1,29 +1,43 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
-**
-** Permission is hereby granted, free of charge, to any person or organization
-** obtaining a copy of the software and accompanying documentation covered by
-** this license (the "Software") to use, reproduce, display, distribute,
-** execute, and transmit the Software, and to prepare derivative works of the
-** Software, and to permit third-parties to whom the Software is furnished to
-** do so, all subject to the following:
-** 
-** The copyright notices in the Software and this entire statement, including
-** the above license grant, this restriction and the following disclaimer,
-** must be included in all copies of the Software, in whole or in part, and
-** all derivative works of the Software, unless such copies or derivative
-** works are solely in the form of machine-executable object code generated by
-** a source language processor.
-** 
-** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-** DEALINGS IN THE SOFTWARE.
-** -LICENSE-END-
-*/
+ ** Copyright (c) 2021 Blackmagic Design
+ **  
+ ** Permission is hereby granted, free of charge, to any person or organization 
+ ** obtaining a copy of the software and accompanying documentation (the 
+ ** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+ ** and transmit the Software, and to prepare derivative works of the Software, 
+ ** and to permit third-parties to whom the Software is furnished to do so, in 
+ ** accordance with:
+ ** 
+ ** (1) if the Software is obtained from Blackmagic Design, the End User License 
+ ** Agreement for the Software Development Kit ("EULA") available at 
+ ** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
+ ** 
+ ** (2) if the Software is obtained from any third party, such licensing terms 
+ ** as notified by that third party,
+ ** 
+ ** and all subject to the following:
+ ** 
+ ** (3) the copyright notices in the Software and this entire statement, 
+ ** including the above license grant, this restriction and the following 
+ ** disclaimer, must be included in all copies of the Software, in whole or in 
+ ** part, and all derivative works of the Software, unless such copies or 
+ ** derivative works are solely in the form of machine-executable object code 
+ ** generated by a source language processor.
+ ** 
+ ** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+ ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+ ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+ ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
+ ** DEALINGS IN THE SOFTWARE.
+ ** 
+ ** A copy of the Software is available free of charge at 
+ ** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+ ** 
+ ** -LICENSE-END-
+ */
+
 
 #ifndef BMD_DECKLINKAPI_H
 #define BMD_DECKLINKAPI_H
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback                 = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ {0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE};
-BMD_CONST REFIID IID_IDeckLinkInputCallback                       = /* DD04E5EC-7415-42AB-AE4A-E80C4DFC044A */ {0xDD,0x04,0xE5,0xEC,0x74,0x15,0x42,0xAB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A};
-BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback                = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ {0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31};
-BMD_CONST REFIID IID_IDeckLinkMemoryAllocator                     = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ {0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8};
-BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback                 = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ {0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6};
-BMD_CONST REFIID IID_IDeckLinkIterator                            = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ {0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA};
-BMD_CONST REFIID IID_IDeckLinkAPIInformation                      = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ {0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4};
-BMD_CONST REFIID IID_IDeckLinkOutput                              = /* 065A0F6C-C508-4D0D-B919-F5EB0EBFC96B */ {0x06,0x5A,0x0F,0x6C,0xC5,0x08,0x4D,0x0D,0xB9,0x19,0xF5,0xEB,0x0E,0xBF,0xC9,0x6B};
-BMD_CONST REFIID IID_IDeckLinkInput                               = /* 2A88CF76-F494-4216-A7EF-DC74EEB83882 */ {0x2A,0x88,0xCF,0x76,0xF4,0x94,0x42,0x16,0xA7,0xEF,0xDC,0x74,0xEE,0xB8,0x38,0x82};
-BMD_CONST REFIID IID_IDeckLinkHDMIInputEDID                       = /* ABBBACBC-45BC-4665-9D92-ACE6E5A97902 */ {0xAB,0xBB,0xAC,0xBC,0x45,0xBC,0x46,0x65,0x9D,0x92,0xAC,0xE6,0xE5,0xA9,0x79,0x02};
-BMD_CONST REFIID IID_IDeckLinkEncoderInput                        = /* F222551D-13DF-4FD8-B587-9D4F19EC12C9 */ {0xF2,0x22,0x55,0x1D,0x13,0xDF,0x4F,0xD8,0xB5,0x87,0x9D,0x4F,0x19,0xEC,0x12,0xC9};
-BMD_CONST REFIID IID_IDeckLinkVideoFrame                          = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ {0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17};
-BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame                   = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ {0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90};
-BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions              = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ {0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7};
-BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions        = /* D5973DC9-6432-46D0-8F0B-2496F8A1238F */ {0xD5,0x97,0x3D,0xC9,0x64,0x32,0x46,0xD0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F};
-BMD_CONST REFIID IID_IDeckLinkVideoInputFrame                     = /* 05CFE374-537C-4094-9A57-680525118F44 */ {0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44};
-BMD_CONST REFIID IID_IDeckLinkAncillaryPacket                     = /* CC5BBF7E-029C-4D3B-9158-6000EF5E3670 */ {0xCC,0x5B,0xBF,0x7E,0x02,0x9C,0x4D,0x3B,0x91,0x58,0x60,0x00,0xEF,0x5E,0x36,0x70};
-BMD_CONST REFIID IID_IDeckLinkAncillaryPacketIterator             = /* 3FC8994B-88FB-4C17-968F-9AAB69D964A7 */ {0x3F,0xC8,0x99,0x4B,0x88,0xFB,0x4C,0x17,0x96,0x8F,0x9A,0xAB,0x69,0xD9,0x64,0xA7};
-BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillaryPackets          = /* 6C186C0F-459E-41D8-AEE2-4812D81AEE68 */ {0x6C,0x18,0x6C,0x0F,0x45,0x9E,0x41,0xD8,0xAE,0xE2,0x48,0x12,0xD8,0x1A,0xEE,0x68};
-BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary                 = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ {0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04};
-BMD_CONST REFIID IID_IDeckLinkEncoderPacket                       = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ {0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20};
-BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket                  = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ {0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0};
-BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket                  = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ {0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A};
-BMD_CONST REFIID IID_IDeckLinkH265NALPacket                       = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ {0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7};
-BMD_CONST REFIID IID_IDeckLinkAudioInputPacket                    = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ {0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66};
-BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback               = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ {0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38};
-BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper               = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ {0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F};
-BMD_CONST REFIID IID_IDeckLinkNotificationCallback                = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ {0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D};
-BMD_CONST REFIID IID_IDeckLinkNotification                        = /* B85DF4C8-BDF5-47C1-8064-28162EBDD4EB */ {0xB8,0x5D,0xF4,0xC8,0xBD,0xF5,0x47,0xC1,0x80,0x64,0x28,0x16,0x2E,0xBD,0xD4,0xEB};
-BMD_CONST REFIID IID_IDeckLinkProfileAttributes                   = /* 17D4BF8E-4911-473A-80A0-731CF6FF345B */ {0x17,0xD4,0xBF,0x8E,0x49,0x11,0x47,0x3A,0x80,0xA0,0x73,0x1C,0xF6,0xFF,0x34,0x5B};
-BMD_CONST REFIID IID_IDeckLinkProfileIterator                     = /* 29E5A8C0-8BE4-46EB-93AC-31DAAB5B7BF2 */ {0x29,0xE5,0xA8,0xC0,0x8B,0xE4,0x46,0xEB,0x93,0xAC,0x31,0xDA,0xAB,0x5B,0x7B,0xF2};
-BMD_CONST REFIID IID_IDeckLinkProfile                             = /* 16093466-674A-432B-9DA0-1AC2C5A8241C */ {0x16,0x09,0x34,0x66,0x67,0x4A,0x43,0x2B,0x9D,0xA0,0x1A,0xC2,0xC5,0xA8,0x24,0x1C};
-BMD_CONST REFIID IID_IDeckLinkProfileCallback                     = /* A4F9341E-97AA-4E04-8935-15F809898CEA */ {0xA4,0xF9,0x34,0x1E,0x97,0xAA,0x4E,0x04,0x89,0x35,0x15,0xF8,0x09,0x89,0x8C,0xEA};
-BMD_CONST REFIID IID_IDeckLinkProfileManager                      = /* 30D41429-3998-4B6D-84F8-78C94A797C6E */ {0x30,0xD4,0x14,0x29,0x39,0x98,0x4B,0x6D,0x84,0xF8,0x78,0xC9,0x4A,0x79,0x7C,0x6E};
-BMD_CONST REFIID IID_IDeckLinkStatus                              = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ {0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46};
-BMD_CONST REFIID IID_IDeckLinkKeyer                               = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ {0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3};
-BMD_CONST REFIID IID_IDeckLinkVideoConversion                     = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ {0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A};
-BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback          = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ {0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F};
-BMD_CONST REFIID IID_IDeckLinkDiscovery                           = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ {0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01};
+BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback                 = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ { 0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE };
+BMD_CONST REFIID IID_IDeckLinkInputCallback                       = /* C6FCE4C9-C4E4-4047-82FB-5D238232A902 */ { 0xC6,0xFC,0xE4,0xC9,0xC4,0xE4,0x40,0x47,0x82,0xFB,0x5D,0x23,0x82,0x32,0xA9,0x02 };
+BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback                = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ { 0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31 };
+BMD_CONST REFIID IID_IDeckLinkMemoryAllocator                     = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ { 0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8 };
+BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback                 = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ { 0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6 };
+BMD_CONST REFIID IID_IDeckLinkIterator                            = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ { 0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA };
+BMD_CONST REFIID IID_IDeckLinkAPIInformation                      = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ { 0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4 };
+BMD_CONST REFIID IID_IDeckLinkOutput                              = /* BE2D9020-461E-442F-84B7-E949CB953B9D */ { 0xBE,0x2D,0x90,0x20,0x46,0x1E,0x44,0x2F,0x84,0xB7,0xE9,0x49,0xCB,0x95,0x3B,0x9D };
+BMD_CONST REFIID IID_IDeckLinkInput                               = /* C21CDB6E-F414-46E4-A636-80A566E0ED37 */ { 0xC2,0x1C,0xDB,0x6E,0xF4,0x14,0x46,0xE4,0xA6,0x36,0x80,0xA5,0x66,0xE0,0xED,0x37 };
+BMD_CONST REFIID IID_IDeckLinkHDMIInputEDID                       = /* ABBBACBC-45BC-4665-9D92-ACE6E5A97902 */ { 0xAB,0xBB,0xAC,0xBC,0x45,0xBC,0x46,0x65,0x9D,0x92,0xAC,0xE6,0xE5,0xA9,0x79,0x02 };
+BMD_CONST REFIID IID_IDeckLinkEncoderInput                        = /* F222551D-13DF-4FD8-B587-9D4F19EC12C9 */ { 0xF2,0x22,0x55,0x1D,0x13,0xDF,0x4F,0xD8,0xB5,0x87,0x9D,0x4F,0x19,0xEC,0x12,0xC9 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrame                          = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ { 0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17 };
+BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame                   = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ { 0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions              = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ { 0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions        = /* E232A5B7-4DB4-44C9-9152-F47C12E5F051 */ { 0xE2,0x32,0xA5,0xB7,0x4D,0xB4,0x44,0xC9,0x91,0x52,0xF4,0x7C,0x12,0xE5,0xF0,0x51 };
+BMD_CONST REFIID IID_IDeckLinkVideoInputFrame                     = /* 05CFE374-537C-4094-9A57-680525118F44 */ { 0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44 };
+BMD_CONST REFIID IID_IDeckLinkAncillaryPacket                     = /* CC5BBF7E-029C-4D3B-9158-6000EF5E3670 */ { 0xCC,0x5B,0xBF,0x7E,0x02,0x9C,0x4D,0x3B,0x91,0x58,0x60,0x00,0xEF,0x5E,0x36,0x70 };
+BMD_CONST REFIID IID_IDeckLinkAncillaryPacketIterator             = /* 3FC8994B-88FB-4C17-968F-9AAB69D964A7 */ { 0x3F,0xC8,0x99,0x4B,0x88,0xFB,0x4C,0x17,0x96,0x8F,0x9A,0xAB,0x69,0xD9,0x64,0xA7 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillaryPackets          = /* 6C186C0F-459E-41D8-AEE2-4812D81AEE68 */ { 0x6C,0x18,0x6C,0x0F,0x45,0x9E,0x41,0xD8,0xAE,0xE2,0x48,0x12,0xD8,0x1A,0xEE,0x68 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary                 = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ { 0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04 };
+BMD_CONST REFIID IID_IDeckLinkEncoderPacket                       = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ { 0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20 };
+BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket                  = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ { 0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0 };
+BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket                  = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ { 0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A };
+BMD_CONST REFIID IID_IDeckLinkH265NALPacket                       = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ { 0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7 };
+BMD_CONST REFIID IID_IDeckLinkAudioInputPacket                    = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ { 0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66 };
+BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback               = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ { 0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38 };
+BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper               = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ { 0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F };
+BMD_CONST REFIID IID_IDeckLinkNotificationCallback                = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ { 0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D };
+BMD_CONST REFIID IID_IDeckLinkNotification                        = /* B85DF4C8-BDF5-47C1-8064-28162EBDD4EB */ { 0xB8,0x5D,0xF4,0xC8,0xBD,0xF5,0x47,0xC1,0x80,0x64,0x28,0x16,0x2E,0xBD,0xD4,0xEB };
+BMD_CONST REFIID IID_IDeckLinkProfileAttributes                   = /* 17D4BF8E-4911-473A-80A0-731CF6FF345B */ { 0x17,0xD4,0xBF,0x8E,0x49,0x11,0x47,0x3A,0x80,0xA0,0x73,0x1C,0xF6,0xFF,0x34,0x5B };
+BMD_CONST REFIID IID_IDeckLinkProfileIterator                     = /* 29E5A8C0-8BE4-46EB-93AC-31DAAB5B7BF2 */ { 0x29,0xE5,0xA8,0xC0,0x8B,0xE4,0x46,0xEB,0x93,0xAC,0x31,0xDA,0xAB,0x5B,0x7B,0xF2 };
+BMD_CONST REFIID IID_IDeckLinkProfile                             = /* 16093466-674A-432B-9DA0-1AC2C5A8241C */ { 0x16,0x09,0x34,0x66,0x67,0x4A,0x43,0x2B,0x9D,0xA0,0x1A,0xC2,0xC5,0xA8,0x24,0x1C };
+BMD_CONST REFIID IID_IDeckLinkProfileCallback                     = /* A4F9341E-97AA-4E04-8935-15F809898CEA */ { 0xA4,0xF9,0x34,0x1E,0x97,0xAA,0x4E,0x04,0x89,0x35,0x15,0xF8,0x09,0x89,0x8C,0xEA };
+BMD_CONST REFIID IID_IDeckLinkProfileManager                      = /* 30D41429-3998-4B6D-84F8-78C94A797C6E */ { 0x30,0xD4,0x14,0x29,0x39,0x98,0x4B,0x6D,0x84,0xF8,0x78,0xC9,0x4A,0x79,0x7C,0x6E };
+BMD_CONST REFIID IID_IDeckLinkStatus                              = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ { 0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46 };
+BMD_CONST REFIID IID_IDeckLinkKeyer                               = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ { 0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3 };
+BMD_CONST REFIID IID_IDeckLinkVideoConversion                     = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ { 0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A };
+BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback          = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ { 0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F };
+BMD_CONST REFIID IID_IDeckLinkDiscovery                           = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ { 0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01 };
 
 /* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */
 
@@ -111,7 +125,7 @@ enum _BMDVideoOutputFlags {
     bmdVideoOutputSynchronizeToPlaybackGroup                     = 1 << 6
 };
 
-/* Enum BMDSupportedVideoModeFlags - Flags to describe supported video mode */
+/* Enum BMDSupportedVideoModeFlags - Flags to describe supported video modes */
 
 typedef uint32_t BMDSupportedVideoModeFlags;
 enum _BMDSupportedVideoModeFlags {
@@ -139,7 +153,6 @@ enum _BMDFrameFlags {
     bmdFrameFlagDefault                                          = 0,
     bmdFrameFlagFlipVertical                                     = 1 << 0,
     bmdFrameContainsHDRMetadata                                  = 1 << 1,
-    bmdFrameContainsCintelMetadata                               = 1 << 2,
 
     /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */
 
@@ -172,7 +185,10 @@ typedef uint32_t BMDDetectedVideoInputFormatFlags;
 enum _BMDDetectedVideoInputFormatFlags {
     bmdDetectedVideoInputYCbCr422                                = 1 << 0,
     bmdDetectedVideoInputRGB444                                  = 1 << 1,
-    bmdDetectedVideoInputDualStream3D                            = 1 << 2
+    bmdDetectedVideoInputDualStream3D                            = 1 << 2,
+    bmdDetectedVideoInput12BitDepth                              = 1 << 3,
+    bmdDetectedVideoInput10BitDepth                              = 1 << 4,
+    bmdDetectedVideoInput8BitDepth                               = 1 << 5
 };
 
 /* Enum BMDDeckLinkCapturePassthroughMode - Enumerates whether the video output is electrically connected to the video input or if the clean switching mode is enabled */
@@ -188,16 +204,17 @@ enum _BMDDeckLinkCapturePassthroughMode {
 
 typedef uint32_t BMDOutputFrameCompletionResult;
 enum _BMDOutputFrameCompletionResult {
-    bmdOutputFrameCompleted,                                    
-    bmdOutputFrameDisplayedLate,                                
-    bmdOutputFrameDropped,                                      
-    bmdOutputFrameFlushed                                       
+    bmdOutputFrameCompleted,
+    bmdOutputFrameDisplayedLate,
+    bmdOutputFrameDropped,
+    bmdOutputFrameFlushed
 };
 
 /* Enum BMDReferenceStatus - GenLock input status */
 
 typedef uint32_t BMDReferenceStatus;
 enum _BMDReferenceStatus {
+    bmdReferenceUnlocked                                         = 0,
     bmdReferenceNotSupportedByHardware                           = 1 << 0,
     bmdReferenceLocked                                           = 1 << 1
 };
@@ -228,9 +245,9 @@ enum _BMDAudioSampleType {
 
 typedef uint32_t BMDAudioOutputStreamType;
 enum _BMDAudioOutputStreamType {
-    bmdAudioOutputStreamContinuous,                             
-    bmdAudioOutputStreamContinuousDontResample,                 
-    bmdAudioOutputStreamTimestamped                             
+    bmdAudioOutputStreamContinuous,
+    bmdAudioOutputStreamContinuousDontResample,
+    bmdAudioOutputStreamTimestamped
 };
 
 /* Enum BMDAncillaryPacketFormat - Ancillary packet format */
@@ -375,15 +392,18 @@ enum _BMDColorspace {
 
 typedef uint32_t BMDDynamicRange;
 enum _BMDDynamicRange {
-    bmdDynamicRangeSDR                                           = 0,
-    bmdDynamicRangeHDRStaticPQ                                   = 1 << 29,    // SMPTE ST 2084
-    bmdDynamicRangeHDRStaticHLG                                  = 1 << 30     // ITU-R BT.2100-0
+    bmdDynamicRangeSDR                                           = 0,  // Standard Dynamic Range in accordance with SMPTE ST 2036-1
+    bmdDynamicRangeHDRStaticPQ                                   = 1 << 29,    // High Dynamic Range PQ in accordance with SMPTE ST 2084
+    bmdDynamicRangeHDRStaticHLG                                  = 1 << 30     // High Dynamic Range HLG in accordance with ITU-R BT.2100-0
 };
 
 /* Enum BMDDeckLinkHDMIInputEDIDID - DeckLink HDMI Input EDID ID */
 
 typedef uint32_t BMDDeckLinkHDMIInputEDIDID;
 enum _BMDDeckLinkHDMIInputEDIDID {
+
+    /* Integers */
+
     bmdDeckLinkHDMIInputEDIDDynamicRange                         = /* 'HIDy' */ 0x48494479     // Parameter is of type BMDDynamicRange. Default is (bmdDynamicRangeSDR|bmdDynamicRangeHDRStaticPQ)
 };
 
@@ -391,37 +411,17 @@ enum _BMDDeckLinkHDMIInputEDIDID {
 
 typedef uint32_t BMDDeckLinkFrameMetadataID;
 enum _BMDDeckLinkFrameMetadataID {
+
+    /* Colorspace Metadata - Integers */
+
     bmdDeckLinkFrameMetadataColorspace                           = /* 'cspc' */ 0x63737063,    // Colorspace of video frame (see BMDColorspace)
+
+    /* HDR Metadata - Integers */
+
     bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc        = /* 'eotf' */ 0x656F7466,    // EOTF in range 0-7 as per CEA 861.3
-    bmdDeckLinkFrameMetadataCintelFilmType                       = /* 'cfty' */ 0x63667479,    // Current film type
-    bmdDeckLinkFrameMetadataCintelFilmGauge                      = /* 'cfga' */ 0x63666761,    // Current film gauge
-    bmdDeckLinkFrameMetadataCintelKeykodeLow                     = /* 'ckkl' */ 0x636B6B6C,    // Raw keykode value - low 64 bits
-    bmdDeckLinkFrameMetadataCintelKeykodeHigh                    = /* 'ckkh' */ 0x636B6B68,    // Raw keykode value - high 64 bits
-    bmdDeckLinkFrameMetadataCintelTile1Size                      = /* 'ct1s' */ 0x63743173,    // Size in bytes of compressed raw tile 1
-    bmdDeckLinkFrameMetadataCintelTile2Size                      = /* 'ct2s' */ 0x63743273,    // Size in bytes of compressed raw tile 2
-    bmdDeckLinkFrameMetadataCintelTile3Size                      = /* 'ct3s' */ 0x63743373,    // Size in bytes of compressed raw tile 3
-    bmdDeckLinkFrameMetadataCintelTile4Size                      = /* 'ct4s' */ 0x63743473,    // Size in bytes of compressed raw tile 4
-    bmdDeckLinkFrameMetadataCintelImageWidth                     = /* 'IWPx' */ 0x49575078,    // Width in pixels of image
-    bmdDeckLinkFrameMetadataCintelImageHeight                    = /* 'IHPx' */ 0x49485078,    // Height in pixels of image
-    bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed          = /* 'mrir' */ 0x6D726972,    // Red in red linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed        = /* 'mgir' */ 0x6D676972,    // Green in red linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed         = /* 'mbir' */ 0x6D626972,    // Blue in red linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen        = /* 'mrig' */ 0x6D726967,    // Red in green linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen      = /* 'mgig' */ 0x6D676967,    // Green in green linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen       = /* 'mbig' */ 0x6D626967,    // Blue in green linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue         = /* 'mrib' */ 0x6D726962,    // Red in blue linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue       = /* 'mgib' */ 0x6D676962,    // Green in blue linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue        = /* 'mbib' */ 0x6D626962,    // Blue in blue linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed             = /* 'mlrr' */ 0x6D6C7272,    // Red in red log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed           = /* 'mlgr' */ 0x6D6C6772,    // Green in red log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed            = /* 'mlbr' */ 0x6D6C6272,    // Blue in red log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen           = /* 'mlrg' */ 0x6D6C7267,    // Red in green log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen         = /* 'mlgg' */ 0x6D6C6767,    // Green in green log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen          = /* 'mlbg' */ 0x6D6C6267,    // Blue in green log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue            = /* 'mlrb' */ 0x6D6C7262,    // Red in blue log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue          = /* 'mlgb' */ 0x6D6C6762,    // Green in blue log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue           = /* 'mlbb' */ 0x6D6C6262,    // Blue in blue log masking parameter
-    bmdDeckLinkFrameMetadataCintelFilmFrameRate                  = /* 'cffr' */ 0x63666672,    // Film frame rate
+
+    /* HDR Metadata - Floats */
+
     bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX              = /* 'hdrx' */ 0x68647278,    // Red display primaries in range 0.0 - 1.0
     bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY              = /* 'hdry' */ 0x68647279,    // Red display primaries in range 0.0 - 1.0
     bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX            = /* 'hdgx' */ 0x68646778,    // Green display primaries in range 0.0 - 1.0
@@ -433,18 +433,7 @@ enum _BMDDeckLinkFrameMetadataID {
     bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance      = /* 'hdml' */ 0x68646D6C,    // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2
     bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance      = /* 'hmil' */ 0x686D696C,    // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2
     bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel          = /* 'mcll' */ 0x6D636C6C,    // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2
-    bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel     = /* 'fall' */ 0x66616C6C,    // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2
-    bmdDeckLinkFrameMetadataCintelOffsetToApplyHorizontal        = /* 'otah' */ 0x6F746168,    // Horizontal offset (pixels) to be applied to image
-    bmdDeckLinkFrameMetadataCintelOffsetToApplyVertical          = /* 'otav' */ 0x6F746176,    // Vertical offset (pixels) to be applied to image
-    bmdDeckLinkFrameMetadataCintelGainRed                        = /* 'LfRd' */ 0x4C665264,    // Red gain parameter to apply after log
-    bmdDeckLinkFrameMetadataCintelGainGreen                      = /* 'LfGr' */ 0x4C664772,    // Green gain parameter to apply after log
-    bmdDeckLinkFrameMetadataCintelGainBlue                       = /* 'LfBl' */ 0x4C66426C,    // Blue gain parameter to apply after log
-    bmdDeckLinkFrameMetadataCintelLiftRed                        = /* 'GnRd' */ 0x476E5264,    // Red lift parameter to apply after log and gain
-    bmdDeckLinkFrameMetadataCintelLiftGreen                      = /* 'GnGr' */ 0x476E4772,    // Green lift parameter to apply after log and gain
-    bmdDeckLinkFrameMetadataCintelLiftBlue                       = /* 'GnBl' */ 0x476E426C,    // Blue lift parameter to apply after log and gain
-    bmdDeckLinkFrameMetadataCintelHDRGainRed                     = /* 'HGRd' */ 0x48475264,    // Red gain parameter to apply to linear data for HDR Combination
-    bmdDeckLinkFrameMetadataCintelHDRGainGreen                   = /* 'HGGr' */ 0x48474772,    // Green gain parameter to apply to linear data for HDR Combination
-    bmdDeckLinkFrameMetadataCintelHDRGainBlue                    = /* 'HGBl' */ 0x4847426C     // Blue gain parameter to apply to linear data for HDR Combination
+    bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel     = /* 'fall' */ 0x66616C6C     // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2
 };
 
 /* Enum BMDProfileID - Identifies a profile */
@@ -467,6 +456,14 @@ enum _BMDHDMITimecodePacking {
     bmdHDMITimecodePackingIEEEOUI5CF9F0                          = 0x5CF9F003
 };
 
+/* Enum BMDInternalKeyingAncillaryDataSource - Source for VANC and timecode data when performing internal keying */
+
+typedef uint32_t BMDInternalKeyingAncillaryDataSource;
+enum _BMDInternalKeyingAncillaryDataSource {
+    bmdInternalKeyingUsesAncillaryDataFromInputSignal            = /* 'ikai' */ 0x696B6169,
+    bmdInternalKeyingUsesAncillaryDataFromKeyFrame               = /* 'ikak' */ 0x696B616B
+};
+
 /* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */
 
 typedef uint32_t BMDDeckLinkAttributeID;
@@ -486,6 +483,7 @@ enum _BMDDeckLinkAttributeID {
     BMDDeckLinkSupportsClockTimingAdjustment                     = /* 'ctad' */ 0x63746164,
     BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset       = /* 'frin' */ 0x6672696E,
     BMDDeckLinkSupportsSMPTELevelAOutput                         = /* 'lvla' */ 0x6C766C61,
+    BMDDeckLinkSupportsAutoSwitchingPPsFOnInput                  = /* 'apsf' */ 0x61707366,
     BMDDeckLinkSupportsDualLinkSDI                               = /* 'sdls' */ 0x73646C73,
     BMDDeckLinkSupportsQuadLinkSDI                               = /* 'sqls' */ 0x73716C73,
     BMDDeckLinkSupportsIdleOutput                                = /* 'idou' */ 0x69646F75,
@@ -521,6 +519,8 @@ enum _BMDDeckLinkAttributeID {
     BMDDeckLinkAudioOutputXLRChannelCount                        = /* 'aoxc' */ 0x616F7863,
     BMDDeckLinkProfileID                                         = /* 'prid' */ 0x70726964,    // Returns a BMDProfileID
     BMDDeckLinkDuplex                                            = /* 'dupx' */ 0x64757078,
+    BMDDeckLinkMinimumPrerollFrames                              = /* 'mprf' */ 0x6D707266,
+    BMDDeckLinkSupportedDynamicRange                             = /* 'sudr' */ 0x73756472,
 
     /* Floats */
 
@@ -544,6 +544,9 @@ enum _BMDDeckLinkAttributeID {
 
 typedef uint32_t BMDDeckLinkAPIInformationID;
 enum _BMDDeckLinkAPIInformationID {
+
+    /* Integer or String */
+
     BMDDeckLinkAPIVersion                                        = /* 'vers' */ 0x76657273
 };
 
@@ -555,7 +558,11 @@ enum _BMDDeckLinkStatusID {
     /* Integers */
 
     bmdDeckLinkStatusDetectedVideoInputMode                      = /* 'dvim' */ 0x6476696D,
-    bmdDeckLinkStatusDetectedVideoInputFlags                     = /* 'dvif' */ 0x64766966,
+    bmdDeckLinkStatusDetectedVideoInputFormatFlags               = /* 'dvff' */ 0x64766666,
+    bmdDeckLinkStatusDetectedVideoInputFieldDominance            = /* 'dvfd' */ 0x64766664,
+    bmdDeckLinkStatusDetectedVideoInputColorspace                = /* 'dscl' */ 0x6473636C,
+    bmdDeckLinkStatusDetectedVideoInputDynamicRange              = /* 'dsdr' */ 0x64736472,
+    bmdDeckLinkStatusDetectedSDILinkConfiguration                = /* 'dslc' */ 0x64736C63,
     bmdDeckLinkStatusCurrentVideoInputMode                       = /* 'cvim' */ 0x6376696D,
     bmdDeckLinkStatusCurrentVideoInputPixelFormat                = /* 'cvip' */ 0x63766970,
     bmdDeckLinkStatusCurrentVideoInputFlags                      = /* 'cvif' */ 0x63766966,
@@ -574,6 +581,9 @@ enum _BMDDeckLinkStatusID {
 
     bmdDeckLinkStatusVideoInputSignalLocked                      = /* 'visl' */ 0x7669736C,
     bmdDeckLinkStatusReferenceSignalLocked                       = /* 'refl' */ 0x7265666C,
+
+    /* Bytes */
+
     bmdDeckLinkStatusReceivedEDID                                = /* 'edid' */ 0x65646964
 };
 
@@ -688,7 +698,7 @@ class IDeckLinkDiscovery;
 class BMD_PUBLIC IDeckLinkVideoOutputCallback : public IUnknown
 {
 public:
-    virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0;
+    virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFramecompletedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0;
     virtual HRESULT ScheduledPlaybackHasStopped (void) = 0;
 
 protected:
@@ -700,7 +710,7 @@ protected:
 class BMD_PUBLIC IDeckLinkInputCallback : public IUnknown
 {
 public:
-    virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
+    virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayModenewDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
     virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0;
 
 protected:
@@ -712,7 +722,7 @@ protected:
 class BMD_PUBLIC IDeckLinkEncoderInputCallback : public IUnknown
 {
 public:
-    virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
+    virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayModenewDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
     virtual HRESULT VideoPacketArrived (/* in */ IDeckLinkEncoderVideoPacket* videoPacket) = 0;
     virtual HRESULT AudioPacketArrived (/* in */ IDeckLinkEncoderAudioPacket* audioPacket) = 0;
 
@@ -725,9 +735,8 @@ protected:
 class BMD_PUBLIC IDeckLinkMemoryAllocator : public IUnknown
 {
 public:
-    virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void **allocatedBuffer) = 0;
-    virtual HRESULT ReleaseBuffer (/* in */ void *buffer) = 0;
-
+    virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void** allocatedBuffer) = 0;
+    virtual HRESULT ReleaseBuffer (/* in */ void* buffer) = 0;
     virtual HRESULT Commit (void) = 0;
     virtual HRESULT Decommit (void) = 0;
 };
@@ -740,12 +749,12 @@ public:
     virtual HRESULT RenderAudioSamples (/* in */ bool preroll) = 0;
 };
 
-/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */
+/* Interface IDeckLinkIterator - Enumerates installed DeckLink hardware */
 
 class BMD_PUBLIC IDeckLinkIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLink **deckLinkInstance) = 0;
+    virtual HRESULT Next (/* out */ IDeckLink** deckLinkInstance) = 0;
 };
 
 /* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */
@@ -753,10 +762,10 @@ public:
 class BMD_PUBLIC IDeckLinkAPIInformation : public IUnknown
 {
 public:
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ bool *value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ double *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ const char **value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ boolvalue) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ doublevalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ const char** value) = 0;
 
 protected:
     virtual ~IDeckLinkAPIInformation () {} // call Release method to drop reference count
@@ -767,54 +776,47 @@ protected:
 class BMD_PUBLIC IDeckLinkOutput : public IUnknown
 {
 public:
-    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of 0 is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDSupportedVideoModeFlags flags, /* out */ BMDDisplayMode *actualMode, /* out */ bool *supported) = 0;
-    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
-    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0;
-
-    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
+    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of bmdVideoConnectionUnspecified is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDVideoOutputConversionMode conversionMode, /* in */ BMDSupportedVideoModeFlags flags, /* out */ BMDDisplayMode* actualMode, /* out */ bool* supported) = 0;
+    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode** resultDisplayMode) = 0;
+    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0;
+    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback* previewCallback) = 0;
 
     /* Video Output */
 
     virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0;
     virtual HRESULT DisableVideoOutput (void) = 0;
-
-    virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0;
-    virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0;
-    virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
-
-    virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0;
-    virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0;
-    virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0;
-    virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0;
+    virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator* theAllocator) = 0;
+    virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame** outFrame) = 0;
+    virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary** outBuffer) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
+    virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame* theFrame) = 0;
+    virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame* theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback* theCallback) = 0;
+    virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t* bufferedFrameCount) = 0;
 
     /* Audio Output */
 
     virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0;
     virtual HRESULT DisableAudioOutput (void) = 0;
-
-    virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0;
-
+    virtual HRESULT WriteAudioSamplesSync (/* in */ void* buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t* sampleFramesWritten) = 0;
     virtual HRESULT BeginAudioPreroll (void) = 0;
     virtual HRESULT EndAudioPreroll (void) = 0;
-    virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0;
-
-    virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0;
+    virtual HRESULT ScheduleAudioSamples (/* in */ void* buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t* sampleFramesWritten) = 0;
+    virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t* bufferedSampleFrameCount) = 0;
     virtual HRESULT FlushBufferedAudioSamples (void) = 0;
-
-    virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0;
+    virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback* theCallback) = 0;
 
     /* Output Control */
 
     virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0;
-    virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0;
-    virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0;
-    virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0;
-    virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0;
+    virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValueactualStopTime, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT IsScheduledPlaybackRunning (/* out */ boolactive) = 0;
+    virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* streamTime, /* out */ double* playbackSpeed) = 0;
+    virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatusreferenceStatus) = 0;
 
     /* Hardware Timing */
 
-    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0;
-    virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *frameCompletionTimestamp) = 0;
+    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* hardwareTime, /* out */ BMDTimeValue* timeInFrame, /* out */ BMDTimeValue* ticksPerFrame) = 0;
+    virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame* theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* frameCompletionTimestamp) = 0;
 
 protected:
     virtual ~IDeckLinkOutput () {} // call Release method to drop reference count
@@ -825,24 +827,23 @@ protected:
 class BMD_PUBLIC IDeckLinkInput : public IUnknown
 {
 public:
-    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of 0 is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDSupportedVideoModeFlags flags, /* out */ bool *supported) = 0;
-    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
-    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0;
-
-    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
+    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of bmdVideoConnectionUnspecified is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDVideoInputConversionMode conversionMode, /* in */ BMDSupportedVideoModeFlags flags, /* out */ BMDDisplayMode* actualMode, /* out */ bool* supported) = 0;
+    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode** resultDisplayMode) = 0;
+    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0;
+    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback* previewCallback) = 0;
 
     /* Video Input */
 
     virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0;
     virtual HRESULT DisableVideoInput (void) = 0;
-    virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0;
-    virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0;
+    virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_tavailableFrameCount) = 0;
+    virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocatortheAllocator) = 0;
 
     /* Audio Input */
 
     virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0;
     virtual HRESULT DisableAudioInput (void) = 0;
-    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0;
+    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_tavailableSampleFrameCount) = 0;
 
     /* Input Control */
 
@@ -850,11 +851,11 @@ public:
     virtual HRESULT StopStreams (void) = 0;
     virtual HRESULT PauseStreams (void) = 0;
     virtual HRESULT FlushStreams (void) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallbacktheCallback) = 0;
 
     /* Hardware Timing */
 
-    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0;
+    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* hardwareTime, /* out */ BMDTimeValue* timeInFrame, /* out */ BMDTimeValue* ticksPerFrame) = 0;
 
 protected:
     virtual ~IDeckLinkInput () {} // call Release method to drop reference count
@@ -866,7 +867,7 @@ class BMD_PUBLIC IDeckLinkHDMIInputEDID : public IUnknown
 {
 public:
     virtual HRESULT SetInt (/* in */ BMDDeckLinkHDMIInputEDIDID cfgID, /* in */ int64_t value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkHDMIInputEDIDID cfgID, /* out */ int64_t *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkHDMIInputEDIDID cfgID, /* out */ int64_tvalue) = 0;
     virtual HRESULT WriteToEDID (void) = 0;
 
 protected:
@@ -878,22 +879,22 @@ protected:
 class BMD_PUBLIC IDeckLinkEncoderInput : public IUnknown
 {
 public:
-    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of 0 is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedCodec, /* in */ uint32_t requestedCodecProfile, /* in */ BMDSupportedVideoModeFlags flags, /* out */ bool *supported) = 0;
-    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
-    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0;
+    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of bmdVideoConnectionUnspecified is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedCodec, /* in */ uint32_t requestedCodecProfile, /* in */ BMDSupportedVideoModeFlags flags, /* out */ bool* supported) = 0;
+    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode** resultDisplayMode) = 0;
+    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0;
 
     /* Video Input */
 
     virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0;
     virtual HRESULT DisableVideoInput (void) = 0;
-    virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_t *availablePacketsCount) = 0;
-    virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0;
+    virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_tavailablePacketsCount) = 0;
+    virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocatortheAllocator) = 0;
 
     /* Audio Input */
 
     virtual HRESULT EnableAudioInput (/* in */ BMDAudioFormat audioFormat, /* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0;
     virtual HRESULT DisableAudioInput (void) = 0;
-    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0;
+    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_tavailableSampleFrameCount) = 0;
 
     /* Input Control */
 
@@ -901,11 +902,11 @@ public:
     virtual HRESULT StopStreams (void) = 0;
     virtual HRESULT PauseStreams (void) = 0;
     virtual HRESULT FlushStreams (void) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallback *theCallback) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallbacktheCallback) = 0;
 
     /* Hardware Timing */
 
-    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0;
+    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* hardwareTime, /* out */ BMDTimeValue* timeInFrame, /* out */ BMDTimeValue* ticksPerFrame) = 0;
 
 protected:
     virtual ~IDeckLinkEncoderInput () {} // call Release method to drop reference count
@@ -921,10 +922,9 @@ public:
     virtual long GetRowBytes (void) = 0;
     virtual BMDPixelFormat GetPixelFormat (void) = 0;
     virtual BMDFrameFlags GetFlags (void) = 0;
-    virtual HRESULT GetBytes (/* out */ void **buffer) = 0;
-
-    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0;
-    virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
+    virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
+    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode** timecode) = 0;
+    virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary** ancillary) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
 
 protected:
     virtual ~IDeckLinkVideoFrame () {} // call Release method to drop reference count
@@ -936,10 +936,9 @@ class BMD_PUBLIC IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame
 {
 public:
     virtual HRESULT SetFlags (/* in */ BMDFrameFlags newFlags) = 0;
-
-    virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode *timecode) = 0;
+    virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode* timecode) = 0;
     virtual HRESULT SetTimecodeFromComponents (/* in */ BMDTimecodeFormat format, /* in */ uint8_t hours, /* in */ uint8_t minutes, /* in */ uint8_t seconds, /* in */ uint8_t frames, /* in */ BMDTimecodeFlags flags) = 0;
-    virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
+    virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillaryancillary) = 0;
     virtual HRESULT SetTimecodeUserBits (/* in */ BMDTimecodeFormat format, /* in */ BMDTimecodeUserBits userBits) = 0;
 
 protected:
@@ -952,21 +951,22 @@ class BMD_PUBLIC IDeckLinkVideoFrame3DExtensions : public IUnknown
 {
 public:
     virtual BMDVideo3DPackingFormat Get3DPackingFormat (void) = 0;
-    virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame* *rightEyeFrame) = 0;
+    virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame*rightEyeFrame) = 0;
 
 protected:
     virtual ~IDeckLinkVideoFrame3DExtensions () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDMI HDR information */
+/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDR information */
 
 class BMD_PUBLIC IDeckLinkVideoFrameMetadataExtensions : public IUnknown
 {
 public:
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ double *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ doublevalue) = 0;
     virtual HRESULT GetFlag (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ bool* value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ const char **value) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ const char** value) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ void* buffer /* optional */, /* in, out */ uint32_t* bufferSize) = 0;
 
 protected:
     virtual ~IDeckLinkVideoFrameMetadataExtensions () {} // call Release method to drop reference count
@@ -977,8 +977,8 @@ protected:
 class BMD_PUBLIC IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame
 {
 public:
-    virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, /* in */ BMDTimeScale timeScale) = 0;
-    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0;
+    virtual HRESULT GetStreamTime (/* out */ BMDTimeValue* frameTime, /* out */ BMDTimeValue* frameDuration, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue* frameTime, /* out */ BMDTimeValue* frameDuration) = 0;
 
 protected:
     virtual ~IDeckLinkVideoInputFrame () {} // call Release method to drop reference count
@@ -989,12 +989,11 @@ protected:
 class BMD_PUBLIC IDeckLinkAncillaryPacket : public IUnknown
 {
 public:
-
-    virtual HRESULT GetBytes (/* in */ BMDAncillaryPacketFormat format /* For output, only one format need be offered */, /* out */ const void **data /* Optional */, /* out */ uint32_t *size /* Optional */) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDAncillaryPacketFormat format /* For output, only one format need be offered */, /* out */ const void** data /* Optional */, /* out */ uint32_t* size /* Optional */) = 0;
     virtual uint8_t GetDID (void) = 0;
     virtual uint8_t GetSDID (void) = 0;
-    virtual uint32_t GetLineNumber (void) = 0; // On output, zero is auto
-    virtual uint8_t GetDataStreamIndex (void) = 0; // Usually zero. Can only be 1 if non-SD and the first data stream is completely full
+    virtual uint32_t GetLineNumber (void) = 0; // On output, zero is auto
+    virtual uint8_t GetDataStreamIndex (void) = 0;     // Usually zero. Can only be 1 if non-SD and the first data stream is completely full
 
 protected:
     virtual ~IDeckLinkAncillaryPacket () {} // call Release method to drop reference count
@@ -1005,35 +1004,33 @@ protected:
 class BMD_PUBLIC IDeckLinkAncillaryPacketIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLinkAncillaryPacket **packet) = 0;
+    virtual HRESULT Next (/* out */ IDeckLinkAncillaryPacket** packet) = 0;
 
 protected:
     virtual ~IDeckLinkAncillaryPacketIterator () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoFrameAncillaryPackets - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */
+/* Interface IDeckLinkVideoFrameAncillaryPackets - Obtained through QueryInterface on an IDeckLinkVideoFrame object. */
 
 class BMD_PUBLIC IDeckLinkVideoFrameAncillaryPackets : public IUnknown
 {
 public:
-
-    virtual HRESULT GetPacketIterator (/* out */ IDeckLinkAncillaryPacketIterator **iterator) = 0;
-    virtual HRESULT GetFirstPacketByID (/* in */ uint8_t DID, /* in */ uint8_t SDID, /* out */ IDeckLinkAncillaryPacket **packet) = 0;
-    virtual HRESULT AttachPacket (/* in */ IDeckLinkAncillaryPacket *packet) = 0; // Implement IDeckLinkAncillaryPacket to output your own
-    virtual HRESULT DetachPacket (/* in */ IDeckLinkAncillaryPacket *packet) = 0;
+    virtual HRESULT GetPacketIterator (/* out */ IDeckLinkAncillaryPacketIterator** iterator) = 0;
+    virtual HRESULT GetFirstPacketByID (/* in */ uint8_t DID, /* in */ uint8_t SDID, /* out */ IDeckLinkAncillaryPacket** packet) = 0;
+    virtual HRESULT AttachPacket (/* in */ IDeckLinkAncillaryPacket* packet) = 0;      // Implement IDeckLinkAncillaryPacket to output your own
+    virtual HRESULT DetachPacket (/* in */ IDeckLinkAncillaryPacket* packet) = 0;
     virtual HRESULT DetachAllPackets (void) = 0;
 
 protected:
     virtual ~IDeckLinkVideoFrameAncillaryPackets () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoFrameAncillary - Use of IDeckLinkVideoFrameAncillaryPackets is preferred. Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */
+/* Interface IDeckLinkVideoFrameAncillary - Use of IDeckLinkVideoFrameAncillaryPackets is preferred. Obtained through QueryInterface on an IDeckLinkVideoFrame object. */
 
 class BMD_PUBLIC IDeckLinkVideoFrameAncillary : public IUnknown
 {
 public:
-
-    virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void **buffer) = 0; // Pixels/rowbytes is same as display mode, except for above HD where it's 1920 pixels for UHD modes and 2048 pixels for DCI modes
+    virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void** buffer) = 0;      // Pixels/rowbytes is same as display mode, except for above HD where it's 1920 pixels for UHD modes and 2048 pixels for DCI modes
     virtual BMDPixelFormat GetPixelFormat (void) = 0;
     virtual BMDDisplayMode GetDisplayMode (void) = 0;
 
@@ -1046,9 +1043,9 @@ protected:
 class BMD_PUBLIC IDeckLinkEncoderPacket : public IUnknown
 {
 public:
-    virtual HRESULT GetBytes (/* out */ void **buffer) = 0;
+    virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
     virtual long GetSize (void) = 0;
-    virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT GetStreamTime (/* out */ BMDTimeValueframeTime, /* in */ BMDTimeScale timeScale) = 0;
     virtual BMDPacketType GetPacketType (void) = 0;
 
 protected:
@@ -1061,9 +1058,8 @@ class BMD_PUBLIC IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket
 {
 public:
     virtual BMDPixelFormat GetPixelFormat (void) = 0;
-    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0;
-
-    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0;
+    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue* frameTime, /* out */ BMDTimeValue* frameDuration) = 0;
+    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode** timecode) = 0;
 
 protected:
     virtual ~IDeckLinkEncoderVideoPacket () {} // call Release method to drop reference count
@@ -1080,13 +1076,13 @@ protected:
     virtual ~IDeckLinkEncoderAudioPacket () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface() on an IDeckLinkEncoderVideoPacket object */
+/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface on an IDeckLinkEncoderVideoPacket object */
 
 class BMD_PUBLIC IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket
 {
 public:
-    virtual HRESULT GetUnitType (/* out */ uint8_t *unitType) = 0;
-    virtual HRESULT GetBytesNoPrefix (/* out */ void **buffer) = 0;
+    virtual HRESULT GetUnitType (/* out */ uint8_tunitType) = 0;
+    virtual HRESULT GetBytesNoPrefix (/* out */ void** buffer) = 0;
     virtual long GetSizeNoPrefix (void) = 0;
 
 protected:
@@ -1099,8 +1095,8 @@ class BMD_PUBLIC IDeckLinkAudioInputPacket : public IUnknown
 {
 public:
     virtual long GetSampleFrameCount (void) = 0;
-    virtual HRESULT GetBytes (/* out */ void **buffer) = 0;
-    virtual HRESULT GetPacketTime (/* out */ BMDTimeValue *packetTime, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
+    virtual HRESULT GetPacketTime (/* out */ BMDTimeValuepacketTime, /* in */ BMDTimeScale timeScale) = 0;
 
 protected:
     virtual ~IDeckLinkAudioInputPacket () {} // call Release method to drop reference count
@@ -1111,13 +1107,13 @@ protected:
 class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown
 {
 public:
-    virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0;
+    virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrametheFrame) = 0;
 
 protected:
     virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */
+/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance on platforms with native COM support or from CreateOpenGLScreenPreviewHelper on other platforms. */
 
 class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown
 {
@@ -1127,7 +1123,7 @@ public:
 
     virtual HRESULT InitializeGL (void) = 0;
     virtual HRESULT PaintGL (void) = 0;
-    virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0;
+    virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrametheFrame) = 0;
     virtual HRESULT Set3DPreviewFormat (/* in */ BMD3DPreviewFormat previewFormat) = 0;
 
 protected:
@@ -1147,8 +1143,8 @@ public:
 class BMD_PUBLIC IDeckLinkNotification : public IUnknown
 {
 public:
-    virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0;
-    virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0;
+    virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallbacktheCallback) = 0;
+    virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallbacktheCallback) = 0;
 
 protected:
     virtual ~IDeckLinkNotification () {} // call Release method to drop reference count
@@ -1159,10 +1155,10 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileAttributes : public IUnknown
 {
 public:
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ bool *value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ double *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ const char **value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ boolvalue) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ doublevalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ const char** value) = 0;
 
 protected:
     virtual ~IDeckLinkProfileAttributes () {} // call Release method to drop reference count
@@ -1173,7 +1169,7 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLinkProfile **profile) = 0;
+    virtual HRESULT Next (/* out */ IDeckLinkProfile** profile) = 0;
 
 protected:
     virtual ~IDeckLinkProfileIterator () {} // call Release method to drop reference count
@@ -1184,10 +1180,10 @@ protected:
 class BMD_PUBLIC IDeckLinkProfile : public IUnknown
 {
 public:
-    virtual HRESULT GetDevice (/* out */ IDeckLink **device) = 0; // Device affected when this profile becomes active
-    virtual HRESULT IsActive (/* out */ bool *isActive) = 0;
-    virtual HRESULT SetActive (void) = 0; // Activating a profile will also change the profile on all devices enumerated by GetPeers(). Activation is not complete until IDeckLinkProfileCallback::ProfileActivated() is called
-    virtual HRESULT GetPeers (/* out */ IDeckLinkProfileIterator **profileIterator) = 0; // Profiles of other devices activated with this profile
+    virtual HRESULT GetDevice (/* out */ IDeckLink** device) = 0;      // Device affected when this profile becomes active
+    virtual HRESULT IsActive (/* out */ boolisActive) = 0;
+    virtual HRESULT SetActive (void) = 0;      // Activating a profile will also change the profile on all devices enumerated by GetPeers. Activation is not complete until IDeckLinkProfileCallback::ProfileActivated is called
+    virtual HRESULT GetPeers (/* out */ IDeckLinkProfileIterator** profileIterator) = 0;       // Profiles of other devices activated with this profile
 
 protected:
     virtual ~IDeckLinkProfile () {} // call Release method to drop reference count
@@ -1198,8 +1194,8 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileCallback : public IUnknown
 {
 public:
-    virtual HRESULT ProfileChanging (/* in */ IDeckLinkProfile *profileToBeActivated, /* in */ bool streamsWillBeForcedToStop) = 0; // Called before this device changes profile. User has an opportunity for teardown if streamsWillBeForcedToStop
-    virtual HRESULT ProfileActivated (/* in */ IDeckLinkProfile *activatedProfile) = 0; // Called after this device has been activated with a new profile
+    virtual HRESULT ProfileChanging (/* in */ IDeckLinkProfile* profileToBeActivated, /* in */ bool streamsWillBeForcedToStop) = 0;    // Called before this device changes profile. User has an opportunity for teardown if streamsWillBeForcedToStop
+    virtual HRESULT ProfileActivated (/* in */ IDeckLinkProfile* activatedProfile) = 0;        // Called after this device has been activated with a new profile
 
 protected:
     virtual ~IDeckLinkProfileCallback () {} // call Release method to drop reference count
@@ -1210,9 +1206,9 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileManager : public IUnknown
 {
 public:
-    virtual HRESULT GetProfiles (/* out */ IDeckLinkProfileIterator **profileIterator) = 0; // All available profiles for this device
-    virtual HRESULT GetProfile (/* in */ BMDProfileID profileID, /* out */ IDeckLinkProfile **profile) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkProfileCallback *callback) = 0;
+    virtual HRESULT GetProfiles (/* out */ IDeckLinkProfileIterator** profileIterator) = 0;    // All available profiles for this device
+    virtual HRESULT GetProfile (/* in */ BMDProfileID profileID, /* out */ IDeckLinkProfile** profile) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkProfileCallbackcallback) = 0;
 
 protected:
     virtual ~IDeckLinkProfileManager () {} // call Release method to drop reference count
@@ -1223,11 +1219,11 @@ protected:
 class BMD_PUBLIC IDeckLinkStatus : public IUnknown
 {
 public:
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ bool *value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ double *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ const char **value) = 0;
-    virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void *buffer, /* in, out */ uint32_t *bufferSize) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ boolvalue) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ doublevalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ const char** value) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void* buffer, /* in, out */ uint32_t* bufferSize) = 0;
 
 protected:
     virtual ~IDeckLinkStatus () {} // call Release method to drop reference count
@@ -1248,7 +1244,7 @@ protected:
     virtual ~IDeckLinkKeyer () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */
+/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance. */
 
 class BMD_PUBLIC IDeckLinkVideoConversion : public IUnknown
 {
@@ -1287,15 +1283,16 @@ protected:
 
 extern "C" {
 
-    IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance (void);
-    IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance (void);
-    IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance (void);
-    IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper (void);
-    IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance (void);
-    IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPacketsInstance (void); // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
+    IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance(void);
+    IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance(void);
+    IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance(void);
+    IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper(void);
+    IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance(void);
+    IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPacketsInstance(void);    // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
 
 }
 
 
-#endif      // defined(__cplusplus)
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPI_H) */
index e472f73..27206f0 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
@@ -46,8 +46,8 @@
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkConfiguration                       = /* 912F634B-2D4E-40A4-8AAB-8D80B73F1289 */ {0x91,0x2F,0x63,0x4B,0x2D,0x4E,0x40,0xA4,0x8A,0xAB,0x8D,0x80,0xB7,0x3F,0x12,0x89};
-BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration                = /* 138050E5-C60A-4552-BF3F-0F358049327E */ {0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E};
+BMD_CONST REFIID IID_IDeckLinkConfiguration                       = /* 912F634B-2D4E-40A4-8AAB-8D80B73F1289 */ { 0x91,0x2F,0x63,0x4B,0x2D,0x4E,0x40,0xA4,0x8A,0xAB,0x8D,0x80,0xB7,0x3F,0x12,0x89 };
+BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration                = /* 138050E5-C60A-4552-BF3F-0F358049327E */ { 0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E };
 
 /* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */
 
@@ -67,8 +67,10 @@ enum _BMDDeckLinkConfigurationID {
     /* Audio Input/Output Flags */
 
     bmdDeckLinkConfigAnalogAudioConsumerLevels                   = /* 'aacl' */ 0x6161636C,
+    bmdDeckLinkConfigSwapHDMICh3AndCh4OnInput                    = /* 'hi34' */ 0x68693334,
+    bmdDeckLinkConfigSwapHDMICh3AndCh4OnOutput                   = /* 'ho34' */ 0x686F3334,
 
-    /* Video output flags */
+    /* Video Output Flags */
 
     bmdDeckLinkConfigFieldFlickerRemoval                         = /* 'fdfr' */ 0x66646672,
     bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion            = /* 'to59' */ 0x746F3539,
@@ -79,9 +81,6 @@ enum _BMDDeckLinkConfigurationID {
     bmdDeckLinkConfigSMPTELevelAOutput                           = /* 'smta' */ 0x736D7461,
     bmdDeckLinkConfigRec2020Output                               = /* 'rec2' */ 0x72656332,    // Ensure output is Rec.2020 colorspace
     bmdDeckLinkConfigQuadLinkSDIVideoOutputSquareDivisionSplit   = /* 'SDQS' */ 0x53445153,
-
-    /* Video Output Flags */
-
     bmdDeckLinkConfigOutput1080pAsPsF                            = /* 'pfpr' */ 0x70667072,
 
     /* Video Output Integers */
@@ -112,9 +111,6 @@ enum _BMDDeckLinkConfigurationID {
     bmdDeckLinkConfigVideoInputScanning                          = /* 'visc' */ 0x76697363,    // Applicable to H264 Pro Recorder only
     bmdDeckLinkConfigUseDedicatedLTCInput                        = /* 'dltc' */ 0x646C7463,    // Use timecode from LTC input instead of SDI stream
     bmdDeckLinkConfigSDIInput3DPayloadOverride                   = /* '3dds' */ 0x33646473,
-
-    /* Video Input Flags */
-
     bmdDeckLinkConfigCapture1080pAsPsF                           = /* 'cfpr' */ 0x63667072,
 
     /* Video Input Integers */
@@ -139,6 +135,10 @@ enum _BMDDeckLinkConfigurationID {
     bmdDeckLinkConfigVideoInputSVideoLumaGain                    = /* 'islg' */ 0x69736C67,
     bmdDeckLinkConfigVideoInputSVideoChromaGain                  = /* 'iscg' */ 0x69736367,
 
+    /* Keying Integers */
+
+    bmdDeckLinkConfigInternalKeyingAncillaryDataSource           = /* 'ikas' */ 0x696B6173,
+
     /* Audio Input Flags */
 
     bmdDeckLinkConfigMicrophonePhantomPower                      = /* 'mphp' */ 0x6D706870,
@@ -211,6 +211,8 @@ enum _BMDDeckLinkEncoderConfigurationID {
     bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc               = /* 'esds' */ 0x65736473     // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkConfiguration;
@@ -222,13 +224,13 @@ class BMD_PUBLIC IDeckLinkConfiguration : public IUnknown
 {
 public:
     virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0;
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ boolvalue) = 0;
     virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_tvalue) = 0;
     virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0;
-    virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const char *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char **value) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ doublevalue) = 0;
+    virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ const charvalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ const char** value) = 0;
     virtual HRESULT WriteConfigurationToPreferences (void) = 0;
 
 protected:
@@ -241,14 +243,14 @@ class BMD_PUBLIC IDeckLinkEncoderConfiguration : public IUnknown
 {
 public:
     virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0;
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ boolvalue) = 0;
     virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_tvalue) = 0;
     virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0;
-    virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ const char *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ const char **value) = 0;
-    virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void *buffer /* optional */, /* in, out */ uint32_t *bufferSize) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ doublevalue) = 0;
+    virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ const charvalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ const char** value) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void* buffer /* optional */, /* in, out */ uint32_t* bufferSize) = 0;
 
 protected:
     virtual ~IDeckLinkEncoderConfiguration () {} // call Release method to drop reference count
@@ -262,4 +264,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */
index 5cfbcec..0502fd5 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
@@ -46,8 +46,8 @@
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback           = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ {0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF};
-BMD_CONST REFIID IID_IDeckLinkDeckControl                         = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ {0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE};
+BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback           = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ { 0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF };
+BMD_CONST REFIID IID_IDeckLinkDeckControl                         = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ { 0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE };
 
 /* Enum BMDDeckControlMode - DeckControl mode */
 
@@ -67,13 +67,13 @@ enum _BMDDeckControlEvent {
 
     /* Export-To-Tape events */
 
-    bmdDeckControlPrepareForExportEvent                          = /* 'pfee' */ 0x70666565,    // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point.
-    bmdDeckControlExportCompleteEvent                            = /* 'exce' */ 0x65786365,    // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback.
+    bmdDeckControlPrepareForExportEvent                          = /* 'pfee' */ 0x70666565,    // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback should be called at this point.
+    bmdDeckControlExportCompleteEvent                            = /* 'exce' */ 0x65786365,    // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback. Upon reception of this event the deck's control mode is set back to bmdDeckControlVTRControlMode.
 
     /* Capture events */
 
     bmdDeckControlPrepareForCaptureEvent                         = /* 'pfce' */ 0x70666365,    // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid.
-    bmdDeckControlCaptureCompleteEvent                           = /* 'ccev' */ 0x63636576     // This event is triggered a few frames after reaching the out-point.
+    bmdDeckControlCaptureCompleteEvent                           = /* 'ccev' */ 0x63636576     // This event is triggered a few frames after reaching the out-point. Upon reception of this event the deck's control mode is set back to bmdDeckControlVTRControlMode.
 };
 
 /* Enum BMDDeckControlVTRControlState - VTR Control state */
@@ -146,6 +146,8 @@ enum _BMDDeckControlError {
     bmdDeckControlUnknownError                                   = /* 'uner' */ 0x756E6572
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkDeckControlStatusCallback;
@@ -170,39 +172,39 @@ protected:
 class BMD_PUBLIC IDeckLinkDeckControl : public IUnknown
 {
 public:
-    virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0;
+    virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlErrorerror) = 0;
     virtual HRESULT Close (/* in */ bool standbyOn) = 0;
-    virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0;
+    virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode* mode, /* out */ BMDDeckControlVTRControlState* vtrControlState, /* out */ BMDDeckControlStatusFlags* flags) = 0;
     virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0;
-    virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetTimecodeString (/* out */ const char **currentTimeCode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0;
+    virtual HRESULT SendCommand (/* in */ uint8_t* inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t* outBuffer, /* out */ uint32_t* outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError* error) = 0;
+    virtual HRESULT Play (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Stop (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Eject (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT StepForward (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT StepBack (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT GetTimecodeString (/* out */ const char** currentTimeCode, /* out */ BMDDeckControlError* error) = 0;
+    virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode** currentTimecode, /* out */ BMDDeckControlError* error) = 0;
+    virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD* currentTimecode, /* out */ BMDDeckControlError* error) = 0;
     virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0;
-    virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0;
+    virtual HRESULT GetPreroll (/* out */ uint32_tprerollSeconds) = 0;
     virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0;
-    virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0;
-    virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0;
+    virtual HRESULT GetExportOffset (/* out */ int32_texportOffsetFields) = 0;
+    virtual HRESULT GetManualExportOffset (/* out */ int32_tdeckManualExportOffsetFields) = 0;
     virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0;
-    virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0;
-    virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0;
+    virtual HRESULT GetCaptureOffset (/* out */ int32_tcaptureOffsetFields) = 0;
+    virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT GetDeviceID (/* out */ uint16_t* deviceId, /* out */ BMDDeckControlError* error) = 0;
     virtual HRESULT Abort (void) = 0;
-    virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0;
+    virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallbackcallback) = 0;
 
 protected:
     virtual ~IDeckLinkDeckControl () {} // call Release method to drop reference count
@@ -216,4 +218,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPIDECKCONTROL_H) */
index ff9ce33..40ab8d9 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLink                                    = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ {0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91};
+BMD_CONST REFIID IID_IDeckLink                                    = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ { 0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91 };
+
+#if defined(__cplusplus)
 
 // Forward Declarations
 
 class IDeckLink;
 
-/* Interface IDeckLink - represents a DeckLink device */
+/* Interface IDeckLink - Represents a DeckLink device */
 
 class BMD_PUBLIC IDeckLink : public IUnknown
 {
 public:
-    virtual HRESULT GetModelName (/* out */ const char **modelName) = 0;
-    virtual HRESULT GetDisplayName (/* out */ const char **displayName) = 0;
+    virtual HRESULT GetModelName (/* out */ const char** modelName) = 0;
+    virtual HRESULT GetDisplayName (/* out */ const char** displayName) = 0;
 
 protected:
     virtual ~IDeckLink () {} // call Release method to drop reference count
@@ -72,4 +74,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPIDISCOVERY_H) */
index ed3b410..42aad37 100644 (file)
@@ -1,27 +1,40 @@
 /* -LICENSE-START-
 ** Copyright (c) 2009 Blackmagic Design
-**
-** Permission is hereby granted, free of charge, to any person or organization
-** obtaining a copy of the software and accompanying documentation covered by
-** this license (the "Software") to use, reproduce, display, distribute,
-** execute, and transmit the Software, and to prepare derivative works of the
-** Software, and to permit third-parties to whom the Software is furnished to
-** do so, all subject to the following:
-**
-** The copyright notices in the Software and this entire statement, including
-** the above license grant, this restriction and the following disclaimer,
-** must be included in all copies of the Software, in whole or in part, and
-** all derivative works of the Software, unless such copies or derivative
-** works are solely in the form of machine-executable object code generated by
-** a source language processor.
-**
-** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+**  
+** Permission is hereby granted, free of charge, to any person or organization 
+** obtaining a copy of the software and accompanying documentation (the 
+** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+** and transmit the Software, and to prepare derivative works of the Software, 
+** and to permit third-parties to whom the Software is furnished to do so, in 
+** accordance with:
+** 
+** (1) if the Software is obtained from Blackmagic Design, the End User License 
+** Agreement for the Software Development Kit (“EULA”) available at 
+** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
+** 
+** (2) if the Software is obtained from any third party, such licensing terms 
+** as notified by that third party,
+** 
+** and all subject to the following:
+** 
+** (3) the copyright notices in the Software and this entire statement, 
+** including the above license grant, this restriction and the following 
+** disclaimer, must be included in all copies of the Software, in whole or in 
+** part, and all derivative works of the Software, unless such copies or 
+** derivative works are solely in the form of machine-executable object code 
+** generated by a source language processor.
+** 
+** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 ** DEALINGS IN THE SOFTWARE.
+** 
+** A copy of the Software is available free of charge at 
+** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+** 
 ** -LICENSE-END-
 **/
 
@@ -56,16 +69,16 @@ static CreateVideoFrameAncillaryPacketsInstanceFunc gCreateVideoFrameAncillaryPa
 static void    InitDeckLinkAPI (void)
 {
        void *libraryHandle;
-
+       
        libraryHandle = dlopen(kDeckLinkAPI_Name, RTLD_NOW|RTLD_GLOBAL);
        if (!libraryHandle)
        {
                // fprintf(stderr, "%s\n", dlerror());
                return;
        }
-
+       
        gLoadedDeckLinkAPI = true;
-
+       
        gCreateIteratorFunc = (CreateIteratorFunc)dlsym(libraryHandle, "CreateDeckLinkIteratorInstance_0004");
        if (!gCreateIteratorFunc)
                fprintf(stderr, "%s\n", dlerror());
@@ -86,7 +99,7 @@ static void   InitDeckLinkAPI (void)
 static void    InitDeckLinkPreviewAPI (void)
 {
        void *libraryHandle;
-
+       
        libraryHandle = dlopen(KDeckLinkPreviewAPI_Name, RTLD_NOW|RTLD_GLOBAL);
        if (!libraryHandle)
        {
@@ -109,7 +122,7 @@ bool                IsDeckLinkAPIPresent (void)
 IDeckLinkIterator*             CreateDeckLinkIteratorInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateIteratorFunc == NULL)
                return NULL;
        return gCreateIteratorFunc();
@@ -118,7 +131,7 @@ IDeckLinkIterator*          CreateDeckLinkIteratorInstance (void)
 IDeckLinkAPIInformation*       CreateDeckLinkAPIInformationInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateAPIInformationFunc == NULL)
                return NULL;
        return gCreateAPIInformationFunc();
@@ -128,7 +141,7 @@ IDeckLinkGLScreenPreviewHelper*             CreateOpenGLScreenPreviewHelper (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
        pthread_once(&gPreviewOnceControl, InitDeckLinkPreviewAPI);
-
+       
        if (gCreateOpenGLPreviewFunc == NULL)
                return NULL;
        return gCreateOpenGLPreviewFunc();
@@ -137,7 +150,7 @@ IDeckLinkGLScreenPreviewHelper*             CreateOpenGLScreenPreviewHelper (void)
 IDeckLinkVideoConversion* CreateVideoConversionInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateVideoConversionFunc == NULL)
                return NULL;
        return gCreateVideoConversionFunc();
@@ -146,7 +159,7 @@ IDeckLinkVideoConversion* CreateVideoConversionInstance (void)
 IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateDeckLinkDiscoveryFunc == NULL)
                return NULL;
        return gCreateDeckLinkDiscoveryFunc();
@@ -155,7 +168,7 @@ IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void)
 IDeckLinkVideoFrameAncillaryPackets* CreateVideoFrameAncillaryPacketsInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateVideoFrameAncillaryPacketsFunc == NULL)
                return NULL;
        return gCreateVideoFrameAncillaryPacketsFunc();
index 0280a85..b558267 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator                 = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35};
-BMD_CONST REFIID IID_IDeckLinkDisplayMode                         = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78};
+BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator                 = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ { 0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35 };
+BMD_CONST REFIID IID_IDeckLinkDisplayMode                         = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ { 0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78 };
 
-/* Enum BMDDisplayMode - Video display modes */
+/* Enum BMDDisplayMode - BMDDisplayMode enumerates the video modes supported. */
 
 typedef uint32_t BMDDisplayMode;
 enum _BMDDisplayMode {
@@ -194,17 +194,12 @@ enum _BMDDisplayMode {
     bmdMode2560x1600p50                                          = /* 'wqx5' */ 0x77717835,
     bmdMode2560x1600p60                                          = /* 'wqx6' */ 0x77717836,
 
-    /* RAW Modes for Cintel (input only) */
-
-    bmdModeCintelRAW                                             = /* 'rwci' */ 0x72776369,    // Frame size up to 4096x3072, variable frame rate
-    bmdModeCintelCompressedRAW                                   = /* 'rwcc' */ 0x72776363,    // Frame size up to 4096x3072, variable frame rate
-
     /* Special Modes */
 
     bmdModeUnknown                                               = /* 'iunk' */ 0x69756E6B
 };
 
-/* Enum BMDFieldDominance - Video field dominance */
+/* Enum BMDFieldDominance - BMDFieldDominance enumerates settings applicable to video fields. */
 
 typedef uint32_t BMDFieldDominance;
 enum _BMDFieldDominance {
@@ -233,12 +228,7 @@ enum _BMDPixelFormat {
 
     /* AVID DNxHR */
 
-    bmdFormatDNxHR                                               = /* 'AVdh' */ 0x41566468,
-
-    /* Cintel formats */
-
-    bmdFormat12BitRAWGRBG                                        = /* 'r12p' */ 0x72313270,    // 12-bit RAW data for bayer pattern GRBG
-    bmdFormat12BitRAWJPEG                                        = /* 'r16p' */ 0x72313670     // 12-bit RAW data arranged in tiles and JPEG compressed
+    bmdFormatDNxHR                                               = /* 'AVdh' */ 0x41566468
 };
 
 /* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */
@@ -251,32 +241,34 @@ enum _BMDDisplayModeFlags {
     bmdDisplayModeColorspaceRec2020                              = 1 << 3
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkDisplayModeIterator;
 class IDeckLinkDisplayMode;
 
-/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */
+/* Interface IDeckLinkDisplayModeIterator - Enumerates over supported input/output display modes. */
 
 class BMD_PUBLIC IDeckLinkDisplayModeIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
+    virtual HRESULT Next (/* out */ IDeckLinkDisplayMode** deckLinkDisplayMode) = 0;
 
 protected:
     virtual ~IDeckLinkDisplayModeIterator () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkDisplayMode - represents a display mode */
+/* Interface IDeckLinkDisplayMode - Represents a display mode */
 
 class BMD_PUBLIC IDeckLinkDisplayMode : public IUnknown
 {
 public:
-    virtual HRESULT GetName (/* out */ const char **name) = 0;
+    virtual HRESULT GetName (/* out */ const char** name) = 0;
     virtual BMDDisplayMode GetDisplayMode (void) = 0;
     virtual long GetWidth (void) = 0;
     virtual long GetHeight (void) = 0;
-    virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0;
+    virtual HRESULT GetFrameRate (/* out */ BMDTimeValue* frameDuration, /* out */ BMDTimeScale* timeScale) = 0;
     virtual BMDFieldDominance GetFieldDominance (void) = 0;
     virtual BMDDisplayModeFlags GetFlags (void) = 0;
 
@@ -292,4 +284,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPIMODES_H) */
index a4ef635..e29b0c2 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
@@ -50,7 +50,7 @@ typedef uint32_t BMDTimecodeUserBits;
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkTimecode                            = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ {0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40};
+BMD_CONST REFIID IID_IDeckLinkTimecode                            = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ { 0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40 };
 
 /* Enum BMDTimecodeFlags - Timecode flags */
 
@@ -60,7 +60,7 @@ enum _BMDTimecodeFlags {
     bmdTimecodeIsDropFrame                                       = 1 << 0,
     bmdTimecodeFieldMark                                         = 1 << 1,
     bmdTimecodeColorFrame                                        = 1 << 2,
-    bmdTimecodeEmbedRecordingTrigger                             = 1 << 3,     // On SDI recording trigger utilises a user-bit
+    bmdTimecodeEmbedRecordingTrigger                             = 1 << 3,     // On SDI recording trigger utilises a user-bit.
     bmdTimecodeRecordingTriggered                                = 1 << 4
 };
 
@@ -98,6 +98,8 @@ enum _BMDDeckControlConnection {
     bmdDeckControlConnectionRS422Remote2                         = 1 << 1
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkTimecode;
@@ -108,10 +110,10 @@ class BMD_PUBLIC IDeckLinkTimecode : public IUnknown
 {
 public:
     virtual BMDTimecodeBCD GetBCD (void) = 0;
-    virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0;
-    virtual HRESULT GetString (/* out */ const char **timecode) = 0;
+    virtual HRESULT GetComponents (/* out */ uint8_t* hours, /* out */ uint8_t* minutes, /* out */ uint8_t* seconds, /* out */ uint8_t* frames) = 0;
+    virtual HRESULT GetString (/* out */ const char** timecode) = 0;
     virtual BMDTimecodeFlags GetFlags (void) = 0;
-    virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBits *userBits) = 0;
+    virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBitsuserBits) = 0;
 
 protected:
     virtual ~IDeckLinkTimecode () {} // call Release method to drop reference count
@@ -125,4 +127,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPITYPES_H) */
index b032e93..7c9b791 100644 (file)
@@ -1,27 +1,40 @@
 /* -LICENSE-START-
  * ** Copyright (c) 2014 Blackmagic Design
- * **
- * ** Permission is hereby granted, free of charge, to any person or organization
- * ** obtaining a copy of the software and accompanying documentation covered by
- * ** this license (the "Software") to use, reproduce, display, distribute,
- * ** execute, and transmit the Software, and to prepare derivative works of the
- * ** Software, and to permit third-parties to whom the Software is furnished to
- * ** do so, all subject to the following:
+ * **  
+ * ** Permission is hereby granted, free of charge, to any person or organization 
+ * ** obtaining a copy of the software and accompanying documentation (the 
+ * ** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+ * ** and transmit the Software, and to prepare derivative works of the Software, 
+ * ** and to permit third-parties to whom the Software is furnished to do so, in 
+ * ** accordance with:
  * ** 
- * ** The copyright notices in the Software and this entire statement, including
- * ** the above license grant, this restriction and the following disclaimer,
- * ** must be included in all copies of the Software, in whole or in part, and
- * ** all derivative works of the Software, unless such copies or derivative
- * ** works are solely in the form of machine-executable object code generated by
- * ** a source language processor.
+ * ** (1) if the Software is obtained from Blackmagic Design, the End User License 
+ * ** Agreement for the Software Development Kit (“EULA”) available at 
+ * ** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
  * ** 
- * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
- * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
- * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
- * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * ** (2) if the Software is obtained from any third party, such licensing terms 
+ * ** as notified by that third party,
+ * ** 
+ * ** and all subject to the following:
+ * ** 
+ * ** (3) the copyright notices in the Software and this entire statement, 
+ * ** including the above license grant, this restriction and the following 
+ * ** disclaimer, must be included in all copies of the Software, in whole or in 
+ * ** part, and all derivative works of the Software, unless such copies or 
+ * ** derivative works are solely in the form of machine-executable object code 
+ * ** generated by a source language processor.
+ * ** 
+ * ** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ * ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+ * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+ * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+ * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  * ** DEALINGS IN THE SOFTWARE.
+ * ** 
+ * ** A copy of the Software is available free of charge at 
+ * ** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+ * ** 
  * ** -LICENSE-END-
  * */
 
@@ -30,8 +43,8 @@
 #ifndef __DeckLink_API_Version_h__
 #define __DeckLink_API_Version_h__
 
-#define BLACKMAGIC_DECKLINK_API_VERSION                                        0x0b020000
-#define BLACKMAGIC_DECKLINK_API_VERSION_STRING                 "11.2"
+#define BLACKMAGIC_DECKLINK_API_VERSION                                        0x0c020200
+#define BLACKMAGIC_DECKLINK_API_VERSION_STRING                 "12.2.2"
 
 #endif // __DeckLink_API_Version_h__
 
index 663602b..cad638c 100644 (file)
@@ -1,27 +1,40 @@
 /* -LICENSE-START-
 ** Copyright (c) 2009 Blackmagic Design
-**
-** Permission is hereby granted, free of charge, to any person or organization
-** obtaining a copy of the software and accompanying documentation covered by
-** this license (the "Software") to use, reproduce, display, distribute,
-** execute, and transmit the Software, and to prepare derivative works of the
-** Software, and to permit third-parties to whom the Software is furnished to
-** do so, all subject to the following:
+**  
+** Permission is hereby granted, free of charge, to any person or organization 
+** obtaining a copy of the software and accompanying documentation (the 
+** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+** and transmit the Software, and to prepare derivative works of the Software, 
+** and to permit third-parties to whom the Software is furnished to do so, in 
+** accordance with:
 ** 
-** The copyright notices in the Software and this entire statement, including
-** the above license grant, this restriction and the following disclaimer,
-** must be included in all copies of the Software, in whole or in part, and
-** all derivative works of the Software, unless such copies or derivative
-** works are solely in the form of machine-executable object code generated by
-** a source language processor.
+** (1) if the Software is obtained from Blackmagic Design, the End User License 
+** Agreement for the Software Development Kit (“EULA”) available at 
+** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
 ** 
-** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+** (2) if the Software is obtained from any third party, such licensing terms 
+** as notified by that third party,
+** 
+** and all subject to the following:
+** 
+** (3) the copyright notices in the Software and this entire statement, 
+** including the above license grant, this restriction and the following 
+** disclaimer, must be included in all copies of the Software, in whole or in 
+** part, and all derivative works of the Software, unless such copies or 
+** derivative works are solely in the form of machine-executable object code 
+** generated by a source language processor.
+** 
+** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 ** DEALINGS IN THE SOFTWARE.
+** 
+** A copy of the Software is available free of charge at 
+** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+** 
 ** -LICENSE-END-
 */
 
index 16a10fa..62af395 100644 (file)
@@ -1,29 +1,43 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
-**
-** Permission is hereby granted, free of charge, to any person or organization
-** obtaining a copy of the software and accompanying documentation covered by
-** this license (the "Software") to use, reproduce, display, distribute,
-** execute, and transmit the Software, and to prepare derivative works of the
-** Software, and to permit third-parties to whom the Software is furnished to
-** do so, all subject to the following:
-** 
-** The copyright notices in the Software and this entire statement, including
-** the above license grant, this restriction and the following disclaimer,
-** must be included in all copies of the Software, in whole or in part, and
-** all derivative works of the Software, unless such copies or derivative
-** works are solely in the form of machine-executable object code generated by
-** a source language processor.
-** 
-** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-** DEALINGS IN THE SOFTWARE.
-** -LICENSE-END-
-*/
+ ** Copyright (c) 2021 Blackmagic Design
+ **  
+ ** Permission is hereby granted, free of charge, to any person or organization 
+ ** obtaining a copy of the software and accompanying documentation (the 
+ ** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+ ** and transmit the Software, and to prepare derivative works of the Software, 
+ ** and to permit third-parties to whom the Software is furnished to do so, in 
+ ** accordance with:
+ ** 
+ ** (1) if the Software is obtained from Blackmagic Design, the End User License 
+ ** Agreement for the Software Development Kit ("EULA") available at 
+ ** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
+ ** 
+ ** (2) if the Software is obtained from any third party, such licensing terms 
+ ** as notified by that third party,
+ ** 
+ ** and all subject to the following:
+ ** 
+ ** (3) the copyright notices in the Software and this entire statement, 
+ ** including the above license grant, this restriction and the following 
+ ** disclaimer, must be included in all copies of the Software, in whole or in 
+ ** part, and all derivative works of the Software, unless such copies or 
+ ** derivative works are solely in the form of machine-executable object code 
+ ** generated by a source language processor.
+ ** 
+ ** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+ ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+ ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+ ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
+ ** DEALINGS IN THE SOFTWARE.
+ ** 
+ ** A copy of the Software is available free of charge at 
+ ** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+ ** 
+ ** -LICENSE-END-
+ */
+
 
 #ifndef BMD_DECKLINKAPI_H
 #define BMD_DECKLINKAPI_H
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback                 = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ {0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE};
-BMD_CONST REFIID IID_IDeckLinkInputCallback                       = /* DD04E5EC-7415-42AB-AE4A-E80C4DFC044A */ {0xDD,0x04,0xE5,0xEC,0x74,0x15,0x42,0xAB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A};
-BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback                = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ {0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31};
-BMD_CONST REFIID IID_IDeckLinkMemoryAllocator                     = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ {0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8};
-BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback                 = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ {0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6};
-BMD_CONST REFIID IID_IDeckLinkIterator                            = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ {0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA};
-BMD_CONST REFIID IID_IDeckLinkAPIInformation                      = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ {0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4};
-BMD_CONST REFIID IID_IDeckLinkOutput                              = /* 065A0F6C-C508-4D0D-B919-F5EB0EBFC96B */ {0x06,0x5A,0x0F,0x6C,0xC5,0x08,0x4D,0x0D,0xB9,0x19,0xF5,0xEB,0x0E,0xBF,0xC9,0x6B};
-BMD_CONST REFIID IID_IDeckLinkInput                               = /* 2A88CF76-F494-4216-A7EF-DC74EEB83882 */ {0x2A,0x88,0xCF,0x76,0xF4,0x94,0x42,0x16,0xA7,0xEF,0xDC,0x74,0xEE,0xB8,0x38,0x82};
-BMD_CONST REFIID IID_IDeckLinkHDMIInputEDID                       = /* ABBBACBC-45BC-4665-9D92-ACE6E5A97902 */ {0xAB,0xBB,0xAC,0xBC,0x45,0xBC,0x46,0x65,0x9D,0x92,0xAC,0xE6,0xE5,0xA9,0x79,0x02};
-BMD_CONST REFIID IID_IDeckLinkEncoderInput                        = /* F222551D-13DF-4FD8-B587-9D4F19EC12C9 */ {0xF2,0x22,0x55,0x1D,0x13,0xDF,0x4F,0xD8,0xB5,0x87,0x9D,0x4F,0x19,0xEC,0x12,0xC9};
-BMD_CONST REFIID IID_IDeckLinkVideoFrame                          = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ {0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17};
-BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame                   = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ {0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90};
-BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions              = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ {0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7};
-BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions        = /* D5973DC9-6432-46D0-8F0B-2496F8A1238F */ {0xD5,0x97,0x3D,0xC9,0x64,0x32,0x46,0xD0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F};
-BMD_CONST REFIID IID_IDeckLinkVideoInputFrame                     = /* 05CFE374-537C-4094-9A57-680525118F44 */ {0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44};
-BMD_CONST REFIID IID_IDeckLinkAncillaryPacket                     = /* CC5BBF7E-029C-4D3B-9158-6000EF5E3670 */ {0xCC,0x5B,0xBF,0x7E,0x02,0x9C,0x4D,0x3B,0x91,0x58,0x60,0x00,0xEF,0x5E,0x36,0x70};
-BMD_CONST REFIID IID_IDeckLinkAncillaryPacketIterator             = /* 3FC8994B-88FB-4C17-968F-9AAB69D964A7 */ {0x3F,0xC8,0x99,0x4B,0x88,0xFB,0x4C,0x17,0x96,0x8F,0x9A,0xAB,0x69,0xD9,0x64,0xA7};
-BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillaryPackets          = /* 6C186C0F-459E-41D8-AEE2-4812D81AEE68 */ {0x6C,0x18,0x6C,0x0F,0x45,0x9E,0x41,0xD8,0xAE,0xE2,0x48,0x12,0xD8,0x1A,0xEE,0x68};
-BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary                 = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ {0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04};
-BMD_CONST REFIID IID_IDeckLinkEncoderPacket                       = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ {0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20};
-BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket                  = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ {0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0};
-BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket                  = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ {0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A};
-BMD_CONST REFIID IID_IDeckLinkH265NALPacket                       = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ {0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7};
-BMD_CONST REFIID IID_IDeckLinkAudioInputPacket                    = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ {0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66};
-BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback               = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ {0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38};
-BMD_CONST REFIID IID_IDeckLinkCocoaScreenPreviewCallback          = /* D174152F-8F96-4C07-83A5-DD5F5AF0A2AA */ {0xD1,0x74,0x15,0x2F,0x8F,0x96,0x4C,0x07,0x83,0xA5,0xDD,0x5F,0x5A,0xF0,0xA2,0xAA};
-BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper               = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ {0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F};
-BMD_CONST REFIID IID_IDeckLinkNotificationCallback                = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ {0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D};
-BMD_CONST REFIID IID_IDeckLinkNotification                        = /* B85DF4C8-BDF5-47C1-8064-28162EBDD4EB */ {0xB8,0x5D,0xF4,0xC8,0xBD,0xF5,0x47,0xC1,0x80,0x64,0x28,0x16,0x2E,0xBD,0xD4,0xEB};
-BMD_CONST REFIID IID_IDeckLinkProfileAttributes                   = /* 17D4BF8E-4911-473A-80A0-731CF6FF345B */ {0x17,0xD4,0xBF,0x8E,0x49,0x11,0x47,0x3A,0x80,0xA0,0x73,0x1C,0xF6,0xFF,0x34,0x5B};
-BMD_CONST REFIID IID_IDeckLinkProfileIterator                     = /* 29E5A8C0-8BE4-46EB-93AC-31DAAB5B7BF2 */ {0x29,0xE5,0xA8,0xC0,0x8B,0xE4,0x46,0xEB,0x93,0xAC,0x31,0xDA,0xAB,0x5B,0x7B,0xF2};
-BMD_CONST REFIID IID_IDeckLinkProfile                             = /* 16093466-674A-432B-9DA0-1AC2C5A8241C */ {0x16,0x09,0x34,0x66,0x67,0x4A,0x43,0x2B,0x9D,0xA0,0x1A,0xC2,0xC5,0xA8,0x24,0x1C};
-BMD_CONST REFIID IID_IDeckLinkProfileCallback                     = /* A4F9341E-97AA-4E04-8935-15F809898CEA */ {0xA4,0xF9,0x34,0x1E,0x97,0xAA,0x4E,0x04,0x89,0x35,0x15,0xF8,0x09,0x89,0x8C,0xEA};
-BMD_CONST REFIID IID_IDeckLinkProfileManager                      = /* 30D41429-3998-4B6D-84F8-78C94A797C6E */ {0x30,0xD4,0x14,0x29,0x39,0x98,0x4B,0x6D,0x84,0xF8,0x78,0xC9,0x4A,0x79,0x7C,0x6E};
-BMD_CONST REFIID IID_IDeckLinkStatus                              = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ {0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46};
-BMD_CONST REFIID IID_IDeckLinkKeyer                               = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ {0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3};
-BMD_CONST REFIID IID_IDeckLinkVideoConversion                     = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ {0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A};
-BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback          = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ {0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F};
-BMD_CONST REFIID IID_IDeckLinkDiscovery                           = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ {0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01};
+BMD_CONST REFIID IID_IDeckLinkVideoOutputCallback                 = /* 20AA5225-1958-47CB-820B-80A8D521A6EE */ { 0x20,0xAA,0x52,0x25,0x19,0x58,0x47,0xCB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE };
+BMD_CONST REFIID IID_IDeckLinkInputCallback                       = /* C6FCE4C9-C4E4-4047-82FB-5D238232A902 */ { 0xC6,0xFC,0xE4,0xC9,0xC4,0xE4,0x40,0x47,0x82,0xFB,0x5D,0x23,0x82,0x32,0xA9,0x02 };
+BMD_CONST REFIID IID_IDeckLinkEncoderInputCallback                = /* ACF13E61-F4A0-4974-A6A7-59AFF6268B31 */ { 0xAC,0xF1,0x3E,0x61,0xF4,0xA0,0x49,0x74,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31 };
+BMD_CONST REFIID IID_IDeckLinkMemoryAllocator                     = /* B36EB6E7-9D29-4AA8-92EF-843B87A289E8 */ { 0xB3,0x6E,0xB6,0xE7,0x9D,0x29,0x4A,0xA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8 };
+BMD_CONST REFIID IID_IDeckLinkAudioOutputCallback                 = /* 403C681B-7F46-4A12-B993-2BB127084EE6 */ { 0x40,0x3C,0x68,0x1B,0x7F,0x46,0x4A,0x12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6 };
+BMD_CONST REFIID IID_IDeckLinkIterator                            = /* 50FB36CD-3063-4B73-BDBB-958087F2D8BA */ { 0x50,0xFB,0x36,0xCD,0x30,0x63,0x4B,0x73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA };
+BMD_CONST REFIID IID_IDeckLinkAPIInformation                      = /* 7BEA3C68-730D-4322-AF34-8A7152B532A4 */ { 0x7B,0xEA,0x3C,0x68,0x73,0x0D,0x43,0x22,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4 };
+BMD_CONST REFIID IID_IDeckLinkOutput                              = /* BE2D9020-461E-442F-84B7-E949CB953B9D */ { 0xBE,0x2D,0x90,0x20,0x46,0x1E,0x44,0x2F,0x84,0xB7,0xE9,0x49,0xCB,0x95,0x3B,0x9D };
+BMD_CONST REFIID IID_IDeckLinkInput                               = /* C21CDB6E-F414-46E4-A636-80A566E0ED37 */ { 0xC2,0x1C,0xDB,0x6E,0xF4,0x14,0x46,0xE4,0xA6,0x36,0x80,0xA5,0x66,0xE0,0xED,0x37 };
+BMD_CONST REFIID IID_IDeckLinkHDMIInputEDID                       = /* ABBBACBC-45BC-4665-9D92-ACE6E5A97902 */ { 0xAB,0xBB,0xAC,0xBC,0x45,0xBC,0x46,0x65,0x9D,0x92,0xAC,0xE6,0xE5,0xA9,0x79,0x02 };
+BMD_CONST REFIID IID_IDeckLinkEncoderInput                        = /* F222551D-13DF-4FD8-B587-9D4F19EC12C9 */ { 0xF2,0x22,0x55,0x1D,0x13,0xDF,0x4F,0xD8,0xB5,0x87,0x9D,0x4F,0x19,0xEC,0x12,0xC9 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrame                          = /* 3F716FE0-F023-4111-BE5D-EF4414C05B17 */ { 0x3F,0x71,0x6F,0xE0,0xF0,0x23,0x41,0x11,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17 };
+BMD_CONST REFIID IID_IDeckLinkMutableVideoFrame                   = /* 69E2639F-40DA-4E19-B6F2-20ACE815C390 */ { 0x69,0xE2,0x63,0x9F,0x40,0xDA,0x4E,0x19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrame3DExtensions              = /* DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7 */ { 0xDA,0x0F,0x7E,0x4A,0xED,0xC7,0x48,0xA8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrameMetadataExtensions        = /* E232A5B7-4DB4-44C9-9152-F47C12E5F051 */ { 0xE2,0x32,0xA5,0xB7,0x4D,0xB4,0x44,0xC9,0x91,0x52,0xF4,0x7C,0x12,0xE5,0xF0,0x51 };
+BMD_CONST REFIID IID_IDeckLinkVideoInputFrame                     = /* 05CFE374-537C-4094-9A57-680525118F44 */ { 0x05,0xCF,0xE3,0x74,0x53,0x7C,0x40,0x94,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44 };
+BMD_CONST REFIID IID_IDeckLinkAncillaryPacket                     = /* CC5BBF7E-029C-4D3B-9158-6000EF5E3670 */ { 0xCC,0x5B,0xBF,0x7E,0x02,0x9C,0x4D,0x3B,0x91,0x58,0x60,0x00,0xEF,0x5E,0x36,0x70 };
+BMD_CONST REFIID IID_IDeckLinkAncillaryPacketIterator             = /* 3FC8994B-88FB-4C17-968F-9AAB69D964A7 */ { 0x3F,0xC8,0x99,0x4B,0x88,0xFB,0x4C,0x17,0x96,0x8F,0x9A,0xAB,0x69,0xD9,0x64,0xA7 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillaryPackets          = /* 6C186C0F-459E-41D8-AEE2-4812D81AEE68 */ { 0x6C,0x18,0x6C,0x0F,0x45,0x9E,0x41,0xD8,0xAE,0xE2,0x48,0x12,0xD8,0x1A,0xEE,0x68 };
+BMD_CONST REFIID IID_IDeckLinkVideoFrameAncillary                 = /* 732E723C-D1A4-4E29-9E8E-4A88797A0004 */ { 0x73,0x2E,0x72,0x3C,0xD1,0xA4,0x4E,0x29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04 };
+BMD_CONST REFIID IID_IDeckLinkEncoderPacket                       = /* B693F36C-316E-4AF1-B6C2-F389A4BCA620 */ { 0xB6,0x93,0xF3,0x6C,0x31,0x6E,0x4A,0xF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20 };
+BMD_CONST REFIID IID_IDeckLinkEncoderVideoPacket                  = /* 4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0 */ { 0x4E,0x7F,0xD9,0x44,0xE8,0xC7,0x4E,0xAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0 };
+BMD_CONST REFIID IID_IDeckLinkEncoderAudioPacket                  = /* 49E8EDC8-693B-4E14-8EF6-12C658F5A07A */ { 0x49,0xE8,0xED,0xC8,0x69,0x3B,0x4E,0x14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A };
+BMD_CONST REFIID IID_IDeckLinkH265NALPacket                       = /* 639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7 */ { 0x63,0x9C,0x8E,0x0B,0x68,0xD5,0x4B,0xDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7 };
+BMD_CONST REFIID IID_IDeckLinkAudioInputPacket                    = /* E43D5870-2894-11DE-8C30-0800200C9A66 */ { 0xE4,0x3D,0x58,0x70,0x28,0x94,0x11,0xDE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66 };
+BMD_CONST REFIID IID_IDeckLinkScreenPreviewCallback               = /* B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438 */ { 0xB1,0xD3,0xF4,0x9A,0x85,0xFE,0x4C,0x5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38 };
+BMD_CONST REFIID IID_IDeckLinkCocoaScreenPreviewCallback          = /* D174152F-8F96-4C07-83A5-DD5F5AF0A2AA */ { 0xD1,0x74,0x15,0x2F,0x8F,0x96,0x4C,0x07,0x83,0xA5,0xDD,0x5F,0x5A,0xF0,0xA2,0xAA };
+BMD_CONST REFIID IID_IDeckLinkGLScreenPreviewHelper               = /* 504E2209-CAC7-4C1A-9FB4-C5BB6274D22F */ { 0x50,0x4E,0x22,0x09,0xCA,0xC7,0x4C,0x1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F };
+BMD_CONST REFIID IID_IDeckLinkNotificationCallback                = /* B002A1EC-070D-4288-8289-BD5D36E5FF0D */ { 0xB0,0x02,0xA1,0xEC,0x07,0x0D,0x42,0x88,0x82,0x89,0xBD,0x5D,0x36,0xE5,0xFF,0x0D };
+BMD_CONST REFIID IID_IDeckLinkNotification                        = /* B85DF4C8-BDF5-47C1-8064-28162EBDD4EB */ { 0xB8,0x5D,0xF4,0xC8,0xBD,0xF5,0x47,0xC1,0x80,0x64,0x28,0x16,0x2E,0xBD,0xD4,0xEB };
+BMD_CONST REFIID IID_IDeckLinkProfileAttributes                   = /* 17D4BF8E-4911-473A-80A0-731CF6FF345B */ { 0x17,0xD4,0xBF,0x8E,0x49,0x11,0x47,0x3A,0x80,0xA0,0x73,0x1C,0xF6,0xFF,0x34,0x5B };
+BMD_CONST REFIID IID_IDeckLinkProfileIterator                     = /* 29E5A8C0-8BE4-46EB-93AC-31DAAB5B7BF2 */ { 0x29,0xE5,0xA8,0xC0,0x8B,0xE4,0x46,0xEB,0x93,0xAC,0x31,0xDA,0xAB,0x5B,0x7B,0xF2 };
+BMD_CONST REFIID IID_IDeckLinkProfile                             = /* 16093466-674A-432B-9DA0-1AC2C5A8241C */ { 0x16,0x09,0x34,0x66,0x67,0x4A,0x43,0x2B,0x9D,0xA0,0x1A,0xC2,0xC5,0xA8,0x24,0x1C };
+BMD_CONST REFIID IID_IDeckLinkProfileCallback                     = /* A4F9341E-97AA-4E04-8935-15F809898CEA */ { 0xA4,0xF9,0x34,0x1E,0x97,0xAA,0x4E,0x04,0x89,0x35,0x15,0xF8,0x09,0x89,0x8C,0xEA };
+BMD_CONST REFIID IID_IDeckLinkProfileManager                      = /* 30D41429-3998-4B6D-84F8-78C94A797C6E */ { 0x30,0xD4,0x14,0x29,0x39,0x98,0x4B,0x6D,0x84,0xF8,0x78,0xC9,0x4A,0x79,0x7C,0x6E };
+BMD_CONST REFIID IID_IDeckLinkStatus                              = /* 5F558200-4028-49BC-BEAC-DB3FA4A96E46 */ { 0x5F,0x55,0x82,0x00,0x40,0x28,0x49,0xBC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46 };
+BMD_CONST REFIID IID_IDeckLinkKeyer                               = /* 89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3 */ { 0x89,0xAF,0xCA,0xF5,0x65,0xF8,0x42,0x1E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3 };
+BMD_CONST REFIID IID_IDeckLinkVideoConversion                     = /* 3BBCB8A2-DA2C-42D9-B5D8-88083644E99A */ { 0x3B,0xBC,0xB8,0xA2,0xDA,0x2C,0x42,0xD9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A };
+BMD_CONST REFIID IID_IDeckLinkDeviceNotificationCallback          = /* 4997053B-0ADF-4CC8-AC70-7A50C4BE728F */ { 0x49,0x97,0x05,0x3B,0x0A,0xDF,0x4C,0xC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F };
+BMD_CONST REFIID IID_IDeckLinkDiscovery                           = /* CDBF631C-BC76-45FA-B44D-C55059BC6101 */ { 0xCD,0xBF,0x63,0x1C,0xBC,0x76,0x45,0xFA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01 };
 
 /* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */
 
@@ -115,7 +129,7 @@ enum _BMDVideoOutputFlags {
     bmdVideoOutputSynchronizeToPlaybackGroup                     = 1 << 6
 };
 
-/* Enum BMDSupportedVideoModeFlags - Flags to describe supported video mode */
+/* Enum BMDSupportedVideoModeFlags - Flags to describe supported video modes */
 
 typedef uint32_t BMDSupportedVideoModeFlags;
 enum _BMDSupportedVideoModeFlags {
@@ -132,8 +146,8 @@ enum _BMDSupportedVideoModeFlags {
 
 typedef uint32_t BMDPacketType;
 enum _BMDPacketType {
-    bmdPacketTypeStreamInterruptedMarker                         = 'sint',     // A packet of this type marks the time when a video stream was interrupted, for example by a disconnected cable
-    bmdPacketTypeStreamData                                      = 'sdat'      // Regular stream data
+    bmdPacketTypeStreamInterruptedMarker                         = /* 'sint' */ 0x73696E74,    // A packet of this type marks the time when a video stream was interrupted, for example by a disconnected cable
+    bmdPacketTypeStreamData                                      = /* 'sdat' */ 0x73646174     // Regular stream data
 };
 
 /* Enum BMDFrameFlags - Frame flags */
@@ -143,7 +157,6 @@ enum _BMDFrameFlags {
     bmdFrameFlagDefault                                          = 0,
     bmdFrameFlagFlipVertical                                     = 1 << 0,
     bmdFrameContainsHDRMetadata                                  = 1 << 1,
-    bmdFrameContainsCintelMetadata                               = 1 << 2,
 
     /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */
 
@@ -176,32 +189,36 @@ typedef uint32_t BMDDetectedVideoInputFormatFlags;
 enum _BMDDetectedVideoInputFormatFlags {
     bmdDetectedVideoInputYCbCr422                                = 1 << 0,
     bmdDetectedVideoInputRGB444                                  = 1 << 1,
-    bmdDetectedVideoInputDualStream3D                            = 1 << 2
+    bmdDetectedVideoInputDualStream3D                            = 1 << 2,
+    bmdDetectedVideoInput12BitDepth                              = 1 << 3,
+    bmdDetectedVideoInput10BitDepth                              = 1 << 4,
+    bmdDetectedVideoInput8BitDepth                               = 1 << 5
 };
 
 /* Enum BMDDeckLinkCapturePassthroughMode - Enumerates whether the video output is electrically connected to the video input or if the clean switching mode is enabled */
 
 typedef uint32_t BMDDeckLinkCapturePassthroughMode;
 enum _BMDDeckLinkCapturePassthroughMode {
-    bmdDeckLinkCapturePassthroughModeDisabled                    = 'pdis',
-    bmdDeckLinkCapturePassthroughModeDirect                      = 'pdir',
-    bmdDeckLinkCapturePassthroughModeCleanSwitch                 = 'pcln'
+    bmdDeckLinkCapturePassthroughModeDisabled                    = /* 'pdis' */ 0x70646973,
+    bmdDeckLinkCapturePassthroughModeDirect                      = /* 'pdir' */ 0x70646972,
+    bmdDeckLinkCapturePassthroughModeCleanSwitch                 = /* 'pcln' */ 0x70636C6E
 };
 
 /* Enum BMDOutputFrameCompletionResult - Frame Completion Callback */
 
 typedef uint32_t BMDOutputFrameCompletionResult;
 enum _BMDOutputFrameCompletionResult {
-    bmdOutputFrameCompleted,                                    
-    bmdOutputFrameDisplayedLate,                                
-    bmdOutputFrameDropped,                                      
-    bmdOutputFrameFlushed                                       
+    bmdOutputFrameCompleted,
+    bmdOutputFrameDisplayedLate,
+    bmdOutputFrameDropped,
+    bmdOutputFrameFlushed
 };
 
 /* Enum BMDReferenceStatus - GenLock input status */
 
 typedef uint32_t BMDReferenceStatus;
 enum _BMDReferenceStatus {
+    bmdReferenceUnlocked                                         = 0,
     bmdReferenceNotSupportedByHardware                           = 1 << 0,
     bmdReferenceLocked                                           = 1 << 1
 };
@@ -210,7 +227,7 @@ enum _BMDReferenceStatus {
 
 typedef uint32_t BMDAudioFormat;
 enum _BMDAudioFormat {
-    bmdAudioFormatPCM                                            = 'lpcm'      // Linear signed PCM samples
+    bmdAudioFormatPCM                                            = /* 'lpcm' */ 0x6C70636D     // Linear signed PCM samples
 };
 
 /* Enum BMDAudioSampleRate - Audio sample rates supported for output/input */
@@ -232,32 +249,32 @@ enum _BMDAudioSampleType {
 
 typedef uint32_t BMDAudioOutputStreamType;
 enum _BMDAudioOutputStreamType {
-    bmdAudioOutputStreamContinuous,                             
-    bmdAudioOutputStreamContinuousDontResample,                 
-    bmdAudioOutputStreamTimestamped                             
+    bmdAudioOutputStreamContinuous,
+    bmdAudioOutputStreamContinuousDontResample,
+    bmdAudioOutputStreamTimestamped
 };
 
 /* Enum BMDAncillaryPacketFormat - Ancillary packet format */
 
 typedef uint32_t BMDAncillaryPacketFormat;
 enum _BMDAncillaryPacketFormat {
-    bmdAncillaryPacketFormatUInt8                                = 'ui08',
-    bmdAncillaryPacketFormatUInt16                               = 'ui16',
-    bmdAncillaryPacketFormatYCbCr10                              = 'v210'
+    bmdAncillaryPacketFormatUInt8                                = /* 'ui08' */ 0x75693038,
+    bmdAncillaryPacketFormatUInt16                               = /* 'ui16' */ 0x75693136,
+    bmdAncillaryPacketFormatYCbCr10                              = /* 'v210' */ 0x76323130
 };
 
 /* Enum BMDTimecodeFormat - Timecode formats for frame metadata */
 
 typedef uint32_t BMDTimecodeFormat;
 enum _BMDTimecodeFormat {
-    bmdTimecodeRP188VITC1                                        = 'rpv1',     // RP188 timecode where DBB1 equals VITC1 (line 9)
-    bmdTimecodeRP188VITC2                                        = 'rp12',     // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF)
-    bmdTimecodeRP188LTC                                          = 'rplt',     // RP188 timecode where DBB1 equals LTC (line 10)
-    bmdTimecodeRP188HighFrameRate                                = 'rphr',     // RP188 timecode where DBB1 is an HFRTC (SMPTE ST 12-3), the only timecode allowing the frame value to go above 30
-    bmdTimecodeRP188Any                                          = 'rp18',     // Convenience for capture, returning the first valid timecode in {HFRTC (if supported), VITC1, LTC, VITC2}
-    bmdTimecodeVITC                                              = 'vitc',
-    bmdTimecodeVITCField2                                        = 'vit2',
-    bmdTimecodeSerial                                            = 'seri'
+    bmdTimecodeRP188VITC1                                        = /* 'rpv1' */ 0x72707631,    // RP188 timecode where DBB1 equals VITC1 (line 9)
+    bmdTimecodeRP188VITC2                                        = /* 'rp12' */ 0x72703132,    // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF)
+    bmdTimecodeRP188LTC                                          = /* 'rplt' */ 0x72706C74,    // RP188 timecode where DBB1 equals LTC (line 10)
+    bmdTimecodeRP188HighFrameRate                                = /* 'rphr' */ 0x72706872,    // RP188 timecode where DBB1 is an HFRTC (SMPTE ST 12-3), the only timecode allowing the frame value to go above 30
+    bmdTimecodeRP188Any                                          = /* 'rp18' */ 0x72703138,    // Convenience for capture, returning the first valid timecode in {HFRTC (if supported), VITC1, LTC, VITC2}
+    bmdTimecodeVITC                                              = /* 'vitc' */ 0x76697463,
+    bmdTimecodeVITCField2                                        = /* 'vit2' */ 0x76697432,
+    bmdTimecodeSerial                                            = /* 'seri' */ 0x73657269
 };
 
 /* Enum BMDAnalogVideoFlags - Analog video display flags */
@@ -272,194 +289,166 @@ enum _BMDAnalogVideoFlags {
 
 typedef uint32_t BMDAudioOutputAnalogAESSwitch;
 enum _BMDAudioOutputAnalogAESSwitch {
-    bmdAudioOutputSwitchAESEBU                                   = 'aes ',
-    bmdAudioOutputSwitchAnalog                                   = 'anlg'
+    bmdAudioOutputSwitchAESEBU                                   = /* 'aes ' */ 0x61657320,
+    bmdAudioOutputSwitchAnalog                                   = /* 'anlg' */ 0x616E6C67
 };
 
 /* Enum BMDVideoOutputConversionMode - Video/audio conversion mode */
 
 typedef uint32_t BMDVideoOutputConversionMode;
 enum _BMDVideoOutputConversionMode {
-    bmdNoVideoOutputConversion                                   = 'none',
-    bmdVideoOutputLetterboxDownconversion                        = 'ltbx',
-    bmdVideoOutputAnamorphicDownconversion                       = 'amph',
-    bmdVideoOutputHD720toHD1080Conversion                        = '720c',
-    bmdVideoOutputHardwareLetterboxDownconversion                = 'HWlb',
-    bmdVideoOutputHardwareAnamorphicDownconversion               = 'HWam',
-    bmdVideoOutputHardwareCenterCutDownconversion                = 'HWcc',
-    bmdVideoOutputHardware720p1080pCrossconversion               = 'xcap',
-    bmdVideoOutputHardwareAnamorphic720pUpconversion             = 'ua7p',
-    bmdVideoOutputHardwareAnamorphic1080iUpconversion            = 'ua1i',
-    bmdVideoOutputHardwareAnamorphic149To720pUpconversion        = 'u47p',
-    bmdVideoOutputHardwareAnamorphic149To1080iUpconversion       = 'u41i',
-    bmdVideoOutputHardwarePillarbox720pUpconversion              = 'up7p',
-    bmdVideoOutputHardwarePillarbox1080iUpconversion             = 'up1i'
+    bmdNoVideoOutputConversion                                   = /* 'none' */ 0x6E6F6E65,
+    bmdVideoOutputLetterboxDownconversion                        = /* 'ltbx' */ 0x6C746278,
+    bmdVideoOutputAnamorphicDownconversion                       = /* 'amph' */ 0x616D7068,
+    bmdVideoOutputHD720toHD1080Conversion                        = /* '720c' */ 0x37323063,
+    bmdVideoOutputHardwareLetterboxDownconversion                = /* 'HWlb' */ 0x48576C62,
+    bmdVideoOutputHardwareAnamorphicDownconversion               = /* 'HWam' */ 0x4857616D,
+    bmdVideoOutputHardwareCenterCutDownconversion                = /* 'HWcc' */ 0x48576363,
+    bmdVideoOutputHardware720p1080pCrossconversion               = /* 'xcap' */ 0x78636170,
+    bmdVideoOutputHardwareAnamorphic720pUpconversion             = /* 'ua7p' */ 0x75613770,
+    bmdVideoOutputHardwareAnamorphic1080iUpconversion            = /* 'ua1i' */ 0x75613169,
+    bmdVideoOutputHardwareAnamorphic149To720pUpconversion        = /* 'u47p' */ 0x75343770,
+    bmdVideoOutputHardwareAnamorphic149To1080iUpconversion       = /* 'u41i' */ 0x75343169,
+    bmdVideoOutputHardwarePillarbox720pUpconversion              = /* 'up7p' */ 0x75703770,
+    bmdVideoOutputHardwarePillarbox1080iUpconversion             = /* 'up1i' */ 0x75703169
 };
 
 /* Enum BMDVideoInputConversionMode - Video input conversion mode */
 
 typedef uint32_t BMDVideoInputConversionMode;
 enum _BMDVideoInputConversionMode {
-    bmdNoVideoInputConversion                                    = 'none',
-    bmdVideoInputLetterboxDownconversionFromHD1080               = '10lb',
-    bmdVideoInputAnamorphicDownconversionFromHD1080              = '10am',
-    bmdVideoInputLetterboxDownconversionFromHD720                = '72lb',
-    bmdVideoInputAnamorphicDownconversionFromHD720               = '72am',
-    bmdVideoInputLetterboxUpconversion                           = 'lbup',
-    bmdVideoInputAnamorphicUpconversion                          = 'amup'
+    bmdNoVideoInputConversion                                    = /* 'none' */ 0x6E6F6E65,
+    bmdVideoInputLetterboxDownconversionFromHD1080               = /* '10lb' */ 0x31306C62,
+    bmdVideoInputAnamorphicDownconversionFromHD1080              = /* '10am' */ 0x3130616D,
+    bmdVideoInputLetterboxDownconversionFromHD720                = /* '72lb' */ 0x37326C62,
+    bmdVideoInputAnamorphicDownconversionFromHD720               = /* '72am' */ 0x3732616D,
+    bmdVideoInputLetterboxUpconversion                           = /* 'lbup' */ 0x6C627570,
+    bmdVideoInputAnamorphicUpconversion                          = /* 'amup' */ 0x616D7570
 };
 
 /* Enum BMDVideo3DPackingFormat - Video 3D packing format */
 
 typedef uint32_t BMDVideo3DPackingFormat;
 enum _BMDVideo3DPackingFormat {
-    bmdVideo3DPackingSidebySideHalf                              = 'sbsh',
-    bmdVideo3DPackingLinebyLine                                  = 'lbyl',
-    bmdVideo3DPackingTopAndBottom                                = 'tabo',
-    bmdVideo3DPackingFramePacking                                = 'frpk',
-    bmdVideo3DPackingLeftOnly                                    = 'left',
-    bmdVideo3DPackingRightOnly                                   = 'righ'
+    bmdVideo3DPackingSidebySideHalf                              = /* 'sbsh' */ 0x73627368,
+    bmdVideo3DPackingLinebyLine                                  = /* 'lbyl' */ 0x6C62796C,
+    bmdVideo3DPackingTopAndBottom                                = /* 'tabo' */ 0x7461626F,
+    bmdVideo3DPackingFramePacking                                = /* 'frpk' */ 0x6672706B,
+    bmdVideo3DPackingLeftOnly                                    = /* 'left' */ 0x6C656674,
+    bmdVideo3DPackingRightOnly                                   = /* 'righ' */ 0x72696768
 };
 
 /* Enum BMDIdleVideoOutputOperation - Video output operation when not playing video */
 
 typedef uint32_t BMDIdleVideoOutputOperation;
 enum _BMDIdleVideoOutputOperation {
-    bmdIdleVideoOutputBlack                                      = 'blac',
-    bmdIdleVideoOutputLastFrame                                  = 'lafa'
+    bmdIdleVideoOutputBlack                                      = /* 'blac' */ 0x626C6163,
+    bmdIdleVideoOutputLastFrame                                  = /* 'lafa' */ 0x6C616661
 };
 
 /* Enum BMDVideoEncoderFrameCodingMode - Video frame coding mode */
 
 typedef uint32_t BMDVideoEncoderFrameCodingMode;
 enum _BMDVideoEncoderFrameCodingMode {
-    bmdVideoEncoderFrameCodingModeInter                          = 'inte',
-    bmdVideoEncoderFrameCodingModeIntra                          = 'intr'
+    bmdVideoEncoderFrameCodingModeInter                          = /* 'inte' */ 0x696E7465,
+    bmdVideoEncoderFrameCodingModeIntra                          = /* 'intr' */ 0x696E7472
 };
 
 /* Enum BMDDNxHRLevel - DNxHR Levels */
 
 typedef uint32_t BMDDNxHRLevel;
 enum _BMDDNxHRLevel {
-    bmdDNxHRLevelSQ                                              = 'dnsq',
-    bmdDNxHRLevelLB                                              = 'dnlb',
-    bmdDNxHRLevelHQ                                              = 'dnhq',
-    bmdDNxHRLevelHQX                                             = 'dhqx',
-    bmdDNxHRLevel444                                             = 'd444'
+    bmdDNxHRLevelSQ                                              = /* 'dnsq' */ 0x646E7371,
+    bmdDNxHRLevelLB                                              = /* 'dnlb' */ 0x646E6C62,
+    bmdDNxHRLevelHQ                                              = /* 'dnhq' */ 0x646E6871,
+    bmdDNxHRLevelHQX                                             = /* 'dhqx' */ 0x64687178,
+    bmdDNxHRLevel444                                             = /* 'd444' */ 0x64343434
 };
 
 /* Enum BMDLinkConfiguration - Video link configuration */
 
 typedef uint32_t BMDLinkConfiguration;
 enum _BMDLinkConfiguration {
-    bmdLinkConfigurationSingleLink                               = 'lcsl',
-    bmdLinkConfigurationDualLink                                 = 'lcdl',
-    bmdLinkConfigurationQuadLink                                 = 'lcql'
+    bmdLinkConfigurationSingleLink                               = /* 'lcsl' */ 0x6C63736C,
+    bmdLinkConfigurationDualLink                                 = /* 'lcdl' */ 0x6C63646C,
+    bmdLinkConfigurationQuadLink                                 = /* 'lcql' */ 0x6C63716C
 };
 
 /* Enum BMDDeviceInterface - Device interface type */
 
 typedef uint32_t BMDDeviceInterface;
 enum _BMDDeviceInterface {
-    bmdDeviceInterfacePCI                                        = 'pci ',
-    bmdDeviceInterfaceUSB                                        = 'usb ',
-    bmdDeviceInterfaceThunderbolt                                = 'thun'
+    bmdDeviceInterfacePCI                                        = /* 'pci ' */ 0x70636920,
+    bmdDeviceInterfaceUSB                                        = /* 'usb ' */ 0x75736220,
+    bmdDeviceInterfaceThunderbolt                                = /* 'thun' */ 0x7468756E
 };
 
 /* Enum BMDColorspace - Colorspace */
 
 typedef uint32_t BMDColorspace;
 enum _BMDColorspace {
-    bmdColorspaceRec601                                          = 'r601',
-    bmdColorspaceRec709                                          = 'r709',
-    bmdColorspaceRec2020                                         = '2020'
+    bmdColorspaceRec601                                          = /* 'r601' */ 0x72363031,
+    bmdColorspaceRec709                                          = /* 'r709' */ 0x72373039,
+    bmdColorspaceRec2020                                         = /* '2020' */ 0x32303230
 };
 
 /* Enum BMDDynamicRange - SDR or HDR */
 
 typedef uint32_t BMDDynamicRange;
 enum _BMDDynamicRange {
-    bmdDynamicRangeSDR                                           = 0,
-    bmdDynamicRangeHDRStaticPQ                                   = 1 << 29,    // SMPTE ST 2084
-    bmdDynamicRangeHDRStaticHLG                                  = 1 << 30     // ITU-R BT.2100-0
+    bmdDynamicRangeSDR                                           = 0,  // Standard Dynamic Range in accordance with SMPTE ST 2036-1
+    bmdDynamicRangeHDRStaticPQ                                   = 1 << 29,    // High Dynamic Range PQ in accordance with SMPTE ST 2084
+    bmdDynamicRangeHDRStaticHLG                                  = 1 << 30     // High Dynamic Range HLG in accordance with ITU-R BT.2100-0
 };
 
 /* Enum BMDDeckLinkHDMIInputEDIDID - DeckLink HDMI Input EDID ID */
 
 typedef uint32_t BMDDeckLinkHDMIInputEDIDID;
 enum _BMDDeckLinkHDMIInputEDIDID {
-    bmdDeckLinkHDMIInputEDIDDynamicRange                         = 'HIDy'      // Parameter is of type BMDDynamicRange. Default is (bmdDynamicRangeSDR|bmdDynamicRangeHDRStaticPQ)
+
+    /* Integers */
+
+    bmdDeckLinkHDMIInputEDIDDynamicRange                         = /* 'HIDy' */ 0x48494479     // Parameter is of type BMDDynamicRange. Default is (bmdDynamicRangeSDR|bmdDynamicRangeHDRStaticPQ)
 };
 
 /* Enum BMDDeckLinkFrameMetadataID - DeckLink Frame Metadata ID */
 
 typedef uint32_t BMDDeckLinkFrameMetadataID;
 enum _BMDDeckLinkFrameMetadataID {
-    bmdDeckLinkFrameMetadataColorspace                           = 'cspc',     // Colorspace of video frame (see BMDColorspace)
-    bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc        = 'eotf',     // EOTF in range 0-7 as per CEA 861.3
-    bmdDeckLinkFrameMetadataCintelFilmType                       = 'cfty',     // Current film type
-    bmdDeckLinkFrameMetadataCintelFilmGauge                      = 'cfga',     // Current film gauge
-    bmdDeckLinkFrameMetadataCintelKeykodeLow                     = 'ckkl',     // Raw keykode value - low 64 bits
-    bmdDeckLinkFrameMetadataCintelKeykodeHigh                    = 'ckkh',     // Raw keykode value - high 64 bits
-    bmdDeckLinkFrameMetadataCintelTile1Size                      = 'ct1s',     // Size in bytes of compressed raw tile 1
-    bmdDeckLinkFrameMetadataCintelTile2Size                      = 'ct2s',     // Size in bytes of compressed raw tile 2
-    bmdDeckLinkFrameMetadataCintelTile3Size                      = 'ct3s',     // Size in bytes of compressed raw tile 3
-    bmdDeckLinkFrameMetadataCintelTile4Size                      = 'ct4s',     // Size in bytes of compressed raw tile 4
-    bmdDeckLinkFrameMetadataCintelImageWidth                     = 'IWPx',     // Width in pixels of image
-    bmdDeckLinkFrameMetadataCintelImageHeight                    = 'IHPx',     // Height in pixels of image
-    bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed          = 'mrir',     // Red in red linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed        = 'mgir',     // Green in red linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed         = 'mbir',     // Blue in red linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen        = 'mrig',     // Red in green linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen      = 'mgig',     // Green in green linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen       = 'mbig',     // Blue in green linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue         = 'mrib',     // Red in blue linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue       = 'mgib',     // Green in blue linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue        = 'mbib',     // Blue in blue linear masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed             = 'mlrr',     // Red in red log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed           = 'mlgr',     // Green in red log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed            = 'mlbr',     // Blue in red log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen           = 'mlrg',     // Red in green log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen         = 'mlgg',     // Green in green log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen          = 'mlbg',     // Blue in green log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue            = 'mlrb',     // Red in blue log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue          = 'mlgb',     // Green in blue log masking parameter
-    bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue           = 'mlbb',     // Blue in blue log masking parameter
-    bmdDeckLinkFrameMetadataCintelFilmFrameRate                  = 'cffr',     // Film frame rate
-    bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX              = 'hdrx',     // Red display primaries in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY              = 'hdry',     // Red display primaries in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX            = 'hdgx',     // Green display primaries in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY            = 'hdgy',     // Green display primaries in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX             = 'hdbx',     // Blue display primaries in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY             = 'hdby',     // Blue display primaries in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRWhitePointX                       = 'hdwx',     // White point in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRWhitePointY                       = 'hdwy',     // White point in range 0.0 - 1.0
-    bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance      = 'hdml',     // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2
-    bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance      = 'hmil',     // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2
-    bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel          = 'mcll',     // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2
-    bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel     = 'fall',     // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2
-    bmdDeckLinkFrameMetadataCintelOffsetToApplyHorizontal        = 'otah',     // Horizontal offset (pixels) to be applied to image
-    bmdDeckLinkFrameMetadataCintelOffsetToApplyVertical          = 'otav',     // Vertical offset (pixels) to be applied to image
-    bmdDeckLinkFrameMetadataCintelGainRed                        = 'LfRd',     // Red gain parameter to apply after log
-    bmdDeckLinkFrameMetadataCintelGainGreen                      = 'LfGr',     // Green gain parameter to apply after log
-    bmdDeckLinkFrameMetadataCintelGainBlue                       = 'LfBl',     // Blue gain parameter to apply after log
-    bmdDeckLinkFrameMetadataCintelLiftRed                        = 'GnRd',     // Red lift parameter to apply after log and gain
-    bmdDeckLinkFrameMetadataCintelLiftGreen                      = 'GnGr',     // Green lift parameter to apply after log and gain
-    bmdDeckLinkFrameMetadataCintelLiftBlue                       = 'GnBl',     // Blue lift parameter to apply after log and gain
-    bmdDeckLinkFrameMetadataCintelHDRGainRed                     = 'HGRd',     // Red gain parameter to apply to linear data for HDR Combination
-    bmdDeckLinkFrameMetadataCintelHDRGainGreen                   = 'HGGr',     // Green gain parameter to apply to linear data for HDR Combination
-    bmdDeckLinkFrameMetadataCintelHDRGainBlue                    = 'HGBl'      // Blue gain parameter to apply to linear data for HDR Combination
+
+    /* Colorspace Metadata - Integers */
+
+    bmdDeckLinkFrameMetadataColorspace                           = /* 'cspc' */ 0x63737063,    // Colorspace of video frame (see BMDColorspace)
+
+    /* HDR Metadata - Integers */
+
+    bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc        = /* 'eotf' */ 0x656F7466,    // EOTF in range 0-7 as per CEA 861.3
+
+    /* HDR Metadata - Floats */
+
+    bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX              = /* 'hdrx' */ 0x68647278,    // Red display primaries in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY              = /* 'hdry' */ 0x68647279,    // Red display primaries in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX            = /* 'hdgx' */ 0x68646778,    // Green display primaries in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY            = /* 'hdgy' */ 0x68646779,    // Green display primaries in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX             = /* 'hdbx' */ 0x68646278,    // Blue display primaries in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY             = /* 'hdby' */ 0x68646279,    // Blue display primaries in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRWhitePointX                       = /* 'hdwx' */ 0x68647778,    // White point in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRWhitePointY                       = /* 'hdwy' */ 0x68647779,    // White point in range 0.0 - 1.0
+    bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance      = /* 'hdml' */ 0x68646D6C,    // Max display mastering luminance in range 1 cd/m2 - 65535 cd/m2
+    bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance      = /* 'hmil' */ 0x686D696C,    // Min display mastering luminance in range 0.0001 cd/m2 - 6.5535 cd/m2
+    bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel          = /* 'mcll' */ 0x6D636C6C,    // Maximum Content Light Level in range 1 cd/m2 - 65535 cd/m2
+    bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel     = /* 'fall' */ 0x66616C6C     // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2
 };
 
 /* Enum BMDProfileID - Identifies a profile */
 
 typedef uint32_t BMDProfileID;
 enum _BMDProfileID {
-    bmdProfileOneSubDeviceFullDuplex                             = '1dfd',
-    bmdProfileOneSubDeviceHalfDuplex                             = '1dhd',
-    bmdProfileTwoSubDevicesFullDuplex                            = '2dfd',
-    bmdProfileTwoSubDevicesHalfDuplex                            = '2dhd',
-    bmdProfileFourSubDevicesHalfDuplex                           = '4dhd'
+    bmdProfileOneSubDeviceFullDuplex                             = /* '1dfd' */ 0x31646664,
+    bmdProfileOneSubDeviceHalfDuplex                             = /* '1dhd' */ 0x31646864,
+    bmdProfileTwoSubDevicesFullDuplex                            = /* '2dfd' */ 0x32646664,
+    bmdProfileTwoSubDevicesHalfDuplex                            = /* '2dhd' */ 0x32646864,
+    bmdProfileFourSubDevicesHalfDuplex                           = /* '4dhd' */ 0x34646864
 };
 
 /* Enum BMDHDMITimecodePacking - Packing form of timecode on HDMI */
@@ -471,6 +460,14 @@ enum _BMDHDMITimecodePacking {
     bmdHDMITimecodePackingIEEEOUI5CF9F0                          = 0x5CF9F003
 };
 
+/* Enum BMDInternalKeyingAncillaryDataSource - Source for VANC and timecode data when performing internal keying */
+
+typedef uint32_t BMDInternalKeyingAncillaryDataSource;
+enum _BMDInternalKeyingAncillaryDataSource {
+    bmdInternalKeyingUsesAncillaryDataFromInputSignal            = /* 'ikai' */ 0x696B6169,
+    bmdInternalKeyingUsesAncillaryDataFromKeyFrame               = /* 'ikak' */ 0x696B616B
+};
+
 /* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */
 
 typedef uint32_t BMDDeckLinkAttributeID;
@@ -478,77 +475,83 @@ enum _BMDDeckLinkAttributeID {
 
     /* Flags */
 
-    BMDDeckLinkSupportsInternalKeying                            = 'keyi',
-    BMDDeckLinkSupportsExternalKeying                            = 'keye',
-    BMDDeckLinkSupportsInputFormatDetection                      = 'infd',
-    BMDDeckLinkHasReferenceInput                                 = 'hrin',
-    BMDDeckLinkHasSerialPort                                     = 'hspt',
-    BMDDeckLinkHasAnalogVideoOutputGain                          = 'avog',
-    BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain               = 'ovog',
-    BMDDeckLinkHasVideoInputAntiAliasingFilter                   = 'aafl',
-    BMDDeckLinkHasBypass                                         = 'byps',
-    BMDDeckLinkSupportsClockTimingAdjustment                     = 'ctad',
-    BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset       = 'frin',
-    BMDDeckLinkSupportsSMPTELevelAOutput                         = 'lvla',
-    BMDDeckLinkSupportsDualLinkSDI                               = 'sdls',
-    BMDDeckLinkSupportsQuadLinkSDI                               = 'sqls',
-    BMDDeckLinkSupportsIdleOutput                                = 'idou',
-    BMDDeckLinkVANCRequires10BitYUVVideoFrames                   = 'vioY',     // Legacy product requires v210 active picture for IDeckLinkVideoFrameAncillaryPackets or 10-bit VANC
-    BMDDeckLinkHasLTCTimecodeInput                               = 'hltc',
-    BMDDeckLinkSupportsHDRMetadata                               = 'hdrm',
-    BMDDeckLinkSupportsColorspaceMetadata                        = 'cmet',
-    BMDDeckLinkSupportsHDMITimecode                              = 'htim',
-    BMDDeckLinkSupportsHighFrameRateTimecode                     = 'HFRT',
-    BMDDeckLinkSupportsSynchronizeToCaptureGroup                 = 'stcg',
-    BMDDeckLinkSupportsSynchronizeToPlaybackGroup                = 'stpg',
+    BMDDeckLinkSupportsInternalKeying                            = /* 'keyi' */ 0x6B657969,
+    BMDDeckLinkSupportsExternalKeying                            = /* 'keye' */ 0x6B657965,
+    BMDDeckLinkSupportsInputFormatDetection                      = /* 'infd' */ 0x696E6664,
+    BMDDeckLinkHasReferenceInput                                 = /* 'hrin' */ 0x6872696E,
+    BMDDeckLinkHasSerialPort                                     = /* 'hspt' */ 0x68737074,
+    BMDDeckLinkHasAnalogVideoOutputGain                          = /* 'avog' */ 0x61766F67,
+    BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain               = /* 'ovog' */ 0x6F766F67,
+    BMDDeckLinkHasVideoInputAntiAliasingFilter                   = /* 'aafl' */ 0x6161666C,
+    BMDDeckLinkHasBypass                                         = /* 'byps' */ 0x62797073,
+    BMDDeckLinkSupportsClockTimingAdjustment                     = /* 'ctad' */ 0x63746164,
+    BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset       = /* 'frin' */ 0x6672696E,
+    BMDDeckLinkSupportsSMPTELevelAOutput                         = /* 'lvla' */ 0x6C766C61,
+    BMDDeckLinkSupportsAutoSwitchingPPsFOnInput                  = /* 'apsf' */ 0x61707366,
+    BMDDeckLinkSupportsDualLinkSDI                               = /* 'sdls' */ 0x73646C73,
+    BMDDeckLinkSupportsQuadLinkSDI                               = /* 'sqls' */ 0x73716C73,
+    BMDDeckLinkSupportsIdleOutput                                = /* 'idou' */ 0x69646F75,
+    BMDDeckLinkVANCRequires10BitYUVVideoFrames                   = /* 'vioY' */ 0x76696F59,    // Legacy product requires v210 active picture for IDeckLinkVideoFrameAncillaryPackets or 10-bit VANC
+    BMDDeckLinkHasLTCTimecodeInput                               = /* 'hltc' */ 0x686C7463,
+    BMDDeckLinkSupportsHDRMetadata                               = /* 'hdrm' */ 0x6864726D,
+    BMDDeckLinkSupportsColorspaceMetadata                        = /* 'cmet' */ 0x636D6574,
+    BMDDeckLinkSupportsHDMITimecode                              = /* 'htim' */ 0x6874696D,
+    BMDDeckLinkSupportsHighFrameRateTimecode                     = /* 'HFRT' */ 0x48465254,
+    BMDDeckLinkSupportsSynchronizeToCaptureGroup                 = /* 'stcg' */ 0x73746367,
+    BMDDeckLinkSupportsSynchronizeToPlaybackGroup                = /* 'stpg' */ 0x73747067,
 
     /* Integers */
 
-    BMDDeckLinkMaximumAudioChannels                              = 'mach',
-    BMDDeckLinkMaximumAnalogAudioInputChannels                   = 'iach',
-    BMDDeckLinkMaximumAnalogAudioOutputChannels                  = 'aach',
-    BMDDeckLinkNumberOfSubDevices                                = 'nsbd',
-    BMDDeckLinkSubDeviceIndex                                    = 'subi',
-    BMDDeckLinkPersistentID                                      = 'peid',
-    BMDDeckLinkDeviceGroupID                                     = 'dgid',
-    BMDDeckLinkTopologicalID                                     = 'toid',
-    BMDDeckLinkVideoOutputConnections                            = 'vocn',     // Returns a BMDVideoConnection bit field
-    BMDDeckLinkVideoInputConnections                             = 'vicn',     // Returns a BMDVideoConnection bit field
-    BMDDeckLinkAudioOutputConnections                            = 'aocn',     // Returns a BMDAudioConnection bit field
-    BMDDeckLinkAudioInputConnections                             = 'aicn',     // Returns a BMDAudioConnection bit field
-    BMDDeckLinkVideoIOSupport                                    = 'vios',     // Returns a BMDVideoIOSupport bit field
-    BMDDeckLinkDeckControlConnections                            = 'dccn',     // Returns a BMDDeckControlConnection bit field
-    BMDDeckLinkDeviceInterface                                   = 'dbus',     // Returns a BMDDeviceInterface
-    BMDDeckLinkAudioInputRCAChannelCount                         = 'airc',
-    BMDDeckLinkAudioInputXLRChannelCount                         = 'aixc',
-    BMDDeckLinkAudioOutputRCAChannelCount                        = 'aorc',
-    BMDDeckLinkAudioOutputXLRChannelCount                        = 'aoxc',
-    BMDDeckLinkProfileID                                         = 'prid',     // Returns a BMDProfileID
-    BMDDeckLinkDuplex                                            = 'dupx',
+    BMDDeckLinkMaximumAudioChannels                              = /* 'mach' */ 0x6D616368,
+    BMDDeckLinkMaximumAnalogAudioInputChannels                   = /* 'iach' */ 0x69616368,
+    BMDDeckLinkMaximumAnalogAudioOutputChannels                  = /* 'aach' */ 0x61616368,
+    BMDDeckLinkNumberOfSubDevices                                = /* 'nsbd' */ 0x6E736264,
+    BMDDeckLinkSubDeviceIndex                                    = /* 'subi' */ 0x73756269,
+    BMDDeckLinkPersistentID                                      = /* 'peid' */ 0x70656964,
+    BMDDeckLinkDeviceGroupID                                     = /* 'dgid' */ 0x64676964,
+    BMDDeckLinkTopologicalID                                     = /* 'toid' */ 0x746F6964,
+    BMDDeckLinkVideoOutputConnections                            = /* 'vocn' */ 0x766F636E,    // Returns a BMDVideoConnection bit field
+    BMDDeckLinkVideoInputConnections                             = /* 'vicn' */ 0x7669636E,    // Returns a BMDVideoConnection bit field
+    BMDDeckLinkAudioOutputConnections                            = /* 'aocn' */ 0x616F636E,    // Returns a BMDAudioConnection bit field
+    BMDDeckLinkAudioInputConnections                             = /* 'aicn' */ 0x6169636E,    // Returns a BMDAudioConnection bit field
+    BMDDeckLinkVideoIOSupport                                    = /* 'vios' */ 0x76696F73,    // Returns a BMDVideoIOSupport bit field
+    BMDDeckLinkDeckControlConnections                            = /* 'dccn' */ 0x6463636E,    // Returns a BMDDeckControlConnection bit field
+    BMDDeckLinkDeviceInterface                                   = /* 'dbus' */ 0x64627573,    // Returns a BMDDeviceInterface
+    BMDDeckLinkAudioInputRCAChannelCount                         = /* 'airc' */ 0x61697263,
+    BMDDeckLinkAudioInputXLRChannelCount                         = /* 'aixc' */ 0x61697863,
+    BMDDeckLinkAudioOutputRCAChannelCount                        = /* 'aorc' */ 0x616F7263,
+    BMDDeckLinkAudioOutputXLRChannelCount                        = /* 'aoxc' */ 0x616F7863,
+    BMDDeckLinkProfileID                                         = /* 'prid' */ 0x70726964,    // Returns a BMDProfileID
+    BMDDeckLinkDuplex                                            = /* 'dupx' */ 0x64757078,
+    BMDDeckLinkMinimumPrerollFrames                              = /* 'mprf' */ 0x6D707266,
+    BMDDeckLinkSupportedDynamicRange                             = /* 'sudr' */ 0x73756472,
 
     /* Floats */
 
-    BMDDeckLinkVideoInputGainMinimum                             = 'vigm',
-    BMDDeckLinkVideoInputGainMaximum                             = 'vigx',
-    BMDDeckLinkVideoOutputGainMinimum                            = 'vogm',
-    BMDDeckLinkVideoOutputGainMaximum                            = 'vogx',
-    BMDDeckLinkMicrophoneInputGainMinimum                        = 'migm',
-    BMDDeckLinkMicrophoneInputGainMaximum                        = 'migx',
+    BMDDeckLinkVideoInputGainMinimum                             = /* 'vigm' */ 0x7669676D,
+    BMDDeckLinkVideoInputGainMaximum                             = /* 'vigx' */ 0x76696778,
+    BMDDeckLinkVideoOutputGainMinimum                            = /* 'vogm' */ 0x766F676D,
+    BMDDeckLinkVideoOutputGainMaximum                            = /* 'vogx' */ 0x766F6778,
+    BMDDeckLinkMicrophoneInputGainMinimum                        = /* 'migm' */ 0x6D69676D,
+    BMDDeckLinkMicrophoneInputGainMaximum                        = /* 'migx' */ 0x6D696778,
 
     /* Strings */
 
-    BMDDeckLinkSerialPortDeviceName                              = 'slpn',
-    BMDDeckLinkVendorName                                        = 'vndr',
-    BMDDeckLinkDisplayName                                       = 'dspn',
-    BMDDeckLinkModelName                                         = 'mdln',
-    BMDDeckLinkDeviceHandle                                      = 'devh'
+    BMDDeckLinkSerialPortDeviceName                              = /* 'slpn' */ 0x736C706E,
+    BMDDeckLinkVendorName                                        = /* 'vndr' */ 0x766E6472,
+    BMDDeckLinkDisplayName                                       = /* 'dspn' */ 0x6473706E,
+    BMDDeckLinkModelName                                         = /* 'mdln' */ 0x6D646C6E,
+    BMDDeckLinkDeviceHandle                                      = /* 'devh' */ 0x64657668
 };
 
 /* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */
 
 typedef uint32_t BMDDeckLinkAPIInformationID;
 enum _BMDDeckLinkAPIInformationID {
-    BMDDeckLinkAPIVersion                                        = 'vers'
+
+    /* Integer or String */
+
+    BMDDeckLinkAPIVersion                                        = /* 'vers' */ 0x76657273
 };
 
 /* Enum BMDDeckLinkStatusID - DeckLink Status ID */
@@ -558,27 +561,34 @@ enum _BMDDeckLinkStatusID {
 
     /* Integers */
 
-    bmdDeckLinkStatusDetectedVideoInputMode                      = 'dvim',
-    bmdDeckLinkStatusDetectedVideoInputFlags                     = 'dvif',
-    bmdDeckLinkStatusCurrentVideoInputMode                       = 'cvim',
-    bmdDeckLinkStatusCurrentVideoInputPixelFormat                = 'cvip',
-    bmdDeckLinkStatusCurrentVideoInputFlags                      = 'cvif',
-    bmdDeckLinkStatusCurrentVideoOutputMode                      = 'cvom',
-    bmdDeckLinkStatusCurrentVideoOutputFlags                     = 'cvof',
-    bmdDeckLinkStatusPCIExpressLinkWidth                         = 'pwid',
-    bmdDeckLinkStatusPCIExpressLinkSpeed                         = 'plnk',
-    bmdDeckLinkStatusLastVideoOutputPixelFormat                  = 'opix',
-    bmdDeckLinkStatusReferenceSignalMode                         = 'refm',
-    bmdDeckLinkStatusReferenceSignalFlags                        = 'reff',
-    bmdDeckLinkStatusBusy                                        = 'busy',
-    bmdDeckLinkStatusInterchangeablePanelType                    = 'icpt',
-    bmdDeckLinkStatusDeviceTemperature                           = 'dtmp',
+    bmdDeckLinkStatusDetectedVideoInputMode                      = /* 'dvim' */ 0x6476696D,
+    bmdDeckLinkStatusDetectedVideoInputFormatFlags               = /* 'dvff' */ 0x64766666,
+    bmdDeckLinkStatusDetectedVideoInputFieldDominance            = /* 'dvfd' */ 0x64766664,
+    bmdDeckLinkStatusDetectedVideoInputColorspace                = /* 'dscl' */ 0x6473636C,
+    bmdDeckLinkStatusDetectedVideoInputDynamicRange              = /* 'dsdr' */ 0x64736472,
+    bmdDeckLinkStatusDetectedSDILinkConfiguration                = /* 'dslc' */ 0x64736C63,
+    bmdDeckLinkStatusCurrentVideoInputMode                       = /* 'cvim' */ 0x6376696D,
+    bmdDeckLinkStatusCurrentVideoInputPixelFormat                = /* 'cvip' */ 0x63766970,
+    bmdDeckLinkStatusCurrentVideoInputFlags                      = /* 'cvif' */ 0x63766966,
+    bmdDeckLinkStatusCurrentVideoOutputMode                      = /* 'cvom' */ 0x63766F6D,
+    bmdDeckLinkStatusCurrentVideoOutputFlags                     = /* 'cvof' */ 0x63766F66,
+    bmdDeckLinkStatusPCIExpressLinkWidth                         = /* 'pwid' */ 0x70776964,
+    bmdDeckLinkStatusPCIExpressLinkSpeed                         = /* 'plnk' */ 0x706C6E6B,
+    bmdDeckLinkStatusLastVideoOutputPixelFormat                  = /* 'opix' */ 0x6F706978,
+    bmdDeckLinkStatusReferenceSignalMode                         = /* 'refm' */ 0x7265666D,
+    bmdDeckLinkStatusReferenceSignalFlags                        = /* 'reff' */ 0x72656666,
+    bmdDeckLinkStatusBusy                                        = /* 'busy' */ 0x62757379,
+    bmdDeckLinkStatusInterchangeablePanelType                    = /* 'icpt' */ 0x69637074,
+    bmdDeckLinkStatusDeviceTemperature                           = /* 'dtmp' */ 0x64746D70,
 
     /* Flags */
 
-    bmdDeckLinkStatusVideoInputSignalLocked                      = 'visl',
-    bmdDeckLinkStatusReferenceSignalLocked                       = 'refl',
-    bmdDeckLinkStatusReceivedEDID                                = 'edid'
+    bmdDeckLinkStatusVideoInputSignalLocked                      = /* 'visl' */ 0x7669736C,
+    bmdDeckLinkStatusReferenceSignalLocked                       = /* 'refl' */ 0x7265666C,
+
+    /* Bytes */
+
+    bmdDeckLinkStatusReceivedEDID                                = /* 'edid' */ 0x65646964
 };
 
 /* Enum BMDDeckLinkVideoStatusFlags -  */
@@ -593,18 +603,18 @@ enum _BMDDeckLinkVideoStatusFlags {
 
 typedef uint32_t BMDDuplexMode;
 enum _BMDDuplexMode {
-    bmdDuplexFull                                                = 'dxfu',
-    bmdDuplexHalf                                                = 'dxha',
-    bmdDuplexSimplex                                             = 'dxsp',
-    bmdDuplexInactive                                            = 'dxin'
+    bmdDuplexFull                                                = /* 'dxfu' */ 0x64786675,
+    bmdDuplexHalf                                                = /* 'dxha' */ 0x64786861,
+    bmdDuplexSimplex                                             = /* 'dxsp' */ 0x64787370,
+    bmdDuplexInactive                                            = /* 'dxin' */ 0x6478696E
 };
 
 /* Enum BMDPanelType - The type of interchangeable panel */
 
 typedef uint32_t BMDPanelType;
 enum _BMDPanelType {
-    bmdPanelNotDetected                                          = 'npnl',
-    bmdPanelTeranexMiniSmartPanel                                = 'tmsm'
+    bmdPanelNotDetected                                          = /* 'npnl' */ 0x6E706E6C,
+    bmdPanelTeranexMiniSmartPanel                                = /* 'tmsm' */ 0x746D736D
 };
 
 /* Enum BMDDeviceBusyState - Current device busy state */
@@ -628,19 +638,19 @@ enum _BMDVideoIOSupport {
 
 typedef uint32_t BMD3DPreviewFormat;
 enum _BMD3DPreviewFormat {
-    bmd3DPreviewFormatDefault                                    = 'defa',
-    bmd3DPreviewFormatLeftOnly                                   = 'left',
-    bmd3DPreviewFormatRightOnly                                  = 'righ',
-    bmd3DPreviewFormatSideBySide                                 = 'side',
-    bmd3DPreviewFormatTopBottom                                  = 'topb'
+    bmd3DPreviewFormatDefault                                    = /* 'defa' */ 0x64656661,
+    bmd3DPreviewFormatLeftOnly                                   = /* 'left' */ 0x6C656674,
+    bmd3DPreviewFormatRightOnly                                  = /* 'righ' */ 0x72696768,
+    bmd3DPreviewFormatSideBySide                                 = /* 'side' */ 0x73696465,
+    bmd3DPreviewFormatTopBottom                                  = /* 'topb' */ 0x746F7062
 };
 
 /* Enum BMDNotifications - Events that can be subscribed through IDeckLinkNotification */
 
 typedef uint32_t BMDNotifications;
 enum _BMDNotifications {
-    bmdPreferencesChanged                                        = 'pref',
-    bmdStatusChanged                                             = 'stat'
+    bmdPreferencesChanged                                        = /* 'pref' */ 0x70726566,
+    bmdStatusChanged                                             = /* 'stat' */ 0x73746174
 };
 
 #if defined(__cplusplus)
@@ -693,7 +703,7 @@ class IDeckLinkDiscovery;
 class BMD_PUBLIC IDeckLinkVideoOutputCallback : public IUnknown
 {
 public:
-    virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFrame *completedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0;
+    virtual HRESULT ScheduledFrameCompleted (/* in */ IDeckLinkVideoFramecompletedFrame, /* in */ BMDOutputFrameCompletionResult result) = 0;
     virtual HRESULT ScheduledPlaybackHasStopped (void) = 0;
 
 protected:
@@ -705,7 +715,7 @@ protected:
 class BMD_PUBLIC IDeckLinkInputCallback : public IUnknown
 {
 public:
-    virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
+    virtual HRESULT VideoInputFormatChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayModenewDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
     virtual HRESULT VideoInputFrameArrived (/* in */ IDeckLinkVideoInputFrame* videoFrame, /* in */ IDeckLinkAudioInputPacket* audioPacket) = 0;
 
 protected:
@@ -717,7 +727,7 @@ protected:
 class BMD_PUBLIC IDeckLinkEncoderInputCallback : public IUnknown
 {
 public:
-    virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayMode *newDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
+    virtual HRESULT VideoInputSignalChanged (/* in */ BMDVideoInputFormatChangedEvents notificationEvents, /* in */ IDeckLinkDisplayModenewDisplayMode, /* in */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
     virtual HRESULT VideoPacketArrived (/* in */ IDeckLinkEncoderVideoPacket* videoPacket) = 0;
     virtual HRESULT AudioPacketArrived (/* in */ IDeckLinkEncoderAudioPacket* audioPacket) = 0;
 
@@ -730,9 +740,8 @@ protected:
 class BMD_PUBLIC IDeckLinkMemoryAllocator : public IUnknown
 {
 public:
-    virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void **allocatedBuffer) = 0;
-    virtual HRESULT ReleaseBuffer (/* in */ void *buffer) = 0;
-
+    virtual HRESULT AllocateBuffer (/* in */ uint32_t bufferSize, /* out */ void** allocatedBuffer) = 0;
+    virtual HRESULT ReleaseBuffer (/* in */ void* buffer) = 0;
     virtual HRESULT Commit (void) = 0;
     virtual HRESULT Decommit (void) = 0;
 };
@@ -745,12 +754,12 @@ public:
     virtual HRESULT RenderAudioSamples (/* in */ bool preroll) = 0;
 };
 
-/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */
+/* Interface IDeckLinkIterator - Enumerates installed DeckLink hardware */
 
 class BMD_PUBLIC IDeckLinkIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLink **deckLinkInstance) = 0;
+    virtual HRESULT Next (/* out */ IDeckLink** deckLinkInstance) = 0;
 };
 
 /* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */
@@ -758,10 +767,10 @@ public:
 class BMD_PUBLIC IDeckLinkAPIInformation : public IUnknown
 {
 public:
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ bool *value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ double *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ CFStringRef *value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ boolvalue) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ doublevalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkAPIInformationID cfgID, /* out */ CFStringRefvalue) = 0;
 
 protected:
     virtual ~IDeckLinkAPIInformation () {} // call Release method to drop reference count
@@ -772,54 +781,47 @@ protected:
 class BMD_PUBLIC IDeckLinkOutput : public IUnknown
 {
 public:
-    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of 0 is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDSupportedVideoModeFlags flags, /* out */ BMDDisplayMode *actualMode, /* out */ bool *supported) = 0;
-    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
-    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0;
-
-    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
+    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of bmdVideoConnectionUnspecified is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDVideoOutputConversionMode conversionMode, /* in */ BMDSupportedVideoModeFlags flags, /* out */ BMDDisplayMode* actualMode, /* out */ bool* supported) = 0;
+    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode** resultDisplayMode) = 0;
+    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0;
+    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback* previewCallback) = 0;
 
     /* Video Output */
 
     virtual HRESULT EnableVideoOutput (/* in */ BMDDisplayMode displayMode, /* in */ BMDVideoOutputFlags flags) = 0;
     virtual HRESULT DisableVideoOutput (void) = 0;
-
-    virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0;
-    virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame **outFrame) = 0;
-    virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary **outBuffer) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
-
-    virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame *theFrame) = 0;
-    virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0;
-    virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback *theCallback) = 0;
-    virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t *bufferedFrameCount) = 0;
+    virtual HRESULT SetVideoOutputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator* theAllocator) = 0;
+    virtual HRESULT CreateVideoFrame (/* in */ int32_t width, /* in */ int32_t height, /* in */ int32_t rowBytes, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDFrameFlags flags, /* out */ IDeckLinkMutableVideoFrame** outFrame) = 0;
+    virtual HRESULT CreateAncillaryData (/* in */ BMDPixelFormat pixelFormat, /* out */ IDeckLinkVideoFrameAncillary** outBuffer) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
+    virtual HRESULT DisplayVideoFrameSync (/* in */ IDeckLinkVideoFrame* theFrame) = 0;
+    virtual HRESULT ScheduleVideoFrame (/* in */ IDeckLinkVideoFrame* theFrame, /* in */ BMDTimeValue displayTime, /* in */ BMDTimeValue displayDuration, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT SetScheduledFrameCompletionCallback (/* in */ IDeckLinkVideoOutputCallback* theCallback) = 0;
+    virtual HRESULT GetBufferedVideoFrameCount (/* out */ uint32_t* bufferedFrameCount) = 0;
 
     /* Audio Output */
 
     virtual HRESULT EnableAudioOutput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount, /* in */ BMDAudioOutputStreamType streamType) = 0;
     virtual HRESULT DisableAudioOutput (void) = 0;
-
-    virtual HRESULT WriteAudioSamplesSync (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t *sampleFramesWritten) = 0;
-
+    virtual HRESULT WriteAudioSamplesSync (/* in */ void* buffer, /* in */ uint32_t sampleFrameCount, /* out */ uint32_t* sampleFramesWritten) = 0;
     virtual HRESULT BeginAudioPreroll (void) = 0;
     virtual HRESULT EndAudioPreroll (void) = 0;
-    virtual HRESULT ScheduleAudioSamples (/* in */ void *buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t *sampleFramesWritten) = 0;
-
-    virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t *bufferedSampleFrameCount) = 0;
+    virtual HRESULT ScheduleAudioSamples (/* in */ void* buffer, /* in */ uint32_t sampleFrameCount, /* in */ BMDTimeValue streamTime, /* in */ BMDTimeScale timeScale, /* out */ uint32_t* sampleFramesWritten) = 0;
+    virtual HRESULT GetBufferedAudioSampleFrameCount (/* out */ uint32_t* bufferedSampleFrameCount) = 0;
     virtual HRESULT FlushBufferedAudioSamples (void) = 0;
-
-    virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback *theCallback) = 0;
+    virtual HRESULT SetAudioCallback (/* in */ IDeckLinkAudioOutputCallback* theCallback) = 0;
 
     /* Output Control */
 
     virtual HRESULT StartScheduledPlayback (/* in */ BMDTimeValue playbackStartTime, /* in */ BMDTimeScale timeScale, /* in */ double playbackSpeed) = 0;
-    virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValue *actualStopTime, /* in */ BMDTimeScale timeScale) = 0;
-    virtual HRESULT IsScheduledPlaybackRunning (/* out */ bool *active) = 0;
-    virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *streamTime, /* out */ double *playbackSpeed) = 0;
-    virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatus *referenceStatus) = 0;
+    virtual HRESULT StopScheduledPlayback (/* in */ BMDTimeValue stopPlaybackAtTime, /* out */ BMDTimeValueactualStopTime, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT IsScheduledPlaybackRunning (/* out */ boolactive) = 0;
+    virtual HRESULT GetScheduledStreamTime (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* streamTime, /* out */ double* playbackSpeed) = 0;
+    virtual HRESULT GetReferenceStatus (/* out */ BMDReferenceStatusreferenceStatus) = 0;
 
     /* Hardware Timing */
 
-    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0;
-    virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame *theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *frameCompletionTimestamp) = 0;
+    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* hardwareTime, /* out */ BMDTimeValue* timeInFrame, /* out */ BMDTimeValue* ticksPerFrame) = 0;
+    virtual HRESULT GetFrameCompletionReferenceTimestamp (/* in */ IDeckLinkVideoFrame* theFrame, /* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* frameCompletionTimestamp) = 0;
 
 protected:
     virtual ~IDeckLinkOutput () {} // call Release method to drop reference count
@@ -830,24 +832,23 @@ protected:
 class BMD_PUBLIC IDeckLinkInput : public IUnknown
 {
 public:
-    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of 0 is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDSupportedVideoModeFlags flags, /* out */ bool *supported) = 0;
-    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
-    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0;
-
-    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
+    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of bmdVideoConnectionUnspecified is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedPixelFormat, /* in */ BMDVideoInputConversionMode conversionMode, /* in */ BMDSupportedVideoModeFlags flags, /* out */ BMDDisplayMode* actualMode, /* out */ bool* supported) = 0;
+    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode** resultDisplayMode) = 0;
+    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0;
+    virtual HRESULT SetScreenPreviewCallback (/* in */ IDeckLinkScreenPreviewCallback* previewCallback) = 0;
 
     /* Video Input */
 
     virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0;
     virtual HRESULT DisableVideoInput (void) = 0;
-    virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_t *availableFrameCount) = 0;
-    virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0;
+    virtual HRESULT GetAvailableVideoFrameCount (/* out */ uint32_tavailableFrameCount) = 0;
+    virtual HRESULT SetVideoInputFrameMemoryAllocator (/* in */ IDeckLinkMemoryAllocatortheAllocator) = 0;
 
     /* Audio Input */
 
     virtual HRESULT EnableAudioInput (/* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0;
     virtual HRESULT DisableAudioInput (void) = 0;
-    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0;
+    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_tavailableSampleFrameCount) = 0;
 
     /* Input Control */
 
@@ -855,11 +856,11 @@ public:
     virtual HRESULT StopStreams (void) = 0;
     virtual HRESULT PauseStreams (void) = 0;
     virtual HRESULT FlushStreams (void) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallback *theCallback) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkInputCallbacktheCallback) = 0;
 
     /* Hardware Timing */
 
-    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0;
+    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* hardwareTime, /* out */ BMDTimeValue* timeInFrame, /* out */ BMDTimeValue* ticksPerFrame) = 0;
 
 protected:
     virtual ~IDeckLinkInput () {} // call Release method to drop reference count
@@ -871,7 +872,7 @@ class BMD_PUBLIC IDeckLinkHDMIInputEDID : public IUnknown
 {
 public:
     virtual HRESULT SetInt (/* in */ BMDDeckLinkHDMIInputEDIDID cfgID, /* in */ int64_t value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkHDMIInputEDIDID cfgID, /* out */ int64_t *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkHDMIInputEDIDID cfgID, /* out */ int64_tvalue) = 0;
     virtual HRESULT WriteToEDID (void) = 0;
 
 protected:
@@ -883,22 +884,22 @@ protected:
 class BMD_PUBLIC IDeckLinkEncoderInput : public IUnknown
 {
 public:
-    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of 0 is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedCodec, /* in */ uint32_t requestedCodecProfile, /* in */ BMDSupportedVideoModeFlags flags, /* out */ bool *supported) = 0;
-    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
-    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator **iterator) = 0;
+    virtual HRESULT DoesSupportVideoMode (/* in */ BMDVideoConnection connection /* If a value of bmdVideoConnectionUnspecified is specified, the caller does not care about the connection */, /* in */ BMDDisplayMode requestedMode, /* in */ BMDPixelFormat requestedCodec, /* in */ uint32_t requestedCodecProfile, /* in */ BMDSupportedVideoModeFlags flags, /* out */ bool* supported) = 0;
+    virtual HRESULT GetDisplayMode (/* in */ BMDDisplayMode displayMode, /* out */ IDeckLinkDisplayMode** resultDisplayMode) = 0;
+    virtual HRESULT GetDisplayModeIterator (/* out */ IDeckLinkDisplayModeIterator** iterator) = 0;
 
     /* Video Input */
 
     virtual HRESULT EnableVideoInput (/* in */ BMDDisplayMode displayMode, /* in */ BMDPixelFormat pixelFormat, /* in */ BMDVideoInputFlags flags) = 0;
     virtual HRESULT DisableVideoInput (void) = 0;
-    virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_t *availablePacketsCount) = 0;
-    virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocator *theAllocator) = 0;
+    virtual HRESULT GetAvailablePacketsCount (/* out */ uint32_tavailablePacketsCount) = 0;
+    virtual HRESULT SetMemoryAllocator (/* in */ IDeckLinkMemoryAllocatortheAllocator) = 0;
 
     /* Audio Input */
 
     virtual HRESULT EnableAudioInput (/* in */ BMDAudioFormat audioFormat, /* in */ BMDAudioSampleRate sampleRate, /* in */ BMDAudioSampleType sampleType, /* in */ uint32_t channelCount) = 0;
     virtual HRESULT DisableAudioInput (void) = 0;
-    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_t *availableSampleFrameCount) = 0;
+    virtual HRESULT GetAvailableAudioSampleFrameCount (/* out */ uint32_tavailableSampleFrameCount) = 0;
 
     /* Input Control */
 
@@ -906,11 +907,11 @@ public:
     virtual HRESULT StopStreams (void) = 0;
     virtual HRESULT PauseStreams (void) = 0;
     virtual HRESULT FlushStreams (void) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallback *theCallback) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkEncoderInputCallbacktheCallback) = 0;
 
     /* Hardware Timing */
 
-    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue *hardwareTime, /* out */ BMDTimeValue *timeInFrame, /* out */ BMDTimeValue *ticksPerFrame) = 0;
+    virtual HRESULT GetHardwareReferenceClock (/* in */ BMDTimeScale desiredTimeScale, /* out */ BMDTimeValue* hardwareTime, /* out */ BMDTimeValue* timeInFrame, /* out */ BMDTimeValue* ticksPerFrame) = 0;
 
 protected:
     virtual ~IDeckLinkEncoderInput () {} // call Release method to drop reference count
@@ -926,10 +927,9 @@ public:
     virtual long GetRowBytes (void) = 0;
     virtual BMDPixelFormat GetPixelFormat (void) = 0;
     virtual BMDFrameFlags GetFlags (void) = 0;
-    virtual HRESULT GetBytes (/* out */ void **buffer) = 0;
-
-    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0;
-    virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary **ancillary) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
+    virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
+    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode** timecode) = 0;
+    virtual HRESULT GetAncillaryData (/* out */ IDeckLinkVideoFrameAncillary** ancillary) = 0; // Use of IDeckLinkVideoFrameAncillaryPackets is preferred
 
 protected:
     virtual ~IDeckLinkVideoFrame () {} // call Release method to drop reference count
@@ -941,10 +941,9 @@ class BMD_PUBLIC IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame
 {
 public:
     virtual HRESULT SetFlags (/* in */ BMDFrameFlags newFlags) = 0;
-
-    virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode *timecode) = 0;
+    virtual HRESULT SetTimecode (/* in */ BMDTimecodeFormat format, /* in */ IDeckLinkTimecode* timecode) = 0;
     virtual HRESULT SetTimecodeFromComponents (/* in */ BMDTimecodeFormat format, /* in */ uint8_t hours, /* in */ uint8_t minutes, /* in */ uint8_t seconds, /* in */ uint8_t frames, /* in */ BMDTimecodeFlags flags) = 0;
-    virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
+    virtual HRESULT SetAncillaryData (/* in */ IDeckLinkVideoFrameAncillaryancillary) = 0;
     virtual HRESULT SetTimecodeUserBits (/* in */ BMDTimecodeFormat format, /* in */ BMDTimecodeUserBits userBits) = 0;
 
 protected:
@@ -957,21 +956,22 @@ class BMD_PUBLIC IDeckLinkVideoFrame3DExtensions : public IUnknown
 {
 public:
     virtual BMDVideo3DPackingFormat Get3DPackingFormat (void) = 0;
-    virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame* *rightEyeFrame) = 0;
+    virtual HRESULT GetFrameForRightEye (/* out */ IDeckLinkVideoFrame*rightEyeFrame) = 0;
 
 protected:
     virtual ~IDeckLinkVideoFrame3DExtensions () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDMI HDR information */
+/* Interface IDeckLinkVideoFrameMetadataExtensions - Optional interface implemented on IDeckLinkVideoFrame to support frame metadata such as HDR information */
 
 class BMD_PUBLIC IDeckLinkVideoFrameMetadataExtensions : public IUnknown
 {
 public:
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ double *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ doublevalue) = 0;
     virtual HRESULT GetFlag (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ bool* value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ CFStringRef *value) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ CFStringRef* value) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDDeckLinkFrameMetadataID metadataID, /* out */ void* buffer /* optional */, /* in, out */ uint32_t* bufferSize) = 0;
 
 protected:
     virtual ~IDeckLinkVideoFrameMetadataExtensions () {} // call Release method to drop reference count
@@ -982,8 +982,8 @@ protected:
 class BMD_PUBLIC IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame
 {
 public:
-    virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration, /* in */ BMDTimeScale timeScale) = 0;
-    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0;
+    virtual HRESULT GetStreamTime (/* out */ BMDTimeValue* frameTime, /* out */ BMDTimeValue* frameDuration, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue* frameTime, /* out */ BMDTimeValue* frameDuration) = 0;
 
 protected:
     virtual ~IDeckLinkVideoInputFrame () {} // call Release method to drop reference count
@@ -994,12 +994,11 @@ protected:
 class BMD_PUBLIC IDeckLinkAncillaryPacket : public IUnknown
 {
 public:
-
-    virtual HRESULT GetBytes (/* in */ BMDAncillaryPacketFormat format /* For output, only one format need be offered */, /* out */ const void **data /* Optional */, /* out */ uint32_t *size /* Optional */) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDAncillaryPacketFormat format /* For output, only one format need be offered */, /* out */ const void** data /* Optional */, /* out */ uint32_t* size /* Optional */) = 0;
     virtual uint8_t GetDID (void) = 0;
     virtual uint8_t GetSDID (void) = 0;
-    virtual uint32_t GetLineNumber (void) = 0; // On output, zero is auto
-    virtual uint8_t GetDataStreamIndex (void) = 0; // Usually zero. Can only be 1 if non-SD and the first data stream is completely full
+    virtual uint32_t GetLineNumber (void) = 0; // On output, zero is auto
+    virtual uint8_t GetDataStreamIndex (void) = 0;     // Usually zero. Can only be 1 if non-SD and the first data stream is completely full
 
 protected:
     virtual ~IDeckLinkAncillaryPacket () {} // call Release method to drop reference count
@@ -1010,35 +1009,33 @@ protected:
 class BMD_PUBLIC IDeckLinkAncillaryPacketIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLinkAncillaryPacket **packet) = 0;
+    virtual HRESULT Next (/* out */ IDeckLinkAncillaryPacket** packet) = 0;
 
 protected:
     virtual ~IDeckLinkAncillaryPacketIterator () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoFrameAncillaryPackets - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */
+/* Interface IDeckLinkVideoFrameAncillaryPackets - Obtained through QueryInterface on an IDeckLinkVideoFrame object. */
 
 class BMD_PUBLIC IDeckLinkVideoFrameAncillaryPackets : public IUnknown
 {
 public:
-
-    virtual HRESULT GetPacketIterator (/* out */ IDeckLinkAncillaryPacketIterator **iterator) = 0;
-    virtual HRESULT GetFirstPacketByID (/* in */ uint8_t DID, /* in */ uint8_t SDID, /* out */ IDeckLinkAncillaryPacket **packet) = 0;
-    virtual HRESULT AttachPacket (/* in */ IDeckLinkAncillaryPacket *packet) = 0; // Implement IDeckLinkAncillaryPacket to output your own
-    virtual HRESULT DetachPacket (/* in */ IDeckLinkAncillaryPacket *packet) = 0;
+    virtual HRESULT GetPacketIterator (/* out */ IDeckLinkAncillaryPacketIterator** iterator) = 0;
+    virtual HRESULT GetFirstPacketByID (/* in */ uint8_t DID, /* in */ uint8_t SDID, /* out */ IDeckLinkAncillaryPacket** packet) = 0;
+    virtual HRESULT AttachPacket (/* in */ IDeckLinkAncillaryPacket* packet) = 0;      // Implement IDeckLinkAncillaryPacket to output your own
+    virtual HRESULT DetachPacket (/* in */ IDeckLinkAncillaryPacket* packet) = 0;
     virtual HRESULT DetachAllPackets (void) = 0;
 
 protected:
     virtual ~IDeckLinkVideoFrameAncillaryPackets () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoFrameAncillary - Use of IDeckLinkVideoFrameAncillaryPackets is preferred. Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */
+/* Interface IDeckLinkVideoFrameAncillary - Use of IDeckLinkVideoFrameAncillaryPackets is preferred. Obtained through QueryInterface on an IDeckLinkVideoFrame object. */
 
 class BMD_PUBLIC IDeckLinkVideoFrameAncillary : public IUnknown
 {
 public:
-
-    virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void **buffer) = 0; // Pixels/rowbytes is same as display mode, except for above HD where it's 1920 pixels for UHD modes and 2048 pixels for DCI modes
+    virtual HRESULT GetBufferForVerticalBlankingLine (/* in */ uint32_t lineNumber, /* out */ void** buffer) = 0;      // Pixels/rowbytes is same as display mode, except for above HD where it's 1920 pixels for UHD modes and 2048 pixels for DCI modes
     virtual BMDPixelFormat GetPixelFormat (void) = 0;
     virtual BMDDisplayMode GetDisplayMode (void) = 0;
 
@@ -1051,9 +1048,9 @@ protected:
 class BMD_PUBLIC IDeckLinkEncoderPacket : public IUnknown
 {
 public:
-    virtual HRESULT GetBytes (/* out */ void **buffer) = 0;
+    virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
     virtual long GetSize (void) = 0;
-    virtual HRESULT GetStreamTime (/* out */ BMDTimeValue *frameTime, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT GetStreamTime (/* out */ BMDTimeValueframeTime, /* in */ BMDTimeScale timeScale) = 0;
     virtual BMDPacketType GetPacketType (void) = 0;
 
 protected:
@@ -1066,9 +1063,8 @@ class BMD_PUBLIC IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket
 {
 public:
     virtual BMDPixelFormat GetPixelFormat (void) = 0;
-    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue *frameTime, /* out */ BMDTimeValue *frameDuration) = 0;
-
-    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode **timecode) = 0;
+    virtual HRESULT GetHardwareReferenceTimestamp (/* in */ BMDTimeScale timeScale, /* out */ BMDTimeValue* frameTime, /* out */ BMDTimeValue* frameDuration) = 0;
+    virtual HRESULT GetTimecode (/* in */ BMDTimecodeFormat format, /* out */ IDeckLinkTimecode** timecode) = 0;
 
 protected:
     virtual ~IDeckLinkEncoderVideoPacket () {} // call Release method to drop reference count
@@ -1085,13 +1081,13 @@ protected:
     virtual ~IDeckLinkEncoderAudioPacket () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface() on an IDeckLinkEncoderVideoPacket object */
+/* Interface IDeckLinkH265NALPacket - Obtained through QueryInterface on an IDeckLinkEncoderVideoPacket object */
 
 class BMD_PUBLIC IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket
 {
 public:
-    virtual HRESULT GetUnitType (/* out */ uint8_t *unitType) = 0;
-    virtual HRESULT GetBytesNoPrefix (/* out */ void **buffer) = 0;
+    virtual HRESULT GetUnitType (/* out */ uint8_tunitType) = 0;
+    virtual HRESULT GetBytesNoPrefix (/* out */ void** buffer) = 0;
     virtual long GetSizeNoPrefix (void) = 0;
 
 protected:
@@ -1104,8 +1100,8 @@ class BMD_PUBLIC IDeckLinkAudioInputPacket : public IUnknown
 {
 public:
     virtual long GetSampleFrameCount (void) = 0;
-    virtual HRESULT GetBytes (/* out */ void **buffer) = 0;
-    virtual HRESULT GetPacketTime (/* out */ BMDTimeValue *packetTime, /* in */ BMDTimeScale timeScale) = 0;
+    virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
+    virtual HRESULT GetPacketTime (/* out */ BMDTimeValuepacketTime, /* in */ BMDTimeScale timeScale) = 0;
 
 protected:
     virtual ~IDeckLinkAudioInputPacket () {} // call Release method to drop reference count
@@ -1116,13 +1112,13 @@ protected:
 class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown
 {
 public:
-    virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0;
+    virtual HRESULT DrawFrame (/* in */ IDeckLinkVideoFrametheFrame) = 0;
 
 protected:
     virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkCocoaScreenPreviewCallback - Screen preview callback for Cocoa-based applications */
+/* Interface IDeckLinkCocoaScreenPreviewCallback - Screen preview callback for Cocoa-based applications. Created with CreateCocoaScreenPreview */
 
 class BMD_PUBLIC IDeckLinkCocoaScreenPreviewCallback : public IDeckLinkScreenPreviewCallback
 {
@@ -1132,7 +1128,7 @@ protected:
     virtual ~IDeckLinkCocoaScreenPreviewCallback () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */
+/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance on platforms with native COM support or from CreateOpenGLScreenPreviewHelper on other platforms. */
 
 class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown
 {
@@ -1142,7 +1138,7 @@ public:
 
     virtual HRESULT InitializeGL (void) = 0;
     virtual HRESULT PaintGL (void) = 0;
-    virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrame *theFrame) = 0;
+    virtual HRESULT SetFrame (/* in */ IDeckLinkVideoFrametheFrame) = 0;
     virtual HRESULT Set3DPreviewFormat (/* in */ BMD3DPreviewFormat previewFormat) = 0;
 
 protected:
@@ -1162,8 +1158,8 @@ public:
 class BMD_PUBLIC IDeckLinkNotification : public IUnknown
 {
 public:
-    virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0;
-    virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallback *theCallback) = 0;
+    virtual HRESULT Subscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallbacktheCallback) = 0;
+    virtual HRESULT Unsubscribe (/* in */ BMDNotifications topic, /* in */ IDeckLinkNotificationCallbacktheCallback) = 0;
 
 protected:
     virtual ~IDeckLinkNotification () {} // call Release method to drop reference count
@@ -1174,10 +1170,10 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileAttributes : public IUnknown
 {
 public:
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ bool *value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ double *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ CFStringRef *value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ boolvalue) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ doublevalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ CFStringRefvalue) = 0;
 
 protected:
     virtual ~IDeckLinkProfileAttributes () {} // call Release method to drop reference count
@@ -1188,7 +1184,7 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLinkProfile **profile) = 0;
+    virtual HRESULT Next (/* out */ IDeckLinkProfile** profile) = 0;
 
 protected:
     virtual ~IDeckLinkProfileIterator () {} // call Release method to drop reference count
@@ -1199,10 +1195,10 @@ protected:
 class BMD_PUBLIC IDeckLinkProfile : public IUnknown
 {
 public:
-    virtual HRESULT GetDevice (/* out */ IDeckLink **device) = 0; // Device affected when this profile becomes active
-    virtual HRESULT IsActive (/* out */ bool *isActive) = 0;
-    virtual HRESULT SetActive (void) = 0; // Activating a profile will also change the profile on all devices enumerated by GetPeers(). Activation is not complete until IDeckLinkProfileCallback::ProfileActivated() is called
-    virtual HRESULT GetPeers (/* out */ IDeckLinkProfileIterator **profileIterator) = 0; // Profiles of other devices activated with this profile
+    virtual HRESULT GetDevice (/* out */ IDeckLink** device) = 0;      // Device affected when this profile becomes active
+    virtual HRESULT IsActive (/* out */ boolisActive) = 0;
+    virtual HRESULT SetActive (void) = 0;      // Activating a profile will also change the profile on all devices enumerated by GetPeers. Activation is not complete until IDeckLinkProfileCallback::ProfileActivated is called
+    virtual HRESULT GetPeers (/* out */ IDeckLinkProfileIterator** profileIterator) = 0;       // Profiles of other devices activated with this profile
 
 protected:
     virtual ~IDeckLinkProfile () {} // call Release method to drop reference count
@@ -1213,8 +1209,8 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileCallback : public IUnknown
 {
 public:
-    virtual HRESULT ProfileChanging (/* in */ IDeckLinkProfile *profileToBeActivated, /* in */ bool streamsWillBeForcedToStop) = 0; // Called before this device changes profile. User has an opportunity for teardown if streamsWillBeForcedToStop
-    virtual HRESULT ProfileActivated (/* in */ IDeckLinkProfile *activatedProfile) = 0; // Called after this device has been activated with a new profile
+    virtual HRESULT ProfileChanging (/* in */ IDeckLinkProfile* profileToBeActivated, /* in */ bool streamsWillBeForcedToStop) = 0;    // Called before this device changes profile. User has an opportunity for teardown if streamsWillBeForcedToStop
+    virtual HRESULT ProfileActivated (/* in */ IDeckLinkProfile* activatedProfile) = 0;        // Called after this device has been activated with a new profile
 
 protected:
     virtual ~IDeckLinkProfileCallback () {} // call Release method to drop reference count
@@ -1225,9 +1221,9 @@ protected:
 class BMD_PUBLIC IDeckLinkProfileManager : public IUnknown
 {
 public:
-    virtual HRESULT GetProfiles (/* out */ IDeckLinkProfileIterator **profileIterator) = 0; // All available profiles for this device
-    virtual HRESULT GetProfile (/* in */ BMDProfileID profileID, /* out */ IDeckLinkProfile **profile) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkProfileCallback *callback) = 0;
+    virtual HRESULT GetProfiles (/* out */ IDeckLinkProfileIterator** profileIterator) = 0;    // All available profiles for this device
+    virtual HRESULT GetProfile (/* in */ BMDProfileID profileID, /* out */ IDeckLinkProfile** profile) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkProfileCallbackcallback) = 0;
 
 protected:
     virtual ~IDeckLinkProfileManager () {} // call Release method to drop reference count
@@ -1238,11 +1234,11 @@ protected:
 class BMD_PUBLIC IDeckLinkStatus : public IUnknown
 {
 public:
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ bool *value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_t *value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ double *value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ CFStringRef *value) = 0;
-    virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void *buffer, /* in, out */ uint32_t *bufferSize) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkStatusID statusID, /* out */ boolvalue) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkStatusID statusID, /* out */ int64_tvalue) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkStatusID statusID, /* out */ doublevalue) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkStatusID statusID, /* out */ CFStringRefvalue) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDDeckLinkStatusID statusID, /* out */ void* buffer, /* in, out */ uint32_t* bufferSize) = 0;
 
 protected:
     virtual ~IDeckLinkStatus () {} // call Release method to drop reference count
@@ -1263,7 +1259,7 @@ protected:
     virtual ~IDeckLinkKeyer () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */
+/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance. */
 
 class BMD_PUBLIC IDeckLinkVideoConversion : public IUnknown
 {
@@ -1302,16 +1298,17 @@ protected:
 
 extern "C" {
 
-    IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance (void);
-    IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance (void);
-    IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance (void);
-    IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper (void);
-    IDeckLinkCocoaScreenPreviewCallback* BMD_PUBLIC CreateCocoaScreenPreview (void* /* (NSView*) */ parentView);
-    IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance (void);
-    IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPacketsInstance (void); // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
+    IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance(void);
+    IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance(void);
+    IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance(void);
+    IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper(void);
+    IDeckLinkCocoaScreenPreviewCallback* BMD_PUBLIC CreateCocoaScreenPreview(/* in */ void* /* (NSView*)*/ parentView);
+    IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance(void);
+    IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPacketsInstance(void);    // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
 
 }
 
 
-#endif      // defined(__cplusplus)
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPI_H) */
index 82663e2..dfddadb 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
@@ -46,8 +46,8 @@
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkConfiguration                       = /* 912F634B-2D4E-40A4-8AAB-8D80B73F1289 */ {0x91,0x2F,0x63,0x4B,0x2D,0x4E,0x40,0xA4,0x8A,0xAB,0x8D,0x80,0xB7,0x3F,0x12,0x89};
-BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration                = /* 138050E5-C60A-4552-BF3F-0F358049327E */ {0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E};
+BMD_CONST REFIID IID_IDeckLinkConfiguration                       = /* 912F634B-2D4E-40A4-8AAB-8D80B73F1289 */ { 0x91,0x2F,0x63,0x4B,0x2D,0x4E,0x40,0xA4,0x8A,0xAB,0x8D,0x80,0xB7,0x3F,0x12,0x89 };
+BMD_CONST REFIID IID_IDeckLinkEncoderConfiguration                = /* 138050E5-C60A-4552-BF3F-0F358049327E */ { 0x13,0x80,0x50,0xE5,0xC6,0x0A,0x45,0x52,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E };
 
 /* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */
 
@@ -56,131 +56,131 @@ enum _BMDDeckLinkConfigurationID {
 
     /* Serial port Flags */
 
-    bmdDeckLinkConfigSwapSerialRxTx                              = 'ssrt',
+    bmdDeckLinkConfigSwapSerialRxTx                              = /* 'ssrt' */ 0x73737274,
 
     /* Video Input/Output Integers */
 
-    bmdDeckLinkConfigHDMI3DPackingFormat                         = '3dpf',
-    bmdDeckLinkConfigBypass                                      = 'byps',
-    bmdDeckLinkConfigClockTimingAdjustment                       = 'ctad',
+    bmdDeckLinkConfigHDMI3DPackingFormat                         = /* '3dpf' */ 0x33647066,
+    bmdDeckLinkConfigBypass                                      = /* 'byps' */ 0x62797073,
+    bmdDeckLinkConfigClockTimingAdjustment                       = /* 'ctad' */ 0x63746164,
 
     /* Audio Input/Output Flags */
 
-    bmdDeckLinkConfigAnalogAudioConsumerLevels                   = 'aacl',
-
-    /* Video output flags */
-
-    bmdDeckLinkConfigFieldFlickerRemoval                         = 'fdfr',
-    bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion            = 'to59',
-    bmdDeckLinkConfig444SDIVideoOutput                           = '444o',
-    bmdDeckLinkConfigBlackVideoOutputDuringCapture               = 'bvoc',
-    bmdDeckLinkConfigLowLatencyVideoOutput                       = 'llvo',
-    bmdDeckLinkConfigDownConversionOnAllAnalogOutput             = 'caao',
-    bmdDeckLinkConfigSMPTELevelAOutput                           = 'smta',
-    bmdDeckLinkConfigRec2020Output                               = 'rec2',     // Ensure output is Rec.2020 colorspace
-    bmdDeckLinkConfigQuadLinkSDIVideoOutputSquareDivisionSplit   = 'SDQS',
+    bmdDeckLinkConfigAnalogAudioConsumerLevels                   = /* 'aacl' */ 0x6161636C,
+    bmdDeckLinkConfigSwapHDMICh3AndCh4OnInput                    = /* 'hi34' */ 0x68693334,
+    bmdDeckLinkConfigSwapHDMICh3AndCh4OnOutput                   = /* 'ho34' */ 0x686F3334,
 
     /* Video Output Flags */
 
-    bmdDeckLinkConfigOutput1080pAsPsF                            = 'pfpr',
+    bmdDeckLinkConfigFieldFlickerRemoval                         = /* 'fdfr' */ 0x66646672,
+    bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion            = /* 'to59' */ 0x746F3539,
+    bmdDeckLinkConfig444SDIVideoOutput                           = /* '444o' */ 0x3434346F,
+    bmdDeckLinkConfigBlackVideoOutputDuringCapture               = /* 'bvoc' */ 0x62766F63,
+    bmdDeckLinkConfigLowLatencyVideoOutput                       = /* 'llvo' */ 0x6C6C766F,
+    bmdDeckLinkConfigDownConversionOnAllAnalogOutput             = /* 'caao' */ 0x6361616F,
+    bmdDeckLinkConfigSMPTELevelAOutput                           = /* 'smta' */ 0x736D7461,
+    bmdDeckLinkConfigRec2020Output                               = /* 'rec2' */ 0x72656332,    // Ensure output is Rec.2020 colorspace
+    bmdDeckLinkConfigQuadLinkSDIVideoOutputSquareDivisionSplit   = /* 'SDQS' */ 0x53445153,
+    bmdDeckLinkConfigOutput1080pAsPsF                            = /* 'pfpr' */ 0x70667072,
 
     /* Video Output Integers */
 
-    bmdDeckLinkConfigVideoOutputConnection                       = 'vocn',
-    bmdDeckLinkConfigVideoOutputConversionMode                   = 'vocm',
-    bmdDeckLinkConfigAnalogVideoOutputFlags                      = 'avof',
-    bmdDeckLinkConfigReferenceInputTimingOffset                  = 'glot',
-    bmdDeckLinkConfigVideoOutputIdleOperation                    = 'voio',
-    bmdDeckLinkConfigDefaultVideoOutputMode                      = 'dvom',
-    bmdDeckLinkConfigDefaultVideoOutputModeFlags                 = 'dvof',
-    bmdDeckLinkConfigSDIOutputLinkConfiguration                  = 'solc',
-    bmdDeckLinkConfigHDMITimecodePacking                         = 'htpk',
-    bmdDeckLinkConfigPlaybackGroup                               = 'plgr',
+    bmdDeckLinkConfigVideoOutputConnection                       = /* 'vocn' */ 0x766F636E,
+    bmdDeckLinkConfigVideoOutputConversionMode                   = /* 'vocm' */ 0x766F636D,
+    bmdDeckLinkConfigAnalogVideoOutputFlags                      = /* 'avof' */ 0x61766F66,
+    bmdDeckLinkConfigReferenceInputTimingOffset                  = /* 'glot' */ 0x676C6F74,
+    bmdDeckLinkConfigVideoOutputIdleOperation                    = /* 'voio' */ 0x766F696F,
+    bmdDeckLinkConfigDefaultVideoOutputMode                      = /* 'dvom' */ 0x64766F6D,
+    bmdDeckLinkConfigDefaultVideoOutputModeFlags                 = /* 'dvof' */ 0x64766F66,
+    bmdDeckLinkConfigSDIOutputLinkConfiguration                  = /* 'solc' */ 0x736F6C63,
+    bmdDeckLinkConfigHDMITimecodePacking                         = /* 'htpk' */ 0x6874706B,
+    bmdDeckLinkConfigPlaybackGroup                               = /* 'plgr' */ 0x706C6772,
 
     /* Video Output Floats */
 
-    bmdDeckLinkConfigVideoOutputComponentLumaGain                = 'oclg',
-    bmdDeckLinkConfigVideoOutputComponentChromaBlueGain          = 'occb',
-    bmdDeckLinkConfigVideoOutputComponentChromaRedGain           = 'occr',
-    bmdDeckLinkConfigVideoOutputCompositeLumaGain                = 'oilg',
-    bmdDeckLinkConfigVideoOutputCompositeChromaGain              = 'oicg',
-    bmdDeckLinkConfigVideoOutputSVideoLumaGain                   = 'oslg',
-    bmdDeckLinkConfigVideoOutputSVideoChromaGain                 = 'oscg',
+    bmdDeckLinkConfigVideoOutputComponentLumaGain                = /* 'oclg' */ 0x6F636C67,
+    bmdDeckLinkConfigVideoOutputComponentChromaBlueGain          = /* 'occb' */ 0x6F636362,
+    bmdDeckLinkConfigVideoOutputComponentChromaRedGain           = /* 'occr' */ 0x6F636372,
+    bmdDeckLinkConfigVideoOutputCompositeLumaGain                = /* 'oilg' */ 0x6F696C67,
+    bmdDeckLinkConfigVideoOutputCompositeChromaGain              = /* 'oicg' */ 0x6F696367,
+    bmdDeckLinkConfigVideoOutputSVideoLumaGain                   = /* 'oslg' */ 0x6F736C67,
+    bmdDeckLinkConfigVideoOutputSVideoChromaGain                 = /* 'oscg' */ 0x6F736367,
 
     /* Video Input Flags */
 
-    bmdDeckLinkConfigVideoInputScanning                          = 'visc',     // Applicable to H264 Pro Recorder only
-    bmdDeckLinkConfigUseDedicatedLTCInput                        = 'dltc',     // Use timecode from LTC input instead of SDI stream
-    bmdDeckLinkConfigSDIInput3DPayloadOverride                   = '3dds',
-
-    /* Video Input Flags */
-
-    bmdDeckLinkConfigCapture1080pAsPsF                           = 'cfpr',
+    bmdDeckLinkConfigVideoInputScanning                          = /* 'visc' */ 0x76697363,    // Applicable to H264 Pro Recorder only
+    bmdDeckLinkConfigUseDedicatedLTCInput                        = /* 'dltc' */ 0x646C7463,    // Use timecode from LTC input instead of SDI stream
+    bmdDeckLinkConfigSDIInput3DPayloadOverride                   = /* '3dds' */ 0x33646473,
+    bmdDeckLinkConfigCapture1080pAsPsF                           = /* 'cfpr' */ 0x63667072,
 
     /* Video Input Integers */
 
-    bmdDeckLinkConfigVideoInputConnection                        = 'vicn',
-    bmdDeckLinkConfigAnalogVideoInputFlags                       = 'avif',
-    bmdDeckLinkConfigVideoInputConversionMode                    = 'vicm',
-    bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame      = 'pdif',
-    bmdDeckLinkConfigVANCSourceLine1Mapping                      = 'vsl1',
-    bmdDeckLinkConfigVANCSourceLine2Mapping                      = 'vsl2',
-    bmdDeckLinkConfigVANCSourceLine3Mapping                      = 'vsl3',
-    bmdDeckLinkConfigCapturePassThroughMode                      = 'cptm',
-    bmdDeckLinkConfigCaptureGroup                                = 'cpgr',
+    bmdDeckLinkConfigVideoInputConnection                        = /* 'vicn' */ 0x7669636E,
+    bmdDeckLinkConfigAnalogVideoInputFlags                       = /* 'avif' */ 0x61766966,
+    bmdDeckLinkConfigVideoInputConversionMode                    = /* 'vicm' */ 0x7669636D,
+    bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame      = /* 'pdif' */ 0x70646966,
+    bmdDeckLinkConfigVANCSourceLine1Mapping                      = /* 'vsl1' */ 0x76736C31,
+    bmdDeckLinkConfigVANCSourceLine2Mapping                      = /* 'vsl2' */ 0x76736C32,
+    bmdDeckLinkConfigVANCSourceLine3Mapping                      = /* 'vsl3' */ 0x76736C33,
+    bmdDeckLinkConfigCapturePassThroughMode                      = /* 'cptm' */ 0x6370746D,
+    bmdDeckLinkConfigCaptureGroup                                = /* 'cpgr' */ 0x63706772,
 
     /* Video Input Floats */
 
-    bmdDeckLinkConfigVideoInputComponentLumaGain                 = 'iclg',
-    bmdDeckLinkConfigVideoInputComponentChromaBlueGain           = 'iccb',
-    bmdDeckLinkConfigVideoInputComponentChromaRedGain            = 'iccr',
-    bmdDeckLinkConfigVideoInputCompositeLumaGain                 = 'iilg',
-    bmdDeckLinkConfigVideoInputCompositeChromaGain               = 'iicg',
-    bmdDeckLinkConfigVideoInputSVideoLumaGain                    = 'islg',
-    bmdDeckLinkConfigVideoInputSVideoChromaGain                  = 'iscg',
+    bmdDeckLinkConfigVideoInputComponentLumaGain                 = /* 'iclg' */ 0x69636C67,
+    bmdDeckLinkConfigVideoInputComponentChromaBlueGain           = /* 'iccb' */ 0x69636362,
+    bmdDeckLinkConfigVideoInputComponentChromaRedGain            = /* 'iccr' */ 0x69636372,
+    bmdDeckLinkConfigVideoInputCompositeLumaGain                 = /* 'iilg' */ 0x69696C67,
+    bmdDeckLinkConfigVideoInputCompositeChromaGain               = /* 'iicg' */ 0x69696367,
+    bmdDeckLinkConfigVideoInputSVideoLumaGain                    = /* 'islg' */ 0x69736C67,
+    bmdDeckLinkConfigVideoInputSVideoChromaGain                  = /* 'iscg' */ 0x69736367,
+
+    /* Keying Integers */
+
+    bmdDeckLinkConfigInternalKeyingAncillaryDataSource           = /* 'ikas' */ 0x696B6173,
 
     /* Audio Input Flags */
 
-    bmdDeckLinkConfigMicrophonePhantomPower                      = 'mphp',
+    bmdDeckLinkConfigMicrophonePhantomPower                      = /* 'mphp' */ 0x6D706870,
 
     /* Audio Input Integers */
 
-    bmdDeckLinkConfigAudioInputConnection                        = 'aicn',
+    bmdDeckLinkConfigAudioInputConnection                        = /* 'aicn' */ 0x6169636E,
 
     /* Audio Input Floats */
 
-    bmdDeckLinkConfigAnalogAudioInputScaleChannel1               = 'ais1',
-    bmdDeckLinkConfigAnalogAudioInputScaleChannel2               = 'ais2',
-    bmdDeckLinkConfigAnalogAudioInputScaleChannel3               = 'ais3',
-    bmdDeckLinkConfigAnalogAudioInputScaleChannel4               = 'ais4',
-    bmdDeckLinkConfigDigitalAudioInputScale                      = 'dais',
-    bmdDeckLinkConfigMicrophoneInputGain                         = 'micg',
+    bmdDeckLinkConfigAnalogAudioInputScaleChannel1               = /* 'ais1' */ 0x61697331,
+    bmdDeckLinkConfigAnalogAudioInputScaleChannel2               = /* 'ais2' */ 0x61697332,
+    bmdDeckLinkConfigAnalogAudioInputScaleChannel3               = /* 'ais3' */ 0x61697333,
+    bmdDeckLinkConfigAnalogAudioInputScaleChannel4               = /* 'ais4' */ 0x61697334,
+    bmdDeckLinkConfigDigitalAudioInputScale                      = /* 'dais' */ 0x64616973,
+    bmdDeckLinkConfigMicrophoneInputGain                         = /* 'micg' */ 0x6D696367,
 
     /* Audio Output Integers */
 
-    bmdDeckLinkConfigAudioOutputAESAnalogSwitch                  = 'aoaa',
+    bmdDeckLinkConfigAudioOutputAESAnalogSwitch                  = /* 'aoaa' */ 0x616F6161,
 
     /* Audio Output Floats */
 
-    bmdDeckLinkConfigAnalogAudioOutputScaleChannel1              = 'aos1',
-    bmdDeckLinkConfigAnalogAudioOutputScaleChannel2              = 'aos2',
-    bmdDeckLinkConfigAnalogAudioOutputScaleChannel3              = 'aos3',
-    bmdDeckLinkConfigAnalogAudioOutputScaleChannel4              = 'aos4',
-    bmdDeckLinkConfigDigitalAudioOutputScale                     = 'daos',
-    bmdDeckLinkConfigHeadphoneVolume                             = 'hvol',
+    bmdDeckLinkConfigAnalogAudioOutputScaleChannel1              = /* 'aos1' */ 0x616F7331,
+    bmdDeckLinkConfigAnalogAudioOutputScaleChannel2              = /* 'aos2' */ 0x616F7332,
+    bmdDeckLinkConfigAnalogAudioOutputScaleChannel3              = /* 'aos3' */ 0x616F7333,
+    bmdDeckLinkConfigAnalogAudioOutputScaleChannel4              = /* 'aos4' */ 0x616F7334,
+    bmdDeckLinkConfigDigitalAudioOutputScale                     = /* 'daos' */ 0x64616F73,
+    bmdDeckLinkConfigHeadphoneVolume                             = /* 'hvol' */ 0x68766F6C,
 
     /* Device Information Strings */
 
-    bmdDeckLinkConfigDeviceInformationLabel                      = 'dila',
-    bmdDeckLinkConfigDeviceInformationSerialNumber               = 'disn',
-    bmdDeckLinkConfigDeviceInformationCompany                    = 'dico',
-    bmdDeckLinkConfigDeviceInformationPhone                      = 'diph',
-    bmdDeckLinkConfigDeviceInformationEmail                      = 'diem',
-    bmdDeckLinkConfigDeviceInformationDate                       = 'dida',
+    bmdDeckLinkConfigDeviceInformationLabel                      = /* 'dila' */ 0x64696C61,
+    bmdDeckLinkConfigDeviceInformationSerialNumber               = /* 'disn' */ 0x6469736E,
+    bmdDeckLinkConfigDeviceInformationCompany                    = /* 'dico' */ 0x6469636F,
+    bmdDeckLinkConfigDeviceInformationPhone                      = /* 'diph' */ 0x64697068,
+    bmdDeckLinkConfigDeviceInformationEmail                      = /* 'diem' */ 0x6469656D,
+    bmdDeckLinkConfigDeviceInformationDate                       = /* 'dida' */ 0x64696461,
 
     /* Deck Control Integers */
 
-    bmdDeckLinkConfigDeckControlConnection                       = 'dcco'
+    bmdDeckLinkConfigDeckControlConnection                       = /* 'dcco' */ 0x6463636F
 };
 
 /* Enum BMDDeckLinkEncoderConfigurationID - DeckLink Encoder Configuration ID */
@@ -190,27 +190,29 @@ enum _BMDDeckLinkEncoderConfigurationID {
 
     /* Video Encoder Integers */
 
-    bmdDeckLinkEncoderConfigPreferredBitDepth                    = 'epbr',
-    bmdDeckLinkEncoderConfigFrameCodingMode                      = 'efcm',
+    bmdDeckLinkEncoderConfigPreferredBitDepth                    = /* 'epbr' */ 0x65706272,
+    bmdDeckLinkEncoderConfigFrameCodingMode                      = /* 'efcm' */ 0x6566636D,
 
     /* HEVC/H.265 Encoder Integers */
 
-    bmdDeckLinkEncoderConfigH265TargetBitrate                    = 'htbr',
+    bmdDeckLinkEncoderConfigH265TargetBitrate                    = /* 'htbr' */ 0x68746272,
 
     /* DNxHR/DNxHD Compression ID */
 
-    bmdDeckLinkEncoderConfigDNxHRCompressionID                   = 'dcid',
+    bmdDeckLinkEncoderConfigDNxHRCompressionID                   = /* 'dcid' */ 0x64636964,
 
     /* DNxHR/DNxHD Level */
 
-    bmdDeckLinkEncoderConfigDNxHRLevel                           = 'dlev',
+    bmdDeckLinkEncoderConfigDNxHRLevel                           = /* 'dlev' */ 0x646C6576,
 
     /* Encoded Sample Decriptions */
 
-    bmdDeckLinkEncoderConfigMPEG4SampleDescription               = 'stsE',     // Full MPEG4 sample description (aka SampleEntry of an 'stsd' atom-box). Useful for MediaFoundation, QuickTime, MKV and more
-    bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc               = 'esds'      // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more
+    bmdDeckLinkEncoderConfigMPEG4SampleDescription               = /* 'stsE' */ 0x73747345,    // Full MPEG4 sample description (aka SampleEntry of an 'stsd' atom-box). Useful for MediaFoundation, QuickTime, MKV and more
+    bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc               = /* 'esds' */ 0x65736473     // Sample description extensions only (atom stream, each with size and fourCC header). Useful for AVFoundation, VideoToolbox, MKV and more
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkConfiguration;
@@ -222,13 +224,13 @@ class BMD_PUBLIC IDeckLinkConfiguration : public IUnknown
 {
 public:
     virtual HRESULT SetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ bool value) = 0;
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ bool *value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ boolvalue) = 0;
     virtual HRESULT SetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ int64_t value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_t *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ int64_tvalue) = 0;
     virtual HRESULT SetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ double value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ double *value) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ doublevalue) = 0;
     virtual HRESULT SetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* in */ CFStringRef value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRef *value) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkConfigurationID cfgID, /* out */ CFStringRefvalue) = 0;
     virtual HRESULT WriteConfigurationToPreferences (void) = 0;
 
 protected:
@@ -241,14 +243,14 @@ class BMD_PUBLIC IDeckLinkEncoderConfiguration : public IUnknown
 {
 public:
     virtual HRESULT SetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ bool value) = 0;
-    virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ bool *value) = 0;
+    virtual HRESULT GetFlag (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ boolvalue) = 0;
     virtual HRESULT SetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ int64_t value) = 0;
-    virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_t *value) = 0;
+    virtual HRESULT GetInt (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ int64_tvalue) = 0;
     virtual HRESULT SetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ double value) = 0;
-    virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ double *value) = 0;
+    virtual HRESULT GetFloat (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ doublevalue) = 0;
     virtual HRESULT SetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* in */ CFStringRef value) = 0;
-    virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ CFStringRef *value) = 0;
-    virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void *buffer /* optional */, /* in, out */ uint32_t *bufferSize) = 0;
+    virtual HRESULT GetString (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ CFStringRefvalue) = 0;
+    virtual HRESULT GetBytes (/* in */ BMDDeckLinkEncoderConfigurationID cfgID, /* out */ void* buffer /* optional */, /* in, out */ uint32_t* bufferSize) = 0;
 
 protected:
     virtual ~IDeckLinkEncoderConfiguration () {} // call Release method to drop reference count
@@ -262,4 +264,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */
index 8688536..4857846 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback           = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ {0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF};
-BMD_CONST REFIID IID_IDeckLinkDeckControl                         = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ {0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE};
+BMD_CONST REFIID IID_IDeckLinkDeckControlStatusCallback           = /* 53436FFB-B434-4906-BADC-AE3060FFE8EF */ { 0x53,0x43,0x6F,0xFB,0xB4,0x34,0x49,0x06,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF };
+BMD_CONST REFIID IID_IDeckLinkDeckControl                         = /* 8E1C3ACE-19C7-4E00-8B92-D80431D958BE */ { 0x8E,0x1C,0x3A,0xCE,0x19,0xC7,0x4E,0x00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE };
 
 /* Enum BMDDeckControlMode - DeckControl mode */
 
 typedef uint32_t BMDDeckControlMode;
 enum _BMDDeckControlMode {
-    bmdDeckControlNotOpened                                      = 'ntop',
-    bmdDeckControlVTRControlMode                                 = 'vtrc',
-    bmdDeckControlExportMode                                     = 'expm',
-    bmdDeckControlCaptureMode                                    = 'capm'
+    bmdDeckControlNotOpened                                      = /* 'ntop' */ 0x6E746F70,
+    bmdDeckControlVTRControlMode                                 = /* 'vtrc' */ 0x76747263,
+    bmdDeckControlExportMode                                     = /* 'expm' */ 0x6578706D,
+    bmdDeckControlCaptureMode                                    = /* 'capm' */ 0x6361706D
 };
 
 /* Enum BMDDeckControlEvent - DeckControl event */
 
 typedef uint32_t BMDDeckControlEvent;
 enum _BMDDeckControlEvent {
-    bmdDeckControlAbortedEvent                                   = 'abte',     // This event is triggered when a capture or edit-to-tape operation is aborted.
+    bmdDeckControlAbortedEvent                                   = /* 'abte' */ 0x61627465,    // This event is triggered when a capture or edit-to-tape operation is aborted.
 
     /* Export-To-Tape events */
 
-    bmdDeckControlPrepareForExportEvent                          = 'pfee',     // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point.
-    bmdDeckControlExportCompleteEvent                            = 'exce',     // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback.
+    bmdDeckControlPrepareForExportEvent                          = /* 'pfee' */ 0x70666565,    // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback should be called at this point.
+    bmdDeckControlExportCompleteEvent                            = /* 'exce' */ 0x65786365,    // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback. Upon reception of this event the deck's control mode is set back to bmdDeckControlVTRControlMode.
 
     /* Capture events */
 
-    bmdDeckControlPrepareForCaptureEvent                         = 'pfce',     // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid.
-    bmdDeckControlCaptureCompleteEvent                           = 'ccev'      // This event is triggered a few frames after reaching the out-point.
+    bmdDeckControlPrepareForCaptureEvent                         = /* 'pfce' */ 0x70666365,    // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid.
+    bmdDeckControlCaptureCompleteEvent                           = /* 'ccev' */ 0x63636576     // This event is triggered a few frames after reaching the out-point. Upon reception of this event the deck's control mode is set back to bmdDeckControlVTRControlMode.
 };
 
 /* Enum BMDDeckControlVTRControlState - VTR Control state */
 
 typedef uint32_t BMDDeckControlVTRControlState;
 enum _BMDDeckControlVTRControlState {
-    bmdDeckControlNotInVTRControlMode                            = 'nvcm',
-    bmdDeckControlVTRControlPlaying                              = 'vtrp',
-    bmdDeckControlVTRControlRecording                            = 'vtrr',
-    bmdDeckControlVTRControlStill                                = 'vtra',
-    bmdDeckControlVTRControlShuttleForward                       = 'vtsf',
-    bmdDeckControlVTRControlShuttleReverse                       = 'vtsr',
-    bmdDeckControlVTRControlJogForward                           = 'vtjf',
-    bmdDeckControlVTRControlJogReverse                           = 'vtjr',
-    bmdDeckControlVTRControlStopped                              = 'vtro'
+    bmdDeckControlNotInVTRControlMode                            = /* 'nvcm' */ 0x6E76636D,
+    bmdDeckControlVTRControlPlaying                              = /* 'vtrp' */ 0x76747270,
+    bmdDeckControlVTRControlRecording                            = /* 'vtrr' */ 0x76747272,
+    bmdDeckControlVTRControlStill                                = /* 'vtra' */ 0x76747261,
+    bmdDeckControlVTRControlShuttleForward                       = /* 'vtsf' */ 0x76747366,
+    bmdDeckControlVTRControlShuttleReverse                       = /* 'vtsr' */ 0x76747372,
+    bmdDeckControlVTRControlJogForward                           = /* 'vtjf' */ 0x76746A66,
+    bmdDeckControlVTRControlJogReverse                           = /* 'vtjr' */ 0x76746A72,
+    bmdDeckControlVTRControlStopped                              = /* 'vtro' */ 0x7674726F
 };
 
 /* Enum BMDDeckControlStatusFlags - Deck Control status flags */
@@ -128,24 +128,26 @@ enum _BMDDeckControlExportModeOpsFlags {
 
 typedef uint32_t BMDDeckControlError;
 enum _BMDDeckControlError {
-    bmdDeckControlNoError                                        = 'noer',
-    bmdDeckControlModeError                                      = 'moer',
-    bmdDeckControlMissedInPointError                             = 'mier',
-    bmdDeckControlDeckTimeoutError                               = 'dter',
-    bmdDeckControlCommandFailedError                             = 'cfer',
-    bmdDeckControlDeviceAlreadyOpenedError                       = 'dalo',
-    bmdDeckControlFailedToOpenDeviceError                        = 'fder',
-    bmdDeckControlInLocalModeError                               = 'lmer',
-    bmdDeckControlEndOfTapeError                                 = 'eter',
-    bmdDeckControlUserAbortError                                 = 'uaer',
-    bmdDeckControlNoTapeInDeckError                              = 'nter',
-    bmdDeckControlNoVideoFromCardError                           = 'nvfc',
-    bmdDeckControlNoCommunicationError                           = 'ncom',
-    bmdDeckControlBufferTooSmallError                            = 'btsm',
-    bmdDeckControlBadChecksumError                               = 'chks',
-    bmdDeckControlUnknownError                                   = 'uner'
+    bmdDeckControlNoError                                        = /* 'noer' */ 0x6E6F6572,
+    bmdDeckControlModeError                                      = /* 'moer' */ 0x6D6F6572,
+    bmdDeckControlMissedInPointError                             = /* 'mier' */ 0x6D696572,
+    bmdDeckControlDeckTimeoutError                               = /* 'dter' */ 0x64746572,
+    bmdDeckControlCommandFailedError                             = /* 'cfer' */ 0x63666572,
+    bmdDeckControlDeviceAlreadyOpenedError                       = /* 'dalo' */ 0x64616C6F,
+    bmdDeckControlFailedToOpenDeviceError                        = /* 'fder' */ 0x66646572,
+    bmdDeckControlInLocalModeError                               = /* 'lmer' */ 0x6C6D6572,
+    bmdDeckControlEndOfTapeError                                 = /* 'eter' */ 0x65746572,
+    bmdDeckControlUserAbortError                                 = /* 'uaer' */ 0x75616572,
+    bmdDeckControlNoTapeInDeckError                              = /* 'nter' */ 0x6E746572,
+    bmdDeckControlNoVideoFromCardError                           = /* 'nvfc' */ 0x6E766663,
+    bmdDeckControlNoCommunicationError                           = /* 'ncom' */ 0x6E636F6D,
+    bmdDeckControlBufferTooSmallError                            = /* 'btsm' */ 0x6274736D,
+    bmdDeckControlBadChecksumError                               = /* 'chks' */ 0x63686B73,
+    bmdDeckControlUnknownError                                   = /* 'uner' */ 0x756E6572
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkDeckControlStatusCallback;
@@ -170,39 +172,39 @@ protected:
 class BMD_PUBLIC IDeckLinkDeckControl : public IUnknown
 {
 public:
-    virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlError *error) = 0;
+    virtual HRESULT Open (/* in */ BMDTimeScale timeScale, /* in */ BMDTimeValue timeValue, /* in */ bool timecodeIsDropFrame, /* out */ BMDDeckControlErrorerror) = 0;
     virtual HRESULT Close (/* in */ bool standbyOn) = 0;
-    virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode *mode, /* out */ BMDDeckControlVTRControlState *vtrControlState, /* out */ BMDDeckControlStatusFlags *flags) = 0;
+    virtual HRESULT GetCurrentState (/* out */ BMDDeckControlMode* mode, /* out */ BMDDeckControlVTRControlState* vtrControlState, /* out */ BMDDeckControlStatusFlags* flags) = 0;
     virtual HRESULT SetStandby (/* in */ bool standbyOn) = 0;
-    virtual HRESULT SendCommand (/* in */ uint8_t *inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t *outBuffer, /* out */ uint32_t *outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Play (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Stop (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Eject (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT StepForward (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT StepBack (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetTimecodeString (/* out */ CFStringRef *currentTimeCode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode **currentTimecode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD *currentTimecode, /* out */ BMDDeckControlError *error) = 0;
+    virtual HRESULT SendCommand (/* in */ uint8_t* inBuffer, /* in */ uint32_t inBufferSize, /* out */ uint8_t* outBuffer, /* out */ uint32_t* outDataSize, /* in */ uint32_t outBufferSize, /* out */ BMDDeckControlError* error) = 0;
+    virtual HRESULT Play (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Stop (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT TogglePlayStop (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Eject (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT GoToTimecode (/* in */ BMDTimecodeBCD timecode, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT FastForward (/* in */ bool viewTape, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Rewind (/* in */ bool viewTape, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT StepForward (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT StepBack (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Jog (/* in */ double rate, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT Shuttle (/* in */ double rate, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT GetTimecodeString (/* out */ CFStringRef* currentTimeCode, /* out */ BMDDeckControlError* error) = 0;
+    virtual HRESULT GetTimecode (/* out */ IDeckLinkTimecode** currentTimecode, /* out */ BMDDeckControlError* error) = 0;
+    virtual HRESULT GetTimecodeBCD (/* out */ BMDTimecodeBCD* currentTimecode, /* out */ BMDDeckControlError* error) = 0;
     virtual HRESULT SetPreroll (/* in */ uint32_t prerollSeconds) = 0;
-    virtual HRESULT GetPreroll (/* out */ uint32_t *prerollSeconds) = 0;
+    virtual HRESULT GetPreroll (/* out */ uint32_tprerollSeconds) = 0;
     virtual HRESULT SetExportOffset (/* in */ int32_t exportOffsetFields) = 0;
-    virtual HRESULT GetExportOffset (/* out */ int32_t *exportOffsetFields) = 0;
-    virtual HRESULT GetManualExportOffset (/* out */ int32_t *deckManualExportOffsetFields) = 0;
+    virtual HRESULT GetExportOffset (/* out */ int32_texportOffsetFields) = 0;
+    virtual HRESULT GetManualExportOffset (/* out */ int32_tdeckManualExportOffsetFields) = 0;
     virtual HRESULT SetCaptureOffset (/* in */ int32_t captureOffsetFields) = 0;
-    virtual HRESULT GetCaptureOffset (/* out */ int32_t *captureOffsetFields) = 0;
-    virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT GetDeviceID (/* out */ uint16_t *deviceId, /* out */ BMDDeckControlError *error) = 0;
+    virtual HRESULT GetCaptureOffset (/* out */ int32_tcaptureOffsetFields) = 0;
+    virtual HRESULT StartExport (/* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* in */ BMDDeckControlExportModeOpsFlags exportModeOps, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT StartCapture (/* in */ bool useVITC, /* in */ BMDTimecodeBCD inTimecode, /* in */ BMDTimecodeBCD outTimecode, /* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT GetDeviceID (/* out */ uint16_t* deviceId, /* out */ BMDDeckControlError* error) = 0;
     virtual HRESULT Abort (void) = 0;
-    virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlError *error) = 0;
-    virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallback *callback) = 0;
+    virtual HRESULT CrashRecordStart (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT CrashRecordStop (/* out */ BMDDeckControlErrorerror) = 0;
+    virtual HRESULT SetCallback (/* in */ IDeckLinkDeckControlStatusCallbackcallback) = 0;
 
 protected:
     virtual ~IDeckLinkDeckControl () {} // call Release method to drop reference count
@@ -216,4 +218,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPIDECKCONTROL_H) */
index 05337e7..dcf846d 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLink                                    = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ {0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91};
+BMD_CONST REFIID IID_IDeckLink                                    = /* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */ { 0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91 };
+
+#if defined(__cplusplus)
 
 // Forward Declarations
 
 class IDeckLink;
 
-/* Interface IDeckLink - represents a DeckLink device */
+/* Interface IDeckLink - Represents a DeckLink device */
 
 class BMD_PUBLIC IDeckLink : public IUnknown
 {
 public:
-    virtual HRESULT GetModelName (/* out */ CFStringRef *modelName) = 0;
-    virtual HRESULT GetDisplayName (/* out */ CFStringRef *displayName) = 0;
+    virtual HRESULT GetModelName (/* out */ CFStringRefmodelName) = 0;
+    virtual HRESULT GetDisplayName (/* out */ CFStringRefdisplayName) = 0;
 
 protected:
     virtual ~IDeckLink () {} // call Release method to drop reference count
@@ -72,4 +74,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPIDISCOVERY_H) */
index c5309e3..66246f0 100644 (file)
@@ -1,27 +1,40 @@
 /* -LICENSE-START-
 ** Copyright (c) 2009 Blackmagic Design
-**
-** Permission is hereby granted, free of charge, to any person or organization
-** obtaining a copy of the software and accompanying documentation covered by
-** this license (the "Software") to use, reproduce, display, distribute,
-** execute, and transmit the Software, and to prepare derivative works of the
-** Software, and to permit third-parties to whom the Software is furnished to
-** do so, all subject to the following:
-**
-** The copyright notices in the Software and this entire statement, including
-** the above license grant, this restriction and the following disclaimer,
-** must be included in all copies of the Software, in whole or in part, and
-** all derivative works of the Software, unless such copies or derivative
-** works are solely in the form of machine-executable object code generated by
-** a source language processor.
-**
-** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+**  
+** Permission is hereby granted, free of charge, to any person or organization 
+** obtaining a copy of the software and accompanying documentation (the 
+** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+** and transmit the Software, and to prepare derivative works of the Software, 
+** and to permit third-parties to whom the Software is furnished to do so, in 
+** accordance with:
+** 
+** (1) if the Software is obtained from Blackmagic Design, the End User License 
+** Agreement for the Software Development Kit (“EULA”) available at 
+** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
+** 
+** (2) if the Software is obtained from any third party, such licensing terms 
+** as notified by that third party,
+** 
+** and all subject to the following:
+** 
+** (3) the copyright notices in the Software and this entire statement, 
+** including the above license grant, this restriction and the following 
+** disclaimer, must be included in all copies of the Software, in whole or in 
+** part, and all derivative works of the Software, unless such copies or 
+** derivative works are solely in the form of machine-executable object code 
+** generated by a source language processor.
+** 
+** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 ** DEALINGS IN THE SOFTWARE.
+** 
+** A copy of the Software is available free of charge at 
+** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+** 
 ** -LICENSE-END-
 */
 /* DeckLinkAPIDispatch.cpp */
@@ -77,84 +90,82 @@ static void InitDeckLinkAPI (void)
        }
 }
 
-#if 0
 bool           IsDeckLinkAPIPresent (void)
 {
        // If the DeckLink API bundle was successfully loaded, return this knowledge to the caller
        if (gDeckLinkAPIBundleRef != NULL)
                return true;
-
+       
        return false;
 }
-#endif
 
 IDeckLinkIterator*             CreateDeckLinkIteratorInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateIteratorFunc == NULL)
                return NULL;
-
+       
        return gCreateIteratorFunc();
 }
 
 IDeckLinkAPIInformation*       CreateDeckLinkAPIInformationInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateAPIInformationFunc == NULL)
                return NULL;
-
+       
        return gCreateAPIInformationFunc();
 }
 
 IDeckLinkGLScreenPreviewHelper*                CreateOpenGLScreenPreviewHelper (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateOpenGLPreviewFunc == NULL)
                return NULL;
-
+       
        return gCreateOpenGLPreviewFunc();
 }
 
 IDeckLinkCocoaScreenPreviewCallback*   CreateCocoaScreenPreview (void* parentView)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateCocoaPreviewFunc == NULL)
                return NULL;
-
+       
        return gCreateCocoaPreviewFunc(parentView);
 }
 
 IDeckLinkVideoConversion* CreateVideoConversionInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateVideoConversionFunc == NULL)
                return NULL;
-
+       
        return gCreateVideoConversionFunc();
 }
 
 IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateDeckLinkDiscoveryFunc == NULL)
                return NULL;
-
+       
        return gCreateDeckLinkDiscoveryFunc();
 }
 
 IDeckLinkVideoFrameAncillaryPackets* CreateVideoFrameAncillaryPacketsInstance (void)
 {
        pthread_once(&gDeckLinkOnceControl, InitDeckLinkAPI);
-
+       
        if (gCreateVideoFrameAncillaryPacketsFunc == NULL)
                return NULL;
-
+       
        return gCreateVideoFrameAncillaryPacketsFunc();
 }
 
index b7eeb08..52271a2 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator                 = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35};
-BMD_CONST REFIID IID_IDeckLinkDisplayMode                         = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78};
+BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator                 = /* 9C88499F-F601-4021-B80B-032E4EB41C35 */ { 0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35 };
+BMD_CONST REFIID IID_IDeckLinkDisplayMode                         = /* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */ { 0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78 };
 
-/* Enum BMDDisplayMode - Video display modes */
+/* Enum BMDDisplayMode - BMDDisplayMode enumerates the video modes supported. */
 
 typedef uint32_t BMDDisplayMode;
 enum _BMDDisplayMode {
 
     /* SD Modes */
 
-    bmdModeNTSC                                                  = 'ntsc',
-    bmdModeNTSC2398                                              = 'nt23',     // 3:2 pulldown
-    bmdModePAL                                                   = 'pal ',
-    bmdModeNTSCp                                                 = 'ntsp',
-    bmdModePALp                                                  = 'palp',
+    bmdModeNTSC                                                  = /* 'ntsc' */ 0x6E747363,
+    bmdModeNTSC2398                                              = /* 'nt23' */ 0x6E743233,    // 3:2 pulldown
+    bmdModePAL                                                   = /* 'pal ' */ 0x70616C20,
+    bmdModeNTSCp                                                 = /* 'ntsp' */ 0x6E747370,
+    bmdModePALp                                                  = /* 'palp' */ 0x70616C70,
 
     /* HD 1080 Modes */
 
-    bmdModeHD1080p2398                                           = '23ps',
-    bmdModeHD1080p24                                             = '24ps',
-    bmdModeHD1080p25                                             = 'Hp25',
-    bmdModeHD1080p2997                                           = 'Hp29',
-    bmdModeHD1080p30                                             = 'Hp30',
-    bmdModeHD1080p4795                                           = 'Hp47',
-    bmdModeHD1080p48                                             = 'Hp48',
-    bmdModeHD1080p50                                             = 'Hp50',
-    bmdModeHD1080p5994                                           = 'Hp59',
-    bmdModeHD1080p6000                                           = 'Hp60',     // N.B. This _really_ is 60.00 Hz.
-    bmdModeHD1080p9590                                           = 'Hp95',
-    bmdModeHD1080p96                                             = 'Hp96',
-    bmdModeHD1080p100                                            = 'Hp10',
-    bmdModeHD1080p11988                                          = 'Hp11',
-    bmdModeHD1080p120                                            = 'Hp12',
-    bmdModeHD1080i50                                             = 'Hi50',
-    bmdModeHD1080i5994                                           = 'Hi59',
-    bmdModeHD1080i6000                                           = 'Hi60',     // N.B. This _really_ is 60.00 Hz.
+    bmdModeHD1080p2398                                           = /* '23ps' */ 0x32337073,
+    bmdModeHD1080p24                                             = /* '24ps' */ 0x32347073,
+    bmdModeHD1080p25                                             = /* 'Hp25' */ 0x48703235,
+    bmdModeHD1080p2997                                           = /* 'Hp29' */ 0x48703239,
+    bmdModeHD1080p30                                             = /* 'Hp30' */ 0x48703330,
+    bmdModeHD1080p4795                                           = /* 'Hp47' */ 0x48703437,
+    bmdModeHD1080p48                                             = /* 'Hp48' */ 0x48703438,
+    bmdModeHD1080p50                                             = /* 'Hp50' */ 0x48703530,
+    bmdModeHD1080p5994                                           = /* 'Hp59' */ 0x48703539,
+    bmdModeHD1080p6000                                           = /* 'Hp60' */ 0x48703630,    // N.B. This _really_ is 60.00 Hz.
+    bmdModeHD1080p9590                                           = /* 'Hp95' */ 0x48703935,
+    bmdModeHD1080p96                                             = /* 'Hp96' */ 0x48703936,
+    bmdModeHD1080p100                                            = /* 'Hp10' */ 0x48703130,
+    bmdModeHD1080p11988                                          = /* 'Hp11' */ 0x48703131,
+    bmdModeHD1080p120                                            = /* 'Hp12' */ 0x48703132,
+    bmdModeHD1080i50                                             = /* 'Hi50' */ 0x48693530,
+    bmdModeHD1080i5994                                           = /* 'Hi59' */ 0x48693539,
+    bmdModeHD1080i6000                                           = /* 'Hi60' */ 0x48693630,    // N.B. This _really_ is 60.00 Hz.
 
     /* HD 720 Modes */
 
-    bmdModeHD720p50                                              = 'hp50',
-    bmdModeHD720p5994                                            = 'hp59',
-    bmdModeHD720p60                                              = 'hp60',
+    bmdModeHD720p50                                              = /* 'hp50' */ 0x68703530,
+    bmdModeHD720p5994                                            = /* 'hp59' */ 0x68703539,
+    bmdModeHD720p60                                              = /* 'hp60' */ 0x68703630,
 
     /* 2K Modes */
 
-    bmdMode2k2398                                                = '2k23',
-    bmdMode2k24                                                  = '2k24',
-    bmdMode2k25                                                  = '2k25',
+    bmdMode2k2398                                                = /* '2k23' */ 0x326B3233,
+    bmdMode2k24                                                  = /* '2k24' */ 0x326B3234,
+    bmdMode2k25                                                  = /* '2k25' */ 0x326B3235,
 
     /* 2K DCI Modes */
 
-    bmdMode2kDCI2398                                             = '2d23',
-    bmdMode2kDCI24                                               = '2d24',
-    bmdMode2kDCI25                                               = '2d25',
-    bmdMode2kDCI2997                                             = '2d29',
-    bmdMode2kDCI30                                               = '2d30',
-    bmdMode2kDCI4795                                             = '2d47',
-    bmdMode2kDCI48                                               = '2d48',
-    bmdMode2kDCI50                                               = '2d50',
-    bmdMode2kDCI5994                                             = '2d59',
-    bmdMode2kDCI60                                               = '2d60',
-    bmdMode2kDCI9590                                             = '2d95',
-    bmdMode2kDCI96                                               = '2d96',
-    bmdMode2kDCI100                                              = '2d10',
-    bmdMode2kDCI11988                                            = '2d11',
-    bmdMode2kDCI120                                              = '2d12',
+    bmdMode2kDCI2398                                             = /* '2d23' */ 0x32643233,
+    bmdMode2kDCI24                                               = /* '2d24' */ 0x32643234,
+    bmdMode2kDCI25                                               = /* '2d25' */ 0x32643235,
+    bmdMode2kDCI2997                                             = /* '2d29' */ 0x32643239,
+    bmdMode2kDCI30                                               = /* '2d30' */ 0x32643330,
+    bmdMode2kDCI4795                                             = /* '2d47' */ 0x32643437,
+    bmdMode2kDCI48                                               = /* '2d48' */ 0x32643438,
+    bmdMode2kDCI50                                               = /* '2d50' */ 0x32643530,
+    bmdMode2kDCI5994                                             = /* '2d59' */ 0x32643539,
+    bmdMode2kDCI60                                               = /* '2d60' */ 0x32643630,
+    bmdMode2kDCI9590                                             = /* '2d95' */ 0x32643935,
+    bmdMode2kDCI96                                               = /* '2d96' */ 0x32643936,
+    bmdMode2kDCI100                                              = /* '2d10' */ 0x32643130,
+    bmdMode2kDCI11988                                            = /* '2d11' */ 0x32643131,
+    bmdMode2kDCI120                                              = /* '2d12' */ 0x32643132,
 
     /* 4K UHD Modes */
 
-    bmdMode4K2160p2398                                           = '4k23',
-    bmdMode4K2160p24                                             = '4k24',
-    bmdMode4K2160p25                                             = '4k25',
-    bmdMode4K2160p2997                                           = '4k29',
-    bmdMode4K2160p30                                             = '4k30',
-    bmdMode4K2160p4795                                           = '4k47',
-    bmdMode4K2160p48                                             = '4k48',
-    bmdMode4K2160p50                                             = '4k50',
-    bmdMode4K2160p5994                                           = '4k59',
-    bmdMode4K2160p60                                             = '4k60',
-    bmdMode4K2160p9590                                           = '4k95',
-    bmdMode4K2160p96                                             = '4k96',
-    bmdMode4K2160p100                                            = '4k10',
-    bmdMode4K2160p11988                                          = '4k11',
-    bmdMode4K2160p120                                            = '4k12',
+    bmdMode4K2160p2398                                           = /* '4k23' */ 0x346B3233,
+    bmdMode4K2160p24                                             = /* '4k24' */ 0x346B3234,
+    bmdMode4K2160p25                                             = /* '4k25' */ 0x346B3235,
+    bmdMode4K2160p2997                                           = /* '4k29' */ 0x346B3239,
+    bmdMode4K2160p30                                             = /* '4k30' */ 0x346B3330,
+    bmdMode4K2160p4795                                           = /* '4k47' */ 0x346B3437,
+    bmdMode4K2160p48                                             = /* '4k48' */ 0x346B3438,
+    bmdMode4K2160p50                                             = /* '4k50' */ 0x346B3530,
+    bmdMode4K2160p5994                                           = /* '4k59' */ 0x346B3539,
+    bmdMode4K2160p60                                             = /* '4k60' */ 0x346B3630,
+    bmdMode4K2160p9590                                           = /* '4k95' */ 0x346B3935,
+    bmdMode4K2160p96                                             = /* '4k96' */ 0x346B3936,
+    bmdMode4K2160p100                                            = /* '4k10' */ 0x346B3130,
+    bmdMode4K2160p11988                                          = /* '4k11' */ 0x346B3131,
+    bmdMode4K2160p120                                            = /* '4k12' */ 0x346B3132,
 
     /* 4K DCI Modes */
 
-    bmdMode4kDCI2398                                             = '4d23',
-    bmdMode4kDCI24                                               = '4d24',
-    bmdMode4kDCI25                                               = '4d25',
-    bmdMode4kDCI2997                                             = '4d29',
-    bmdMode4kDCI30                                               = '4d30',
-    bmdMode4kDCI4795                                             = '4d47',
-    bmdMode4kDCI48                                               = '4d48',
-    bmdMode4kDCI50                                               = '4d50',
-    bmdMode4kDCI5994                                             = '4d59',
-    bmdMode4kDCI60                                               = '4d60',
-    bmdMode4kDCI9590                                             = '4d95',
-    bmdMode4kDCI96                                               = '4d96',
-    bmdMode4kDCI100                                              = '4d10',
-    bmdMode4kDCI11988                                            = '4d11',
-    bmdMode4kDCI120                                              = '4d12',
+    bmdMode4kDCI2398                                             = /* '4d23' */ 0x34643233,
+    bmdMode4kDCI24                                               = /* '4d24' */ 0x34643234,
+    bmdMode4kDCI25                                               = /* '4d25' */ 0x34643235,
+    bmdMode4kDCI2997                                             = /* '4d29' */ 0x34643239,
+    bmdMode4kDCI30                                               = /* '4d30' */ 0x34643330,
+    bmdMode4kDCI4795                                             = /* '4d47' */ 0x34643437,
+    bmdMode4kDCI48                                               = /* '4d48' */ 0x34643438,
+    bmdMode4kDCI50                                               = /* '4d50' */ 0x34643530,
+    bmdMode4kDCI5994                                             = /* '4d59' */ 0x34643539,
+    bmdMode4kDCI60                                               = /* '4d60' */ 0x34643630,
+    bmdMode4kDCI9590                                             = /* '4d95' */ 0x34643935,
+    bmdMode4kDCI96                                               = /* '4d96' */ 0x34643936,
+    bmdMode4kDCI100                                              = /* '4d10' */ 0x34643130,
+    bmdMode4kDCI11988                                            = /* '4d11' */ 0x34643131,
+    bmdMode4kDCI120                                              = /* '4d12' */ 0x34643132,
 
     /* 8K UHD Modes */
 
-    bmdMode8K4320p2398                                           = '8k23',
-    bmdMode8K4320p24                                             = '8k24',
-    bmdMode8K4320p25                                             = '8k25',
-    bmdMode8K4320p2997                                           = '8k29',
-    bmdMode8K4320p30                                             = '8k30',
-    bmdMode8K4320p4795                                           = '8k47',
-    bmdMode8K4320p48                                             = '8k48',
-    bmdMode8K4320p50                                             = '8k50',
-    bmdMode8K4320p5994                                           = '8k59',
-    bmdMode8K4320p60                                             = '8k60',
+    bmdMode8K4320p2398                                           = /* '8k23' */ 0x386B3233,
+    bmdMode8K4320p24                                             = /* '8k24' */ 0x386B3234,
+    bmdMode8K4320p25                                             = /* '8k25' */ 0x386B3235,
+    bmdMode8K4320p2997                                           = /* '8k29' */ 0x386B3239,
+    bmdMode8K4320p30                                             = /* '8k30' */ 0x386B3330,
+    bmdMode8K4320p4795                                           = /* '8k47' */ 0x386B3437,
+    bmdMode8K4320p48                                             = /* '8k48' */ 0x386B3438,
+    bmdMode8K4320p50                                             = /* '8k50' */ 0x386B3530,
+    bmdMode8K4320p5994                                           = /* '8k59' */ 0x386B3539,
+    bmdMode8K4320p60                                             = /* '8k60' */ 0x386B3630,
 
     /* 8K DCI Modes */
 
-    bmdMode8kDCI2398                                             = '8d23',
-    bmdMode8kDCI24                                               = '8d24',
-    bmdMode8kDCI25                                               = '8d25',
-    bmdMode8kDCI2997                                             = '8d29',
-    bmdMode8kDCI30                                               = '8d30',
-    bmdMode8kDCI4795                                             = '8d47',
-    bmdMode8kDCI48                                               = '8d48',
-    bmdMode8kDCI50                                               = '8d50',
-    bmdMode8kDCI5994                                             = '8d59',
-    bmdMode8kDCI60                                               = '8d60',
+    bmdMode8kDCI2398                                             = /* '8d23' */ 0x38643233,
+    bmdMode8kDCI24                                               = /* '8d24' */ 0x38643234,
+    bmdMode8kDCI25                                               = /* '8d25' */ 0x38643235,
+    bmdMode8kDCI2997                                             = /* '8d29' */ 0x38643239,
+    bmdMode8kDCI30                                               = /* '8d30' */ 0x38643330,
+    bmdMode8kDCI4795                                             = /* '8d47' */ 0x38643437,
+    bmdMode8kDCI48                                               = /* '8d48' */ 0x38643438,
+    bmdMode8kDCI50                                               = /* '8d50' */ 0x38643530,
+    bmdMode8kDCI5994                                             = /* '8d59' */ 0x38643539,
+    bmdMode8kDCI60                                               = /* '8d60' */ 0x38643630,
 
     /* PC Modes */
 
-    bmdMode640x480p60                                            = 'vga6',
-    bmdMode800x600p60                                            = 'svg6',
-    bmdMode1440x900p50                                           = 'wxg5',
-    bmdMode1440x900p60                                           = 'wxg6',
-    bmdMode1440x1080p50                                          = 'sxg5',
-    bmdMode1440x1080p60                                          = 'sxg6',
-    bmdMode1600x1200p50                                          = 'uxg5',
-    bmdMode1600x1200p60                                          = 'uxg6',
-    bmdMode1920x1200p50                                          = 'wux5',
-    bmdMode1920x1200p60                                          = 'wux6',
-    bmdMode1920x1440p50                                          = '1945',
-    bmdMode1920x1440p60                                          = '1946',
-    bmdMode2560x1440p50                                          = 'wqh5',
-    bmdMode2560x1440p60                                          = 'wqh6',
-    bmdMode2560x1600p50                                          = 'wqx5',
-    bmdMode2560x1600p60                                          = 'wqx6',
-
-    /* RAW Modes for Cintel (input only) */
-
-    bmdModeCintelRAW                                             = 'rwci',     // Frame size up to 4096x3072, variable frame rate
-    bmdModeCintelCompressedRAW                                   = 'rwcc',     // Frame size up to 4096x3072, variable frame rate
+    bmdMode640x480p60                                            = /* 'vga6' */ 0x76676136,
+    bmdMode800x600p60                                            = /* 'svg6' */ 0x73766736,
+    bmdMode1440x900p50                                           = /* 'wxg5' */ 0x77786735,
+    bmdMode1440x900p60                                           = /* 'wxg6' */ 0x77786736,
+    bmdMode1440x1080p50                                          = /* 'sxg5' */ 0x73786735,
+    bmdMode1440x1080p60                                          = /* 'sxg6' */ 0x73786736,
+    bmdMode1600x1200p50                                          = /* 'uxg5' */ 0x75786735,
+    bmdMode1600x1200p60                                          = /* 'uxg6' */ 0x75786736,
+    bmdMode1920x1200p50                                          = /* 'wux5' */ 0x77757835,
+    bmdMode1920x1200p60                                          = /* 'wux6' */ 0x77757836,
+    bmdMode1920x1440p50                                          = /* '1945' */ 0x31393435,
+    bmdMode1920x1440p60                                          = /* '1946' */ 0x31393436,
+    bmdMode2560x1440p50                                          = /* 'wqh5' */ 0x77716835,
+    bmdMode2560x1440p60                                          = /* 'wqh6' */ 0x77716836,
+    bmdMode2560x1600p50                                          = /* 'wqx5' */ 0x77717835,
+    bmdMode2560x1600p60                                          = /* 'wqx6' */ 0x77717836,
 
     /* Special Modes */
 
-    bmdModeUnknown                                               = 'iunk'
+    bmdModeUnknown                                               = /* 'iunk' */ 0x69756E6B
 };
 
-/* Enum BMDFieldDominance - Video field dominance */
+/* Enum BMDFieldDominance - BMDFieldDominance enumerates settings applicable to video fields. */
 
 typedef uint32_t BMDFieldDominance;
 enum _BMDFieldDominance {
     bmdUnknownFieldDominance                                     = 0,
-    bmdLowerFieldFirst                                           = 'lowr',
-    bmdUpperFieldFirst                                           = 'uppr',
-    bmdProgressiveFrame                                          = 'prog',
-    bmdProgressiveSegmentedFrame                                 = 'psf '
+    bmdLowerFieldFirst                                           = /* 'lowr' */ 0x6C6F7772,
+    bmdUpperFieldFirst                                           = /* 'uppr' */ 0x75707072,
+    bmdProgressiveFrame                                          = /* 'prog' */ 0x70726F67,
+    bmdProgressiveSegmentedFrame                                 = /* 'psf ' */ 0x70736620
 };
 
 /* Enum BMDPixelFormat - Video pixel formats supported for output/input */
@@ -220,25 +215,20 @@ enum _BMDFieldDominance {
 typedef uint32_t BMDPixelFormat;
 enum _BMDPixelFormat {
     bmdFormatUnspecified                                         = 0,
-    bmdFormat8BitYUV                                             = '2vuy',
-    bmdFormat10BitYUV                                            = 'v210',
+    bmdFormat8BitYUV                                             = /* '2vuy' */ 0x32767579,
+    bmdFormat10BitYUV                                            = /* 'v210' */ 0x76323130,
     bmdFormat8BitARGB                                            = 32,
-    bmdFormat8BitBGRA                                            = 'BGRA',
-    bmdFormat10BitRGB                                            = 'r210',     // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10
-    bmdFormat12BitRGB                                            = 'R12B',     // Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component
-    bmdFormat12BitRGBLE                                          = 'R12L',     // Little-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component
-    bmdFormat10BitRGBXLE                                         = 'R10l',     // Little-endian 10-bit RGB with SMPTE video levels (64-940)
-    bmdFormat10BitRGBX                                           = 'R10b',     // Big-endian 10-bit RGB with SMPTE video levels (64-940)
-    bmdFormatH265                                                = 'hev1',     // High Efficiency Video Coding (HEVC/h.265)
+    bmdFormat8BitBGRA                                            = /* 'BGRA' */ 0x42475241,
+    bmdFormat10BitRGB                                            = /* 'r210' */ 0x72323130,    // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10
+    bmdFormat12BitRGB                                            = /* 'R12B' */ 0x52313242,    // Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component
+    bmdFormat12BitRGBLE                                          = /* 'R12L' */ 0x5231324C,    // Little-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component
+    bmdFormat10BitRGBXLE                                         = /* 'R10l' */ 0x5231306C,    // Little-endian 10-bit RGB with SMPTE video levels (64-940)
+    bmdFormat10BitRGBX                                           = /* 'R10b' */ 0x52313062,    // Big-endian 10-bit RGB with SMPTE video levels (64-940)
+    bmdFormatH265                                                = /* 'hev1' */ 0x68657631,    // High Efficiency Video Coding (HEVC/h.265)
 
     /* AVID DNxHR */
 
-    bmdFormatDNxHR                                               = 'AVdh',
-
-    /* Cintel formats */
-
-    bmdFormat12BitRAWGRBG                                        = 'r12p',     // 12-bit RAW data for bayer pattern GRBG
-    bmdFormat12BitRAWJPEG                                        = 'r16p'      // 12-bit RAW data arranged in tiles and JPEG compressed
+    bmdFormatDNxHR                                               = /* 'AVdh' */ 0x41566468
 };
 
 /* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */
@@ -251,32 +241,34 @@ enum _BMDDisplayModeFlags {
     bmdDisplayModeColorspaceRec2020                              = 1 << 3
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkDisplayModeIterator;
 class IDeckLinkDisplayMode;
 
-/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */
+/* Interface IDeckLinkDisplayModeIterator - Enumerates over supported input/output display modes. */
 
 class BMD_PUBLIC IDeckLinkDisplayModeIterator : public IUnknown
 {
 public:
-    virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
+    virtual HRESULT Next (/* out */ IDeckLinkDisplayMode** deckLinkDisplayMode) = 0;
 
 protected:
     virtual ~IDeckLinkDisplayModeIterator () {} // call Release method to drop reference count
 };
 
-/* Interface IDeckLinkDisplayMode - represents a display mode */
+/* Interface IDeckLinkDisplayMode - Represents a display mode */
 
 class BMD_PUBLIC IDeckLinkDisplayMode : public IUnknown
 {
 public:
-    virtual HRESULT GetName (/* out */ CFStringRef *name) = 0;
+    virtual HRESULT GetName (/* out */ CFStringRefname) = 0;
     virtual BMDDisplayMode GetDisplayMode (void) = 0;
     virtual long GetWidth (void) = 0;
     virtual long GetHeight (void) = 0;
-    virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out */ BMDTimeScale *timeScale) = 0;
+    virtual HRESULT GetFrameRate (/* out */ BMDTimeValue* frameDuration, /* out */ BMDTimeScale* timeScale) = 0;
     virtual BMDFieldDominance GetFieldDominance (void) = 0;
     virtual BMDDisplayModeFlags GetFlags (void) = 0;
 
@@ -292,4 +284,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPIMODES_H) */
index 50f46a8..05916cc 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IBMDStreamingDeviceNotificationCallback      = /* F9531D64-3305-4B29-A387-7F74BB0D0E84 */ {0xF9,0x53,0x1D,0x64,0x33,0x05,0x4B,0x29,0xA3,0x87,0x7F,0x74,0xBB,0x0D,0x0E,0x84};
-BMD_CONST REFIID IID_IBMDStreamingH264InputCallback               = /* 823C475F-55AE-46F9-890C-537CC5CEDCCA */ {0x82,0x3C,0x47,0x5F,0x55,0xAE,0x46,0xF9,0x89,0x0C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA};
-BMD_CONST REFIID IID_IBMDStreamingDiscovery                       = /* 2C837444-F989-4D87-901A-47C8A36D096D */ {0x2C,0x83,0x74,0x44,0xF9,0x89,0x4D,0x87,0x90,0x1A,0x47,0xC8,0xA3,0x6D,0x09,0x6D};
-BMD_CONST REFIID IID_IBMDStreamingVideoEncodingMode               = /* 1AB8035B-CD13-458D-B6DF-5E8F7C2141D9 */ {0x1A,0xB8,0x03,0x5B,0xCD,0x13,0x45,0x8D,0xB6,0xDF,0x5E,0x8F,0x7C,0x21,0x41,0xD9};
-BMD_CONST REFIID IID_IBMDStreamingMutableVideoEncodingMode        = /* 19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D */ {0x19,0xBF,0x7D,0x90,0x1E,0x0A,0x40,0x0D,0xB2,0xC6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D};
-BMD_CONST REFIID IID_IBMDStreamingVideoEncodingModePresetIterator = /* 7AC731A3-C950-4AD0-804A-8377AA51C6C4 */ {0x7A,0xC7,0x31,0xA3,0xC9,0x50,0x4A,0xD0,0x80,0x4A,0x83,0x77,0xAA,0x51,0xC6,0xC4};
-BMD_CONST REFIID IID_IBMDStreamingDeviceInput                     = /* 24B6B6EC-1727-44BB-9818-34FF086ACF98 */ {0x24,0xB6,0xB6,0xEC,0x17,0x27,0x44,0xBB,0x98,0x18,0x34,0xFF,0x08,0x6A,0xCF,0x98};
-BMD_CONST REFIID IID_IBMDStreamingH264NALPacket                   = /* E260E955-14BE-4395-9775-9F02CC0A9D89 */ {0xE2,0x60,0xE9,0x55,0x14,0xBE,0x43,0x95,0x97,0x75,0x9F,0x02,0xCC,0x0A,0x9D,0x89};
-BMD_CONST REFIID IID_IBMDStreamingAudioPacket                     = /* D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19 */ {0xD9,0xEB,0x59,0x02,0x1A,0xD2,0x43,0xF4,0x9E,0x2C,0x3C,0xFA,0x50,0xB5,0xEE,0x19};
-BMD_CONST REFIID IID_IBMDStreamingMPEG2TSPacket                   = /* 91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C */ {0x91,0x81,0x0D,0x1C,0x4F,0xB3,0x4A,0xAA,0xAE,0x56,0xFA,0x30,0x1D,0x3D,0xFA,0x4C};
-BMD_CONST REFIID IID_IBMDStreamingH264NALParser                   = /* 5867F18C-5BFA-4CCC-B2A7-9DFD140417D2 */ {0x58,0x67,0xF1,0x8C,0x5B,0xFA,0x4C,0xCC,0xB2,0xA7,0x9D,0xFD,0x14,0x04,0x17,0xD2};
+BMD_CONST REFIID IID_IBMDStreamingDeviceNotificationCallback      = /* F9531D64-3305-4B29-A387-7F74BB0D0E84 */ { 0xF9,0x53,0x1D,0x64,0x33,0x05,0x4B,0x29,0xA3,0x87,0x7F,0x74,0xBB,0x0D,0x0E,0x84 };
+BMD_CONST REFIID IID_IBMDStreamingH264InputCallback               = /* 823C475F-55AE-46F9-890C-537CC5CEDCCA */ { 0x82,0x3C,0x47,0x5F,0x55,0xAE,0x46,0xF9,0x89,0x0C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA };
+BMD_CONST REFIID IID_IBMDStreamingDiscovery                       = /* 2C837444-F989-4D87-901A-47C8A36D096D */ { 0x2C,0x83,0x74,0x44,0xF9,0x89,0x4D,0x87,0x90,0x1A,0x47,0xC8,0xA3,0x6D,0x09,0x6D };
+BMD_CONST REFIID IID_IBMDStreamingVideoEncodingMode               = /* 1AB8035B-CD13-458D-B6DF-5E8F7C2141D9 */ { 0x1A,0xB8,0x03,0x5B,0xCD,0x13,0x45,0x8D,0xB6,0xDF,0x5E,0x8F,0x7C,0x21,0x41,0xD9 };
+BMD_CONST REFIID IID_IBMDStreamingMutableVideoEncodingMode        = /* 19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D */ { 0x19,0xBF,0x7D,0x90,0x1E,0x0A,0x40,0x0D,0xB2,0xC6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D };
+BMD_CONST REFIID IID_IBMDStreamingVideoEncodingModePresetIterator = /* 7AC731A3-C950-4AD0-804A-8377AA51C6C4 */ { 0x7A,0xC7,0x31,0xA3,0xC9,0x50,0x4A,0xD0,0x80,0x4A,0x83,0x77,0xAA,0x51,0xC6,0xC4 };
+BMD_CONST REFIID IID_IBMDStreamingDeviceInput                     = /* 24B6B6EC-1727-44BB-9818-34FF086ACF98 */ { 0x24,0xB6,0xB6,0xEC,0x17,0x27,0x44,0xBB,0x98,0x18,0x34,0xFF,0x08,0x6A,0xCF,0x98 };
+BMD_CONST REFIID IID_IBMDStreamingH264NALPacket                   = /* E260E955-14BE-4395-9775-9F02CC0A9D89 */ { 0xE2,0x60,0xE9,0x55,0x14,0xBE,0x43,0x95,0x97,0x75,0x9F,0x02,0xCC,0x0A,0x9D,0x89 };
+BMD_CONST REFIID IID_IBMDStreamingAudioPacket                     = /* D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19 */ { 0xD9,0xEB,0x59,0x02,0x1A,0xD2,0x43,0xF4,0x9E,0x2C,0x3C,0xFA,0x50,0xB5,0xEE,0x19 };
+BMD_CONST REFIID IID_IBMDStreamingMPEG2TSPacket                   = /* 91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C */ { 0x91,0x81,0x0D,0x1C,0x4F,0xB3,0x4A,0xAA,0xAE,0x56,0xFA,0x30,0x1D,0x3D,0xFA,0x4C };
+BMD_CONST REFIID IID_IBMDStreamingH264NALParser                   = /* 5867F18C-5BFA-4CCC-B2A7-9DFD140417D2 */ { 0x58,0x67,0xF1,0x8C,0x5B,0xFA,0x4C,0xCC,0xB2,0xA7,0x9D,0xFD,0x14,0x04,0x17,0xD2 };
 
 /* Enum BMDStreamingDeviceMode - Device modes */
 
 typedef uint32_t BMDStreamingDeviceMode;
 enum _BMDStreamingDeviceMode {
-    bmdStreamingDeviceIdle                                       = 'idle',
-    bmdStreamingDeviceEncoding                                   = 'enco',
-    bmdStreamingDeviceStopping                                   = 'stop',
-    bmdStreamingDeviceUnknown                                    = 'munk'
+    bmdStreamingDeviceIdle                                       = /* 'idle' */ 0x69646C65,
+    bmdStreamingDeviceEncoding                                   = /* 'enco' */ 0x656E636F,
+    bmdStreamingDeviceStopping                                   = /* 'stop' */ 0x73746F70,
+    bmdStreamingDeviceUnknown                                    = /* 'munk' */ 0x6D756E6B
 };
 
 /* Enum BMDStreamingEncodingFrameRate - Encoded frame rates */
@@ -75,20 +75,20 @@ enum _BMDStreamingEncodingFrameRate {
 
     /* Interlaced rates */
 
-    bmdStreamingEncodedFrameRate50i                              = 'e50i',
-    bmdStreamingEncodedFrameRate5994i                            = 'e59i',
-    bmdStreamingEncodedFrameRate60i                              = 'e60i',
+    bmdStreamingEncodedFrameRate50i                              = /* 'e50i' */ 0x65353069,
+    bmdStreamingEncodedFrameRate5994i                            = /* 'e59i' */ 0x65353969,
+    bmdStreamingEncodedFrameRate60i                              = /* 'e60i' */ 0x65363069,
 
     /* Progressive rates */
 
-    bmdStreamingEncodedFrameRate2398p                            = 'e23p',
-    bmdStreamingEncodedFrameRate24p                              = 'e24p',
-    bmdStreamingEncodedFrameRate25p                              = 'e25p',
-    bmdStreamingEncodedFrameRate2997p                            = 'e29p',
-    bmdStreamingEncodedFrameRate30p                              = 'e30p',
-    bmdStreamingEncodedFrameRate50p                              = 'e50p',
-    bmdStreamingEncodedFrameRate5994p                            = 'e59p',
-    bmdStreamingEncodedFrameRate60p                              = 'e60p'
+    bmdStreamingEncodedFrameRate2398p                            = /* 'e23p' */ 0x65323370,
+    bmdStreamingEncodedFrameRate24p                              = /* 'e24p' */ 0x65323470,
+    bmdStreamingEncodedFrameRate25p                              = /* 'e25p' */ 0x65323570,
+    bmdStreamingEncodedFrameRate2997p                            = /* 'e29p' */ 0x65323970,
+    bmdStreamingEncodedFrameRate30p                              = /* 'e30p' */ 0x65333070,
+    bmdStreamingEncodedFrameRate50p                              = /* 'e50p' */ 0x65353070,
+    bmdStreamingEncodedFrameRate5994p                            = /* 'e59p' */ 0x65353970,
+    bmdStreamingEncodedFrameRate60p                              = /* 'e60p' */ 0x65363070
 };
 
 /* Enum BMDStreamingEncodingSupport - Output encoding mode supported flag */
@@ -96,56 +96,56 @@ enum _BMDStreamingEncodingFrameRate {
 typedef uint32_t BMDStreamingEncodingSupport;
 enum _BMDStreamingEncodingSupport {
     bmdStreamingEncodingModeNotSupported                         = 0,
-    bmdStreamingEncodingModeSupported,                          
-    bmdStreamingEncodingModeSupportedWithChanges                
+    bmdStreamingEncodingModeSupported,
+    bmdStreamingEncodingModeSupportedWithChanges
 };
 
 /* Enum BMDStreamingVideoCodec - Video codecs */
 
 typedef uint32_t BMDStreamingVideoCodec;
 enum _BMDStreamingVideoCodec {
-    bmdStreamingVideoCodecH264                                   = 'H264'
+    bmdStreamingVideoCodecH264                                   = /* 'H264' */ 0x48323634
 };
 
 /* Enum BMDStreamingH264Profile - H264 encoding profile */
 
 typedef uint32_t BMDStreamingH264Profile;
 enum _BMDStreamingH264Profile {
-    bmdStreamingH264ProfileHigh                                  = 'high',
-    bmdStreamingH264ProfileMain                                  = 'main',
-    bmdStreamingH264ProfileBaseline                              = 'base'
+    bmdStreamingH264ProfileHigh                                  = /* 'high' */ 0x68696768,
+    bmdStreamingH264ProfileMain                                  = /* 'main' */ 0x6D61696E,
+    bmdStreamingH264ProfileBaseline                              = /* 'base' */ 0x62617365
 };
 
 /* Enum BMDStreamingH264Level - H264 encoding level */
 
 typedef uint32_t BMDStreamingH264Level;
 enum _BMDStreamingH264Level {
-    bmdStreamingH264Level12                                      = 'lv12',
-    bmdStreamingH264Level13                                      = 'lv13',
-    bmdStreamingH264Level2                                       = 'lv2 ',
-    bmdStreamingH264Level21                                      = 'lv21',
-    bmdStreamingH264Level22                                      = 'lv22',
-    bmdStreamingH264Level3                                       = 'lv3 ',
-    bmdStreamingH264Level31                                      = 'lv31',
-    bmdStreamingH264Level32                                      = 'lv32',
-    bmdStreamingH264Level4                                       = 'lv4 ',
-    bmdStreamingH264Level41                                      = 'lv41',
-    bmdStreamingH264Level42                                      = 'lv42'
+    bmdStreamingH264Level12                                      = /* 'lv12' */ 0x6C763132,
+    bmdStreamingH264Level13                                      = /* 'lv13' */ 0x6C763133,
+    bmdStreamingH264Level2                                       = /* 'lv2 ' */ 0x6C763220,
+    bmdStreamingH264Level21                                      = /* 'lv21' */ 0x6C763231,
+    bmdStreamingH264Level22                                      = /* 'lv22' */ 0x6C763232,
+    bmdStreamingH264Level3                                       = /* 'lv3 ' */ 0x6C763320,
+    bmdStreamingH264Level31                                      = /* 'lv31' */ 0x6C763331,
+    bmdStreamingH264Level32                                      = /* 'lv32' */ 0x6C763332,
+    bmdStreamingH264Level4                                       = /* 'lv4 ' */ 0x6C763420,
+    bmdStreamingH264Level41                                      = /* 'lv41' */ 0x6C763431,
+    bmdStreamingH264Level42                                      = /* 'lv42' */ 0x6C763432
 };
 
 /* Enum BMDStreamingH264EntropyCoding - H264 entropy coding */
 
 typedef uint32_t BMDStreamingH264EntropyCoding;
 enum _BMDStreamingH264EntropyCoding {
-    bmdStreamingH264EntropyCodingCAVLC                           = 'EVLC',
-    bmdStreamingH264EntropyCodingCABAC                           = 'EBAC'
+    bmdStreamingH264EntropyCodingCAVLC                           = /* 'EVLC' */ 0x45564C43,
+    bmdStreamingH264EntropyCodingCABAC                           = /* 'EBAC' */ 0x45424143
 };
 
 /* Enum BMDStreamingAudioCodec - Audio codecs */
 
 typedef uint32_t BMDStreamingAudioCodec;
 enum _BMDStreamingAudioCodec {
-    bmdStreamingAudioCodecAAC                                    = 'AAC '
+    bmdStreamingAudioCodecAAC                                    = /* 'AAC ' */ 0x41414320
 };
 
 /* Enum BMDStreamingEncodingModePropertyID - Encoding mode properties */
@@ -155,27 +155,29 @@ enum _BMDStreamingEncodingModePropertyID {
 
     /* Integers, Video Properties */
 
-    bmdStreamingEncodingPropertyVideoFrameRate                   = 'vfrt',     // Uses values of type BMDStreamingEncodingFrameRate
-    bmdStreamingEncodingPropertyVideoBitRateKbps                 = 'vbrt',
+    bmdStreamingEncodingPropertyVideoFrameRate                   = /* 'vfrt' */ 0x76667274,    // Uses values of type BMDStreamingEncodingFrameRate
+    bmdStreamingEncodingPropertyVideoBitRateKbps                 = /* 'vbrt' */ 0x76627274,
 
     /* Integers, H264 Properties */
 
-    bmdStreamingEncodingPropertyH264Profile                      = 'hprf',
-    bmdStreamingEncodingPropertyH264Level                        = 'hlvl',
-    bmdStreamingEncodingPropertyH264EntropyCoding                = 'hent',
+    bmdStreamingEncodingPropertyH264Profile                      = /* 'hprf' */ 0x68707266,
+    bmdStreamingEncodingPropertyH264Level                        = /* 'hlvl' */ 0x686C766C,
+    bmdStreamingEncodingPropertyH264EntropyCoding                = /* 'hent' */ 0x68656E74,
 
     /* Flags, H264 Properties */
 
-    bmdStreamingEncodingPropertyH264HasBFrames                   = 'hBfr',
+    bmdStreamingEncodingPropertyH264HasBFrames                   = /* 'hBfr' */ 0x68426672,
 
     /* Integers, Audio Properties */
 
-    bmdStreamingEncodingPropertyAudioCodec                       = 'acdc',
-    bmdStreamingEncodingPropertyAudioSampleRate                  = 'asrt',
-    bmdStreamingEncodingPropertyAudioChannelCount                = 'achc',
-    bmdStreamingEncodingPropertyAudioBitRateKbps                 = 'abrt'
+    bmdStreamingEncodingPropertyAudioCodec                       = /* 'acdc' */ 0x61636463,
+    bmdStreamingEncodingPropertyAudioSampleRate                  = /* 'asrt' */ 0x61737274,
+    bmdStreamingEncodingPropertyAudioChannelCount                = /* 'achc' */ 0x61636863,
+    bmdStreamingEncodingPropertyAudioBitRateKbps                 = /* 'abrt' */ 0x61627274
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IBMDStreamingDeviceNotificationCallback;
@@ -236,7 +238,7 @@ protected:
 class BMD_PUBLIC IBMDStreamingVideoEncodingMode : public IUnknown
 {
 public:
-    virtual HRESULT GetName (/* out */ CFStringRef *name) = 0;
+    virtual HRESULT GetName (/* out */ CFStringRefname) = 0;
     virtual unsigned int GetPresetID (void) = 0;
     virtual unsigned int GetSourcePositionX (void) = 0;
     virtual unsigned int GetSourcePositionY (void) = 0;
@@ -247,8 +249,8 @@ public:
     virtual HRESULT GetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ bool* value) = 0;
     virtual HRESULT GetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ int64_t* value) = 0;
     virtual HRESULT GetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ double* value) = 0;
-    virtual HRESULT GetString (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ CFStringRef *value) = 0;
-    virtual HRESULT CreateMutableVideoEncodingMode (/* out */ IBMDStreamingMutableVideoEncodingMode** newEncodingMode) = 0; // Creates a mutable copy of the encoding mode
+    virtual HRESULT GetString (/* in */ BMDStreamingEncodingModePropertyID cfgID, /* out */ CFStringRefvalue) = 0;
+    virtual HRESULT CreateMutableVideoEncodingMode (/* out */ IBMDStreamingMutableVideoEncodingMode** newEncodingMode) = 0;    // Creates a mutable copy of the encoding mode
 
 protected:
     virtual ~IBMDStreamingVideoEncodingMode () {} // call Release method to drop reference count
@@ -318,9 +320,9 @@ class BMD_PUBLIC IBMDStreamingH264NALPacket : public IUnknown
 public:
     virtual long GetPayloadSize (void) = 0;
     virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
-    virtual HRESULT GetBytesWithSizePrefix (/* out */ void** buffer) = 0; // Contains a 32-bit unsigned big endian size prefix
+    virtual HRESULT GetBytesWithSizePrefix (/* out */ void** buffer) = 0;      // Contains a 32-bit unsigned big endian size prefix
     virtual HRESULT GetDisplayTime (/* in */ uint64_t requestedTimeScale, /* out */ uint64_t* displayTime) = 0;
-    virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Deprecated
+    virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0;      // Deprecated
 
 protected:
     virtual ~IBMDStreamingH264NALPacket () {} // call Release method to drop reference count
@@ -335,7 +337,7 @@ public:
     virtual long GetPayloadSize (void) = 0;
     virtual HRESULT GetBytes (/* out */ void** buffer) = 0;
     virtual HRESULT GetPlayTime (/* in */ uint64_t requestedTimeScale, /* out */ uint64_t* playTime) = 0;
-    virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Deprecated
+    virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0;      // Deprecated
 
 protected:
     virtual ~IBMDStreamingAudioPacket () {} // call Release method to drop reference count
@@ -370,10 +372,12 @@ protected:
 
 extern "C" {
 
-    IBMDStreamingDiscovery* BMD_PUBLIC CreateBMDStreamingDiscoveryInstance (void);
-    IBMDStreamingH264NALParser* BMD_PUBLIC CreateBMDStreamingH264NALParser (void);
+    IBMDStreamingDiscovery* BMD_PUBLIC CreateBMDStreamingDiscoveryInstance(void);
+    IBMDStreamingH264NALParser* BMD_PUBLIC CreateBMDStreamingH264NALParser(void);
 
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPISTREAMING_H) */
index d60113f..19cc138 100644 (file)
@@ -1,5 +1,5 @@
 /* -LICENSE-START-
-** Copyright (c) 2019 Blackmagic Design
+** Copyright (c) 2021 Blackmagic Design
 **
 ** Permission is hereby granted, free of charge, to any person or organization
 ** obtaining a copy of the software and accompanying documentation covered by
@@ -7,14 +7,14 @@
 ** execute, and transmit the Software, and to prepare derivative works of the
 ** Software, and to permit third-parties to whom the Software is furnished to
 ** do so, all subject to the following:
-** 
+**
 ** The copyright notices in the Software and this entire statement, including
 ** the above license grant, this restriction and the following disclaimer,
 ** must be included in all copies of the Software, in whole or in part, and
 ** all derivative works of the Software, unless such copies or derivative
 ** works are solely in the form of machine-executable object code generated by
 ** a source language processor.
-** 
+**
 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
@@ -50,7 +50,7 @@ typedef uint32_t BMDTimecodeUserBits;
 
 // Interface ID Declarations
 
-BMD_CONST REFIID IID_IDeckLinkTimecode                            = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ {0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40};
+BMD_CONST REFIID IID_IDeckLinkTimecode                            = /* BC6CFBD3-8317-4325-AC1C-1216391E9340 */ { 0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40 };
 
 /* Enum BMDTimecodeFlags - Timecode flags */
 
@@ -60,7 +60,7 @@ enum _BMDTimecodeFlags {
     bmdTimecodeIsDropFrame                                       = 1 << 0,
     bmdTimecodeFieldMark                                         = 1 << 1,
     bmdTimecodeColorFrame                                        = 1 << 2,
-    bmdTimecodeEmbedRecordingTrigger                             = 1 << 3,     // On SDI recording trigger utilises a user-bit
+    bmdTimecodeEmbedRecordingTrigger                             = 1 << 3,     // On SDI recording trigger utilises a user-bit.
     bmdTimecodeRecordingTriggered                                = 1 << 4
 };
 
@@ -98,6 +98,8 @@ enum _BMDDeckControlConnection {
     bmdDeckControlConnectionRS422Remote2                         = 1 << 1
 };
 
+#if defined(__cplusplus)
+
 // Forward Declarations
 
 class IDeckLinkTimecode;
@@ -108,10 +110,10 @@ class BMD_PUBLIC IDeckLinkTimecode : public IUnknown
 {
 public:
     virtual BMDTimecodeBCD GetBCD (void) = 0;
-    virtual HRESULT GetComponents (/* out */ uint8_t *hours, /* out */ uint8_t *minutes, /* out */ uint8_t *seconds, /* out */ uint8_t *frames) = 0;
-    virtual HRESULT GetString (/* out */ CFStringRef *timecode) = 0;
+    virtual HRESULT GetComponents (/* out */ uint8_t* hours, /* out */ uint8_t* minutes, /* out */ uint8_t* seconds, /* out */ uint8_t* frames) = 0;
+    virtual HRESULT GetString (/* out */ CFStringReftimecode) = 0;
     virtual BMDTimecodeFlags GetFlags (void) = 0;
-    virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBits *userBits) = 0;
+    virtual HRESULT GetTimecodeUserBits (/* out */ BMDTimecodeUserBitsuserBits) = 0;
 
 protected:
     virtual ~IDeckLinkTimecode () {} // call Release method to drop reference count
@@ -125,4 +127,6 @@ extern "C" {
 }
 
 
+
+#endif /* defined(__cplusplus) */
 #endif /* defined(BMD_DECKLINKAPITYPES_H) */
index b032e93..7c9b791 100644 (file)
@@ -1,27 +1,40 @@
 /* -LICENSE-START-
  * ** Copyright (c) 2014 Blackmagic Design
- * **
- * ** Permission is hereby granted, free of charge, to any person or organization
- * ** obtaining a copy of the software and accompanying documentation covered by
- * ** this license (the "Software") to use, reproduce, display, distribute,
- * ** execute, and transmit the Software, and to prepare derivative works of the
- * ** Software, and to permit third-parties to whom the Software is furnished to
- * ** do so, all subject to the following:
+ * **  
+ * ** Permission is hereby granted, free of charge, to any person or organization 
+ * ** obtaining a copy of the software and accompanying documentation (the 
+ * ** "Software") to use, reproduce, display, distribute, sub-license, execute, 
+ * ** and transmit the Software, and to prepare derivative works of the Software, 
+ * ** and to permit third-parties to whom the Software is furnished to do so, in 
+ * ** accordance with:
  * ** 
- * ** The copyright notices in the Software and this entire statement, including
- * ** the above license grant, this restriction and the following disclaimer,
- * ** must be included in all copies of the Software, in whole or in part, and
- * ** all derivative works of the Software, unless such copies or derivative
- * ** works are solely in the form of machine-executable object code generated by
- * ** a source language processor.
+ * ** (1) if the Software is obtained from Blackmagic Design, the End User License 
+ * ** Agreement for the Software Development Kit (“EULA”) available at 
+ * ** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
  * ** 
- * ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
- * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
- * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
- * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * ** (2) if the Software is obtained from any third party, such licensing terms 
+ * ** as notified by that third party,
+ * ** 
+ * ** and all subject to the following:
+ * ** 
+ * ** (3) the copyright notices in the Software and this entire statement, 
+ * ** including the above license grant, this restriction and the following 
+ * ** disclaimer, must be included in all copies of the Software, in whole or in 
+ * ** part, and all derivative works of the Software, unless such copies or 
+ * ** derivative works are solely in the form of machine-executable object code 
+ * ** generated by a source language processor.
+ * ** 
+ * ** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ * ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ * ** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 
+ * ** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 
+ * ** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 
+ * ** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  * ** DEALINGS IN THE SOFTWARE.
+ * ** 
+ * ** A copy of the Software is available free of charge at 
+ * ** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
+ * ** 
  * ** -LICENSE-END-
  * */
 
@@ -30,8 +43,8 @@
 #ifndef __DeckLink_API_Version_h__
 #define __DeckLink_API_Version_h__
 
-#define BLACKMAGIC_DECKLINK_API_VERSION                                        0x0b020000
-#define BLACKMAGIC_DECKLINK_API_VERSION_STRING                 "11.2"
+#define BLACKMAGIC_DECKLINK_API_VERSION                                        0x0c020200
+#define BLACKMAGIC_DECKLINK_API_VERSION_STRING                 "12.2.2"
 
 #endif // __DeckLink_API_Version_h__
 
index f13dcbc..7481d85 100644 (file)
@@ -3,14 +3,14 @@
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */\r
 \r
 \r
- /* File created by MIDL compiler version 8.01.0622 */\r
+ /* File created by MIDL compiler version 8.01.0626 */\r
 /* at Tue Jan 19 12:14:07 2038\r
  */\r
-/* Compiler settings for ..\..\Blackmagic\DeckLink_SDK_10.11.4\Win\include\DeckLinkAPI.idl:\r
-    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622\r
+/* Compiler settings for ..\..\Blackmagic_DeckLink_SDK_12.2.2\BlackmagicDeckLinkSDK12.2.2\Win\include\DeckLinkAPI.idl:\r
+    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.062\r
     protocol : dce , ms_ext, c_ext, robust\r
-    error checks: allocation ref bounds_check enum stub_data\r
-    VC __declspec() decoration level:\r
+    error checks: allocation ref bounds_check enum stub_data \r
+    VC __declspec() decoration level: \r
          __declspec(uuid()), __declspec(selectany), __declspec(novtable)\r
          DECLSPEC_UUID(), MIDL_INTERFACE()\r
 */\r
 #pragma once\r
 #endif\r
 \r
-/* Forward Declarations */\r
+#ifndef DECLSPEC_XFGVIRT\r
+#if _CONTROL_FLOW_GUARD_XFG\r
+#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))\r
+#else\r
+#define DECLSPEC_XFGVIRT(base, func)\r
+#endif\r
+#endif\r
+\r
+/* Forward Declarations */ \r
 \r
 #ifndef __IDeckLinkTimecode_FWD_DEFINED__\r
 #define __IDeckLinkTimecode_FWD_DEFINED__\r
@@ -564,6 +572,20 @@ typedef struct CDeckLinkVideoFrameAncillaryPackets CDeckLinkVideoFrameAncillaryP
 #endif         /* __CDeckLinkVideoFrameAncillaryPackets_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkInputCallback_v11_5_1_FWD_DEFINED__\r
+#define __IDeckLinkInputCallback_v11_5_1_FWD_DEFINED__\r
+typedef interface IDeckLinkInputCallback_v11_5_1 IDeckLinkInputCallback_v11_5_1;\r
+\r
+#endif         /* __IDeckLinkInputCallback_v11_5_1_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkInput_v11_5_1_FWD_DEFINED__\r
+#define __IDeckLinkInput_v11_5_1_FWD_DEFINED__\r
+typedef interface IDeckLinkInput_v11_5_1 IDeckLinkInput_v11_5_1;\r
+\r
+#endif         /* __IDeckLinkInput_v11_5_1_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkConfiguration_v10_11_FWD_DEFINED__\r
 #define __IDeckLinkConfiguration_v10_11_FWD_DEFINED__\r
 typedef interface IDeckLinkConfiguration_v10_11 IDeckLinkConfiguration_v10_11;\r
@@ -649,6 +671,41 @@ typedef struct CBMDStreamingDiscovery_v10_8 CBMDStreamingDiscovery_v10_8;
 #endif         /* __CBMDStreamingDiscovery_v10_8_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkConfiguration_v10_4_FWD_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_4_FWD_DEFINED__\r
+typedef interface IDeckLinkConfiguration_v10_4 IDeckLinkConfiguration_v10_4;\r
+\r
+#endif         /* __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__\r
+typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2;\r
+\r
+#endif         /* __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkVideoFrameMetadataExtensions_v11_5_FWD_DEFINED__\r
+#define __IDeckLinkVideoFrameMetadataExtensions_v11_5_FWD_DEFINED__\r
+typedef interface IDeckLinkVideoFrameMetadataExtensions_v11_5 IDeckLinkVideoFrameMetadataExtensions_v11_5;\r
+\r
+#endif         /* __IDeckLinkVideoFrameMetadataExtensions_v11_5_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkOutput_v11_4_FWD_DEFINED__\r
+#define __IDeckLinkOutput_v11_4_FWD_DEFINED__\r
+typedef interface IDeckLinkOutput_v11_4 IDeckLinkOutput_v11_4;\r
+\r
+#endif         /* __IDeckLinkOutput_v11_4_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkInput_v11_4_FWD_DEFINED__\r
+#define __IDeckLinkInput_v11_4_FWD_DEFINED__\r
+typedef interface IDeckLinkInput_v11_4 IDeckLinkInput_v11_4;\r
+\r
+#endif         /* __IDeckLinkInput_v11_4_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __CDeckLinkIterator_v10_8_FWD_DEFINED__\r
 #define __CDeckLinkIterator_v10_8_FWD_DEFINED__\r
 \r
@@ -680,20 +737,6 @@ typedef interface IDeckLinkEncoderConfiguration_v10_5 IDeckLinkEncoderConfigurat
 #endif         /* __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkConfiguration_v10_4_FWD_DEFINED__\r
-#define __IDeckLinkConfiguration_v10_4_FWD_DEFINED__\r
-typedef interface IDeckLinkConfiguration_v10_4 IDeckLinkConfiguration_v10_4;\r
-\r
-#endif         /* __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__\r
-#define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__\r
-typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2;\r
-\r
-#endif         /* __IDeckLinkConfiguration_v10_2_FWD_DEFINED__ */\r
-\r
-\r
 #ifndef __IDeckLinkOutput_v9_9_FWD_DEFINED__\r
 #define __IDeckLinkOutput_v9_9_FWD_DEFINED__\r
 typedef interface IDeckLinkOutput_v9_9 IDeckLinkOutput_v9_9;\r
@@ -973,7 +1016,7 @@ typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;
 \r
 #ifdef __cplusplus\r
 extern "C"{\r
-#endif\r
+#endif \r
 \r
 \r
 \r
@@ -981,7 +1024,7 @@ extern "C"{
 #define __DeckLinkAPI_LIBRARY_DEFINED__\r
 \r
 /* library DeckLinkAPI */\r
-/* [helpstring][version][uuid] */\r
+/* [helpstring][version][uuid] */ \r
 \r
 typedef LONGLONG BMDTimeValue;\r
 \r
@@ -996,7 +1039,7 @@ typedef unsigned int BMDTimecodeFlags;
 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;\r
 \r
 #endif\r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDTimecodeFlags\r
     {\r
         bmdTimecodeFlagDefault = 0,\r
@@ -1004,9 +1047,9 @@ enum _BMDTimecodeFlags
         bmdTimecodeFieldMark   = ( 1 << 1 ) ,\r
         bmdTimecodeColorFrame  = ( 1 << 2 ) ,\r
         bmdTimecodeEmbedRecordingTrigger       = ( 1 << 3 ) ,\r
-        bmdTimecodeRecordingTriggered  = ( 1 << 4 )\r
+        bmdTimecodeRecordingTriggered  = ( 1 << 4 ) \r
     } ;\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoConnection\r
     {\r
         bmdVideoConnectionUnspecified  = 0,\r
@@ -1015,10 +1058,10 @@ enum _BMDVideoConnection
         bmdVideoConnectionOpticalSDI   = ( 1 << 2 ) ,\r
         bmdVideoConnectionComponent    = ( 1 << 3 ) ,\r
         bmdVideoConnectionComposite    = ( 1 << 4 ) ,\r
-        bmdVideoConnectionSVideo       = ( 1 << 5 )\r
+        bmdVideoConnectionSVideo       = ( 1 << 5 ) \r
     }  BMDVideoConnection;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioConnection\r
     {\r
         bmdAudioConnectionEmbedded     = ( 1 << 0 ) ,\r
@@ -1027,14 +1070,14 @@ enum _BMDAudioConnection
         bmdAudioConnectionAnalogXLR    = ( 1 << 3 ) ,\r
         bmdAudioConnectionAnalogRCA    = ( 1 << 4 ) ,\r
         bmdAudioConnectionMicrophone   = ( 1 << 5 ) ,\r
-        bmdAudioConnectionHeadphones   = ( 1 << 6 )\r
+        bmdAudioConnectionHeadphones   = ( 1 << 6 ) \r
     }  BMDAudioConnection;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckControlConnection\r
     {\r
         bmdDeckControlConnectionRS422Remote1   = ( 1 << 0 ) ,\r
-        bmdDeckControlConnectionRS422Remote2   = ( 1 << 1 )\r
+        bmdDeckControlConnectionRS422Remote2   = ( 1 << 1 ) \r
     }  BMDDeckControlConnection;\r
 \r
 \r
@@ -1043,7 +1086,7 @@ typedef unsigned int BMDDisplayModeFlags;
 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;\r
 \r
 #endif\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDisplayMode\r
     {\r
         bmdModeNTSC    = 0x6e747363,\r
@@ -1156,12 +1199,10 @@ enum _BMDDisplayMode
         bmdMode2560x1440p60    = 0x77716836,\r
         bmdMode2560x1600p50    = 0x77717835,\r
         bmdMode2560x1600p60    = 0x77717836,\r
-        bmdModeCintelRAW       = 0x72776369,\r
-        bmdModeCintelCompressedRAW     = 0x72776363,\r
         bmdModeUnknown = 0x69756e6b\r
     }  BMDDisplayMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDFieldDominance\r
     {\r
         bmdUnknownFieldDominance       = 0,\r
@@ -1171,7 +1212,7 @@ enum _BMDFieldDominance
         bmdProgressiveSegmentedFrame   = 0x70736620\r
     }  BMDFieldDominance;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDPixelFormat\r
     {\r
         bmdFormatUnspecified   = 0,\r
@@ -1185,18 +1226,16 @@ enum _BMDPixelFormat
         bmdFormat10BitRGBXLE   = 0x5231306c,\r
         bmdFormat10BitRGBX     = 0x52313062,\r
         bmdFormatH265  = 0x68657631,\r
-        bmdFormatDNxHR = 0x41566468,\r
-        bmdFormat12BitRAWGRBG  = 0x72313270,\r
-        bmdFormat12BitRAWJPEG  = 0x72313670\r
+        bmdFormatDNxHR = 0x41566468\r
     }  BMDPixelFormat;\r
 \r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDDisplayModeFlags\r
     {\r
         bmdDisplayModeSupports3D       = ( 1 << 0 ) ,\r
         bmdDisplayModeColorspaceRec601 = ( 1 << 1 ) ,\r
         bmdDisplayModeColorspaceRec709 = ( 1 << 2 ) ,\r
-        bmdDisplayModeColorspaceRec2020        = ( 1 << 3 )\r
+        bmdDisplayModeColorspaceRec2020        = ( 1 << 3 ) \r
     } ;\r
 \r
 \r
@@ -1205,7 +1244,7 @@ enum _BMDDisplayModeFlags
 \r
 #if 0\r
 #endif\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkConfigurationID\r
     {\r
         bmdDeckLinkConfigSwapSerialRxTx        = 0x73737274,\r
@@ -1213,6 +1252,8 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigBypass        = 0x62797073,\r
         bmdDeckLinkConfigClockTimingAdjustment = 0x63746164,\r
         bmdDeckLinkConfigAnalogAudioConsumerLevels     = 0x6161636c,\r
+        bmdDeckLinkConfigSwapHDMICh3AndCh4OnInput      = 0x68693334,\r
+        bmdDeckLinkConfigSwapHDMICh3AndCh4OnOutput     = 0x686f3334,\r
         bmdDeckLinkConfigFieldFlickerRemoval   = 0x66646672,\r
         bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion      = 0x746f3539,\r
         bmdDeckLinkConfig444SDIVideoOutput     = 0x3434346f,\r
@@ -1260,6 +1301,7 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigVideoInputCompositeChromaGain = 0x69696367,\r
         bmdDeckLinkConfigVideoInputSVideoLumaGain      = 0x69736c67,\r
         bmdDeckLinkConfigVideoInputSVideoChromaGain    = 0x69736367,\r
+        bmdDeckLinkConfigInternalKeyingAncillaryDataSource     = 0x696b6173,\r
         bmdDeckLinkConfigMicrophonePhantomPower        = 0x6d706870,\r
         bmdDeckLinkConfigAudioInputConnection  = 0x6169636e,\r
         bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 0x61697331,\r
@@ -1284,7 +1326,7 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigDeckControlConnection = 0x6463636f\r
     }  BMDDeckLinkConfigurationID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkEncoderConfigurationID\r
     {\r
         bmdDeckLinkEncoderConfigPreferredBitDepth      = 0x65706272,\r
@@ -1306,7 +1348,7 @@ typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;
 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;\r
 \r
 #endif\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckControlMode\r
     {\r
         bmdDeckControlNotOpened        = 0x6e746f70,\r
@@ -1315,7 +1357,7 @@ enum _BMDDeckControlMode
         bmdDeckControlCaptureMode      = 0x6361706d\r
     }  BMDDeckControlMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckControlEvent\r
     {\r
         bmdDeckControlAbortedEvent     = 0x61627465,\r
@@ -1325,7 +1367,7 @@ enum _BMDDeckControlEvent
         bmdDeckControlCaptureCompleteEvent     = 0x63636576\r
     }  BMDDeckControlEvent;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckControlVTRControlState\r
     {\r
         bmdDeckControlNotInVTRControlMode      = 0x6e76636d,\r
@@ -1339,15 +1381,15 @@ enum _BMDDeckControlVTRControlState
         bmdDeckControlVTRControlStopped        = 0x7674726f\r
     }  BMDDeckControlVTRControlState;\r
 \r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDDeckControlStatusFlags\r
     {\r
         bmdDeckControlStatusDeckConnected      = ( 1 << 0 ) ,\r
         bmdDeckControlStatusRemoteMode = ( 1 << 1 ) ,\r
         bmdDeckControlStatusRecordInhibited    = ( 1 << 2 ) ,\r
-        bmdDeckControlStatusCassetteOut        = ( 1 << 3 )\r
+        bmdDeckControlStatusCassetteOut        = ( 1 << 3 ) \r
     } ;\r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDDeckControlExportModeOpsFlags\r
     {\r
         bmdDeckControlExportModeInsertVideo    = ( 1 << 0 ) ,\r
@@ -1366,9 +1408,9 @@ enum _BMDDeckControlExportModeOpsFlags
         bmdDeckControlExportModeInsertTimeCode = ( 1 << 13 ) ,\r
         bmdDeckControlExportModeInsertAssemble = ( 1 << 14 ) ,\r
         bmdDeckControlExportModeInsertPreview  = ( 1 << 15 ) ,\r
-        bmdDeckControlUseManualExport  = ( 1 << 16 )\r
+        bmdDeckControlUseManualExport  = ( 1 << 16 ) \r
     } ;\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckControlError\r
     {\r
         bmdDeckControlNoError  = 0x6e6f6572,\r
@@ -1393,7 +1435,7 @@ enum _BMDDeckControlError
 \r
 #if 0\r
 #endif\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingDeviceMode\r
     {\r
         bmdStreamingDeviceIdle = 0x69646c65,\r
@@ -1402,7 +1444,7 @@ enum _BMDStreamingDeviceMode
         bmdStreamingDeviceUnknown      = 0x6d756e6b\r
     }  BMDStreamingDeviceMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingEncodingFrameRate\r
     {\r
         bmdStreamingEncodedFrameRate50i        = 0x65353069,\r
@@ -1418,21 +1460,21 @@ enum _BMDStreamingEncodingFrameRate
         bmdStreamingEncodedFrameRate60p        = 0x65363070\r
     }  BMDStreamingEncodingFrameRate;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingEncodingSupport\r
     {\r
         bmdStreamingEncodingModeNotSupported   = 0,\r
         bmdStreamingEncodingModeSupported      = ( bmdStreamingEncodingModeNotSupported + 1 ) ,\r
-        bmdStreamingEncodingModeSupportedWithChanges   = ( bmdStreamingEncodingModeSupported + 1 )\r
+        bmdStreamingEncodingModeSupportedWithChanges   = ( bmdStreamingEncodingModeSupported + 1 ) \r
     }  BMDStreamingEncodingSupport;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingVideoCodec\r
     {\r
         bmdStreamingVideoCodecH264     = 0x48323634\r
     }  BMDStreamingVideoCodec;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingH264Profile\r
     {\r
         bmdStreamingH264ProfileHigh    = 0x68696768,\r
@@ -1440,7 +1482,7 @@ enum _BMDStreamingH264Profile
         bmdStreamingH264ProfileBaseline        = 0x62617365\r
     }  BMDStreamingH264Profile;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingH264Level\r
     {\r
         bmdStreamingH264Level12        = 0x6c763132,\r
@@ -1456,20 +1498,20 @@ enum _BMDStreamingH264Level
         bmdStreamingH264Level42        = 0x6c763432\r
     }  BMDStreamingH264Level;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingH264EntropyCoding\r
     {\r
         bmdStreamingH264EntropyCodingCAVLC     = 0x45564c43,\r
         bmdStreamingH264EntropyCodingCABAC     = 0x45424143\r
     }  BMDStreamingH264EntropyCoding;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingAudioCodec\r
     {\r
         bmdStreamingAudioCodecAAC      = 0x41414320\r
     }  BMDStreamingAudioCodec;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDStreamingEncodingModePropertyID\r
     {\r
         bmdStreamingEncodingPropertyVideoFrameRate     = 0x76667274,\r
@@ -1518,7 +1560,7 @@ typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;
 typedef enum _BMDDeviceBusyState BMDDeviceBusyState;\r
 \r
 #endif\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoOutputFlags\r
     {\r
         bmdVideoOutputFlagDefault      = 0,\r
@@ -1526,10 +1568,10 @@ enum _BMDVideoOutputFlags
         bmdVideoOutputVITC     = ( 1 << 1 ) ,\r
         bmdVideoOutputRP188    = ( 1 << 2 ) ,\r
         bmdVideoOutputDualStream3D     = ( 1 << 4 ) ,\r
-        bmdVideoOutputSynchronizeToPlaybackGroup       = ( 1 << 6 )\r
+        bmdVideoOutputSynchronizeToPlaybackGroup       = ( 1 << 6 ) \r
     }  BMDVideoOutputFlags;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDSupportedVideoModeFlags\r
     {\r
         bmdSupportedVideoModeDefault   = 0,\r
@@ -1538,99 +1580,102 @@ enum _BMDSupportedVideoModeFlags
         bmdSupportedVideoModeSDISingleLink     = ( 1 << 2 ) ,\r
         bmdSupportedVideoModeSDIDualLink       = ( 1 << 3 ) ,\r
         bmdSupportedVideoModeSDIQuadLink       = ( 1 << 4 ) ,\r
-        bmdSupportedVideoModeInAnyProfile      = ( 1 << 5 )\r
+        bmdSupportedVideoModeInAnyProfile      = ( 1 << 5 ) \r
     }  BMDSupportedVideoModeFlags;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDPacketType\r
     {\r
         bmdPacketTypeStreamInterruptedMarker   = 0x73696e74,\r
         bmdPacketTypeStreamData        = 0x73646174\r
     }  BMDPacketType;\r
 \r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDFrameFlags\r
     {\r
         bmdFrameFlagDefault    = 0,\r
         bmdFrameFlagFlipVertical       = ( 1 << 0 ) ,\r
         bmdFrameContainsHDRMetadata    = ( 1 << 1 ) ,\r
-        bmdFrameContainsCintelMetadata = ( 1 << 2 ) ,\r
         bmdFrameCapturedAsPsF  = ( 1 << 30 ) ,\r
-        bmdFrameHasNoInputSource       = ( 1 << 31 )\r
+        bmdFrameHasNoInputSource       = ( 1 << 31 ) \r
     } ;\r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDVideoInputFlags\r
     {\r
         bmdVideoInputFlagDefault       = 0,\r
         bmdVideoInputEnableFormatDetection     = ( 1 << 0 ) ,\r
         bmdVideoInputDualStream3D      = ( 1 << 1 ) ,\r
-        bmdVideoInputSynchronizeToCaptureGroup = ( 1 << 2 )\r
+        bmdVideoInputSynchronizeToCaptureGroup = ( 1 << 2 ) \r
     } ;\r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDVideoInputFormatChangedEvents\r
     {\r
         bmdVideoInputDisplayModeChanged        = ( 1 << 0 ) ,\r
         bmdVideoInputFieldDominanceChanged     = ( 1 << 1 ) ,\r
-        bmdVideoInputColorspaceChanged = ( 1 << 2 )\r
+        bmdVideoInputColorspaceChanged = ( 1 << 2 ) \r
     } ;\r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDDetectedVideoInputFormatFlags\r
     {\r
         bmdDetectedVideoInputYCbCr422  = ( 1 << 0 ) ,\r
         bmdDetectedVideoInputRGB444    = ( 1 << 1 ) ,\r
-        bmdDetectedVideoInputDualStream3D      = ( 1 << 2 )\r
+        bmdDetectedVideoInputDualStream3D      = ( 1 << 2 ) ,\r
+        bmdDetectedVideoInput12BitDepth        = ( 1 << 3 ) ,\r
+        bmdDetectedVideoInput10BitDepth        = ( 1 << 4 ) ,\r
+        bmdDetectedVideoInput8BitDepth = ( 1 << 5 ) \r
     } ;\r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDDeckLinkCapturePassthroughMode\r
     {\r
         bmdDeckLinkCapturePassthroughModeDisabled      = 0x70646973,\r
         bmdDeckLinkCapturePassthroughModeDirect        = 0x70646972,\r
         bmdDeckLinkCapturePassthroughModeCleanSwitch   = 0x70636c6e\r
     } ;\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDOutputFrameCompletionResult\r
     {\r
         bmdOutputFrameCompleted        = 0,\r
         bmdOutputFrameDisplayedLate    = ( bmdOutputFrameCompleted + 1 ) ,\r
         bmdOutputFrameDropped  = ( bmdOutputFrameDisplayedLate + 1 ) ,\r
-        bmdOutputFrameFlushed  = ( bmdOutputFrameDropped + 1 )\r
+        bmdOutputFrameFlushed  = ( bmdOutputFrameDropped + 1 ) \r
     }  BMDOutputFrameCompletionResult;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDReferenceStatus\r
     {\r
+        bmdReferenceUnlocked   = 0,\r
         bmdReferenceNotSupportedByHardware     = ( 1 << 0 ) ,\r
-        bmdReferenceLocked     = ( 1 << 1 )\r
+        bmdReferenceLocked     = ( 1 << 1 ) \r
     }  BMDReferenceStatus;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioFormat\r
     {\r
         bmdAudioFormatPCM      = 0x6c70636d\r
     }  BMDAudioFormat;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioSampleRate\r
     {\r
         bmdAudioSampleRate48kHz        = 48000\r
     }  BMDAudioSampleRate;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioSampleType\r
     {\r
         bmdAudioSampleType16bitInteger = 16,\r
         bmdAudioSampleType32bitInteger = 32\r
     }  BMDAudioSampleType;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioOutputStreamType\r
     {\r
         bmdAudioOutputStreamContinuous = 0,\r
         bmdAudioOutputStreamContinuousDontResample     = ( bmdAudioOutputStreamContinuous + 1 ) ,\r
-        bmdAudioOutputStreamTimestamped        = ( bmdAudioOutputStreamContinuousDontResample + 1 )\r
+        bmdAudioOutputStreamTimestamped        = ( bmdAudioOutputStreamContinuousDontResample + 1 ) \r
     }  BMDAudioOutputStreamType;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAncillaryPacketFormat\r
     {\r
         bmdAncillaryPacketFormatUInt8  = 0x75693038,\r
@@ -1638,7 +1683,7 @@ enum _BMDAncillaryPacketFormat
         bmdAncillaryPacketFormatYCbCr10        = 0x76323130\r
     }  BMDAncillaryPacketFormat;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDTimecodeFormat\r
     {\r
         bmdTimecodeRP188VITC1  = 0x72707631,\r
@@ -1651,20 +1696,20 @@ enum _BMDTimecodeFormat
         bmdTimecodeSerial      = 0x73657269\r
     }  BMDTimecodeFormat;\r
 \r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDAnalogVideoFlags\r
     {\r
         bmdAnalogVideoFlagCompositeSetup75     = ( 1 << 0 ) ,\r
-        bmdAnalogVideoFlagComponentBetacamLevels       = ( 1 << 1 )\r
+        bmdAnalogVideoFlagComponentBetacamLevels       = ( 1 << 1 ) \r
     } ;\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioOutputAnalogAESSwitch\r
     {\r
         bmdAudioOutputSwitchAESEBU     = 0x61657320,\r
         bmdAudioOutputSwitchAnalog     = 0x616e6c67\r
     }  BMDAudioOutputAnalogAESSwitch;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoOutputConversionMode\r
     {\r
         bmdNoVideoOutputConversion     = 0x6e6f6e65,\r
@@ -1683,7 +1728,7 @@ enum _BMDVideoOutputConversionMode
         bmdVideoOutputHardwarePillarbox1080iUpconversion       = 0x75703169\r
     }  BMDVideoOutputConversionMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoInputConversionMode\r
     {\r
         bmdNoVideoInputConversion      = 0x6e6f6e65,\r
@@ -1695,7 +1740,7 @@ enum _BMDVideoInputConversionMode
         bmdVideoInputAnamorphicUpconversion    = 0x616d7570\r
     }  BMDVideoInputConversionMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideo3DPackingFormat\r
     {\r
         bmdVideo3DPackingSidebySideHalf        = 0x73627368,\r
@@ -1706,21 +1751,21 @@ enum _BMDVideo3DPackingFormat
         bmdVideo3DPackingRightOnly     = 0x72696768\r
     }  BMDVideo3DPackingFormat;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDIdleVideoOutputOperation\r
     {\r
         bmdIdleVideoOutputBlack        = 0x626c6163,\r
         bmdIdleVideoOutputLastFrame    = 0x6c616661\r
     }  BMDIdleVideoOutputOperation;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoEncoderFrameCodingMode\r
     {\r
         bmdVideoEncoderFrameCodingModeInter    = 0x696e7465,\r
         bmdVideoEncoderFrameCodingModeIntra    = 0x696e7472\r
     }  BMDVideoEncoderFrameCodingMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDNxHRLevel\r
     {\r
         bmdDNxHRLevelSQ        = 0x646e7371,\r
@@ -1730,7 +1775,7 @@ enum _BMDDNxHRLevel
         bmdDNxHRLevel444       = 0x64343434\r
     }  BMDDNxHRLevel;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDLinkConfiguration\r
     {\r
         bmdLinkConfigurationSingleLink = 0x6c63736c,\r
@@ -1738,7 +1783,7 @@ enum _BMDLinkConfiguration
         bmdLinkConfigurationQuadLink   = 0x6c63716c\r
     }  BMDLinkConfiguration;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeviceInterface\r
     {\r
         bmdDeviceInterfacePCI  = 0x70636920,\r
@@ -1746,7 +1791,7 @@ enum _BMDDeviceInterface
         bmdDeviceInterfaceThunderbolt  = 0x7468756e\r
     }  BMDDeviceInterface;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDColorspace\r
     {\r
         bmdColorspaceRec601    = 0x72363031,\r
@@ -1754,54 +1799,25 @@ enum _BMDColorspace
         bmdColorspaceRec2020   = 0x32303230\r
     }  BMDColorspace;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDynamicRange\r
     {\r
         bmdDynamicRangeSDR     = 0,\r
         bmdDynamicRangeHDRStaticPQ     = ( 1 << 29 ) ,\r
-        bmdDynamicRangeHDRStaticHLG    = ( 1 << 30 )\r
+        bmdDynamicRangeHDRStaticHLG    = ( 1 << 30 ) \r
     }  BMDDynamicRange;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkHDMIInputEDIDID\r
     {\r
         bmdDeckLinkHDMIInputEDIDDynamicRange   = 0x48494479\r
     }  BMDDeckLinkHDMIInputEDIDID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkFrameMetadataID\r
     {\r
         bmdDeckLinkFrameMetadataColorspace     = 0x63737063,\r
         bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc  = 0x656f7466,\r
-        bmdDeckLinkFrameMetadataCintelFilmType = 0x63667479,\r
-        bmdDeckLinkFrameMetadataCintelFilmGauge        = 0x63666761,\r
-        bmdDeckLinkFrameMetadataCintelKeykodeLow       = 0x636b6b6c,\r
-        bmdDeckLinkFrameMetadataCintelKeykodeHigh      = 0x636b6b68,\r
-        bmdDeckLinkFrameMetadataCintelTile1Size        = 0x63743173,\r
-        bmdDeckLinkFrameMetadataCintelTile2Size        = 0x63743273,\r
-        bmdDeckLinkFrameMetadataCintelTile3Size        = 0x63743373,\r
-        bmdDeckLinkFrameMetadataCintelTile4Size        = 0x63743473,\r
-        bmdDeckLinkFrameMetadataCintelImageWidth       = 0x49575078,\r
-        bmdDeckLinkFrameMetadataCintelImageHeight      = 0x49485078,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed    = 0x6d726972,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed  = 0x6d676972,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed   = 0x6d626972,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen  = 0x6d726967,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen        = 0x6d676967,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen = 0x6d626967,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue   = 0x6d726962,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue = 0x6d676962,\r
-        bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue  = 0x6d626962,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed       = 0x6d6c7272,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed     = 0x6d6c6772,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed      = 0x6d6c6272,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen     = 0x6d6c7267,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen   = 0x6d6c6767,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen    = 0x6d6c6267,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue      = 0x6d6c7262,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue    = 0x6d6c6762,\r
-        bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue     = 0x6d6c6262,\r
-        bmdDeckLinkFrameMetadataCintelFilmFrameRate    = 0x63666672,\r
         bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX        = 0x68647278,\r
         bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY        = 0x68647279,\r
         bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX      = 0x68646778,\r
@@ -1813,21 +1829,10 @@ enum _BMDDeckLinkFrameMetadataID
         bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance        = 0x68646d6c,\r
         bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance        = 0x686d696c,\r
         bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel    = 0x6d636c6c,\r
-        bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel       = 0x66616c6c,\r
-        bmdDeckLinkFrameMetadataCintelOffsetToApplyHorizontal  = 0x6f746168,\r
-        bmdDeckLinkFrameMetadataCintelOffsetToApplyVertical    = 0x6f746176,\r
-        bmdDeckLinkFrameMetadataCintelGainRed  = 0x4c665264,\r
-        bmdDeckLinkFrameMetadataCintelGainGreen        = 0x4c664772,\r
-        bmdDeckLinkFrameMetadataCintelGainBlue = 0x4c66426c,\r
-        bmdDeckLinkFrameMetadataCintelLiftRed  = 0x476e5264,\r
-        bmdDeckLinkFrameMetadataCintelLiftGreen        = 0x476e4772,\r
-        bmdDeckLinkFrameMetadataCintelLiftBlue = 0x476e426c,\r
-        bmdDeckLinkFrameMetadataCintelHDRGainRed       = 0x48475264,\r
-        bmdDeckLinkFrameMetadataCintelHDRGainGreen     = 0x48474772,\r
-        bmdDeckLinkFrameMetadataCintelHDRGainBlue      = 0x4847426c\r
+        bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel       = 0x66616c6c\r
     }  BMDDeckLinkFrameMetadataID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDProfileID\r
     {\r
         bmdProfileOneSubDeviceFullDuplex       = 0x31646664,\r
@@ -1837,7 +1842,7 @@ enum _BMDProfileID
         bmdProfileFourSubDevicesHalfDuplex     = 0x34646864\r
     }  BMDProfileID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDHDMITimecodePacking\r
     {\r
         bmdHDMITimecodePackingIEEEOUI000085    = 0x8500,\r
@@ -1845,7 +1850,14 @@ enum _BMDHDMITimecodePacking
         bmdHDMITimecodePackingIEEEOUI5CF9F0    = 0x5cf9f003\r
     }  BMDHDMITimecodePacking;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
+enum _BMDInternalKeyingAncillaryDataSource\r
+    {\r
+        bmdInternalKeyingUsesAncillaryDataFromInputSignal      = 0x696b6169,\r
+        bmdInternalKeyingUsesAncillaryDataFromKeyFrame = 0x696b616b\r
+    }  BMDInternalKeyingAncillaryDataSource;\r
+\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkAttributeID\r
     {\r
         BMDDeckLinkSupportsInternalKeying      = 0x6b657969,\r
@@ -1860,6 +1872,7 @@ enum _BMDDeckLinkAttributeID
         BMDDeckLinkSupportsClockTimingAdjustment       = 0x63746164,\r
         BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = 0x6672696e,\r
         BMDDeckLinkSupportsSMPTELevelAOutput   = 0x6c766c61,\r
+        BMDDeckLinkSupportsAutoSwitchingPPsFOnInput    = 0x61707366,\r
         BMDDeckLinkSupportsDualLinkSDI = 0x73646c73,\r
         BMDDeckLinkSupportsQuadLinkSDI = 0x73716c73,\r
         BMDDeckLinkSupportsIdleOutput  = 0x69646f75,\r
@@ -1892,6 +1905,8 @@ enum _BMDDeckLinkAttributeID
         BMDDeckLinkAudioOutputXLRChannelCount  = 0x616f7863,\r
         BMDDeckLinkProfileID   = 0x70726964,\r
         BMDDeckLinkDuplex      = 0x64757078,\r
+        BMDDeckLinkMinimumPrerollFrames        = 0x6d707266,\r
+        BMDDeckLinkSupportedDynamicRange       = 0x73756472,\r
         BMDDeckLinkVideoInputGainMinimum       = 0x7669676d,\r
         BMDDeckLinkVideoInputGainMaximum       = 0x76696778,\r
         BMDDeckLinkVideoOutputGainMinimum      = 0x766f676d,\r
@@ -1905,17 +1920,21 @@ enum _BMDDeckLinkAttributeID
         BMDDeckLinkDeviceHandle        = 0x64657668\r
     }  BMDDeckLinkAttributeID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkAPIInformationID\r
     {\r
         BMDDeckLinkAPIVersion  = 0x76657273\r
     }  BMDDeckLinkAPIInformationID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkStatusID\r
     {\r
         bmdDeckLinkStatusDetectedVideoInputMode        = 0x6476696d,\r
-        bmdDeckLinkStatusDetectedVideoInputFlags       = 0x64766966,\r
+        bmdDeckLinkStatusDetectedVideoInputFormatFlags = 0x64766666,\r
+        bmdDeckLinkStatusDetectedVideoInputFieldDominance      = 0x64766664,\r
+        bmdDeckLinkStatusDetectedVideoInputColorspace  = 0x6473636c,\r
+        bmdDeckLinkStatusDetectedVideoInputDynamicRange        = 0x64736472,\r
+        bmdDeckLinkStatusDetectedSDILinkConfiguration  = 0x64736c63,\r
         bmdDeckLinkStatusCurrentVideoInputMode = 0x6376696d,\r
         bmdDeckLinkStatusCurrentVideoInputPixelFormat  = 0x63766970,\r
         bmdDeckLinkStatusCurrentVideoInputFlags        = 0x63766966,\r
@@ -1934,14 +1953,14 @@ enum _BMDDeckLinkStatusID
         bmdDeckLinkStatusReceivedEDID  = 0x65646964\r
     }  BMDDeckLinkStatusID;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkVideoStatusFlags\r
     {\r
         bmdDeckLinkVideoStatusPsF      = ( 1 << 0 ) ,\r
-        bmdDeckLinkVideoStatusDualStream3D     = ( 1 << 1 )\r
+        bmdDeckLinkVideoStatusDualStream3D     = ( 1 << 1 ) \r
     }  BMDDeckLinkVideoStatusFlags;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDuplexMode\r
     {\r
         bmdDuplexFull  = 0x64786675,\r
@@ -1950,28 +1969,28 @@ enum _BMDDuplexMode
         bmdDuplexInactive      = 0x6478696e\r
     }  BMDDuplexMode;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDPanelType\r
     {\r
         bmdPanelNotDetected    = 0x6e706e6c,\r
         bmdPanelTeranexMiniSmartPanel  = 0x746d736d\r
     }  BMDPanelType;\r
 \r
-/* [v1_enum] */\r
+/* [v1_enum] */ \r
 enum _BMDDeviceBusyState\r
     {\r
         bmdDeviceCaptureBusy   = ( 1 << 0 ) ,\r
         bmdDevicePlaybackBusy  = ( 1 << 1 ) ,\r
-        bmdDeviceSerialPortBusy        = ( 1 << 2 )\r
+        bmdDeviceSerialPortBusy        = ( 1 << 2 ) \r
     } ;\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoIOSupport\r
     {\r
         bmdDeviceSupportsCapture       = ( 1 << 0 ) ,\r
-        bmdDeviceSupportsPlayback      = ( 1 << 1 )\r
+        bmdDeviceSupportsPlayback      = ( 1 << 1 ) \r
     }  BMDVideoIOSupport;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMD3DPreviewFormat\r
     {\r
         bmd3DPreviewFormatDefault      = 0x64656661,\r
@@ -1981,7 +2000,7 @@ enum _BMD3DPreviewFormat
         bmd3DPreviewFormatTopBottom    = 0x746f7062\r
     }  BMD3DPreviewFormat;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDNotifications\r
     {\r
         bmdPreferencesChanged  = 0x70726566,\r
@@ -2028,28 +2047,34 @@ enum _BMDNotifications
 \r
 \r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkStatusID_v11_5_1\r
+    {\r
+        bmdDeckLinkStatusDetectedVideoInputFlags_v11_5_1       = 0x64766966\r
+    }  BMDDeckLinkStatusID_v11_5_1;\r
+\r
+typedef /* [v1_enum] */ \r
 enum _BMDDisplayModeSupport_v10_11\r
     {\r
         bmdDisplayModeNotSupported_v10_11      = 0,\r
         bmdDisplayModeSupported_v10_11 = ( bmdDisplayModeNotSupported_v10_11 + 1 ) ,\r
-        bmdDisplayModeSupportedWithConversion_v10_11   = ( bmdDisplayModeSupported_v10_11 + 1 )\r
+        bmdDisplayModeSupportedWithConversion_v10_11   = ( bmdDisplayModeSupported_v10_11 + 1 ) \r
     }  BMDDisplayModeSupport_v10_11;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDuplexMode_v10_11\r
     {\r
         bmdDuplexModeFull_v10_11       = 0x66647570,\r
         bmdDuplexModeHalf_v10_11       = 0x68647570\r
     }  BMDDuplexMode_v10_11;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkConfigurationID_v10_11\r
     {\r
         bmdDeckLinkConfigDuplexMode_v10_11     = 0x64757078\r
     }  BMDDeckLinkConfigurationID_v10_11;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkAttributeID_v10_11\r
     {\r
         BMDDeckLinkSupportsDuplexModeConfiguration_v10_11      = 0x64757078,\r
@@ -2058,13 +2083,13 @@ enum _BMDDeckLinkAttributeID_v10_11
         BMDDeckLinkSupportsFullDuplex_v10_11   = 0x66647570\r
     }  BMDDeckLinkAttributeID_v10_11;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkStatusID_v10_11\r
     {\r
         bmdDeckLinkStatusDuplexMode_v10_11     = 0x64757078\r
     }  BMDDeckLinkStatusID_v10_11;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDuplexStatus_v10_11\r
     {\r
         bmdDuplexFullDuplex_v10_11     = 0x66647570,\r
@@ -2076,46 +2101,27 @@ enum _BMDDuplexStatus_v10_11
 \r
 \r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkConfigurationID_v10_9\r
     {\r
         bmdDeckLinkConfig1080pNotPsF_v10_9     = 0x6670726f\r
     }  BMDDeckLinkConfigurationID_v10_9;\r
 \r
 \r
-typedef /* [v1_enum] */\r
-enum _BMDDeckLinkAttributeID_v10_6\r
-    {\r
-        BMDDeckLinkSupportsDesktopDisplay_v10_6        = 0x65787464\r
-    }  BMDDeckLinkAttributeID_v10_6;\r
-\r
-typedef /* [v1_enum] */\r
-enum _BMDIdleVideoOutputOperation_v10_6\r
-    {\r
-        bmdIdleVideoOutputDesktop_v10_6        = 0x6465736b\r
-    }  BMDIdleVideoOutputOperation_v10_6;\r
-\r
-typedef /* [v1_enum] */\r
-enum _BMDDeckLinkAttributeID_v10_5\r
-    {\r
-        BMDDeckLinkDeviceBusyState_v10_5       = 0x64627374\r
-    }  BMDDeckLinkAttributeID_v10_5;\r
-\r
-\r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkConfigurationID_v10_4\r
     {\r
         bmdDeckLinkConfigSingleLinkVideoOutput_v10_4   = 0x73676c6f\r
     }  BMDDeckLinkConfigurationID_v10_4;\r
 \r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkConfigurationID_v10_2\r
     {\r
         bmdDeckLinkConfig3GBpsVideoOutput_v10_2        = 0x33676273\r
     }  BMDDeckLinkConfigurationID_v10_2;\r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDAudioConnection_v10_2\r
     {\r
         bmdAudioConnectionEmbedded_v10_2       = 0x656d6264,\r
@@ -2126,7 +2132,77 @@ enum _BMDAudioConnection_v10_2
     }  BMDAudioConnection_v10_2;\r
 \r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkFrameMetadataID_v11_5\r
+    {\r
+        bmdDeckLinkFrameMetadataCintelFilmType_v11_5   = 0x63667479,\r
+        bmdDeckLinkFrameMetadataCintelFilmGauge_v11_5  = 0x63666761,\r
+        bmdDeckLinkFrameMetadataCintelKeykodeLow_v11_5 = 0x636b6b6c,\r
+        bmdDeckLinkFrameMetadataCintelKeykodeHigh_v11_5        = 0x636b6b68,\r
+        bmdDeckLinkFrameMetadataCintelTile1Size_v11_5  = 0x63743173,\r
+        bmdDeckLinkFrameMetadataCintelTile2Size_v11_5  = 0x63743273,\r
+        bmdDeckLinkFrameMetadataCintelTile3Size_v11_5  = 0x63743373,\r
+        bmdDeckLinkFrameMetadataCintelTile4Size_v11_5  = 0x63743473,\r
+        bmdDeckLinkFrameMetadataCintelImageWidth_v11_5 = 0x49575078,\r
+        bmdDeckLinkFrameMetadataCintelImageHeight_v11_5        = 0x49485078,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingRedInRed_v11_5      = 0x6d726972,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInRed_v11_5    = 0x6d676972,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInRed_v11_5     = 0x6d626972,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingRedInGreen_v11_5    = 0x6d726967,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInGreen_v11_5  = 0x6d676967,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInGreen_v11_5   = 0x6d626967,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingRedInBlue_v11_5     = 0x6d726962,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingGreenInBlue_v11_5   = 0x6d676962,\r
+        bmdDeckLinkFrameMetadataCintelLinearMaskingBlueInBlue_v11_5    = 0x6d626962,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingRedInRed_v11_5 = 0x6d6c7272,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingGreenInRed_v11_5       = 0x6d6c6772,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingBlueInRed_v11_5        = 0x6d6c6272,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingRedInGreen_v11_5       = 0x6d6c7267,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingGreenInGreen_v11_5     = 0x6d6c6767,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingBlueInGreen_v11_5      = 0x6d6c6267,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingRedInBlue_v11_5        = 0x6d6c7262,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingGreenInBlue_v11_5      = 0x6d6c6762,\r
+        bmdDeckLinkFrameMetadataCintelLogMaskingBlueInBlue_v11_5       = 0x6d6c6262,\r
+        bmdDeckLinkFrameMetadataCintelFilmFrameRate_v11_5      = 0x63666672,\r
+        bmdDeckLinkFrameMetadataCintelOffsetToApplyHorizontal_v11_5    = 0x6f746168,\r
+        bmdDeckLinkFrameMetadataCintelOffsetToApplyVertical_v11_5      = 0x6f746176,\r
+        bmdDeckLinkFrameMetadataCintelGainRed_v11_5    = 0x4c665264,\r
+        bmdDeckLinkFrameMetadataCintelGainGreen_v11_5  = 0x4c664772,\r
+        bmdDeckLinkFrameMetadataCintelGainBlue_v11_5   = 0x4c66426c,\r
+        bmdDeckLinkFrameMetadataCintelLiftRed_v11_5    = 0x476e5264,\r
+        bmdDeckLinkFrameMetadataCintelLiftGreen_v11_5  = 0x476e4772,\r
+        bmdDeckLinkFrameMetadataCintelLiftBlue_v11_5   = 0x476e426c,\r
+        bmdDeckLinkFrameMetadataCintelHDRGainRed_v11_5 = 0x48475264,\r
+        bmdDeckLinkFrameMetadataCintelHDRGainGreen_v11_5       = 0x48474772,\r
+        bmdDeckLinkFrameMetadataCintelHDRGainBlue_v11_5        = 0x4847426c,\r
+        bmdDeckLinkFrameMetadataCintel16mmCropRequired_v11_5   = 0x63313663,\r
+        bmdDeckLinkFrameMetadataCintelInversionRequired_v11_5  = 0x63696e76,\r
+        bmdDeckLinkFrameMetadataCintelFlipRequired_v11_5       = 0x63666c72,\r
+        bmdDeckLinkFrameMetadataCintelFocusAssistEnabled_v11_5 = 0x63666165,\r
+        bmdDeckLinkFrameMetadataCintelKeykodeIsInterpolated_v11_5      = 0x6b6b6969\r
+    }  BMDDeckLinkFrameMetadataID_v11_5;\r
+\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkAttributeID_v10_6\r
+    {\r
+        BMDDeckLinkSupportsDesktopDisplay_v10_6        = 0x65787464\r
+    }  BMDDeckLinkAttributeID_v10_6;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDIdleVideoOutputOperation_v10_6\r
+    {\r
+        bmdIdleVideoOutputDesktop_v10_6        = 0x6465736b\r
+    }  BMDIdleVideoOutputOperation_v10_6;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkAttributeID_v10_5\r
+    {\r
+        BMDDeckLinkDeviceBusyState_v10_5       = 0x64627374\r
+    }  BMDDeckLinkAttributeID_v10_5;\r
+\r
+\r
+typedef /* [v1_enum] */ \r
 enum _BMDDeckControlVTRControlState_v8_1\r
     {\r
         bmdDeckControlNotInVTRControlMode_v8_1 = 0x6e76636d,\r
@@ -2139,7 +2215,7 @@ enum _BMDDeckControlVTRControlState_v8_1
 \r
 \r
 \r
-typedef /* [v1_enum] */\r
+typedef /* [v1_enum] */ \r
 enum _BMDVideoConnection_v7_6\r
     {\r
         bmdVideoConnectionSDI_v7_6     = 0x73646920,\r
@@ -2178,75 +2254,83 @@ EXTERN_C const IID LIBID_DeckLinkAPI;
 #define __IDeckLinkTimecode_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkTimecode */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkTimecode;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")\r
     IDeckLinkTimecode : public IUnknown\r
     {\r
     public:\r
         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetComponents(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
             /* [out] */ unsigned char *hours,\r
             /* [out] */ unsigned char *minutes,\r
             /* [out] */ unsigned char *seconds,\r
             /* [out] */ unsigned char *frames) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [out] */ BSTR *timecode) = 0;\r
-\r
+        \r
         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( \r
             /* [out] */ BMDTimecodeUserBits *userBits) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkTimecodeVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkTimecode * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkTimecode * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkTimecode * This);\r
-\r
-        BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode, GetBCD)\r
+        BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
             IDeckLinkTimecode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetComponents )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode, GetComponents)\r
+        HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
             IDeckLinkTimecode * This,\r
             /* [out] */ unsigned char *hours,\r
             /* [out] */ unsigned char *minutes,\r
             /* [out] */ unsigned char *seconds,\r
             /* [out] */ unsigned char *frames);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkTimecode * This,\r
             /* [out] */ BSTR *timecode);\r
-\r
-        BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode, GetFlags)\r
+        BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkTimecode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode, GetTimecodeUserBits)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )( \r
             IDeckLinkTimecode * This,\r
             /* [out] */ BMDTimecodeUserBits *userBits);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkTimecodeVtbl;\r
 \r
@@ -2255,35 +2339,35 @@ EXTERN_C const IID IID_IDeckLinkTimecode;
         CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkTimecode_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkTimecode_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkTimecode_GetBCD(This) \\r
-    ( (This)->lpVtbl -> GetBCD(This) )\r
+    ( (This)->lpVtbl -> GetBCD(This) ) \r
 \r
 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)     \\r
-    ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )\r
+    ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
 \r
 #define IDeckLinkTimecode_GetString(This,timecode)     \\r
-    ( (This)->lpVtbl -> GetString(This,timecode) )\r
+    ( (This)->lpVtbl -> GetString(This,timecode) ) \r
 \r
 #define IDeckLinkTimecode_GetFlags(This)       \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits)   \\r
-    ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) )\r
+    ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -2300,45 +2384,49 @@ EXTERN_C const IID IID_IDeckLinkTimecode;
 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDisplayModeIterator */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")\r
     IDeckLinkDisplayModeIterator : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDisplayModeIteratorVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDisplayModeIterator * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDisplayModeIterator * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDisplayModeIterator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayModeIterator, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkDisplayModeIterator * This,\r
             /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDisplayModeIteratorVtbl;\r
 \r
@@ -2347,23 +2435,23 @@ EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
         CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDisplayModeIterator_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDisplayModeIterator_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)    \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )\r
+    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -2380,79 +2468,89 @@ EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDisplayMode */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDisplayMode;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")\r
     IDeckLinkDisplayMode : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName(\r
+        virtual HRESULT STDMETHODCALLTYPE GetName( \r
             /* [out] */ BSTR *name) = 0;\r
-\r
+        \r
         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameRate(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [out] */ BMDTimeScale *timeScale) = 0;\r
-\r
+        \r
         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
-\r
+        \r
         virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDisplayModeVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDisplayMode * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDisplayMode * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDisplayMode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
             IDeckLinkDisplayMode * This,\r
             /* [out] */ BSTR *name);\r
-\r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetDisplayMode)\r
+        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkDisplayMode * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkDisplayMode * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkDisplayMode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetFrameRate)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
             IDeckLinkDisplayMode * This,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [out] */ BMDTimeScale *timeScale);\r
-\r
-        BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetFieldDominance)\r
+        BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
             IDeckLinkDisplayMode * This);\r
-\r
-        BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode, GetFlags)\r
+        BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkDisplayMode * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDisplayModeVtbl;\r
 \r
@@ -2461,41 +2559,41 @@ EXTERN_C const IID IID_IDeckLinkDisplayMode;
         CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDisplayMode_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDisplayMode_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDisplayMode_GetName(This,name)        \\r
-    ( (This)->lpVtbl -> GetName(This,name) )\r
+    ( (This)->lpVtbl -> GetName(This,name) ) \r
 \r
 #define IDeckLinkDisplayMode_GetDisplayMode(This)      \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
 \r
 #define IDeckLinkDisplayMode_GetWidth(This)    \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkDisplayMode_GetHeight(This)   \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale)        \\r
-    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
 \r
 #define IDeckLinkDisplayMode_GetFieldDominance(This)   \\r
-    ( (This)->lpVtbl -> GetFieldDominance(This) )\r
+    ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
 \r
 #define IDeckLinkDisplayMode_GetFlags(This)    \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -2512,52 +2610,57 @@ EXTERN_C const IID IID_IDeckLinkDisplayMode;
 #define __IDeckLink_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLink */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLink;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("C418FBDD-0587-48ED-8FE5-640F0A14AF91")\r
     IDeckLink : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetModelName(\r
+        virtual HRESULT STDMETHODCALLTYPE GetModelName( \r
             /* [out] */ BSTR *modelName) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayName(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayName( \r
             /* [out] */ BSTR *displayName) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLink * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLink * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLink * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetModelName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLink, GetModelName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetModelName )( \r
             IDeckLink * This,\r
             /* [out] */ BSTR *modelName);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLink, GetDisplayName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( \r
             IDeckLink * This,\r
             /* [out] */ BSTR *displayName);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVtbl;\r
 \r
@@ -2566,26 +2669,26 @@ EXTERN_C const IID IID_IDeckLink;
         CONST_VTBL struct IDeckLinkVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLink_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLink_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLink_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLink_GetModelName(This,modelName) \\r
-    ( (This)->lpVtbl -> GetModelName(This,modelName) )\r
+    ( (This)->lpVtbl -> GetModelName(This,modelName) ) \r
 \r
 #define IDeckLink_GetDisplayName(This,displayName)     \\r
-    ( (This)->lpVtbl -> GetDisplayName(This,displayName) )\r
+    ( (This)->lpVtbl -> GetDisplayName(This,displayName) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -2602,115 +2705,127 @@ EXTERN_C const IID IID_IDeckLink;
 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkConfiguration */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkConfiguration;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("912F634B-2D4E-40A4-8AAB-8D80B73F1289")\r
     IDeckLinkConfiguration : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkConfigurationVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkConfiguration * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkConfiguration * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkConfiguration * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration, WriteConfigurationToPreferences)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
             IDeckLinkConfiguration * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkConfigurationVtbl;\r
 \r
@@ -2719,47 +2834,47 @@ EXTERN_C const IID IID_IDeckLinkConfiguration;
         CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkConfiguration_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkConfiguration_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_SetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_GetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_SetString(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_GetString(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)   \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )\r
+    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -2776,121 +2891,133 @@ EXTERN_C const IID IID_IDeckLinkConfiguration;
 #define __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderConfiguration */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderConfiguration;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("138050E5-C60A-4552-BF3F-0F358049327E")\r
     IDeckLinkEncoderConfiguration : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ void *buffer,\r
             /* [out][in] */ unsigned int *bufferSize) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderConfigurationVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderConfiguration * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderConfiguration * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkEncoderConfiguration * This,\r
             /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ void *buffer,\r
             /* [out][in] */ unsigned int *bufferSize);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderConfigurationVtbl;\r
 \r
@@ -2899,47 +3026,47 @@ EXTERN_C const IID IID_IDeckLinkEncoderConfiguration;
         CONST_VTBL struct IDeckLinkEncoderConfigurationVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderConfiguration_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderConfiguration_SetFlag(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_GetFlag(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_SetInt(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_GetInt(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_SetFloat(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_GetFloat(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_SetString(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_GetString(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkEncoderConfiguration_GetBytes(This,cfgID,buffer,bufferSize)   \\r
-    ( (This)->lpVtbl -> GetBytes(This,cfgID,buffer,bufferSize) )\r
+    ( (This)->lpVtbl -> GetBytes(This,cfgID,buffer,bufferSize) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -2956,72 +3083,79 @@ EXTERN_C const IID IID_IDeckLinkEncoderConfiguration;
 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDeckControlStatusCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("53436FFB-B434-4906-BADC-AE3060FFE8EF")\r
     IDeckLinkDeckControlStatusCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(\r
+        virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( \r
             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( \r
             /* [in] */ BMDDeckControlVTRControlState newState,\r
             /* [in] */ BMDDeckControlError error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( \r
             /* [in] */ BMDDeckControlEvent event,\r
             /* [in] */ BMDDeckControlError error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( \r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
             /* [in] */ unsigned int mask) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDeckControlStatusCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDeckControlStatusCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDeckControlStatusCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDeckControlStatusCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback, TimecodeUpdate)\r
+        HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( \r
             IDeckLinkDeckControlStatusCallback * This,\r
             /* [in] */ BMDTimecodeBCD currentTimecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback, VTRControlStateChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( \r
             IDeckLinkDeckControlStatusCallback * This,\r
             /* [in] */ BMDDeckControlVTRControlState newState,\r
             /* [in] */ BMDDeckControlError error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback, DeckControlEventReceived)\r
+        HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( \r
             IDeckLinkDeckControlStatusCallback * This,\r
             /* [in] */ BMDDeckControlEvent event,\r
             /* [in] */ BMDDeckControlError error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback, DeckControlStatusChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( \r
             IDeckLinkDeckControlStatusCallback * This,\r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
             /* [in] */ unsigned int mask);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDeckControlStatusCallbackVtbl;\r
 \r
@@ -3030,32 +3164,32 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
         CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode)        \\r
-    ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )\r
+    ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error) \\r
-    ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )\r
+    ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error)  \\r
-    ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )\r
+    ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask)   \\r
-    ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )\r
+    ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -3072,183 +3206,191 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDeckControl */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDeckControl;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("8E1C3ACE-19C7-4E00-8B92-D80431D958BE")\r
     IDeckLinkDeckControl : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Open(\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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Close( \r
             /* [in] */ BOOL standbyOn) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCurrentState(\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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
             /* [in] */ BOOL standbyOn) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SendCommand(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
             /* [in] */ unsigned char *inBuffer,\r
             /* [in] */ unsigned int inBufferSize,\r
             /* [out] */ unsigned char *outBuffer,\r
             /* [out] */ unsigned int *outDataSize,\r
             /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Play(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Play( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Stop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Stop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Eject(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Eject( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GoToTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
             /* [in] */ BMDTimecodeBCD timecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE FastForward(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FastForward( \r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Rewind(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Rewind( \r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StepForward(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepForward( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StepBack(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepBack( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Jog(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Jog( \r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Shuttle(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
             /* [out] */ BSTR *currentTimeCode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetPreroll(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
             /* [in] */ unsigned int prerollSeconds) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPreroll(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
             /* [out] */ unsigned int *prerollSeconds) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
             /* [in] */ int exportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
             /* [out] */ int *exportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
             /* [out] */ int *deckManualExportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
             /* [in] */ int captureOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
             /* [out] */ int *captureOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartExport(\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
+        \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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
             /* [out] */ unsigned short *deviceId,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDeckControlVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDeckControl * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDeckControl * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Open )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Open)\r
+        HRESULT ( STDMETHODCALLTYPE *Open )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ BMDTimeValue timeValue,\r
             /* [in] */ BOOL timecodeIsDropFrame,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Close )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Close)\r
+        HRESULT ( STDMETHODCALLTYPE *Close )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BOOL standbyOn);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetCurrentState)\r
+        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlMode *mode,\r
             /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
             /* [out] */ BMDDeckControlStatusFlags *flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetStandby )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, SetStandby)\r
+        HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BOOL standbyOn);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SendCommand )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, SendCommand)\r
+        HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ unsigned char *inBuffer,\r
             /* [in] */ unsigned int inBufferSize,\r
@@ -3256,133 +3398,161 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
             /* [out] */ unsigned int *outDataSize,\r
             /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Play )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Play)\r
+        HRESULT ( STDMETHODCALLTYPE *Play )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Stop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Stop)\r
+        HRESULT ( STDMETHODCALLTYPE *Stop )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, TogglePlayStop)\r
+        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Eject )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Eject)\r
+        HRESULT ( STDMETHODCALLTYPE *Eject )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GoToTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BMDTimecodeBCD timecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FastForward )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, FastForward)\r
+        HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Rewind )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Rewind)\r
+        HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StepForward )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, StepForward)\r
+        HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StepBack )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, StepBack)\r
+        HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Jog )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Jog)\r
+        HRESULT ( STDMETHODCALLTYPE *Jog )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Shuttle )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Shuttle)\r
+        HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetTimecodeString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BSTR *currentTimeCode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetTimecodeBCD)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, SetPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ unsigned int prerollSeconds);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ unsigned int *prerollSeconds);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, SetExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ int exportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ int *exportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetManualExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ int *deckManualExportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, SetCaptureOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ int captureOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetCaptureOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ int *captureOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartExport )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, StartExport)\r
+        HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
             /* [in] */ BMDTimecodeBCD outTimecode,\r
             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartCapture )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, StartCapture)\r
+        HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ BOOL useVITC,\r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
             /* [in] */ BMDTimecodeBCD outTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, GetDeviceID)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ unsigned short *deviceId,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Abort )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, Abort)\r
+        HRESULT ( STDMETHODCALLTYPE *Abort )( \r
             IDeckLinkDeckControl * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, CrashRecordStart)\r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, CrashRecordStop)\r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
             IDeckLinkDeckControl * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDeckControlVtbl;\r
 \r
@@ -3391,119 +3561,119 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
         CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDeckControl_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDeckControl_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)  \\r
-    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )\r
+    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
 \r
 #define IDeckLinkDeckControl_Close(This,standbyOn)     \\r
-    ( (This)->lpVtbl -> Close(This,standbyOn) )\r
+    ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
 \r
 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags)  \\r
-    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )\r
+    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
 \r
 #define IDeckLinkDeckControl_SetStandby(This,standbyOn)        \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) \r
 \r
 #define IDeckLinkDeckControl_Play(This,error)  \\r
-    ( (This)->lpVtbl -> Play(This,error) )\r
+    ( (This)->lpVtbl -> Play(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_Stop(This,error)  \\r
-    ( (This)->lpVtbl -> Stop(This,error) )\r
+    ( (This)->lpVtbl -> Stop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_TogglePlayStop(This,error)        \\r
-    ( (This)->lpVtbl -> TogglePlayStop(This,error) )\r
+    ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_Eject(This,error) \\r
-    ( (This)->lpVtbl -> Eject(This,error) )\r
+    ( (This)->lpVtbl -> Eject(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error) \\r
-    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )\r
+    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_FastForward(This,viewTape,error)  \\r
-    ( (This)->lpVtbl -> FastForward(This,viewTape,error) )\r
+    ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
 \r
 #define IDeckLinkDeckControl_Rewind(This,viewTape,error)       \\r
-    ( (This)->lpVtbl -> Rewind(This,viewTape,error) )\r
+    ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
 \r
 #define IDeckLinkDeckControl_StepForward(This,error)   \\r
-    ( (This)->lpVtbl -> StepForward(This,error) )\r
+    ( (This)->lpVtbl -> StepForward(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_StepBack(This,error)      \\r
-    ( (This)->lpVtbl -> StepBack(This,error) )\r
+    ( (This)->lpVtbl -> StepBack(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_Jog(This,rate,error)      \\r
-    ( (This)->lpVtbl -> Jog(This,rate,error) )\r
+    ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
 \r
 #define IDeckLinkDeckControl_Shuttle(This,rate,error)  \\r
-    ( (This)->lpVtbl -> Shuttle(This,rate,error) )\r
+    ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
 \r
 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error)     \\r
-    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )\r
+    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
 \r
 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error)   \\r
-    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error)        \\r
-    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )\r
+    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds)   \\r
-    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )\r
+    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
 \r
 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds)   \\r
-    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )\r
+    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
 \r
 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields)  \\r
-    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )\r
+    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields)  \\r
-    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )\r
+    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields)  \\r
-    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )\r
+    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields)        \\r
-    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )\r
+    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields)        \\r
-    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )\r
+    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error)      \\r
-    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )\r
+    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
 \r
 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error)   \\r
-    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )\r
+    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error)  \\r
-    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )\r
+    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
 \r
 #define IDeckLinkDeckControl_Abort(This)       \\r
-    ( (This)->lpVtbl -> Abort(This) )\r
+    ( (This)->lpVtbl -> Abort(This) ) \r
 \r
 #define IDeckLinkDeckControl_CrashRecordStart(This,error)      \\r
-    ( (This)->lpVtbl -> CrashRecordStart(This,error) )\r
+    ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_CrashRecordStop(This,error)       \\r
-    ( (This)->lpVtbl -> CrashRecordStop(This,error) )\r
+    ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_SetCallback(This,callback)        \\r
-    ( (This)->lpVtbl -> SetCallback(This,callback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -3520,61 +3690,67 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
 #define __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingDeviceNotificationCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("F9531D64-3305-4B29-A387-7F74BB0D0E84")\r
     IBMDStreamingDeviceNotificationCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived(\r
+        virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived( \r
             /* [in] */ IDeckLink *device) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved( \r
             /* [in] */ IDeckLink *device) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged( \r
             /* [in] */ IDeckLink *device,\r
             /* [in] */ BMDStreamingDeviceMode mode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingDeviceNotificationCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingDeviceNotificationCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingDeviceNotificationCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingDeviceNotificationCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StreamingDeviceArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceNotificationCallback, StreamingDeviceArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *StreamingDeviceArrived )( \r
             IBMDStreamingDeviceNotificationCallback * This,\r
             /* [in] */ IDeckLink *device);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StreamingDeviceRemoved )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceNotificationCallback, StreamingDeviceRemoved)\r
+        HRESULT ( STDMETHODCALLTYPE *StreamingDeviceRemoved )( \r
             IBMDStreamingDeviceNotificationCallback * This,\r
             /* [in] */ IDeckLink *device);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StreamingDeviceModeChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceNotificationCallback, StreamingDeviceModeChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *StreamingDeviceModeChanged )( \r
             IBMDStreamingDeviceNotificationCallback * This,\r
             /* [in] */ IDeckLink *device,\r
             /* [in] */ BMDStreamingDeviceMode mode);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingDeviceNotificationCallbackVtbl;\r
 \r
@@ -3583,29 +3759,29 @@ EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;
         CONST_VTBL struct IBMDStreamingDeviceNotificationCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingDeviceNotificationCallback_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingDeviceNotificationCallback_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(This,device)    \\r
-    ( (This)->lpVtbl -> StreamingDeviceArrived(This,device) )\r
+    ( (This)->lpVtbl -> StreamingDeviceArrived(This,device) ) \r
 \r
 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(This,device)    \\r
-    ( (This)->lpVtbl -> StreamingDeviceRemoved(This,device) )\r
+    ( (This)->lpVtbl -> StreamingDeviceRemoved(This,device) ) \r
 \r
 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(This,device,mode)   \\r
-    ( (This)->lpVtbl -> StreamingDeviceModeChanged(This,device,mode) )\r
+    ( (This)->lpVtbl -> StreamingDeviceModeChanged(This,device,mode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -3622,74 +3798,83 @@ EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;
 #define __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingH264InputCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingH264InputCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("823C475F-55AE-46F9-890C-537CC5CEDCCA")\r
     IBMDStreamingH264InputCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived(\r
+        virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived( \r
             /* [in] */ IBMDStreamingH264NALPacket *nalPacket) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived( \r
             /* [in] */ IBMDStreamingAudioPacket *audioPacket) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived( \r
             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorScanningChanged( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorChanged( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE H264VideoInputModeChanged( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingH264InputCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingH264InputCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingH264InputCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingH264InputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *H264NALPacketArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264InputCallback, H264NALPacketArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *H264NALPacketArrived )( \r
             IBMDStreamingH264InputCallback * This,\r
             /* [in] */ IBMDStreamingH264NALPacket *nalPacket);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *H264AudioPacketArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264InputCallback, H264AudioPacketArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *H264AudioPacketArrived )( \r
             IBMDStreamingH264InputCallback * This,\r
             /* [in] */ IBMDStreamingAudioPacket *audioPacket);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *MPEG2TSPacketArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264InputCallback, MPEG2TSPacketArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *MPEG2TSPacketArrived )( \r
             IBMDStreamingH264InputCallback * This,\r
             /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264InputCallback, H264VideoInputConnectorScanningChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged )( \r
             IBMDStreamingH264InputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264InputCallback, H264VideoInputConnectorChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorChanged )( \r
             IBMDStreamingH264InputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *H264VideoInputModeChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264InputCallback, H264VideoInputModeChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *H264VideoInputModeChanged )( \r
             IBMDStreamingH264InputCallback * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingH264InputCallbackVtbl;\r
 \r
@@ -3698,38 +3883,38 @@ EXTERN_C const IID IID_IBMDStreamingH264InputCallback;
         CONST_VTBL struct IBMDStreamingH264InputCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingH264InputCallback_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingH264InputCallback_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingH264InputCallback_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingH264InputCallback_H264NALPacketArrived(This,nalPacket)    \\r
-    ( (This)->lpVtbl -> H264NALPacketArrived(This,nalPacket) )\r
+    ( (This)->lpVtbl -> H264NALPacketArrived(This,nalPacket) ) \r
 \r
 #define IBMDStreamingH264InputCallback_H264AudioPacketArrived(This,audioPacket)        \\r
-    ( (This)->lpVtbl -> H264AudioPacketArrived(This,audioPacket) )\r
+    ( (This)->lpVtbl -> H264AudioPacketArrived(This,audioPacket) ) \r
 \r
 #define IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(This,tsPacket)     \\r
-    ( (This)->lpVtbl -> MPEG2TSPacketArrived(This,tsPacket) )\r
+    ( (This)->lpVtbl -> MPEG2TSPacketArrived(This,tsPacket) ) \r
 \r
 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(This)    \\r
-    ( (This)->lpVtbl -> H264VideoInputConnectorScanningChanged(This) )\r
+    ( (This)->lpVtbl -> H264VideoInputConnectorScanningChanged(This) ) \r
 \r
 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(This)    \\r
-    ( (This)->lpVtbl -> H264VideoInputConnectorChanged(This) )\r
+    ( (This)->lpVtbl -> H264VideoInputConnectorChanged(This) ) \r
 \r
 #define IBMDStreamingH264InputCallback_H264VideoInputModeChanged(This) \\r
-    ( (This)->lpVtbl -> H264VideoInputModeChanged(This) )\r
+    ( (This)->lpVtbl -> H264VideoInputModeChanged(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -3746,50 +3931,55 @@ EXTERN_C const IID IID_IBMDStreamingH264InputCallback;
 #define __IBMDStreamingDiscovery_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingDiscovery */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingDiscovery;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("2C837444-F989-4D87-901A-47C8A36D096D")\r
     IBMDStreamingDiscovery : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications(\r
+        virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( \r
             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingDiscoveryVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingDiscovery * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingDiscovery * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingDiscovery * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDiscovery, InstallDeviceNotifications)\r
+        HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )( \r
             IBMDStreamingDiscovery * This,\r
             /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDiscovery, UninstallDeviceNotifications)\r
+        HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )( \r
             IBMDStreamingDiscovery * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingDiscoveryVtbl;\r
 \r
@@ -3798,26 +3988,26 @@ EXTERN_C const IID IID_IBMDStreamingDiscovery;
         CONST_VTBL struct IBMDStreamingDiscoveryVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingDiscovery_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingDiscovery_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingDiscovery_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingDiscovery_InstallDeviceNotifications(This,theCallback)    \\r
-    ( (This)->lpVtbl -> InstallDeviceNotifications(This,theCallback) )\r
+    ( (This)->lpVtbl -> InstallDeviceNotifications(This,theCallback) ) \r
 \r
 #define IBMDStreamingDiscovery_UninstallDeviceNotifications(This)      \\r
-    ( (This)->lpVtbl -> UninstallDeviceNotifications(This) )\r
+    ( (This)->lpVtbl -> UninstallDeviceNotifications(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -3834,123 +4024,139 @@ EXTERN_C const IID IID_IBMDStreamingDiscovery;
 #define __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingVideoEncodingMode */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("1AB8035B-CD13-458D-B6DF-5E8F7C2141D9")\r
     IBMDStreamingVideoEncodingMode : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName(\r
+        virtual HRESULT STDMETHODCALLTYPE GetName( \r
             /* [out] */ BSTR *name) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetPresetID( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionX( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetSourcePositionY( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetSourceWidth( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetSourceHeight( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetDestWidth( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetDestHeight( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode( \r
             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingVideoEncodingModeVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [out] */ BSTR *name);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetPresetID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetPresetID)\r
+        unsigned int ( STDMETHODCALLTYPE *GetPresetID )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourcePositionX)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourcePositionY)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourceWidth)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourceHeight)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetDestWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetDestWidth)\r
+        unsigned int ( STDMETHODCALLTYPE *GetDestWidth )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetDestHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetDestHeight)\r
+        unsigned int ( STDMETHODCALLTYPE *GetDestHeight )( \r
             IBMDStreamingVideoEncodingMode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, CreateMutableVideoEncodingMode)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )( \r
             IBMDStreamingVideoEncodingMode * This,\r
             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingVideoEncodingModeVtbl;\r
 \r
@@ -3959,59 +4165,59 @@ EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;
         CONST_VTBL struct IBMDStreamingVideoEncodingModeVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingVideoEncodingMode_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetName(This,name)      \\r
-    ( (This)->lpVtbl -> GetName(This,name) )\r
+    ( (This)->lpVtbl -> GetName(This,name) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetPresetID(This)       \\r
-    ( (This)->lpVtbl -> GetPresetID(This) )\r
+    ( (This)->lpVtbl -> GetPresetID(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetSourcePositionX(This)        \\r
-    ( (This)->lpVtbl -> GetSourcePositionX(This) )\r
+    ( (This)->lpVtbl -> GetSourcePositionX(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetSourcePositionY(This)        \\r
-    ( (This)->lpVtbl -> GetSourcePositionY(This) )\r
+    ( (This)->lpVtbl -> GetSourcePositionY(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetSourceWidth(This)    \\r
-    ( (This)->lpVtbl -> GetSourceWidth(This) )\r
+    ( (This)->lpVtbl -> GetSourceWidth(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetSourceHeight(This)   \\r
-    ( (This)->lpVtbl -> GetSourceHeight(This) )\r
+    ( (This)->lpVtbl -> GetSourceHeight(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetDestWidth(This)      \\r
-    ( (This)->lpVtbl -> GetDestWidth(This) )\r
+    ( (This)->lpVtbl -> GetDestWidth(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetDestHeight(This)     \\r
-    ( (This)->lpVtbl -> GetDestHeight(This) )\r
+    ( (This)->lpVtbl -> GetDestHeight(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetFlag(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetFloat(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_GetString(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)    \\r
-    ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) )\r
+    ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4028,145 +4234,167 @@ EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;
 #define __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingMutableVideoEncodingMode */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D")\r
     IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetSourceRect(\r
+        virtual HRESULT STDMETHODCALLTYPE SetSourceRect( \r
             /* [in] */ unsigned int posX,\r
             /* [in] */ unsigned int posY,\r
             /* [in] */ unsigned int width,\r
             /* [in] */ unsigned int height) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetDestSize(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetDestSize( \r
             /* [in] */ unsigned int width,\r
             /* [in] */ unsigned int height) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingMutableVideoEncodingModeVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [out] */ BSTR *name);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetPresetID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetPresetID)\r
+        unsigned int ( STDMETHODCALLTYPE *GetPresetID )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourcePositionX)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourcePositionY)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourceWidth)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetSourceHeight)\r
+        unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetDestWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetDestWidth)\r
+        unsigned int ( STDMETHODCALLTYPE *GetDestWidth )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetDestHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetDestHeight)\r
+        unsigned int ( STDMETHODCALLTYPE *GetDestHeight )( \r
             IBMDStreamingMutableVideoEncodingMode * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingMode, CreateMutableVideoEncodingMode)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetSourceRect )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMutableVideoEncodingMode, SetSourceRect)\r
+        HRESULT ( STDMETHODCALLTYPE *SetSourceRect )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ unsigned int posX,\r
             /* [in] */ unsigned int posY,\r
             /* [in] */ unsigned int width,\r
             /* [in] */ unsigned int height);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetDestSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMutableVideoEncodingMode, SetDestSize)\r
+        HRESULT ( STDMETHODCALLTYPE *SetDestSize )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ unsigned int width,\r
             /* [in] */ unsigned int height);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMutableVideoEncodingMode, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMutableVideoEncodingMode, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMutableVideoEncodingMode, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMutableVideoEncodingMode, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingMutableVideoEncodingModeVtbl;\r
 \r
@@ -4175,78 +4403,78 @@ EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
         CONST_VTBL struct IBMDStreamingMutableVideoEncodingModeVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetName(This,name)       \\r
-    ( (This)->lpVtbl -> GetName(This,name) )\r
+    ( (This)->lpVtbl -> GetName(This,name) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetPresetID(This)        \\r
-    ( (This)->lpVtbl -> GetPresetID(This) )\r
+    ( (This)->lpVtbl -> GetPresetID(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(This) \\r
-    ( (This)->lpVtbl -> GetSourcePositionX(This) )\r
+    ( (This)->lpVtbl -> GetSourcePositionX(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(This) \\r
-    ( (This)->lpVtbl -> GetSourcePositionY(This) )\r
+    ( (This)->lpVtbl -> GetSourcePositionY(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(This)     \\r
-    ( (This)->lpVtbl -> GetSourceWidth(This) )\r
+    ( (This)->lpVtbl -> GetSourceWidth(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(This)    \\r
-    ( (This)->lpVtbl -> GetSourceHeight(This) )\r
+    ( (This)->lpVtbl -> GetSourceHeight(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetDestWidth(This)       \\r
-    ( (This)->lpVtbl -> GetDestWidth(This) )\r
+    ( (This)->lpVtbl -> GetDestWidth(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetDestHeight(This)      \\r
-    ( (This)->lpVtbl -> GetDestHeight(This) )\r
+    ( (This)->lpVtbl -> GetDestHeight(This) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetFlag(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetInt(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetFloat(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_GetString(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode)     \\r
-    ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) )\r
+    ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) ) \r
 \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_SetSourceRect(This,posX,posY,width,height)       \\r
-    ( (This)->lpVtbl -> SetSourceRect(This,posX,posY,width,height) )\r
+    ( (This)->lpVtbl -> SetSourceRect(This,posX,posY,width,height) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_SetDestSize(This,width,height)   \\r
-    ( (This)->lpVtbl -> SetDestSize(This,width,height) )\r
+    ( (This)->lpVtbl -> SetDestSize(This,width,height) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_SetFlag(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_SetInt(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_SetFloat(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
 #define IBMDStreamingMutableVideoEncodingMode_SetString(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4263,45 +4491,49 @@ EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
 #define __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingVideoEncodingModePresetIterator */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("7AC731A3-C950-4AD0-804A-8377AA51C6C4")\r
     IBMDStreamingVideoEncodingModePresetIterator : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingVideoEncodingModePresetIteratorVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingVideoEncodingModePresetIterator * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingVideoEncodingModePresetIterator * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingVideoEncodingModePresetIterator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingVideoEncodingModePresetIterator, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IBMDStreamingVideoEncodingModePresetIterator * This,\r
             /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingVideoEncodingModePresetIteratorVtbl;\r
 \r
@@ -4310,23 +4542,23 @@ EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;
         CONST_VTBL struct IBMDStreamingVideoEncodingModePresetIteratorVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingVideoEncodingModePresetIterator_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingVideoEncodingModePresetIterator_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingVideoEncodingModePresetIterator_Next(This,videoEncodingMode)      \\r
-    ( (This)->lpVtbl -> Next(This,videoEncodingMode) )\r
+    ( (This)->lpVtbl -> Next(This,videoEncodingMode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4343,121 +4575,135 @@ EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;
 #define __IBMDStreamingDeviceInput_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingDeviceInput */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingDeviceInput;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("24B6B6EC-1727-44BB-9818-34FF086ACF98")\r
     IBMDStreamingDeviceInput : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode( \r
             /* [in] */ BMDDisplayMode inputMode,\r
             /* [out] */ BOOL *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode( \r
             /* [in] */ BMDDisplayMode inputMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode( \r
             /* [out] */ BMDDisplayMode *detectedMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode( \r
             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator( \r
             /* [in] */ BMDDisplayMode inputMode,\r
             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode( \r
             /* [in] */ BMDDisplayMode inputMode,\r
             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,\r
             /* [out] */ BMDStreamingEncodingSupport *result,\r
             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode( \r
             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartCapture( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopCapture( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IUnknown *theCallback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingDeviceInputVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingDeviceInput * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingDeviceInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoInputMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, DoesSupportVideoInputMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoInputMode )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ BMDDisplayMode inputMode,\r
             /* [out] */ BOOL *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoInputModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, GetVideoInputModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVideoInputModeIterator )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, SetVideoInputMode)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputMode )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ BMDDisplayMode inputMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, GetCurrentDetectedVideoInputMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [out] */ BMDDisplayMode *detectedMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, GetVideoEncodingMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingMode )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, GetVideoEncodingModePresetIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ BMDDisplayMode inputMode,\r
             /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoEncodingMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, DoesSupportVideoEncodingMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoEncodingMode )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ BMDDisplayMode inputMode,\r
             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,\r
             /* [out] */ BMDStreamingEncodingSupport *result,\r
             /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoEncodingMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, SetVideoEncodingMode)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoEncodingMode )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartCapture )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, StartCapture)\r
+        HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
             IBMDStreamingDeviceInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopCapture )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, StopCapture)\r
+        HRESULT ( STDMETHODCALLTYPE *StopCapture )( \r
             IBMDStreamingDeviceInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingDeviceInput, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IBMDStreamingDeviceInput * This,\r
             /* [in] */ IUnknown *theCallback);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingDeviceInputVtbl;\r
 \r
@@ -4466,53 +4712,53 @@ EXTERN_C const IID IID_IBMDStreamingDeviceInput;
         CONST_VTBL struct IBMDStreamingDeviceInputVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingDeviceInput_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingDeviceInput_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingDeviceInput_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingDeviceInput_DoesSupportVideoInputMode(This,inputMode,result)      \\r
-    ( (This)->lpVtbl -> DoesSupportVideoInputMode(This,inputMode,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoInputMode(This,inputMode,result) ) \r
 \r
 #define IBMDStreamingDeviceInput_GetVideoInputModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetVideoInputModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetVideoInputModeIterator(This,iterator) ) \r
 \r
 #define IBMDStreamingDeviceInput_SetVideoInputMode(This,inputMode)     \\r
-    ( (This)->lpVtbl -> SetVideoInputMode(This,inputMode) )\r
+    ( (This)->lpVtbl -> SetVideoInputMode(This,inputMode) ) \r
 \r
 #define IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(This,detectedMode)   \\r
-    ( (This)->lpVtbl -> GetCurrentDetectedVideoInputMode(This,detectedMode) )\r
+    ( (This)->lpVtbl -> GetCurrentDetectedVideoInputMode(This,detectedMode) ) \r
 \r
 #define IBMDStreamingDeviceInput_GetVideoEncodingMode(This,encodingMode)       \\r
-    ( (This)->lpVtbl -> GetVideoEncodingMode(This,encodingMode) )\r
+    ( (This)->lpVtbl -> GetVideoEncodingMode(This,encodingMode) ) \r
 \r
 #define IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(This,inputMode,iterator)   \\r
-    ( (This)->lpVtbl -> GetVideoEncodingModePresetIterator(This,inputMode,iterator) )\r
+    ( (This)->lpVtbl -> GetVideoEncodingModePresetIterator(This,inputMode,iterator) ) \r
 \r
 #define IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) ) \r
 \r
 #define IBMDStreamingDeviceInput_SetVideoEncodingMode(This,encodingMode)       \\r
-    ( (This)->lpVtbl -> SetVideoEncodingMode(This,encodingMode) )\r
+    ( (This)->lpVtbl -> SetVideoEncodingMode(This,encodingMode) ) \r
 \r
 #define IBMDStreamingDeviceInput_StartCapture(This)    \\r
-    ( (This)->lpVtbl -> StartCapture(This) )\r
+    ( (This)->lpVtbl -> StartCapture(This) ) \r
 \r
 #define IBMDStreamingDeviceInput_StopCapture(This)     \\r
-    ( (This)->lpVtbl -> StopCapture(This) )\r
+    ( (This)->lpVtbl -> StopCapture(This) ) \r
 \r
 #define IBMDStreamingDeviceInput_SetCallback(This,theCallback) \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4529,73 +4775,81 @@ EXTERN_C const IID IID_IBMDStreamingDeviceInput;
 #define __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingH264NALPacket */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingH264NALPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("E260E955-14BE-4395-9775-9F02CC0A9D89")\r
     IBMDStreamingH264NALPacket : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix( \r
             /* [out] */ void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayTime( \r
             /* [in] */ ULONGLONG requestedTimeScale,\r
             /* [out] */ ULONGLONG *displayTime) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPacketIndex(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( \r
             /* [out] */ unsigned int *packetIndex) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingH264NALPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingH264NALPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingH264NALPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingH264NALPacket * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetPayloadSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALPacket, GetPayloadSize)\r
+        long ( STDMETHODCALLTYPE *GetPayloadSize )( \r
             IBMDStreamingH264NALPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IBMDStreamingH264NALPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytesWithSizePrefix )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALPacket, GetBytesWithSizePrefix)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytesWithSizePrefix )( \r
             IBMDStreamingH264NALPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALPacket, GetDisplayTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayTime )( \r
             IBMDStreamingH264NALPacket * This,\r
             /* [in] */ ULONGLONG requestedTimeScale,\r
             /* [out] */ ULONGLONG *displayTime);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALPacket, GetPacketIndex)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( \r
             IBMDStreamingH264NALPacket * This,\r
             /* [out] */ unsigned int *packetIndex);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingH264NALPacketVtbl;\r
 \r
@@ -4604,35 +4858,35 @@ EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
         CONST_VTBL struct IBMDStreamingH264NALPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingH264NALPacket_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingH264NALPacket_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingH264NALPacket_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingH264NALPacket_GetPayloadSize(This)        \\r
-    ( (This)->lpVtbl -> GetPayloadSize(This) )\r
+    ( (This)->lpVtbl -> GetPayloadSize(This) ) \r
 \r
 #define IBMDStreamingH264NALPacket_GetBytes(This,buffer)       \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IBMDStreamingH264NALPacket_GetBytesWithSizePrefix(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytesWithSizePrefix(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytesWithSizePrefix(This,buffer) ) \r
 \r
 #define IBMDStreamingH264NALPacket_GetDisplayTime(This,requestedTimeScale,displayTime) \\r
-    ( (This)->lpVtbl -> GetDisplayTime(This,requestedTimeScale,displayTime) )\r
+    ( (This)->lpVtbl -> GetDisplayTime(This,requestedTimeScale,displayTime) ) \r
 \r
 #define IBMDStreamingH264NALPacket_GetPacketIndex(This,packetIndex)    \\r
-    ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) )\r
+    ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4649,71 +4903,79 @@ EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
 #define __IBMDStreamingAudioPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingAudioPacket */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingAudioPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19")\r
     IBMDStreamingAudioPacket : public IUnknown\r
     {\r
     public:\r
         virtual BMDStreamingAudioCodec STDMETHODCALLTYPE GetCodec( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPlayTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPlayTime( \r
             /* [in] */ ULONGLONG requestedTimeScale,\r
             /* [out] */ ULONGLONG *playTime) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPacketIndex(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( \r
             /* [out] */ unsigned int *packetIndex) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingAudioPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingAudioPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingAudioPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingAudioPacket * This);\r
-\r
-        BMDStreamingAudioCodec ( STDMETHODCALLTYPE *GetCodec )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingAudioPacket, GetCodec)\r
+        BMDStreamingAudioCodec ( STDMETHODCALLTYPE *GetCodec )( \r
             IBMDStreamingAudioPacket * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetPayloadSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingAudioPacket, GetPayloadSize)\r
+        long ( STDMETHODCALLTYPE *GetPayloadSize )( \r
             IBMDStreamingAudioPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingAudioPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IBMDStreamingAudioPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPlayTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingAudioPacket, GetPlayTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPlayTime )( \r
             IBMDStreamingAudioPacket * This,\r
             /* [in] */ ULONGLONG requestedTimeScale,\r
             /* [out] */ ULONGLONG *playTime);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingAudioPacket, GetPacketIndex)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( \r
             IBMDStreamingAudioPacket * This,\r
             /* [out] */ unsigned int *packetIndex);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingAudioPacketVtbl;\r
 \r
@@ -4722,35 +4984,35 @@ EXTERN_C const IID IID_IBMDStreamingAudioPacket;
         CONST_VTBL struct IBMDStreamingAudioPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingAudioPacket_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingAudioPacket_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingAudioPacket_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingAudioPacket_GetCodec(This)        \\r
-    ( (This)->lpVtbl -> GetCodec(This) )\r
+    ( (This)->lpVtbl -> GetCodec(This) ) \r
 \r
 #define IBMDStreamingAudioPacket_GetPayloadSize(This)  \\r
-    ( (This)->lpVtbl -> GetPayloadSize(This) )\r
+    ( (This)->lpVtbl -> GetPayloadSize(This) ) \r
 \r
 #define IBMDStreamingAudioPacket_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IBMDStreamingAudioPacket_GetPlayTime(This,requestedTimeScale,playTime) \\r
-    ( (This)->lpVtbl -> GetPlayTime(This,requestedTimeScale,playTime) )\r
+    ( (This)->lpVtbl -> GetPlayTime(This,requestedTimeScale,playTime) ) \r
 \r
 #define IBMDStreamingAudioPacket_GetPacketIndex(This,packetIndex)      \\r
-    ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) )\r
+    ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4767,50 +5029,55 @@ EXTERN_C const IID IID_IBMDStreamingAudioPacket;
 #define __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingMPEG2TSPacket */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingMPEG2TSPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C")\r
     IBMDStreamingMPEG2TSPacket : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingMPEG2TSPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingMPEG2TSPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingMPEG2TSPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingMPEG2TSPacket * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetPayloadSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMPEG2TSPacket, GetPayloadSize)\r
+        long ( STDMETHODCALLTYPE *GetPayloadSize )( \r
             IBMDStreamingMPEG2TSPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingMPEG2TSPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IBMDStreamingMPEG2TSPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingMPEG2TSPacketVtbl;\r
 \r
@@ -4819,26 +5086,26 @@ EXTERN_C const IID IID_IBMDStreamingMPEG2TSPacket;
         CONST_VTBL struct IBMDStreamingMPEG2TSPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingMPEG2TSPacket_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingMPEG2TSPacket_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingMPEG2TSPacket_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingMPEG2TSPacket_GetPayloadSize(This)        \\r
-    ( (This)->lpVtbl -> GetPayloadSize(This) )\r
+    ( (This)->lpVtbl -> GetPayloadSize(This) ) \r
 \r
 #define IBMDStreamingMPEG2TSPacket_GetBytes(This,buffer)       \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4855,65 +5122,71 @@ EXTERN_C const IID IID_IBMDStreamingMPEG2TSPacket;
 #define __IBMDStreamingH264NALParser_INTERFACE_DEFINED__\r
 \r
 /* interface IBMDStreamingH264NALParser */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IBMDStreamingH264NALParser;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("5867F18C-5BFA-4CCC-B2A7-9DFD140417D2")\r
     IBMDStreamingH264NALParser : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE IsNALSequenceParameterSet(\r
+        virtual HRESULT STDMETHODCALLTYPE IsNALSequenceParameterSet( \r
             /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsNALPictureParameterSet(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsNALPictureParameterSet( \r
             /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS( \r
             /* [in] */ IBMDStreamingH264NALPacket *nal,\r
             /* [out] */ unsigned int *profileIdc,\r
             /* [out] */ unsigned int *profileCompatability,\r
             /* [out] */ unsigned int *levelIdc) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IBMDStreamingH264NALParserVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IBMDStreamingH264NALParser * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IBMDStreamingH264NALParser * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IBMDStreamingH264NALParser * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsNALSequenceParameterSet )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALParser, IsNALSequenceParameterSet)\r
+        HRESULT ( STDMETHODCALLTYPE *IsNALSequenceParameterSet )( \r
             IBMDStreamingH264NALParser * This,\r
             /* [in] */ IBMDStreamingH264NALPacket *nal);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsNALPictureParameterSet )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALParser, IsNALPictureParameterSet)\r
+        HRESULT ( STDMETHODCALLTYPE *IsNALPictureParameterSet )( \r
             IBMDStreamingH264NALParser * This,\r
             /* [in] */ IBMDStreamingH264NALPacket *nal);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetProfileAndLevelFromSPS )(\r
+        \r
+        DECLSPEC_XFGVIRT(IBMDStreamingH264NALParser, GetProfileAndLevelFromSPS)\r
+        HRESULT ( STDMETHODCALLTYPE *GetProfileAndLevelFromSPS )( \r
             IBMDStreamingH264NALParser * This,\r
             /* [in] */ IBMDStreamingH264NALPacket *nal,\r
             /* [out] */ unsigned int *profileIdc,\r
             /* [out] */ unsigned int *profileCompatability,\r
             /* [out] */ unsigned int *levelIdc);\r
-\r
+        \r
         END_INTERFACE\r
     } IBMDStreamingH264NALParserVtbl;\r
 \r
@@ -4922,29 +5195,29 @@ EXTERN_C const IID IID_IBMDStreamingH264NALParser;
         CONST_VTBL struct IBMDStreamingH264NALParserVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IBMDStreamingH264NALParser_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IBMDStreamingH264NALParser_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IBMDStreamingH264NALParser_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IBMDStreamingH264NALParser_IsNALSequenceParameterSet(This,nal) \\r
-    ( (This)->lpVtbl -> IsNALSequenceParameterSet(This,nal) )\r
+    ( (This)->lpVtbl -> IsNALSequenceParameterSet(This,nal) ) \r
 \r
 #define IBMDStreamingH264NALParser_IsNALPictureParameterSet(This,nal)  \\r
-    ( (This)->lpVtbl -> IsNALPictureParameterSet(This,nal) )\r
+    ( (This)->lpVtbl -> IsNALPictureParameterSet(This,nal) ) \r
 \r
 #define IBMDStreamingH264NALParser_GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc)        \\r
-    ( (This)->lpVtbl -> GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) )\r
+    ( (This)->lpVtbl -> GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -4977,52 +5250,57 @@ CBMDStreamingH264NALParser;
 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoOutputCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")\r
     IDeckLinkVideoOutputCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(\r
+        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
             /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoOutputCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoOutputCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoOutputCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoOutputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoOutputCallback, ScheduledFrameCompleted)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
             IDeckLinkVideoOutputCallback * This,\r
             /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
             /* [in] */ BMDOutputFrameCompletionResult result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoOutputCallback, ScheduledPlaybackHasStopped)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
             IDeckLinkVideoOutputCallback * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoOutputCallbackVtbl;\r
 \r
@@ -5031,26 +5309,26 @@ EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;
         CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result)       \\r
-    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )\r
+    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This) \\r
-    ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )\r
+    ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5067,58 +5345,63 @@ EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;
 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInputCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInputCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")\r
+    \r
+    MIDL_INTERFACE("C6FCE4C9-C4E4-4047-82FB-5D238232A902")\r
     IDeckLinkInputCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(\r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInputCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInputCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInputCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback, VideoInputFormatChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
             IDeckLinkInputCallback * This,\r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback, VideoInputFrameArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
             IDeckLinkInputCallback * This,\r
             /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInputCallbackVtbl;\r
 \r
@@ -5127,26 +5410,26 @@ EXTERN_C const IID IID_IDeckLinkInputCallback;
         CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInputCallback_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInputCallback_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)     \\r
-    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )\r
+    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
 \r
 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket)     \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )\r
+    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5163,63 +5446,69 @@ EXTERN_C const IID IID_IDeckLinkInputCallback;
 #define __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderInputCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderInputCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("ACF13E61-F4A0-4974-A6A7-59AFF6268B31")\r
     IDeckLinkEncoderInputCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputSignalChanged(\r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputSignalChanged( \r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE VideoPacketArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VideoPacketArrived( \r
             /* [in] */ IDeckLinkEncoderVideoPacket *videoPacket) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE AudioPacketArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE AudioPacketArrived( \r
             /* [in] */ IDeckLinkEncoderAudioPacket *audioPacket) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderInputCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderInputCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderInputCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderInputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputSignalChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInputCallback, VideoInputSignalChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputSignalChanged )( \r
             IDeckLinkEncoderInputCallback * This,\r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoPacketArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInputCallback, VideoPacketArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoPacketArrived )( \r
             IDeckLinkEncoderInputCallback * This,\r
             /* [in] */ IDeckLinkEncoderVideoPacket *videoPacket);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *AudioPacketArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInputCallback, AudioPacketArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *AudioPacketArrived )( \r
             IDeckLinkEncoderInputCallback * This,\r
             /* [in] */ IDeckLinkEncoderAudioPacket *audioPacket);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderInputCallbackVtbl;\r
 \r
@@ -5228,29 +5517,29 @@ EXTERN_C const IID IID_IDeckLinkEncoderInputCallback;
         CONST_VTBL struct IDeckLinkEncoderInputCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderInputCallback_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderInputCallback_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderInputCallback_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderInputCallback_VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)      \\r
-    ( (This)->lpVtbl -> VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )\r
+    ( (This)->lpVtbl -> VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
 \r
 #define IDeckLinkEncoderInputCallback_VideoPacketArrived(This,videoPacket)     \\r
-    ( (This)->lpVtbl -> VideoPacketArrived(This,videoPacket) )\r
+    ( (This)->lpVtbl -> VideoPacketArrived(This,videoPacket) ) \r
 \r
 #define IDeckLinkEncoderInputCallback_AudioPacketArrived(This,audioPacket)     \\r
-    ( (This)->lpVtbl -> AudioPacketArrived(This,audioPacket) )\r
+    ( (This)->lpVtbl -> AudioPacketArrived(This,audioPacket) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5267,64 +5556,71 @@ EXTERN_C const IID IID_IDeckLinkEncoderInputCallback;
 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkMemoryAllocator */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")\r
     IDeckLinkMemoryAllocator : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(\r
+        virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( \r
             /* [in] */ unsigned int bufferSize,\r
             /* [out] */ void **allocatedBuffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( \r
             /* [in] */ void *buffer) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkMemoryAllocatorVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkMemoryAllocator * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkMemoryAllocator * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkMemoryAllocator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMemoryAllocator, AllocateBuffer)\r
+        HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )( \r
             IDeckLinkMemoryAllocator * This,\r
             /* [in] */ unsigned int bufferSize,\r
             /* [out] */ void **allocatedBuffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMemoryAllocator, ReleaseBuffer)\r
+        HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( \r
             IDeckLinkMemoryAllocator * This,\r
             /* [in] */ void *buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Commit )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMemoryAllocator, Commit)\r
+        HRESULT ( STDMETHODCALLTYPE *Commit )( \r
             IDeckLinkMemoryAllocator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Decommit )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMemoryAllocator, Decommit)\r
+        HRESULT ( STDMETHODCALLTYPE *Decommit )( \r
             IDeckLinkMemoryAllocator * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkMemoryAllocatorVtbl;\r
 \r
@@ -5333,32 +5629,32 @@ EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
         CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkMemoryAllocator_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkMemoryAllocator_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer)       \\r
-    ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) )\r
+    ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) ) \r
 \r
 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer)    \\r
-    ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) )\r
+    ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) ) \r
 \r
 #define IDeckLinkMemoryAllocator_Commit(This)  \\r
-    ( (This)->lpVtbl -> Commit(This) )\r
+    ( (This)->lpVtbl -> Commit(This) ) \r
 \r
 #define IDeckLinkMemoryAllocator_Decommit(This)        \\r
-    ( (This)->lpVtbl -> Decommit(This) )\r
+    ( (This)->lpVtbl -> Decommit(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5375,45 +5671,49 @@ EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAudioOutputCallback */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")\r
     IDeckLinkAudioOutputCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples(\r
+        virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( \r
             /* [in] */ BOOL preroll) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAudioOutputCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAudioOutputCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAudioOutputCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAudioOutputCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioOutputCallback, RenderAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )( \r
             IDeckLinkAudioOutputCallback * This,\r
             /* [in] */ BOOL preroll);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAudioOutputCallbackVtbl;\r
 \r
@@ -5422,23 +5722,23 @@ EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;
         CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAudioOutputCallback_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAudioOutputCallback_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll)  \\r
-    ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) )\r
+    ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5455,45 +5755,49 @@ EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;
 #define __IDeckLinkIterator_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkIterator */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkIterator;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("50FB36CD-3063-4B73-BDBB-958087F2D8BA")\r
     IDeckLinkIterator : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLink **deckLinkInstance) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkIteratorVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkIterator * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkIterator * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkIterator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkIterator, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkIterator * This,\r
             /* [out] */ IDeckLink **deckLinkInstance);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkIteratorVtbl;\r
 \r
@@ -5502,23 +5806,23 @@ EXTERN_C const IID IID_IDeckLinkIterator;
         CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkIterator_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkIterator_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkIterator_Next(This,deckLinkInstance)  \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkInstance) )\r
+    ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5535,74 +5839,81 @@ EXTERN_C const IID IID_IDeckLinkIterator;
 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAPIInformation */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAPIInformation;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")\r
     IDeckLinkAPIInformation : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAPIInformationVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAPIInformation * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAPIInformation * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAPIInformation * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAPIInformation, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkAPIInformation * This,\r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAPIInformation, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkAPIInformation * This,\r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAPIInformation, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkAPIInformation * This,\r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAPIInformation, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkAPIInformation * This,\r
             /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAPIInformationVtbl;\r
 \r
@@ -5611,32 +5922,32 @@ EXTERN_C const IID IID_IDeckLinkAPIInformation;
         CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAPIInformation_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAPIInformation_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkAPIInformation_GetString(This,cfgID,value)    \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -5653,191 +5964,204 @@ EXTERN_C const IID IID_IDeckLinkAPIInformation;
 #define __IDeckLinkOutput_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkOutput */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkOutput;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("065A0F6C-C508-4D0D-B919-F5EB0EBFC96B")\r
+    \r
+    MIDL_INTERFACE("BE2D9020-461E-442F-84B7-E949CB953B9D")\r
     IDeckLinkOutput : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDVideoConnection connection,\r
             /* [in] */ BMDDisplayMode requestedMode,\r
             /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDVideoOutputConversionMode conversionMode,\r
             /* [in] */ BMDSupportedVideoModeFlags flags,\r
             /* [out] */ BMDDisplayMode *actualMode,\r
             /* [out] */ BOOL *supported) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDVideoOutputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
             /* [in] */ int width,\r
             /* [in] */ int height,\r
             /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeValue displayTime,\r
             /* [in] */ BMDTimeValue displayDuration,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
             /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
             /* [in] */ BMDTimeValue playbackStartTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ double playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
             /* [out] */ BOOL *active) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( \r
             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *frameCompletionTimestamp) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkOutputVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkOutput * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkOutput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDVideoConnection connection,\r
             /* [in] */ BMDDisplayMode requestedMode,\r
             /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDVideoOutputConversionMode conversionMode,\r
             /* [in] */ BMDSupportedVideoModeFlags flags,\r
             /* [out] */ BMDDisplayMode *actualMode,\r
             /* [out] */ BOOL *supported);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetDisplayMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkOutput * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDVideoOutputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
             IDeckLinkOutput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ int width,\r
             /* [in] */ int height,\r
@@ -5845,111 +6169,132 @@ EXTERN_C const IID IID_IDeckLinkOutput;
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, CreateAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeValue displayTime,\r
             /* [in] */ BMDTimeValue displayDuration,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetBufferedVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput * This,\r
             /* [out] */ unsigned int *bufferedFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
             IDeckLinkOutput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput * This,\r
             /* [out] */ unsigned int *bufferedSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDTimeValue playbackStartTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ double playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, IsScheduledPlaybackRunning)\r
+        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
             IDeckLinkOutput * This,\r
             /* [out] */ BOOL *active);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetScheduledStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetReferenceStatus)\r
+        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( \r
             IDeckLinkOutput * This,\r
             /* [out] */ BMDReferenceStatus *referenceStatus);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput, GetFrameCompletionReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *frameCompletionTimestamp);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkOutputVtbl;\r
 \r
@@ -5958,107 +6303,107 @@ EXTERN_C const IID IID_IDeckLinkOutput;
         CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkOutput_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkOutput_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkOutput_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,actualMode,supported)    \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,actualMode,supported) )\r
+#define IDeckLinkOutput_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,conversionMode,flags,actualMode,supported)     \\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,conversionMode,flags,actualMode,supported) ) \r
 \r
 #define IDeckLinkOutput_GetDisplayMode(This,displayMode,resultDisplayMode)     \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) ) \r
 \r
 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator)  \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback) \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags)      \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
 \r
 #define IDeckLinkOutput_DisableVideoOutput(This)       \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator)  \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)        \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer)        \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )\r
+    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
 \r
 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame)   \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
 \r
 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)        \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
 \r
 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback)  \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount)    \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
 \r
 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)  \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
 \r
 #define IDeckLinkOutput_DisableAudioOutput(This)       \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
 \r
 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)        \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_BeginAudioPreroll(This)        \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_EndAudioPreroll(This)  \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)    \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)        \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
 \r
 #define IDeckLinkOutput_FlushBufferedAudioSamples(This)        \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
 \r
 #define IDeckLinkOutput_SetAudioCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)        \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
 \r
 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active)        \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )\r
+    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
 \r
 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \\r
-    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )\r
+    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus)       \\r
-    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )\r
+    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) \r
 \r
 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)        \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #define IDeckLinkOutput_GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp)  \\r
-    ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) )\r
+    ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6075,169 +6420,193 @@ EXTERN_C const IID IID_IDeckLinkOutput;
 #define __IDeckLinkInput_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInput */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInput;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("2A88CF76-F494-4216-A7EF-DC74EEB83882")\r
+    \r
+    MIDL_INTERFACE("C21CDB6E-F414-46E4-A636-80A566E0ED37")\r
     IDeckLinkInput : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDVideoConnection connection,\r
             /* [in] */ BMDDisplayMode requestedMode,\r
             /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDVideoInputConversionMode conversionMode,\r
             /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BMDDisplayMode *actualMode,\r
             /* [out] */ BOOL *supported) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
             /* [out] */ unsigned int *availableFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkInputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInputVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInput * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInput * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkInput * This,\r
             /* [in] */ BMDVideoConnection connection,\r
             /* [in] */ BMDDisplayMode requestedMode,\r
             /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDVideoInputConversionMode conversionMode,\r
             /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BMDDisplayMode *actualMode,\r
             /* [out] */ BOOL *supported);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, GetDisplayMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkInput * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkInput * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkInput * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkInput * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput * This,\r
             /* [out] */ unsigned int *availableFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, SetVideoInputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )( \r
             IDeckLinkInput * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkInput * This,\r
             /* [in] */ IDeckLinkInputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkInput * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInputVtbl;\r
 \r
@@ -6246,71 +6615,71 @@ EXTERN_C const IID IID_IDeckLinkInput;
         CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInput_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInput_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkInput_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,supported)        \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,supported) )\r
+#define IDeckLinkInput_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,conversionMode,flags,actualMode,supported)      \\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,conversionMode,flags,actualMode,supported) ) \r
 \r
 #define IDeckLinkInput_GetDisplayMode(This,displayMode,resultDisplayMode)      \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) ) \r
 \r
 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator)   \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback)  \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags)    \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkInput_DisableVideoInput(This) \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount)   \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
 \r
 #define IDeckLinkInput_SetVideoInputFrameMemoryAllocator(This,theAllocator)    \\r
-    ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount)       \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkInput_DisableAudioInput(This) \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)       \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkInput_StartStreams(This)      \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkInput_StopStreams(This)       \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkInput_PauseStreams(This)      \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkInput_FlushStreams(This)      \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkInput_SetCallback(This,theCallback)   \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6327,61 +6696,67 @@ EXTERN_C const IID IID_IDeckLinkInput;
 #define __IDeckLinkHDMIInputEDID_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkHDMIInputEDID */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkHDMIInputEDID;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("ABBBACBC-45BC-4665-9D92-ACE6E5A97902")\r
     IDeckLinkHDMIInputEDID : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE WriteToEDID( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkHDMIInputEDIDVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkHDMIInputEDID * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkHDMIInputEDID * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkHDMIInputEDID * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkHDMIInputEDID, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
             IDeckLinkHDMIInputEDID * This,\r
             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkHDMIInputEDID, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkHDMIInputEDID * This,\r
             /* [in] */ BMDDeckLinkHDMIInputEDIDID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteToEDID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkHDMIInputEDID, WriteToEDID)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteToEDID )( \r
             IDeckLinkHDMIInputEDID * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkHDMIInputEDIDVtbl;\r
 \r
@@ -6390,29 +6765,29 @@ EXTERN_C const IID IID_IDeckLinkHDMIInputEDID;
         CONST_VTBL struct IDeckLinkHDMIInputEDIDVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkHDMIInputEDID_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkHDMIInputEDID_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkHDMIInputEDID_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkHDMIInputEDID_SetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkHDMIInputEDID_GetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkHDMIInputEDID_WriteToEDID(This)       \\r
-    ( (This)->lpVtbl -> WriteToEDID(This) )\r
+    ( (This)->lpVtbl -> WriteToEDID(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6429,95 +6804,99 @@ EXTERN_C const IID IID_IDeckLinkHDMIInputEDID;
 #define __IDeckLinkEncoderInput_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderInput */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderInput;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("F222551D-13DF-4FD8-B587-9D4F19EC12C9")\r
     IDeckLinkEncoderInput : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDVideoConnection connection,\r
             /* [in] */ BMDDisplayMode requestedMode,\r
             /* [in] */ BMDPixelFormat requestedCodec,\r
             /* [in] */ unsigned int requestedCodecProfile,\r
             /* [in] */ BMDSupportedVideoModeFlags flags,\r
             /* [out] */ BOOL *supported) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount( \r
             /* [out] */ unsigned int *availablePacketsCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioFormat audioFormat,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkEncoderInputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderInputVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ BMDVideoConnection connection,\r
             /* [in] */ BMDDisplayMode requestedMode,\r
@@ -6525,70 +6904,85 @@ EXTERN_C const IID IID_IDeckLinkEncoderInput;
             /* [in] */ unsigned int requestedCodecProfile,\r
             /* [in] */ BMDSupportedVideoModeFlags flags,\r
             /* [out] */ BOOL *supported);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, GetDisplayMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkEncoderInput * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, GetAvailablePacketsCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )( \r
             IDeckLinkEncoderInput * This,\r
             /* [out] */ unsigned int *availablePacketsCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, SetMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ BMDAudioFormat audioFormat,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkEncoderInput * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkEncoderInput * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ IDeckLinkEncoderInputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkEncoderInput * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderInputVtbl;\r
 \r
@@ -6597,68 +6991,68 @@ EXTERN_C const IID IID_IDeckLinkEncoderInput;
         CONST_VTBL struct IDeckLinkEncoderInputVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderInput_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderInput_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderInput_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderInput_DoesSupportVideoMode(This,connection,requestedMode,requestedCodec,requestedCodecProfile,flags,supported) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedCodec,requestedCodecProfile,flags,supported) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedCodec,requestedCodecProfile,flags,supported) ) \r
 \r
 #define IDeckLinkEncoderInput_GetDisplayMode(This,displayMode,resultDisplayMode)       \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) ) \r
 \r
 #define IDeckLinkEncoderInput_GetDisplayModeIterator(This,iterator)    \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkEncoderInput_EnableVideoInput(This,displayMode,pixelFormat,flags)     \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkEncoderInput_DisableVideoInput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkEncoderInput_GetAvailablePacketsCount(This,availablePacketsCount)     \\r
-    ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) )\r
+    ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) ) \r
 \r
 #define IDeckLinkEncoderInput_SetMemoryAllocator(This,theAllocator)    \\r
-    ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkEncoderInput_EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount)    \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkEncoderInput_DisableAudioInput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkEncoderInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)        \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkEncoderInput_StartStreams(This)       \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_StopStreams(This)        \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_PauseStreams(This)       \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_FlushStreams(This)       \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_SetCallback(This,theCallback)    \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkEncoderInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6675,86 +7069,97 @@ EXTERN_C const IID IID_IDeckLinkEncoderInput;
 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrame */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrame;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")\r
     IDeckLinkVideoFrame : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
-\r
+        \r
         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-\r
+        \r
         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrameVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrame * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoFrame * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoFrame * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkVideoFrame * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkVideoFrame * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrameVtbl;\r
 \r
@@ -6763,44 +7168,44 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame;
         CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrame_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrame_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrame_GetWidth(This)     \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoFrame_GetHeight(This)    \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoFrame_GetRowBytes(This)  \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoFrame_GetPixelFormat(This)       \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoFrame_GetFlags(This)     \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoFrame_GetBytes(This,buffer)      \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)  \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)   \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6817,98 +7222,112 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame;
 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkMutableVideoFrame */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")\r
     IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlags(\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
             /* [in] */ BMDFrameFlags newFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [in] */ IDeckLinkTimecode *timecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [in] */ unsigned char hours,\r
             /* [in] */ unsigned char minutes,\r
             /* [in] */ unsigned char seconds,\r
             /* [in] */ unsigned char frames,\r
             /* [in] */ BMDTimecodeFlags flags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits( \r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [in] */ BMDTimecodeUserBits userBits) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkMutableVideoFrameVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkMutableVideoFrame * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame, SetFlags)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ BMDFrameFlags newFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame, SetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [in] */ IDeckLinkTimecode *timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame, SetTimecodeFromComponents)\r
+        HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [in] */ unsigned char hours,\r
@@ -6916,16 +7335,18 @@ EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
             /* [in] */ unsigned char seconds,\r
             /* [in] */ unsigned char frames,\r
             /* [in] */ BMDTimecodeFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame, SetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame, SetTimecodeUserBits)\r
+        HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )( \r
             IDeckLinkMutableVideoFrame * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [in] */ BMDTimecodeUserBits userBits);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkMutableVideoFrameVtbl;\r
 \r
@@ -6934,60 +7355,60 @@ EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
         CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkMutableVideoFrame_GetWidth(This)      \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetHeight(This)     \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetRowBytes(This)   \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This)        \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetFlags(This)      \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer)       \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode)   \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary)    \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 \r
 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags)     \\r
-    ( (This)->lpVtbl -> SetFlags(This,newFlags) )\r
+    ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode)   \\r
-    ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)   \\r
-    ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )\r
+    ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary)    \\r
-    ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits)   \\r
-    ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) )\r
+    ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7004,50 +7425,55 @@ EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
 #define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrame3DExtensions */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")\r
     IDeckLinkVideoFrame3DExtensions : public IUnknown\r
     {\r
     public:\r
         virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( \r
             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrame3DExtensionsVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrame3DExtensions * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrame3DExtensions * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrame3DExtensions * This);\r
-\r
-        BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame3DExtensions, Get3DPackingFormat)\r
+        BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )( \r
             IDeckLinkVideoFrame3DExtensions * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame3DExtensions, GetFrameForRightEye)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )( \r
             IDeckLinkVideoFrame3DExtensions * This,\r
             /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrame3DExtensionsVtbl;\r
 \r
@@ -7056,26 +7482,26 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
         CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrame3DExtensions_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrame3DExtensions_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This)       \\r
-    ( (This)->lpVtbl -> Get3DPackingFormat(This) )\r
+    ( (This)->lpVtbl -> Get3DPackingFormat(This) ) \r
 \r
 #define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame)        \\r
-    ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) )\r
+    ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7092,74 +7518,93 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
 #define __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrameMetadataExtensions */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrameMetadataExtensions;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("D5973DC9-6432-46D0-8F0B-2496F8A1238F")\r
+    \r
+    MIDL_INTERFACE("E232A5B7-4DB4-44C9-9152-F47C12E5F051")\r
     IDeckLinkVideoFrameMetadataExtensions : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ void *buffer,\r
+            /* [out][in] */ unsigned int *bufferSize) = 0;\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrameMetadataExtensionsVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrameMetadataExtensions * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrameMetadataExtensions * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrameMetadataExtensions * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkVideoFrameMetadataExtensions * This,\r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkVideoFrameMetadataExtensions * This,\r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkVideoFrameMetadataExtensions * This,\r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkVideoFrameMetadataExtensions * This,\r
             /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
             /* [out] */ BSTR *value);\r
-\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ void *buffer,\r
+            /* [out][in] */ unsigned int *bufferSize);\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrameMetadataExtensionsVtbl;\r
 \r
@@ -7168,32 +7613,35 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameMetadataExtensions;
         CONST_VTBL struct IDeckLinkVideoFrameMetadataExtensionsVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_GetInt(This,metadataID,value)    \\r
-    ( (This)->lpVtbl -> GetInt(This,metadataID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,metadataID,value) ) \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_GetFloat(This,metadataID,value)  \\r
-    ( (This)->lpVtbl -> GetFloat(This,metadataID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,metadataID,value) ) \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_GetFlag(This,metadataID,value)   \\r
-    ( (This)->lpVtbl -> GetFlag(This,metadataID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,metadataID,value) ) \r
 \r
 #define IDeckLinkVideoFrameMetadataExtensions_GetString(This,metadataID,value) \\r
-    ( (This)->lpVtbl -> GetString(This,metadataID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_GetBytes(This,metadataID,buffer,bufferSize)      \\r
+    ( (This)->lpVtbl -> GetBytes(This,metadataID,buffer,bufferSize) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7210,88 +7658,101 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameMetadataExtensions;
 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoInputFrame */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")\r
     IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime(\r
+        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoInputFrameVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoInputFrame * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoInputFrame * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoInputFrame * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkVideoInputFrame * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkVideoInputFrame * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoInputFrame, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkVideoInputFrame * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoInputFrame, GetHardwareReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
             IDeckLinkVideoInputFrame * This,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoInputFrameVtbl;\r
 \r
@@ -7300,51 +7761,51 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame;
         CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoInputFrame_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_GetWidth(This)        \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetHeight(This)       \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetRowBytes(This)     \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetPixelFormat(This)  \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetFlags(This)        \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode)     \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary)      \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale) \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
 \r
 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7361,69 +7822,77 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame;
 #define __IDeckLinkAncillaryPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAncillaryPacket */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAncillaryPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("CC5BBF7E-029C-4D3B-9158-6000EF5E3670")\r
     IDeckLinkAncillaryPacket : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [in] */ BMDAncillaryPacketFormat format,\r
             /* [out] */ const void **data,\r
             /* [out] */ unsigned int *size) = 0;\r
-\r
+        \r
         virtual unsigned char STDMETHODCALLTYPE GetDID( void) = 0;\r
-\r
+        \r
         virtual unsigned char STDMETHODCALLTYPE GetSDID( void) = 0;\r
-\r
+        \r
         virtual unsigned int STDMETHODCALLTYPE GetLineNumber( void) = 0;\r
-\r
+        \r
         virtual unsigned char STDMETHODCALLTYPE GetDataStreamIndex( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAncillaryPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAncillaryPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAncillaryPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAncillaryPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAncillaryPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkAncillaryPacket * This,\r
             /* [in] */ BMDAncillaryPacketFormat format,\r
             /* [out] */ const void **data,\r
             /* [out] */ unsigned int *size);\r
-\r
-        unsigned char ( STDMETHODCALLTYPE *GetDID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAncillaryPacket, GetDID)\r
+        unsigned char ( STDMETHODCALLTYPE *GetDID )( \r
             IDeckLinkAncillaryPacket * This);\r
-\r
-        unsigned char ( STDMETHODCALLTYPE *GetSDID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAncillaryPacket, GetSDID)\r
+        unsigned char ( STDMETHODCALLTYPE *GetSDID )( \r
             IDeckLinkAncillaryPacket * This);\r
-\r
-        unsigned int ( STDMETHODCALLTYPE *GetLineNumber )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAncillaryPacket, GetLineNumber)\r
+        unsigned int ( STDMETHODCALLTYPE *GetLineNumber )( \r
             IDeckLinkAncillaryPacket * This);\r
-\r
-        unsigned char ( STDMETHODCALLTYPE *GetDataStreamIndex )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAncillaryPacket, GetDataStreamIndex)\r
+        unsigned char ( STDMETHODCALLTYPE *GetDataStreamIndex )( \r
             IDeckLinkAncillaryPacket * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAncillaryPacketVtbl;\r
 \r
@@ -7432,35 +7901,35 @@ EXTERN_C const IID IID_IDeckLinkAncillaryPacket;
         CONST_VTBL struct IDeckLinkAncillaryPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAncillaryPacket_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAncillaryPacket_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAncillaryPacket_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAncillaryPacket_GetBytes(This,format,data,size)       \\r
-    ( (This)->lpVtbl -> GetBytes(This,format,data,size) )\r
+    ( (This)->lpVtbl -> GetBytes(This,format,data,size) ) \r
 \r
 #define IDeckLinkAncillaryPacket_GetDID(This)  \\r
-    ( (This)->lpVtbl -> GetDID(This) )\r
+    ( (This)->lpVtbl -> GetDID(This) ) \r
 \r
 #define IDeckLinkAncillaryPacket_GetSDID(This) \\r
-    ( (This)->lpVtbl -> GetSDID(This) )\r
+    ( (This)->lpVtbl -> GetSDID(This) ) \r
 \r
 #define IDeckLinkAncillaryPacket_GetLineNumber(This)   \\r
-    ( (This)->lpVtbl -> GetLineNumber(This) )\r
+    ( (This)->lpVtbl -> GetLineNumber(This) ) \r
 \r
 #define IDeckLinkAncillaryPacket_GetDataStreamIndex(This)      \\r
-    ( (This)->lpVtbl -> GetDataStreamIndex(This) )\r
+    ( (This)->lpVtbl -> GetDataStreamIndex(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7477,45 +7946,49 @@ EXTERN_C const IID IID_IDeckLinkAncillaryPacket;
 #define __IDeckLinkAncillaryPacketIterator_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAncillaryPacketIterator */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAncillaryPacketIterator;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("3FC8994B-88FB-4C17-968F-9AAB69D964A7")\r
     IDeckLinkAncillaryPacketIterator : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLinkAncillaryPacket **packet) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAncillaryPacketIteratorVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAncillaryPacketIterator * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAncillaryPacketIterator * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAncillaryPacketIterator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAncillaryPacketIterator, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkAncillaryPacketIterator * This,\r
             /* [out] */ IDeckLinkAncillaryPacket **packet);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAncillaryPacketIteratorVtbl;\r
 \r
@@ -7524,23 +7997,23 @@ EXTERN_C const IID IID_IDeckLinkAncillaryPacketIterator;
         CONST_VTBL struct IDeckLinkAncillaryPacketIteratorVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAncillaryPacketIterator_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAncillaryPacketIterator_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAncillaryPacketIterator_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAncillaryPacketIterator_Next(This,packet)     \\r
-    ( (This)->lpVtbl -> Next(This,packet) )\r
+    ( (This)->lpVtbl -> Next(This,packet) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7557,75 +8030,83 @@ EXTERN_C const IID IID_IDeckLinkAncillaryPacketIterator;
 #define __IDeckLinkVideoFrameAncillaryPackets_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrameAncillaryPackets */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillaryPackets;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("6C186C0F-459E-41D8-AEE2-4812D81AEE68")\r
     IDeckLinkVideoFrameAncillaryPackets : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetPacketIterator(\r
+        virtual HRESULT STDMETHODCALLTYPE GetPacketIterator( \r
             /* [out] */ IDeckLinkAncillaryPacketIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFirstPacketByID(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFirstPacketByID( \r
             /* [in] */ unsigned char DID,\r
             /* [in] */ unsigned char SDID,\r
             /* [out] */ IDeckLinkAncillaryPacket **packet) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE AttachPacket(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE AttachPacket( \r
             /* [in] */ IDeckLinkAncillaryPacket *packet) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DetachPacket(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DetachPacket( \r
             /* [in] */ IDeckLinkAncillaryPacket *packet) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DetachAllPackets( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrameAncillaryPacketsVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrameAncillaryPackets * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrameAncillaryPackets * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrameAncillaryPackets * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPacketIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillaryPackets, GetPacketIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPacketIterator )( \r
             IDeckLinkVideoFrameAncillaryPackets * This,\r
             /* [out] */ IDeckLinkAncillaryPacketIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFirstPacketByID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillaryPackets, GetFirstPacketByID)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFirstPacketByID )( \r
             IDeckLinkVideoFrameAncillaryPackets * This,\r
             /* [in] */ unsigned char DID,\r
             /* [in] */ unsigned char SDID,\r
             /* [out] */ IDeckLinkAncillaryPacket **packet);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *AttachPacket )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillaryPackets, AttachPacket)\r
+        HRESULT ( STDMETHODCALLTYPE *AttachPacket )( \r
             IDeckLinkVideoFrameAncillaryPackets * This,\r
             /* [in] */ IDeckLinkAncillaryPacket *packet);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DetachPacket )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillaryPackets, DetachPacket)\r
+        HRESULT ( STDMETHODCALLTYPE *DetachPacket )( \r
             IDeckLinkVideoFrameAncillaryPackets * This,\r
             /* [in] */ IDeckLinkAncillaryPacket *packet);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DetachAllPackets )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillaryPackets, DetachAllPackets)\r
+        HRESULT ( STDMETHODCALLTYPE *DetachAllPackets )( \r
             IDeckLinkVideoFrameAncillaryPackets * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrameAncillaryPacketsVtbl;\r
 \r
@@ -7634,35 +8115,35 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillaryPackets;
         CONST_VTBL struct IDeckLinkVideoFrameAncillaryPacketsVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_GetPacketIterator(This,iterator)   \\r
-    ( (This)->lpVtbl -> GetPacketIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetPacketIterator(This,iterator) ) \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_GetFirstPacketByID(This,DID,SDID,packet)   \\r
-    ( (This)->lpVtbl -> GetFirstPacketByID(This,DID,SDID,packet) )\r
+    ( (This)->lpVtbl -> GetFirstPacketByID(This,DID,SDID,packet) ) \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_AttachPacket(This,packet)  \\r
-    ( (This)->lpVtbl -> AttachPacket(This,packet) )\r
+    ( (This)->lpVtbl -> AttachPacket(This,packet) ) \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_DetachPacket(This,packet)  \\r
-    ( (This)->lpVtbl -> DetachPacket(This,packet) )\r
+    ( (This)->lpVtbl -> DetachPacket(This,packet) ) \r
 \r
 #define IDeckLinkVideoFrameAncillaryPackets_DetachAllPackets(This)     \\r
-    ( (This)->lpVtbl -> DetachAllPackets(This) )\r
+    ( (This)->lpVtbl -> DetachAllPackets(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7679,57 +8160,63 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillaryPackets;
 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrameAncillary */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")\r
     IDeckLinkVideoFrameAncillary : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine(\r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( \r
             /* [in] */ unsigned int lineNumber,\r
             /* [out] */ void **buffer) = 0;\r
-\r
+        \r
         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-\r
+        \r
         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrameAncillaryVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrameAncillary * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrameAncillary * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrameAncillary * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillary, GetBufferForVerticalBlankingLine)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( \r
             IDeckLinkVideoFrameAncillary * This,\r
             /* [in] */ unsigned int lineNumber,\r
             /* [out] */ void **buffer);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillary, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoFrameAncillary * This);\r
-\r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameAncillary, GetDisplayMode)\r
+        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkVideoFrameAncillary * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrameAncillaryVtbl;\r
 \r
@@ -7738,29 +8225,29 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
         CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrameAncillary_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrameAncillary_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer)  \\r
-    ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) )\r
+    ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) ) \r
 \r
 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This)      \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This)      \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7777,64 +8264,71 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
 #define __IDeckLinkEncoderPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderPacket */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("B693F36C-316E-4AF1-B6C2-F389A4BCA620")\r
     IDeckLinkEncoderPacket : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetSize( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
+        \r
         virtual BMDPacketType STDMETHODCALLTYPE GetPacketType( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkEncoderPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetSize)\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
             IDeckLinkEncoderPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkEncoderPacket * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetPacketType)\r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
             IDeckLinkEncoderPacket * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderPacketVtbl;\r
 \r
@@ -7843,32 +8337,32 @@ EXTERN_C const IID IID_IDeckLinkEncoderPacket;
         CONST_VTBL struct IDeckLinkEncoderPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderPacket_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderPacket_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderPacket_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderPacket_GetBytes(This,buffer)   \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkEncoderPacket_GetSize(This)   \\r
-    ( (This)->lpVtbl -> GetSize(This) )\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
 \r
 #define IDeckLinkEncoderPacket_GetStreamTime(This,frameTime,timeScale) \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
 \r
 #define IDeckLinkEncoderPacket_GetPacketType(This)     \\r
-    ( (This)->lpVtbl -> GetPacketType(This) )\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -7885,78 +8379,88 @@ EXTERN_C const IID IID_IDeckLinkEncoderPacket;
 #define __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderVideoPacket */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderVideoPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0")\r
     IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket\r
     {\r
     public:\r
         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderVideoPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderVideoPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderVideoPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderVideoPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkEncoderVideoPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetSize)\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
             IDeckLinkEncoderVideoPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkEncoderVideoPacket * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetPacketType)\r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
             IDeckLinkEncoderVideoPacket * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderVideoPacket, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkEncoderVideoPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderVideoPacket, GetHardwareReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
             IDeckLinkEncoderVideoPacket * This,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderVideoPacket, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkEncoderVideoPacket * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderVideoPacketVtbl;\r
 \r
@@ -7965,42 +8469,42 @@ EXTERN_C const IID IID_IDeckLinkEncoderVideoPacket;
         CONST_VTBL struct IDeckLinkEncoderVideoPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderVideoPacket_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetBytes(This,buffer)      \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetSize(This)      \\r
-    ( (This)->lpVtbl -> GetSize(This) )\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetStreamTime(This,frameTime,timeScale)    \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetPacketType(This)        \\r
-    ( (This)->lpVtbl -> GetPacketType(This) )\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetPixelFormat(This)       \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)      \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
 \r
 #define IDeckLinkEncoderVideoPacket_GetTimecode(This,format,timecode)  \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8017,58 +8521,66 @@ EXTERN_C const IID IID_IDeckLinkEncoderVideoPacket;
 #define __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderAudioPacket */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderAudioPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("49E8EDC8-693B-4E14-8EF6-12C658F5A07A")\r
     IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket\r
     {\r
     public:\r
         virtual BMDAudioFormat STDMETHODCALLTYPE GetAudioFormat( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderAudioPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderAudioPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderAudioPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderAudioPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkEncoderAudioPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetSize)\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
             IDeckLinkEncoderAudioPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkEncoderAudioPacket * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetPacketType)\r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
             IDeckLinkEncoderAudioPacket * This);\r
-\r
-        BMDAudioFormat ( STDMETHODCALLTYPE *GetAudioFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderAudioPacket, GetAudioFormat)\r
+        BMDAudioFormat ( STDMETHODCALLTYPE *GetAudioFormat )( \r
             IDeckLinkEncoderAudioPacket * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderAudioPacketVtbl;\r
 \r
@@ -8077,36 +8589,36 @@ EXTERN_C const IID IID_IDeckLinkEncoderAudioPacket;
         CONST_VTBL struct IDeckLinkEncoderAudioPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderAudioPacket_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderAudioPacket_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderAudioPacket_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderAudioPacket_GetBytes(This,buffer)      \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkEncoderAudioPacket_GetSize(This)      \\r
-    ( (This)->lpVtbl -> GetSize(This) )\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
 \r
 #define IDeckLinkEncoderAudioPacket_GetStreamTime(This,frameTime,timeScale)    \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
 \r
 #define IDeckLinkEncoderAudioPacket_GetPacketType(This)        \\r
-    ( (This)->lpVtbl -> GetPacketType(This) )\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderAudioPacket_GetAudioFormat(This)       \\r
-    ( (This)->lpVtbl -> GetAudioFormat(This) )\r
+    ( (This)->lpVtbl -> GetAudioFormat(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8123,86 +8635,99 @@ EXTERN_C const IID IID_IDeckLinkEncoderAudioPacket;
 #define __IDeckLinkH265NALPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkH265NALPacket */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkH265NALPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7")\r
     IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetUnitType(\r
+        virtual HRESULT STDMETHODCALLTYPE GetUnitType( \r
             /* [out] */ unsigned char *unitType) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytesNoPrefix(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytesNoPrefix( \r
             /* [out] */ void **buffer) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetSizeNoPrefix( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkH265NALPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkH265NALPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkH265NALPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetSize)\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
             IDeckLinkH265NALPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderPacket, GetPacketType)\r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
             IDeckLinkH265NALPacket * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderVideoPacket, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkH265NALPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderVideoPacket, GetHardwareReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderVideoPacket, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [in] */ BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetUnitType )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkH265NALPacket, GetUnitType)\r
+        HRESULT ( STDMETHODCALLTYPE *GetUnitType )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [out] */ unsigned char *unitType);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytesNoPrefix )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkH265NALPacket, GetBytesNoPrefix)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytesNoPrefix )( \r
             IDeckLinkH265NALPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSizeNoPrefix )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkH265NALPacket, GetSizeNoPrefix)\r
+        long ( STDMETHODCALLTYPE *GetSizeNoPrefix )( \r
             IDeckLinkH265NALPacket * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkH265NALPacketVtbl;\r
 \r
@@ -8211,52 +8736,52 @@ EXTERN_C const IID IID_IDeckLinkH265NALPacket;
         CONST_VTBL struct IDeckLinkH265NALPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkH265NALPacket_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkH265NALPacket_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkH265NALPacket_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkH265NALPacket_GetBytes(This,buffer)   \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetSize(This)   \\r
-    ( (This)->lpVtbl -> GetSize(This) )\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetStreamTime(This,frameTime,timeScale) \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetPacketType(This)     \\r
-    ( (This)->lpVtbl -> GetPacketType(This) )\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
 \r
 \r
 #define IDeckLinkH265NALPacket_GetPixelFormat(This)    \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetTimecode(This,format,timecode)       \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 \r
 #define IDeckLinkH265NALPacket_GetUnitType(This,unitType)      \\r
-    ( (This)->lpVtbl -> GetUnitType(This,unitType) )\r
+    ( (This)->lpVtbl -> GetUnitType(This,unitType) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetBytesNoPrefix(This,buffer)   \\r
-    ( (This)->lpVtbl -> GetBytesNoPrefix(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytesNoPrefix(This,buffer) ) \r
 \r
 #define IDeckLinkH265NALPacket_GetSizeNoPrefix(This)   \\r
-    ( (This)->lpVtbl -> GetSizeNoPrefix(This) )\r
+    ( (This)->lpVtbl -> GetSizeNoPrefix(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8273,59 +8798,65 @@ EXTERN_C const IID IID_IDeckLinkH265NALPacket;
 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAudioInputPacket */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")\r
     IDeckLinkAudioInputPacket : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPacketTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPacketTime( \r
             /* [out] */ BMDTimeValue *packetTime,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAudioInputPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAudioInputPacket * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAudioInputPacket * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAudioInputPacket * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioInputPacket, GetSampleFrameCount)\r
+        long ( STDMETHODCALLTYPE *GetSampleFrameCount )( \r
             IDeckLinkAudioInputPacket * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioInputPacket, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkAudioInputPacket * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPacketTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioInputPacket, GetPacketTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( \r
             IDeckLinkAudioInputPacket * This,\r
             /* [out] */ BMDTimeValue *packetTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAudioInputPacketVtbl;\r
 \r
@@ -8334,29 +8865,29 @@ EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
         CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAudioInputPacket_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAudioInputPacket_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This)    \\r
-    ( (This)->lpVtbl -> GetSampleFrameCount(This) )\r
+    ( (This)->lpVtbl -> GetSampleFrameCount(This) ) \r
 \r
 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer)        \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale)     \\r
-    ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) )\r
+    ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8373,45 +8904,49 @@ EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkScreenPreviewCallback */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")\r
     IDeckLinkScreenPreviewCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DrawFrame(\r
+        virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkScreenPreviewCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkScreenPreviewCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkScreenPreviewCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkScreenPreviewCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DrawFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkScreenPreviewCallback, DrawFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
             IDeckLinkScreenPreviewCallback * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkScreenPreviewCallbackVtbl;\r
 \r
@@ -8420,23 +8955,23 @@ EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
         CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkScreenPreviewCallback_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkScreenPreviewCallback_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame)        \\r
-    ( (This)->lpVtbl -> DrawFrame(This,theFrame) )\r
+    ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8453,62 +8988,69 @@ EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkGLScreenPreviewHelper */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")\r
     IDeckLinkGLScreenPreviewHelper : public IUnknown\r
     {\r
     public:\r
         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkGLScreenPreviewHelperVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkGLScreenPreviewHelper * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkGLScreenPreviewHelper * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkGLScreenPreviewHelper * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *InitializeGL )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper, InitializeGL)\r
+        HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
             IDeckLinkGLScreenPreviewHelper * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PaintGL )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper, PaintGL)\r
+        HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
             IDeckLinkGLScreenPreviewHelper * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper, SetFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
             IDeckLinkGLScreenPreviewHelper * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper, Set3DPreviewFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
             IDeckLinkGLScreenPreviewHelper * This,\r
             /* [in] */ BMD3DPreviewFormat previewFormat);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkGLScreenPreviewHelperVtbl;\r
 \r
@@ -8517,32 +9059,32 @@ EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
         CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)      \\r
-    ( (This)->lpVtbl -> InitializeGL(This) )\r
+    ( (This)->lpVtbl -> InitializeGL(This) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This)   \\r
-    ( (This)->lpVtbl -> PaintGL(This) )\r
+    ( (This)->lpVtbl -> PaintGL(This) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) )\r
+    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)  \\r
-    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )\r
+    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8559,66 +9101,73 @@ EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
 #define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDX9ScreenPreviewHelper */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("2094B522-D1A1-40C0-9AC7-1C012218EF02")\r
     IDeckLinkDX9ScreenPreviewHelper : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Initialize(\r
+        virtual HRESULT STDMETHODCALLTYPE Initialize( \r
             /* [in] */ void *device) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Render(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Render( \r
             /* [in] */ RECT *rc) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
             /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDX9ScreenPreviewHelper * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDX9ScreenPreviewHelper * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDX9ScreenPreviewHelper * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Initialize )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDX9ScreenPreviewHelper, Initialize)\r
+        HRESULT ( STDMETHODCALLTYPE *Initialize )( \r
             IDeckLinkDX9ScreenPreviewHelper * This,\r
             /* [in] */ void *device);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Render )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDX9ScreenPreviewHelper, Render)\r
+        HRESULT ( STDMETHODCALLTYPE *Render )( \r
             IDeckLinkDX9ScreenPreviewHelper * This,\r
             /* [in] */ RECT *rc);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDX9ScreenPreviewHelper, SetFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
             IDeckLinkDX9ScreenPreviewHelper * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDX9ScreenPreviewHelper, Set3DPreviewFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
             IDeckLinkDX9ScreenPreviewHelper * This,\r
             /* [in] */ BMD3DPreviewFormat previewFormat);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDX9ScreenPreviewHelperVtbl;\r
 \r
@@ -8627,32 +9176,32 @@ EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
         CONST_VTBL struct IDeckLinkDX9ScreenPreviewHelperVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device)        \\r
-    ( (This)->lpVtbl -> Initialize(This,device) )\r
+    ( (This)->lpVtbl -> Initialize(This,device) ) \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc)        \\r
-    ( (This)->lpVtbl -> Render(This,rc) )\r
+    ( (This)->lpVtbl -> Render(This,rc) ) \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame)        \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) )\r
+    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
 \r
 #define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \\r
-    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )\r
+    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8669,49 +9218,53 @@ EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
 #define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkNotificationCallback */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkNotificationCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d")\r
     IDeckLinkNotificationCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Notify(\r
+        virtual HRESULT STDMETHODCALLTYPE Notify( \r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ ULONGLONG param1,\r
             /* [in] */ ULONGLONG param2) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkNotificationCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkNotificationCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkNotificationCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkNotificationCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Notify )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkNotificationCallback, Notify)\r
+        HRESULT ( STDMETHODCALLTYPE *Notify )( \r
             IDeckLinkNotificationCallback * This,\r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ ULONGLONG param1,\r
             /* [in] */ ULONGLONG param2);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkNotificationCallbackVtbl;\r
 \r
@@ -8720,23 +9273,23 @@ EXTERN_C const IID IID_IDeckLinkNotificationCallback;
         CONST_VTBL struct IDeckLinkNotificationCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkNotificationCallback_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkNotificationCallback_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2) \\r
-    ( (This)->lpVtbl -> Notify(This,topic,param1,param2) )\r
+    ( (This)->lpVtbl -> Notify(This,topic,param1,param2) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8753,56 +9306,61 @@ EXTERN_C const IID IID_IDeckLinkNotificationCallback;
 #define __IDeckLinkNotification_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkNotification */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkNotification;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("b85df4c8-bdf5-47c1-8064-28162ebdd4eb")\r
     IDeckLinkNotification : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Subscribe(\r
+        virtual HRESULT STDMETHODCALLTYPE Subscribe( \r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Unsubscribe(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Unsubscribe( \r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkNotificationVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkNotification * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkNotification * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkNotification * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Subscribe )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkNotification, Subscribe)\r
+        HRESULT ( STDMETHODCALLTYPE *Subscribe )( \r
             IDeckLinkNotification * This,\r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Unsubscribe )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkNotification, Unsubscribe)\r
+        HRESULT ( STDMETHODCALLTYPE *Unsubscribe )( \r
             IDeckLinkNotification * This,\r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkNotificationVtbl;\r
 \r
@@ -8811,26 +9369,26 @@ EXTERN_C const IID IID_IDeckLinkNotification;
         CONST_VTBL struct IDeckLinkNotificationVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkNotification_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkNotification_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkNotification_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkNotification_Subscribe(This,topic,theCallback)        \\r
-    ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) )\r
+    ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) ) \r
 \r
 #define IDeckLinkNotification_Unsubscribe(This,topic,theCallback)      \\r
-    ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) )\r
+    ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8847,74 +9405,81 @@ EXTERN_C const IID IID_IDeckLinkNotification;
 #define __IDeckLinkProfileAttributes_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkProfileAttributes */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkProfileAttributes;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("17D4BF8E-4911-473A-80A0-731CF6FF345B")\r
     IDeckLinkProfileAttributes : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkProfileAttributesVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkProfileAttributes * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkProfileAttributes * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkProfileAttributes * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileAttributes, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkProfileAttributes * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileAttributes, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkProfileAttributes * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileAttributes, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkProfileAttributes * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileAttributes, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkProfileAttributes * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkProfileAttributesVtbl;\r
 \r
@@ -8923,32 +9488,32 @@ EXTERN_C const IID IID_IDeckLinkProfileAttributes;
         CONST_VTBL struct IDeckLinkProfileAttributesVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkProfileAttributes_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkProfileAttributes_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkProfileAttributes_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkProfileAttributes_GetFlag(This,cfgID,value)   \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkProfileAttributes_GetInt(This,cfgID,value)    \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkProfileAttributes_GetFloat(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkProfileAttributes_GetString(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -8965,45 +9530,49 @@ EXTERN_C const IID IID_IDeckLinkProfileAttributes;
 #define __IDeckLinkProfileIterator_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkProfileIterator */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkProfileIterator;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("29E5A8C0-8BE4-46EB-93AC-31DAAB5B7BF2")\r
     IDeckLinkProfileIterator : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLinkProfile **profile) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkProfileIteratorVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkProfileIterator * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkProfileIterator * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkProfileIterator * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileIterator, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkProfileIterator * This,\r
             /* [out] */ IDeckLinkProfile **profile);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkProfileIteratorVtbl;\r
 \r
@@ -9012,23 +9581,23 @@ EXTERN_C const IID IID_IDeckLinkProfileIterator;
         CONST_VTBL struct IDeckLinkProfileIteratorVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkProfileIterator_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkProfileIterator_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkProfileIterator_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkProfileIterator_Next(This,profile)    \\r
-    ( (This)->lpVtbl -> Next(This,profile) )\r
+    ( (This)->lpVtbl -> Next(This,profile) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9045,64 +9614,71 @@ EXTERN_C const IID IID_IDeckLinkProfileIterator;
 #define __IDeckLinkProfile_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkProfile */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkProfile;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("16093466-674A-432B-9DA0-1AC2C5A8241C")\r
     IDeckLinkProfile : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetDevice(\r
+        virtual HRESULT STDMETHODCALLTYPE GetDevice( \r
             /* [out] */ IDeckLink **device) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsActive(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsActive( \r
             /* [out] */ BOOL *isActive) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE SetActive( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPeers(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPeers( \r
             /* [out] */ IDeckLinkProfileIterator **profileIterator) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkProfileVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkProfile * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkProfile * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkProfile * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDevice )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfile, GetDevice)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDevice )( \r
             IDeckLinkProfile * This,\r
             /* [out] */ IDeckLink **device);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsActive )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfile, IsActive)\r
+        HRESULT ( STDMETHODCALLTYPE *IsActive )( \r
             IDeckLinkProfile * This,\r
             /* [out] */ BOOL *isActive);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetActive )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfile, SetActive)\r
+        HRESULT ( STDMETHODCALLTYPE *SetActive )( \r
             IDeckLinkProfile * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPeers )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfile, GetPeers)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPeers )( \r
             IDeckLinkProfile * This,\r
             /* [out] */ IDeckLinkProfileIterator **profileIterator);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkProfileVtbl;\r
 \r
@@ -9111,32 +9687,32 @@ EXTERN_C const IID IID_IDeckLinkProfile;
         CONST_VTBL struct IDeckLinkProfileVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkProfile_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkProfile_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkProfile_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkProfile_GetDevice(This,device)        \\r
-    ( (This)->lpVtbl -> GetDevice(This,device) )\r
+    ( (This)->lpVtbl -> GetDevice(This,device) ) \r
 \r
 #define IDeckLinkProfile_IsActive(This,isActive)       \\r
-    ( (This)->lpVtbl -> IsActive(This,isActive) )\r
+    ( (This)->lpVtbl -> IsActive(This,isActive) ) \r
 \r
 #define IDeckLinkProfile_SetActive(This)       \\r
-    ( (This)->lpVtbl -> SetActive(This) )\r
+    ( (This)->lpVtbl -> SetActive(This) ) \r
 \r
 #define IDeckLinkProfile_GetPeers(This,profileIterator)        \\r
-    ( (This)->lpVtbl -> GetPeers(This,profileIterator) )\r
+    ( (This)->lpVtbl -> GetPeers(This,profileIterator) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9153,54 +9729,59 @@ EXTERN_C const IID IID_IDeckLinkProfile;
 #define __IDeckLinkProfileCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkProfileCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkProfileCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("A4F9341E-97AA-4E04-8935-15F809898CEA")\r
     IDeckLinkProfileCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ProfileChanging(\r
+        virtual HRESULT STDMETHODCALLTYPE ProfileChanging( \r
             /* [in] */ IDeckLinkProfile *profileToBeActivated,\r
             /* [in] */ BOOL streamsWillBeForcedToStop) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ProfileActivated(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ProfileActivated( \r
             /* [in] */ IDeckLinkProfile *activatedProfile) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkProfileCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkProfileCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkProfileCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkProfileCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ProfileChanging )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileCallback, ProfileChanging)\r
+        HRESULT ( STDMETHODCALLTYPE *ProfileChanging )( \r
             IDeckLinkProfileCallback * This,\r
             /* [in] */ IDeckLinkProfile *profileToBeActivated,\r
             /* [in] */ BOOL streamsWillBeForcedToStop);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ProfileActivated )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileCallback, ProfileActivated)\r
+        HRESULT ( STDMETHODCALLTYPE *ProfileActivated )( \r
             IDeckLinkProfileCallback * This,\r
             /* [in] */ IDeckLinkProfile *activatedProfile);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkProfileCallbackVtbl;\r
 \r
@@ -9209,26 +9790,26 @@ EXTERN_C const IID IID_IDeckLinkProfileCallback;
         CONST_VTBL struct IDeckLinkProfileCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkProfileCallback_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkProfileCallback_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkProfileCallback_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkProfileCallback_ProfileChanging(This,profileToBeActivated,streamsWillBeForcedToStop)  \\r
-    ( (This)->lpVtbl -> ProfileChanging(This,profileToBeActivated,streamsWillBeForcedToStop) )\r
+    ( (This)->lpVtbl -> ProfileChanging(This,profileToBeActivated,streamsWillBeForcedToStop) ) \r
 \r
 #define IDeckLinkProfileCallback_ProfileActivated(This,activatedProfile)       \\r
-    ( (This)->lpVtbl -> ProfileActivated(This,activatedProfile) )\r
+    ( (This)->lpVtbl -> ProfileActivated(This,activatedProfile) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9245,61 +9826,67 @@ EXTERN_C const IID IID_IDeckLinkProfileCallback;
 #define __IDeckLinkProfileManager_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkProfileManager */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkProfileManager;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("30D41429-3998-4B6D-84F8-78C94A797C6E")\r
     IDeckLinkProfileManager : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetProfiles(\r
+        virtual HRESULT STDMETHODCALLTYPE GetProfiles( \r
             /* [out] */ IDeckLinkProfileIterator **profileIterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetProfile(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetProfile( \r
             /* [in] */ BMDProfileID profileID,\r
             /* [out] */ IDeckLinkProfile **profile) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkProfileCallback *callback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkProfileManagerVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkProfileManager * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkProfileManager * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkProfileManager * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetProfiles )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileManager, GetProfiles)\r
+        HRESULT ( STDMETHODCALLTYPE *GetProfiles )( \r
             IDeckLinkProfileManager * This,\r
             /* [out] */ IDeckLinkProfileIterator **profileIterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetProfile )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileManager, GetProfile)\r
+        HRESULT ( STDMETHODCALLTYPE *GetProfile )( \r
             IDeckLinkProfileManager * This,\r
             /* [in] */ BMDProfileID profileID,\r
             /* [out] */ IDeckLinkProfile **profile);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkProfileManager, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkProfileManager * This,\r
             /* [in] */ IDeckLinkProfileCallback *callback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkProfileManagerVtbl;\r
 \r
@@ -9308,29 +9895,29 @@ EXTERN_C const IID IID_IDeckLinkProfileManager;
         CONST_VTBL struct IDeckLinkProfileManagerVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkProfileManager_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkProfileManager_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkProfileManager_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkProfileManager_GetProfiles(This,profileIterator)      \\r
-    ( (This)->lpVtbl -> GetProfiles(This,profileIterator) )\r
+    ( (This)->lpVtbl -> GetProfiles(This,profileIterator) ) \r
 \r
 #define IDeckLinkProfileManager_GetProfile(This,profileID,profile)     \\r
-    ( (This)->lpVtbl -> GetProfile(This,profileID,profile) )\r
+    ( (This)->lpVtbl -> GetProfile(This,profileID,profile) ) \r
 \r
 #define IDeckLinkProfileManager_SetCallback(This,callback)     \\r
-    ( (This)->lpVtbl -> SetCallback(This,callback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9347,85 +9934,93 @@ EXTERN_C const IID IID_IDeckLinkProfileManager;
 #define __IDeckLinkStatus_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkStatus */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkStatus;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("5F558200-4028-49BC-BEAC-DB3FA4A96E46")\r
     IDeckLinkStatus : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ void *buffer,\r
             /* [out][in] */ unsigned int *bufferSize) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkStatusVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkStatus * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkStatus * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkStatus * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkStatus, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkStatus * This,\r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkStatus, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkStatus * This,\r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkStatus, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkStatus * This,\r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkStatus, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkStatus * This,\r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkStatus, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkStatus * This,\r
             /* [in] */ BMDDeckLinkStatusID statusID,\r
             /* [out] */ void *buffer,\r
             /* [out][in] */ unsigned int *bufferSize);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkStatusVtbl;\r
 \r
@@ -9434,35 +10029,35 @@ EXTERN_C const IID IID_IDeckLinkStatus;
         CONST_VTBL struct IDeckLinkStatusVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkStatus_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkStatus_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkStatus_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkStatus_GetFlag(This,statusID,value)   \\r
-    ( (This)->lpVtbl -> GetFlag(This,statusID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,statusID,value) ) \r
 \r
 #define IDeckLinkStatus_GetInt(This,statusID,value)    \\r
-    ( (This)->lpVtbl -> GetInt(This,statusID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,statusID,value) ) \r
 \r
 #define IDeckLinkStatus_GetFloat(This,statusID,value)  \\r
-    ( (This)->lpVtbl -> GetFloat(This,statusID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,statusID,value) ) \r
 \r
 #define IDeckLinkStatus_GetString(This,statusID,value) \\r
-    ( (This)->lpVtbl -> GetString(This,statusID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,statusID,value) ) \r
 \r
 #define IDeckLinkStatus_GetBytes(This,statusID,buffer,bufferSize)      \\r
-    ( (This)->lpVtbl -> GetBytes(This,statusID,buffer,bufferSize) )\r
+    ( (This)->lpVtbl -> GetBytes(This,statusID,buffer,bufferSize) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9479,71 +10074,79 @@ EXTERN_C const IID IID_IDeckLinkStatus;
 #define __IDeckLinkKeyer_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkKeyer */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkKeyer;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")\r
     IDeckLinkKeyer : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Enable(\r
+        virtual HRESULT STDMETHODCALLTYPE Enable( \r
             /* [in] */ BOOL isExternal) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetLevel(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetLevel( \r
             /* [in] */ unsigned char level) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE RampUp(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE RampUp( \r
             /* [in] */ unsigned int numberOfFrames) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE RampDown(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE RampDown( \r
             /* [in] */ unsigned int numberOfFrames) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkKeyerVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkKeyer * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkKeyer * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkKeyer * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Enable )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkKeyer, Enable)\r
+        HRESULT ( STDMETHODCALLTYPE *Enable )( \r
             IDeckLinkKeyer * This,\r
             /* [in] */ BOOL isExternal);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetLevel )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkKeyer, SetLevel)\r
+        HRESULT ( STDMETHODCALLTYPE *SetLevel )( \r
             IDeckLinkKeyer * This,\r
             /* [in] */ unsigned char level);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *RampUp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkKeyer, RampUp)\r
+        HRESULT ( STDMETHODCALLTYPE *RampUp )( \r
             IDeckLinkKeyer * This,\r
             /* [in] */ unsigned int numberOfFrames);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *RampDown )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkKeyer, RampDown)\r
+        HRESULT ( STDMETHODCALLTYPE *RampDown )( \r
             IDeckLinkKeyer * This,\r
             /* [in] */ unsigned int numberOfFrames);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Disable )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkKeyer, Disable)\r
+        HRESULT ( STDMETHODCALLTYPE *Disable )( \r
             IDeckLinkKeyer * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkKeyerVtbl;\r
 \r
@@ -9552,35 +10155,35 @@ EXTERN_C const IID IID_IDeckLinkKeyer;
         CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkKeyer_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkKeyer_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkKeyer_Enable(This,isExternal) \\r
-    ( (This)->lpVtbl -> Enable(This,isExternal) )\r
+    ( (This)->lpVtbl -> Enable(This,isExternal) ) \r
 \r
 #define IDeckLinkKeyer_SetLevel(This,level)    \\r
-    ( (This)->lpVtbl -> SetLevel(This,level) )\r
+    ( (This)->lpVtbl -> SetLevel(This,level) ) \r
 \r
 #define IDeckLinkKeyer_RampUp(This,numberOfFrames)     \\r
-    ( (This)->lpVtbl -> RampUp(This,numberOfFrames) )\r
+    ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) \r
 \r
 #define IDeckLinkKeyer_RampDown(This,numberOfFrames)   \\r
-    ( (This)->lpVtbl -> RampDown(This,numberOfFrames) )\r
+    ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) \r
 \r
 #define IDeckLinkKeyer_Disable(This)   \\r
-    ( (This)->lpVtbl -> Disable(This) )\r
+    ( (This)->lpVtbl -> Disable(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9597,47 +10200,51 @@ EXTERN_C const IID IID_IDeckLinkKeyer;
 #define __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoConversion */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoConversion;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")\r
     IDeckLinkVideoConversion : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ConvertFrame(\r
+        virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
             /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
             /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoConversionVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoConversion * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoConversion * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoConversion * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoConversion, ConvertFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
             IDeckLinkVideoConversion * This,\r
             /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
             /* [in] */ IDeckLinkVideoFrame *dstFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoConversionVtbl;\r
 \r
@@ -9646,23 +10253,23 @@ EXTERN_C const IID IID_IDeckLinkVideoConversion;
         CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoConversion_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoConversion_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame)  \\r
-    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )\r
+    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9679,52 +10286,57 @@ EXTERN_C const IID IID_IDeckLinkVideoConversion;
 #define __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDeviceNotificationCallback */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("4997053B-0ADF-4CC8-AC70-7A50C4BE728F")\r
     IDeckLinkDeviceNotificationCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceArrived(\r
+        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceArrived( \r
             /* [in] */ IDeckLink *deckLinkDevice) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceRemoved(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceRemoved( \r
             /* [in] */ IDeckLink *deckLinkDevice) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDeviceNotificationCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDeviceNotificationCallback * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDeviceNotificationCallback * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDeviceNotificationCallback * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeviceNotificationCallback, DeckLinkDeviceArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceArrived )( \r
             IDeckLinkDeviceNotificationCallback * This,\r
             /* [in] */ IDeckLink *deckLinkDevice);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceRemoved )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeviceNotificationCallback, DeckLinkDeviceRemoved)\r
+        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceRemoved )( \r
             IDeckLinkDeviceNotificationCallback * This,\r
             /* [in] */ IDeckLink *deckLinkDevice);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDeviceNotificationCallbackVtbl;\r
 \r
@@ -9733,26 +10345,26 @@ EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;
         CONST_VTBL struct IDeckLinkDeviceNotificationCallbackVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDeviceNotificationCallback_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDeviceNotificationCallback_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceArrived(This,deckLinkDevice) \\r
-    ( (This)->lpVtbl -> DeckLinkDeviceArrived(This,deckLinkDevice) )\r
+    ( (This)->lpVtbl -> DeckLinkDeviceArrived(This,deckLinkDevice) ) \r
 \r
 #define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceRemoved(This,deckLinkDevice) \\r
-    ( (This)->lpVtbl -> DeckLinkDeviceRemoved(This,deckLinkDevice) )\r
+    ( (This)->lpVtbl -> DeckLinkDeviceRemoved(This,deckLinkDevice) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9769,50 +10381,55 @@ EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;
 #define __IDeckLinkDiscovery_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDiscovery */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDiscovery;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("CDBF631C-BC76-45FA-B44D-C55059BC6101")\r
     IDeckLinkDiscovery : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications(\r
+        virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( \r
             /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDiscoveryVtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDiscovery * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDiscovery * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDiscovery * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDiscovery, InstallDeviceNotifications)\r
+        HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )( \r
             IDeckLinkDiscovery * This,\r
             /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDiscovery, UninstallDeviceNotifications)\r
+        HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )( \r
             IDeckLinkDiscovery * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDiscoveryVtbl;\r
 \r
@@ -9821,26 +10438,26 @@ EXTERN_C const IID IID_IDeckLinkDiscovery;
         CONST_VTBL struct IDeckLinkDiscoveryVtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDiscovery_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDiscovery_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDiscovery_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDiscovery_InstallDeviceNotifications(This,deviceNotificationCallback) \\r
-    ( (This)->lpVtbl -> InstallDeviceNotifications(This,deviceNotificationCallback) )\r
+    ( (This)->lpVtbl -> InstallDeviceNotifications(This,deviceNotificationCallback) ) \r
 \r
 #define IDeckLinkDiscovery_UninstallDeviceNotifications(This)  \\r
-    ( (This)->lpVtbl -> UninstallDeviceNotifications(This) )\r
+    ( (This)->lpVtbl -> UninstallDeviceNotifications(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -9909,119 +10526,508 @@ class DECLSPEC_UUID("F891AD29-D0C2-46E9-A926-4E2D0DD8CFAD")
 CDeckLinkVideoFrameAncillaryPackets;\r
 #endif\r
 \r
-#ifndef __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__\r
-#define __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkInputCallback_v11_5_1_INTERFACE_DEFINED__\r
+#define __IDeckLinkInputCallback_v11_5_1_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkConfiguration_v10_11 */\r
-/* [helpstring][local][uuid][object] */\r
+/* interface IDeckLinkInputCallback_v11_5_1 */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkConfiguration_v10_11;\r
+EXTERN_C const IID IID_IDeckLinkInputCallback_v11_5_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("EF90380B-4AE5-4346-9077-E288E149F129")\r
-    IDeckLinkConfiguration_v10_11 : public IUnknown\r
+    \r
+    MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")\r
+    IDeckLinkInputCallback_v11_5_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BOOL value) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
+            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
+            /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
+            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
+            /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
+            /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
 \r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BOOL *value) = 0;\r
+    typedef struct IDeckLinkInputCallback_v11_5_1Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkInputCallback_v11_5_1 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkInputCallback_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkInputCallback_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v11_5_1, VideoInputFormatChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
+            IDeckLinkInputCallback_v11_5_1 * This,\r
+            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
+            /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
+            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v11_5_1, VideoInputFrameArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
+            IDeckLinkInputCallback_v11_5_1 * This,\r
+            /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
+            /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkInputCallback_v11_5_1Vtbl;\r
 \r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ LONGLONG value) = 0;\r
+    interface IDeckLinkInputCallback_v11_5_1\r
+    {\r
+        CONST_VTBL struct IDeckLinkInputCallback_v11_5_1Vtbl *lpVtbl;\r
+    };\r
 \r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ LONGLONG *value) = 0;\r
+    \r
 \r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ double value) = 0;\r
+#ifdef COBJMACROS\r
 \r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ double *value) = 0;\r
 \r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BSTR value) = 0;\r
+#define IDeckLinkInputCallback_v11_5_1_QueryInterface(This,riid,ppvObject)     \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BSTR *value) = 0;\r
+#define IDeckLinkInputCallback_v11_5_1_AddRef(This)    \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-        virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
+#define IDeckLinkInputCallback_v11_5_1_Release(This)   \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
-    };\r
 \r
+#define IDeckLinkInputCallback_v11_5_1_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)     \\r
+    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
 \r
-#else  /* C style interface */\r
+#define IDeckLinkInputCallback_v11_5_1_VideoInputFrameArrived(This,videoFrame,audioPacket)     \\r
+    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
 \r
-    typedef struct IDeckLinkConfiguration_v10_11Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
+#endif /* COBJMACROS */\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
-            IDeckLinkConfiguration_v10_11 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
-            _COM_Outptr_  void **ppvObject);\r
 \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
-            IDeckLinkConfiguration_v10_11 * This);\r
+#endif         /* C style interface */\r
 \r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
-            IDeckLinkConfiguration_v10_11 * This);\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
-            IDeckLinkConfiguration_v10_11 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BOOL value);\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
-            IDeckLinkConfiguration_v10_11 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BOOL *value);\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
-            IDeckLinkConfiguration_v10_11 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ LONGLONG value);\r
+#endif         /* __IDeckLinkInputCallback_v11_5_1_INTERFACE_DEFINED__ */\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
-            IDeckLinkConfiguration_v10_11 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ LONGLONG *value);\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
+#ifndef __IDeckLinkInput_v11_5_1_INTERFACE_DEFINED__\r
+#define __IDeckLinkInput_v11_5_1_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkInput_v11_5_1 */\r
+/* [helpstring][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkInput_v11_5_1;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("9434C6E4-B15D-4B1C-979E-661E3DDCB4B9")\r
+    IDeckLinkInput_v11_5_1 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
+            /* [in] */ BMDVideoConnection connection,\r
+            /* [in] */ BMDDisplayMode requestedMode,\r
+            /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDVideoInputConversionMode conversionMode,\r
+            /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BMDDisplayMode *actualMode,\r
+            /* [out] */ BOOL *supported) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
+            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
+            /* [out] */ unsigned int *availableFrameCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( \r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
+            /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkInput_v11_5_1Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ BMDVideoConnection connection,\r
+            /* [in] */ BMDDisplayMode requestedMode,\r
+            /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDVideoInputConversionMode conversionMode,\r
+            /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BMDDisplayMode *actualMode,\r
+            /* [out] */ BOOL *supported);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, GetDisplayMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [out] */ unsigned int *availableFrameCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, SetVideoInputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
+            IDeckLinkInput_v11_5_1 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_5_1, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
+            IDeckLinkInput_v11_5_1 * This,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkInput_v11_5_1Vtbl;\r
+\r
+    interface IDeckLinkInput_v11_5_1\r
+    {\r
+        CONST_VTBL struct IDeckLinkInput_v11_5_1Vtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkInput_v11_5_1_QueryInterface(This,riid,ppvObject)     \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_AddRef(This)    \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_Release(This)   \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkInput_v11_5_1_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,conversionMode,flags,actualMode,supported)      \\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,conversionMode,flags,actualMode,supported) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_GetDisplayMode(This,displayMode,resultDisplayMode)      \\r
+    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_GetDisplayModeIterator(This,iterator)   \\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_SetScreenPreviewCallback(This,previewCallback)  \\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_EnableVideoInput(This,displayMode,pixelFormat,flags)    \\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_DisableVideoInput(This) \\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_GetAvailableVideoFrameCount(This,availableFrameCount)   \\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_SetVideoInputFrameMemoryAllocator(This,theAllocator)    \\r
+    ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)       \\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_DisableAudioInput(This) \\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)       \\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_StartStreams(This)      \\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_StopStreams(This)       \\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_PauseStreams(This)      \\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_FlushStreams(This)      \\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_SetCallback(This,theCallback)   \\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
+\r
+#define IDeckLinkInput_v11_5_1_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkInput_v11_5_1_INTERFACE_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_11_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkConfiguration_v10_11 */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkConfiguration_v10_11;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("EF90380B-4AE5-4346-9077-E288E149F129")\r
+    IDeckLinkConfiguration_v10_11 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ BOOL value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ BOOL *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ double value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ double *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ BSTR value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ BSTR *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkConfiguration_v10_11Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkConfiguration_v10_11 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkConfiguration_v10_11 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkConfiguration_v10_11 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkConfiguration_v10_11 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ BOOL value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkConfiguration_v10_11 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkConfiguration_v10_11 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkConfiguration_v10_11 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
             IDeckLinkConfiguration_v10_11 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkConfiguration_v10_11 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
             IDeckLinkConfiguration_v10_11 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkConfiguration_v10_11 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_11, WriteConfigurationToPreferences)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
             IDeckLinkConfiguration_v10_11 * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkConfiguration_v10_11Vtbl;\r
 \r
@@ -10030,47 +11036,47 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v10_11;
         CONST_VTBL struct IDeckLinkConfiguration_v10_11Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkConfiguration_v10_11_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkConfiguration_v10_11_SetFlag(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_GetFlag(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_SetInt(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_GetInt(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_SetFloat(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_GetFloat(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_SetString(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_GetString(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_11_WriteConfigurationToPreferences(This)    \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )\r
+    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -10087,74 +11093,81 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v10_11;
 #define __IDeckLinkAttributes_v10_11_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAttributes_v10_11 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAttributes_v10_11;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")\r
     IDeckLinkAttributes_v10_11 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAttributes_v10_11Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAttributes_v10_11 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAttributes_v10_11 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAttributes_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAttributes_v10_11, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkAttributes_v10_11 * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAttributes_v10_11, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkAttributes_v10_11 * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAttributes_v10_11, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkAttributes_v10_11 * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAttributes_v10_11, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkAttributes_v10_11 * This,\r
             /* [in] */ BMDDeckLinkAttributeID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAttributes_v10_11Vtbl;\r
 \r
@@ -10163,32 +11176,32 @@ EXTERN_C const IID IID_IDeckLinkAttributes_v10_11;
         CONST_VTBL struct IDeckLinkAttributes_v10_11Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAttributes_v10_11_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAttributes_v10_11_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAttributes_v10_11_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAttributes_v10_11_GetFlag(This,cfgID,value)   \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkAttributes_v10_11_GetInt(This,cfgID,value)    \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkAttributes_v10_11_GetFloat(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkAttributes_v10_11_GetString(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -10205,56 +11218,61 @@ EXTERN_C const IID IID_IDeckLinkAttributes_v10_11;
 #define __IDeckLinkNotification_v10_11_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkNotification_v10_11 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkNotification_v10_11;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("0A1FB207-E215-441B-9B19-6FA1575946C5")\r
     IDeckLinkNotification_v10_11 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Subscribe(\r
+        virtual HRESULT STDMETHODCALLTYPE Subscribe( \r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Unsubscribe(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Unsubscribe( \r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkNotification_v10_11Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkNotification_v10_11 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkNotification_v10_11 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkNotification_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Subscribe )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkNotification_v10_11, Subscribe)\r
+        HRESULT ( STDMETHODCALLTYPE *Subscribe )( \r
             IDeckLinkNotification_v10_11 * This,\r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Unsubscribe )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkNotification_v10_11, Unsubscribe)\r
+        HRESULT ( STDMETHODCALLTYPE *Unsubscribe )( \r
             IDeckLinkNotification_v10_11 * This,\r
             /* [in] */ BMDNotifications topic,\r
             /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkNotification_v10_11Vtbl;\r
 \r
@@ -10263,26 +11281,26 @@ EXTERN_C const IID IID_IDeckLinkNotification_v10_11;
         CONST_VTBL struct IDeckLinkNotification_v10_11Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkNotification_v10_11_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkNotification_v10_11_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkNotification_v10_11_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkNotification_v10_11_Subscribe(This,topic,theCallback) \\r
-    ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) )\r
+    ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) ) \r
 \r
 #define IDeckLinkNotification_v10_11_Unsubscribe(This,topic,theCallback)       \\r
-    ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) )\r
+    ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -10299,180 +11317,190 @@ EXTERN_C const IID IID_IDeckLinkNotification_v10_11;
 #define __IDeckLinkOutput_v10_11_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkOutput_v10_11 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkOutput_v10_11;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("CC5C8A6E-3F2F-4B3A-87EA-FD78AF300564")\r
     IDeckLinkOutput_v10_11 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoOutputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDVideoOutputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
             /* [in] */ int width,\r
             /* [in] */ int height,\r
             /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeValue displayTime,\r
             /* [in] */ BMDTimeValue displayDuration,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
             /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
             /* [in] */ BMDTimeValue playbackStartTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ double playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
             /* [out] */ BOOL *active) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( \r
             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *frameCompletionTimestamp) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkOutput_v10_11Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoOutputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDVideoOutputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ int width,\r
             /* [in] */ int height,\r
@@ -10480,111 +11508,132 @@ EXTERN_C const IID IID_IDeckLinkOutput_v10_11;
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, CreateAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeValue displayTime,\r
             /* [in] */ BMDTimeValue displayDuration,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetBufferedVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [out] */ unsigned int *bufferedFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [out] */ unsigned int *bufferedSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDTimeValue playbackStartTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ double playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, IsScheduledPlaybackRunning)\r
+        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [out] */ BOOL *active);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetScheduledStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetReferenceStatus)\r
+        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [out] */ BMDReferenceStatus *referenceStatus);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v10_11, GetFrameCompletionReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )( \r
             IDeckLinkOutput_v10_11 * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *frameCompletionTimestamp);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkOutput_v10_11Vtbl;\r
 \r
@@ -10593,104 +11642,104 @@ EXTERN_C const IID IID_IDeckLinkOutput_v10_11;
         CONST_VTBL struct IDeckLinkOutput_v10_11Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkOutput_v10_11_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkOutput_v10_11_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkOutput_v10_11_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkOutput_v10_11_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)       \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetDisplayModeIterator(This,iterator)   \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkOutput_v10_11_SetScreenPreviewCallback(This,previewCallback)  \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkOutput_v10_11_EnableVideoOutput(This,displayMode,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
 \r
 #define IDeckLinkOutput_v10_11_DisableVideoOutput(This)        \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v10_11_SetVideoOutputFrameMemoryAllocator(This,theAllocator)   \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkOutput_v10_11_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_v10_11_CreateAncillaryData(This,pixelFormat,outBuffer) \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )\r
+    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
 \r
 #define IDeckLinkOutput_v10_11_DisplayVideoFrameSync(This,theFrame)    \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
 \r
 #define IDeckLinkOutput_v10_11_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v10_11_SetScheduledFrameCompletionCallback(This,theCallback)   \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetBufferedVideoFrameCount(This,bufferedFrameCount)     \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v10_11_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)   \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
 \r
 #define IDeckLinkOutput_v10_11_DisableAudioOutput(This)        \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v10_11_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v10_11_BeginAudioPreroll(This) \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v10_11_EndAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v10_11_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)     \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v10_11_FlushBufferedAudioSamples(This) \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
 \r
 #define IDeckLinkOutput_v10_11_SetAudioCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v10_11_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)  \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v10_11_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v10_11_IsScheduledPlaybackRunning(This,active) \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )\r
+    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)  \\r
-    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )\r
+    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetReferenceStatus(This,referenceStatus)        \\r
-    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )\r
+    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #define IDeckLinkOutput_v10_11_GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp)   \\r
-    ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) )\r
+    ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -10707,160 +11756,179 @@ EXTERN_C const IID IID_IDeckLinkOutput_v10_11;
 #define __IDeckLinkInput_v10_11_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInput_v10_11 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInput_v10_11;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("AF22762B-DFAC-4846-AA79-FA8883560995")\r
     IDeckLinkInput_v10_11 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
             /* [out] */ unsigned int *availableFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
-            /* [in] */ IDeckLinkInputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInput_v10_11Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [out] */ unsigned int *availableFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, SetVideoInputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkInput_v10_11 * This,\r
-            /* [in] */ IDeckLinkInputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v10_11, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkInput_v10_11 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInput_v10_11Vtbl;\r
 \r
@@ -10869,68 +11937,68 @@ EXTERN_C const IID IID_IDeckLinkInput_v10_11;
         CONST_VTBL struct IDeckLinkInput_v10_11Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInput_v10_11_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInput_v10_11_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInput_v10_11_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)        \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
 \r
 #define IDeckLinkInput_v10_11_GetDisplayModeIterator(This,iterator)    \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkInput_v10_11_SetScreenPreviewCallback(This,previewCallback)   \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkInput_v10_11_EnableVideoInput(This,displayMode,pixelFormat,flags)     \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkInput_v10_11_DisableVideoInput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_GetAvailableVideoFrameCount(This,availableFrameCount)    \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
 \r
 #define IDeckLinkInput_v10_11_SetVideoInputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkInput_v10_11_EnableAudioInput(This,sampleRate,sampleType,channelCount)        \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkInput_v10_11_DisableAudioInput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)        \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkInput_v10_11_StartStreams(This)       \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_StopStreams(This)        \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_PauseStreams(This)       \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_FlushStreams(This)       \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkInput_v10_11_SetCallback(This,theCallback)    \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkInput_v10_11_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -10947,155 +12015,173 @@ EXTERN_C const IID IID_IDeckLinkInput_v10_11;
 #define __IDeckLinkEncoderInput_v10_11_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkEncoderInput_v10_11 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkEncoderInput_v10_11;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("270587DA-6B7D-42E7-A1F0-6D853F581185")\r
     IDeckLinkEncoderInput_v10_11 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount( \r
             /* [out] */ unsigned int *availablePacketsCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioFormat audioFormat,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkEncoderInputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkEncoderInput_v10_11Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, GetAvailablePacketsCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [out] */ unsigned int *availablePacketsCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, SetMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ BMDAudioFormat audioFormat,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkEncoderInput_v10_11 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ IDeckLinkEncoderInputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderInput_v10_11, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkEncoderInput_v10_11 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkEncoderInput_v10_11Vtbl;\r
 \r
@@ -11104,65 +12190,65 @@ EXTERN_C const IID IID_IDeckLinkEncoderInput_v10_11;
         CONST_VTBL struct IDeckLinkEncoderInput_v10_11Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkEncoderInput_v10_11_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkEncoderInput_v10_11_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_EnableVideoInput(This,displayMode,pixelFormat,flags)      \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_DisableVideoInput(This)   \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_GetAvailablePacketsCount(This,availablePacketsCount)      \\r
-    ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) )\r
+    ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_SetMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount)     \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_DisableAudioInput(This)   \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_StartStreams(This)        \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_StopStreams(This) \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_PauseStreams(This)        \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_FlushStreams(This)        \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_SetCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkEncoderInput_v10_11_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -11195,115 +12281,127 @@ CDeckLinkDiscovery_v10_11;
 #define __IDeckLinkConfiguration_v10_9_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkConfiguration_v10_9 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkConfiguration_v10_9;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("CB71734A-FE37-4E8D-8E13-802133A1C3F2")\r
     IDeckLinkConfiguration_v10_9 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkConfiguration_v10_9Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkConfiguration_v10_9 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkConfiguration_v10_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkConfiguration_v10_9 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_9, WriteConfigurationToPreferences)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
             IDeckLinkConfiguration_v10_9 * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkConfiguration_v10_9Vtbl;\r
 \r
@@ -11312,47 +12410,47 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v10_9;
         CONST_VTBL struct IDeckLinkConfiguration_v10_9Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkConfiguration_v10_9_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkConfiguration_v10_9_SetFlag(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_GetFlag(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_SetInt(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_GetInt(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_SetFloat(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_GetFloat(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_SetString(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_GetString(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
 #define IDeckLinkConfiguration_v10_9_WriteConfigurationToPreferences(This)     \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )\r
+    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -11373,190 +12471,180 @@ class DECLSPEC_UUID("0CAA31F6-8A26-40B0-86A4-BF58DCCA710C")
 CBMDStreamingDiscovery_v10_8;\r
 #endif\r
 \r
-EXTERN_C const CLSID CLSID_CDeckLinkIterator_v10_8;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")\r
-CDeckLinkIterator_v10_8;\r
-#endif\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkDiscovery_v10_8;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("1073A05C-D885-47E9-B3C6-129B3F9F648B")\r
-CDeckLinkDiscovery_v10_8;\r
-#endif\r
-\r
-#ifndef __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__\r
-#define __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkEncoderConfiguration_v10_5 */\r
-/* [helpstring][local][uuid][object] */\r
+/* interface IDeckLinkConfiguration_v10_4 */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkEncoderConfiguration_v10_5;\r
+EXTERN_C const IID IID_IDeckLinkConfiguration_v10_4;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("67455668-0848-45DF-8D8E-350A77C9A028")\r
-    IDeckLinkEncoderConfiguration_v10_5 : public IUnknown\r
+    \r
+    MIDL_INTERFACE("1E69FCF6-4203-4936-8076-2A9F4CFD50CB")\r
+    IDeckLinkConfiguration_v10_4 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurationInfo(\r
-            /* [out] */ void *buffer,\r
-            /* [in] */ long bufferSize,\r
-            /* [out] */ long *returnedSize) = 0;\r
-\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkEncoderConfiguration_v10_5Vtbl\r
+    typedef struct IDeckLinkConfiguration_v10_4Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkConfiguration_v10_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkConfiguration_v10_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDecoderConfigurationInfo )(\r
-            IDeckLinkEncoderConfiguration_v10_5 * This,\r
-            /* [out] */ void *buffer,\r
-            /* [in] */ long bufferSize,\r
-            /* [out] */ long *returnedSize);\r
-\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_4, WriteConfigurationToPreferences)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
+            IDeckLinkConfiguration_v10_4 * This);\r
+        \r
         END_INTERFACE\r
-    } IDeckLinkEncoderConfiguration_v10_5Vtbl;\r
+    } IDeckLinkConfiguration_v10_4Vtbl;\r
 \r
-    interface IDeckLinkEncoderConfiguration_v10_5\r
+    interface IDeckLinkConfiguration_v10_4\r
     {\r
-        CONST_VTBL struct IDeckLinkEncoderConfiguration_v10_5Vtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkConfiguration_v10_4Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+#define IDeckLinkConfiguration_v10_4_QueryInterface(This,riid,ppvObject)       \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+#define IDeckLinkConfiguration_v10_4_AddRef(This)      \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+#define IDeckLinkConfiguration_v10_4_Release(This)     \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_SetFlag(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_SetFlag(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_GetFlag(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_GetFlag(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_SetInt(This,cfgID,value)   \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_SetInt(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_GetInt(This,cfgID,value)   \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_GetInt(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_SetFloat(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_SetFloat(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_GetFloat(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_GetFloat(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_SetString(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_SetString(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_GetString(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+#define IDeckLinkConfiguration_v10_4_GetString(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
-#define IDeckLinkEncoderConfiguration_v10_5_GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize)   \\r
-    ( (This)->lpVtbl -> GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize) )\r
+#define IDeckLinkConfiguration_v10_4_WriteConfigurationToPreferences(This)     \\r
+    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -11566,171 +12654,762 @@ EXTERN_C const IID IID_IDeckLinkEncoderConfiguration_v10_5;
 \r
 \r
 \r
-#endif         /* __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__\r
-#define __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkConfiguration_v10_4 */\r
-/* [helpstring][local][uuid][object] */\r
+/* interface IDeckLinkConfiguration_v10_2 */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkConfiguration_v10_4;\r
+EXTERN_C const IID IID_IDeckLinkConfiguration_v10_2;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
-    MIDL_INTERFACE("1E69FCF6-4203-4936-8076-2A9F4CFD50CB")\r
-    IDeckLinkConfiguration_v10_4 : public IUnknown\r
+    \r
+    MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")\r
+    IDeckLinkConfiguration_v10_2 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkConfiguration_v10_4Vtbl\r
+    typedef struct IDeckLinkConfiguration_v10_2Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
-            IDeckLinkConfiguration_v10_4 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
-            IDeckLinkConfiguration_v10_4 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkConfiguration_v10_2 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkConfiguration_v10_2 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
-            IDeckLinkConfiguration_v10_4 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkConfiguration_v10_2 * This,\r
             /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v10_2, WriteConfigurationToPreferences)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
+            IDeckLinkConfiguration_v10_2 * This);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkConfiguration_v10_2Vtbl;\r
 \r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(\r
-            IDeckLinkConfiguration_v10_4 * This);\r
+    interface IDeckLinkConfiguration_v10_2\r
+    {\r
+        CONST_VTBL struct IDeckLinkConfiguration_v10_2Vtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkConfiguration_v10_2_QueryInterface(This,riid,ppvObject)       \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_AddRef(This)      \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_Release(This)     \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkConfiguration_v10_2_SetFlag(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_GetFlag(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_SetInt(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_GetInt(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_SetFloat(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_GetFloat(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
+#define IDeckLinkConfiguration_v10_2_SetString(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_GetString(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_2_WriteConfigurationToPreferences(This)     \\r
+    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkVideoFrameMetadataExtensions_v11_5_INTERFACE_DEFINED__\r
+#define __IDeckLinkVideoFrameMetadataExtensions_v11_5_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkVideoFrameMetadataExtensions_v11_5 */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkVideoFrameMetadataExtensions_v11_5;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("D5973DC9-6432-46D0-8F0B-2496F8A1238F")\r
+    IDeckLinkVideoFrameMetadataExtensions_v11_5 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ LONGLONG *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ double *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ BOOL *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ BSTR *value) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkVideoFrameMetadataExtensions_v11_5Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions_v11_5, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions_v11_5, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ double *value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions_v11_5, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrameMetadataExtensions_v11_5, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkVideoFrameMetadataExtensions_v11_5 * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID_v11_5 metadataID,\r
+            /* [out] */ BSTR *value);\r
+        \r
         END_INTERFACE\r
-    } IDeckLinkConfiguration_v10_4Vtbl;\r
+    } IDeckLinkVideoFrameMetadataExtensions_v11_5Vtbl;\r
 \r
-    interface IDeckLinkConfiguration_v10_4\r
+    interface IDeckLinkVideoFrameMetadataExtensions_v11_5\r
     {\r
-        CONST_VTBL struct IDeckLinkConfiguration_v10_4Vtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkVideoFrameMetadataExtensions_v11_5Vtbl *lpVtbl;\r
     };\r
 \r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_QueryInterface(This,riid,ppvObject)        \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_AddRef(This)       \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_Release(This)      \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_GetInt(This,metadataID,value)      \\r
+    ( (This)->lpVtbl -> GetInt(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_GetFloat(This,metadataID,value)    \\r
+    ( (This)->lpVtbl -> GetFloat(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_GetFlag(This,metadataID,value)     \\r
+    ( (This)->lpVtbl -> GetFlag(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_v11_5_GetString(This,metadataID,value)   \\r
+    ( (This)->lpVtbl -> GetString(This,metadataID,value) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
 \r
 \r
+#endif         /* __IDeckLinkVideoFrameMetadataExtensions_v11_5_INTERFACE_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkOutput_v11_4_INTERFACE_DEFINED__\r
+#define __IDeckLinkOutput_v11_4_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkOutput_v11_4 */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkOutput_v11_4;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("065A0F6C-C508-4D0D-B919-F5EB0EBFC96B")\r
+    IDeckLinkOutput_v11_4 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
+            /* [in] */ BMDVideoConnection connection,\r
+            /* [in] */ BMDDisplayMode requestedMode,\r
+            /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BMDDisplayMode *actualMode,\r
+            /* [out] */ BOOL *supported) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
+            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDVideoOutputFlags flags) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
+            /* [in] */ int width,\r
+            /* [in] */ int height,\r
+            /* [in] */ int rowBytes,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDFrameFlags flags,\r
+            /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
+            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
+            /* [in] */ IDeckLinkVideoFrame *theFrame,\r
+            /* [in] */ BMDTimeValue displayTime,\r
+            /* [in] */ BMDTimeValue displayDuration,\r
+            /* [in] */ BMDTimeScale timeScale) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
+            /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
+            /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount,\r
+            /* [in] */ BMDAudioOutputStreamType streamType) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
+            /* [in] */ void *buffer,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
+            /* [in] */ void *buffer,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [in] */ BMDTimeValue streamTime,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
+            /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
+            /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
+            /* [in] */ BMDTimeValue playbackStartTime,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [in] */ double playbackSpeed) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
+            /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
+            /* [out] */ BMDTimeValue *actualStopTime,\r
+            /* [in] */ BMDTimeScale timeScale) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
+            /* [out] */ BOOL *active) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *streamTime,\r
+            /* [out] */ double *playbackSpeed) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( \r
+            /* [out] */ BMDReferenceStatus *referenceStatus) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameCompletionReferenceTimestamp( \r
+            /* [in] */ IDeckLinkVideoFrame *theFrame,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *frameCompletionTimestamp) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkOutput_v11_4Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDVideoConnection connection,\r
+            /* [in] */ BMDDisplayMode requestedMode,\r
+            /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BMDDisplayMode *actualMode,\r
+            /* [out] */ BOOL *supported);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetDisplayMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDVideoOutputFlags flags);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ int width,\r
+            /* [in] */ int height,\r
+            /* [in] */ int rowBytes,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDFrameFlags flags,\r
+            /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, CreateAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame,\r
+            /* [in] */ BMDTimeValue displayTime,\r
+            /* [in] */ BMDTimeValue displayDuration,\r
+            /* [in] */ BMDTimeScale timeScale);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetBufferedVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [out] */ unsigned int *bufferedFrameCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount,\r
+            /* [in] */ BMDAudioOutputStreamType streamType);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ void *buffer,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ void *buffer,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [in] */ BMDTimeValue streamTime,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
+            IDeckLinkOutput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDTimeValue playbackStartTime,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [in] */ double playbackSpeed);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
+            /* [out] */ BMDTimeValue *actualStopTime,\r
+            /* [in] */ BMDTimeScale timeScale);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, IsScheduledPlaybackRunning)\r
+        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [out] */ BOOL *active);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetScheduledStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *streamTime,\r
+            /* [out] */ double *playbackSpeed);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetReferenceStatus)\r
+        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [out] */ BMDReferenceStatus *referenceStatus);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v11_4, GetFrameCompletionReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameCompletionReferenceTimestamp )( \r
+            IDeckLinkOutput_v11_4 * This,\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *frameCompletionTimestamp);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkOutput_v11_4Vtbl;\r
+\r
+    interface IDeckLinkOutput_v11_4\r
+    {\r
+        CONST_VTBL struct IDeckLinkOutput_v11_4Vtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkConfiguration_v10_4_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+#define IDeckLinkOutput_v11_4_QueryInterface(This,riid,ppvObject)      \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+#define IDeckLinkOutput_v11_4_AddRef(This)     \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+#define IDeckLinkOutput_v11_4_Release(This)    \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkConfiguration_v10_4_SetFlag(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,actualMode,supported)      \\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,actualMode,supported) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_GetFlag(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_GetDisplayMode(This,displayMode,resultDisplayMode)       \\r
+    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_SetInt(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_GetDisplayModeIterator(This,iterator)    \\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_GetInt(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_SetScreenPreviewCallback(This,previewCallback)   \\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_SetFloat(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_EnableVideoOutput(This,displayMode,flags)        \\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_GetFloat(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_DisableVideoOutput(This) \\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_SetString(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_SetVideoOutputFrameMemoryAllocator(This,theAllocator)    \\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_GetString(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+#define IDeckLinkOutput_v11_4_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)  \\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
-#define IDeckLinkConfiguration_v10_4_WriteConfigurationToPreferences(This)     \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )\r
+#define IDeckLinkOutput_v11_4_CreateAncillaryData(This,pixelFormat,outBuffer)  \\r
+    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
+\r
+#define IDeckLinkOutput_v11_4_DisplayVideoFrameSync(This,theFrame)     \\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
+\r
+#define IDeckLinkOutput_v11_4_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)  \\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
+\r
+#define IDeckLinkOutput_v11_4_SetScheduledFrameCompletionCallback(This,theCallback)    \\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
+\r
+#define IDeckLinkOutput_v11_4_GetBufferedVideoFrameCount(This,bufferedFrameCount)      \\r
+    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
+\r
+#define IDeckLinkOutput_v11_4_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)    \\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
+\r
+#define IDeckLinkOutput_v11_4_DisableAudioOutput(This) \\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
+\r
+#define IDeckLinkOutput_v11_4_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)  \\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
+\r
+#define IDeckLinkOutput_v11_4_BeginAudioPreroll(This)  \\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
+\r
+#define IDeckLinkOutput_v11_4_EndAudioPreroll(This)    \\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
+\r
+#define IDeckLinkOutput_v11_4_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)      \\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
+\r
+#define IDeckLinkOutput_v11_4_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)  \\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
+\r
+#define IDeckLinkOutput_v11_4_FlushBufferedAudioSamples(This)  \\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
+\r
+#define IDeckLinkOutput_v11_4_SetAudioCallback(This,theCallback)       \\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
+\r
+#define IDeckLinkOutput_v11_4_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)   \\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
+\r
+#define IDeckLinkOutput_v11_4_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)  \\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
+\r
+#define IDeckLinkOutput_v11_4_IsScheduledPlaybackRunning(This,active)  \\r
+    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
+\r
+#define IDeckLinkOutput_v11_4_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)   \\r
+    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
+\r
+#define IDeckLinkOutput_v11_4_GetReferenceStatus(This,referenceStatus) \\r
+    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) \r
+\r
+#define IDeckLinkOutput_v11_4_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
+\r
+#define IDeckLinkOutput_v11_4_GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp)    \\r
+    ( (This)->lpVtbl -> GetFrameCompletionReferenceTimestamp(This,theFrame,desiredTimeScale,frameCompletionTimestamp) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -11740,171 +13419,477 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v10_4;
 \r
 \r
 \r
-#endif         /* __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkOutput_v11_4_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__\r
-#define __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkInput_v11_4_INTERFACE_DEFINED__\r
+#define __IDeckLinkInput_v11_4_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkConfiguration_v10_2 */\r
-/* [helpstring][local][uuid][object] */\r
+/* interface IDeckLinkInput_v11_4 */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkConfiguration_v10_2;\r
+EXTERN_C const IID IID_IDeckLinkInput_v11_4;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("2A88CF76-F494-4216-A7EF-DC74EEB83882")\r
+    IDeckLinkInput_v11_4 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
+            /* [in] */ BMDVideoConnection connection,\r
+            /* [in] */ BMDDisplayMode requestedMode,\r
+            /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BOOL *supported) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayMode( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
+            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
+            /* [out] */ unsigned int *availableFrameCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( \r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
+            /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
 \r
-    MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")\r
-    IDeckLinkConfiguration_v10_2 : public IUnknown\r
+    typedef struct IDeckLinkInput_v11_4Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ BMDVideoConnection connection,\r
+            /* [in] */ BMDDisplayMode requestedMode,\r
+            /* [in] */ BMDPixelFormat requestedPixelFormat,\r
+            /* [in] */ BMDSupportedVideoModeFlags flags,\r
+            /* [out] */ BOOL *supported);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, GetDisplayMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayMode )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [out] */ unsigned int *availableFrameCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, SetVideoInputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
+            IDeckLinkInput_v11_4 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v11_4, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
+            IDeckLinkInput_v11_4 * This,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkInput_v11_4Vtbl;\r
+\r
+    interface IDeckLinkInput_v11_4\r
+    {\r
+        CONST_VTBL struct IDeckLinkInput_v11_4Vtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkInput_v11_4_QueryInterface(This,riid,ppvObject)       \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkInput_v11_4_AddRef(This)      \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_Release(This)     \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkInput_v11_4_DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,supported)  \\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,connection,requestedMode,requestedPixelFormat,flags,supported) ) \r
+\r
+#define IDeckLinkInput_v11_4_GetDisplayMode(This,displayMode,resultDisplayMode)        \\r
+    ( (This)->lpVtbl -> GetDisplayMode(This,displayMode,resultDisplayMode) ) \r
+\r
+#define IDeckLinkInput_v11_4_GetDisplayModeIterator(This,iterator)     \\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
+\r
+#define IDeckLinkInput_v11_4_SetScreenPreviewCallback(This,previewCallback)    \\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
+\r
+#define IDeckLinkInput_v11_4_EnableVideoInput(This,displayMode,pixelFormat,flags)      \\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
+\r
+#define IDeckLinkInput_v11_4_DisableVideoInput(This)   \\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_GetAvailableVideoFrameCount(This,availableFrameCount)     \\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
+\r
+#define IDeckLinkInput_v11_4_SetVideoInputFrameMemoryAllocator(This,theAllocator)      \\r
+    ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) ) \r
+\r
+#define IDeckLinkInput_v11_4_EnableAudioInput(This,sampleRate,sampleType,channelCount) \\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
+\r
+#define IDeckLinkInput_v11_4_DisableAudioInput(This)   \\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
+\r
+#define IDeckLinkInput_v11_4_StartStreams(This)        \\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_StopStreams(This) \\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_PauseStreams(This)        \\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_FlushStreams(This)        \\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
+\r
+#define IDeckLinkInput_v11_4_SetCallback(This,theCallback)     \\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
+\r
+#define IDeckLinkInput_v11_4_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)   \\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkInput_v11_4_INTERFACE_DEFINED__ */\r
+\r
+\r
+EXTERN_C const CLSID CLSID_CDeckLinkIterator_v10_8;\r
+\r
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")\r
+CDeckLinkIterator_v10_8;\r
+#endif\r
+\r
+EXTERN_C const CLSID CLSID_CDeckLinkDiscovery_v10_8;\r
+\r
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("1073A05C-D885-47E9-B3C6-129B3F9F648B")\r
+CDeckLinkDiscovery_v10_8;\r
+#endif\r
+\r
+#ifndef __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkEncoderConfiguration_v10_5 */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkEncoderConfiguration_v10_5;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("67455668-0848-45DF-8D8E-350A77C9A028")\r
+    IDeckLinkEncoderConfiguration_v10_5 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BOOL value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BOOL *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetInt(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ LONGLONG value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetInt(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ double value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ double *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetString(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BSTR value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BSTR *value) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurationInfo( \r
+            /* [out] */ void *buffer,\r
+            /* [in] */ long bufferSize,\r
+            /* [out] */ long *returnedSize) = 0;\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkConfiguration_v10_2Vtbl\r
+    typedef struct IDeckLinkEncoderConfiguration_v10_5Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
-            IDeckLinkConfiguration_v10_2 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
-            IDeckLinkConfiguration_v10_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, SetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BOOL value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, GetFlag)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BOOL *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, SetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ LONGLONG value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, GetInt)\r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ LONGLONG *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, SetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ double value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, GetFloat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ double *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetString )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, SetString)\r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [in] */ BSTR value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
-            IDeckLinkConfiguration_v10_2 * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
             /* [out] */ BSTR *value);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(\r
-            IDeckLinkConfiguration_v10_2 * This);\r
-\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkEncoderConfiguration_v10_5, GetDecoderConfigurationInfo)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDecoderConfigurationInfo )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [out] */ void *buffer,\r
+            /* [in] */ long bufferSize,\r
+            /* [out] */ long *returnedSize);\r
+        \r
         END_INTERFACE\r
-    } IDeckLinkConfiguration_v10_2Vtbl;\r
+    } IDeckLinkEncoderConfiguration_v10_5Vtbl;\r
 \r
-    interface IDeckLinkConfiguration_v10_2\r
+    interface IDeckLinkEncoderConfiguration_v10_5\r
     {\r
-        CONST_VTBL struct IDeckLinkConfiguration_v10_2Vtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkEncoderConfiguration_v10_5Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkConfiguration_v10_2_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_QueryInterface(This,riid,ppvObject)        \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_AddRef(This)       \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_Release(This)      \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkConfiguration_v10_2_SetFlag(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetFlag(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_GetFlag(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetFlag(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_SetInt(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetInt(This,cfgID,value)   \\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_GetInt(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetInt(This,cfgID,value)   \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_SetFloat(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetFloat(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_GetFloat(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetFloat(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_SetString(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetString(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_GetString(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetString(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
 \r
-#define IDeckLinkConfiguration_v10_2_WriteConfigurationToPreferences(This)     \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize)   \\r
+    ( (This)->lpVtbl -> GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -11914,182 +13899,192 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v10_2;
 \r
 \r
 \r
-#endif         /* __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ */\r
 \r
 \r
 #ifndef __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__\r
 #define __IDeckLinkOutput_v9_9_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkOutput_v9_9 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkOutput_v9_9;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")\r
     IDeckLinkOutput_v9_9 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoOutputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDVideoOutputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
             /* [in] */ int width,\r
             /* [in] */ int height,\r
             /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeValue displayTime,\r
             /* [in] */ BMDTimeValue displayDuration,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
             /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
             /* [in] */ BMDTimeValue playbackStartTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ double playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
             /* [out] */ BOOL *active) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( \r
             /* [out] */ BMDReferenceStatus *referenceStatus) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkOutput_v9_9Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoOutputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDVideoOutputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ int width,\r
             /* [in] */ int height,\r
@@ -12097,105 +14092,125 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, CreateAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ IDeckLinkVideoFrame *theFrame,\r
             /* [in] */ BMDTimeValue displayTime,\r
             /* [in] */ BMDTimeValue displayDuration,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, GetBufferedVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [out] */ unsigned int *bufferedFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ void *buffer,\r
             /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [out] */ unsigned int *bufferedSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v9_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDTimeValue playbackStartTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ double playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, IsScheduledPlaybackRunning)\r
+        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [out] */ BOOL *active);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, GetScheduledStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, GetReferenceStatus)\r
+        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [out] */ BMDReferenceStatus *referenceStatus);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v9_9, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkOutput_v9_9Vtbl;\r
 \r
@@ -12204,101 +14219,101 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
         CONST_VTBL struct IDeckLinkOutput_v9_9Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkOutput_v9_9_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkOutput_v9_9_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkOutput_v9_9_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkOutput_v9_9_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
 \r
 #define IDeckLinkOutput_v9_9_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkOutput_v9_9_SetScreenPreviewCallback(This,previewCallback)    \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkOutput_v9_9_EnableVideoOutput(This,displayMode,flags) \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
 \r
 #define IDeckLinkOutput_v9_9_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v9_9_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkOutput_v9_9_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_v9_9_CreateAncillaryData(This,pixelFormat,outBuffer)   \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )\r
+    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
 \r
 #define IDeckLinkOutput_v9_9_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
 \r
 #define IDeckLinkOutput_v9_9_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v9_9_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v9_9_GetBufferedVideoFrameCount(This,bufferedFrameCount)       \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v9_9_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)     \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
 \r
 #define IDeckLinkOutput_v9_9_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v9_9_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v9_9_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v9_9_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v9_9_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v9_9_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)   \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v9_9_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
 \r
 #define IDeckLinkOutput_v9_9_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v9_9_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v9_9_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v9_9_IsScheduledPlaybackRunning(This,active)   \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )\r
+    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
 \r
 #define IDeckLinkOutput_v9_9_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )\r
+    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v9_9_GetReferenceStatus(This,referenceStatus)  \\r
-    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )\r
+    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) \r
 \r
 #define IDeckLinkOutput_v9_9_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -12315,153 +14330,171 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
 #define __IDeckLinkInput_v9_2_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInput_v9_2 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInput_v9_2;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")\r
     IDeckLinkInput_v9_2 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
             /* [out] */ unsigned int *availableFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
-            /* [in] */ IDeckLinkInputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInput_v9_2Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result,\r
             /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ BMDDisplayMode displayMode,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [out] */ unsigned int *availableFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
             /* [in] */ unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkInput_v9_2 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkInput_v9_2 * This,\r
-            /* [in] */ IDeckLinkInputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+            /* [in] */ IDeckLinkInputCallback_v11_5_1 *theCallback);\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v9_2, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInput_v9_2Vtbl;\r
 \r
@@ -12470,65 +14503,65 @@ EXTERN_C const IID IID_IDeckLinkInput_v9_2;
         CONST_VTBL struct IDeckLinkInput_v9_2Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInput_v9_2_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInput_v9_2_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInput_v9_2_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
 \r
 #define IDeckLinkInput_v9_2_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkInput_v9_2_SetScreenPreviewCallback(This,previewCallback)     \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkInput_v9_2_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkInput_v9_2_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_GetAvailableVideoFrameCount(This,availableFrameCount)      \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
 \r
 #define IDeckLinkInput_v9_2_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkInput_v9_2_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)  \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkInput_v9_2_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_FlushStreams(This) \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkInput_v9_2_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkInput_v9_2_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)    \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -12545,72 +14578,79 @@ EXTERN_C const IID IID_IDeckLinkInput_v9_2;
 #define __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDeckControlStatusCallback_v8_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")\r
     IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(\r
+        virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( \r
             /* [in] */ BMDTimecodeBCD currentTimecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( \r
             /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,\r
             /* [in] */ BMDDeckControlError error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( \r
             /* [in] */ BMDDeckControlEvent event,\r
             /* [in] */ BMDDeckControlError error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( \r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
             /* [in] */ unsigned int mask) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback_v8_1, TimecodeUpdate)\r
+        HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This,\r
             /* [in] */ BMDTimecodeBCD currentTimecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback_v8_1, VTRControlStateChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This,\r
             /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,\r
             /* [in] */ BMDDeckControlError error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback_v8_1, DeckControlEventReceived)\r
+        HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This,\r
             /* [in] */ BMDDeckControlEvent event,\r
             /* [in] */ BMDDeckControlError error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControlStatusCallback_v8_1, DeckControlStatusChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This,\r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
             /* [in] */ unsigned int mask);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDeckControlStatusCallback_v8_1Vtbl;\r
 \r
@@ -12619,32 +14659,32 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
         CONST_VTBL struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_TimecodeUpdate(This,currentTimecode)   \\r
-    ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )\r
+    ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_VTRControlStateChanged(This,newState,error)    \\r
-    ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )\r
+    ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlEventReceived(This,event,error)     \\r
-    ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )\r
+    ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) \r
 \r
 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlStatusChanged(This,flags,mask)      \\r
-    ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )\r
+    ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -12661,183 +14701,191 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
 #define __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDeckControl_v8_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")\r
     IDeckLinkDeckControl_v8_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Open(\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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Close( \r
             /* [in] */ BOOL standbyOn) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCurrentState(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCurrentState( \r
             /* [out] */ BMDDeckControlMode *mode,\r
             /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,\r
             /* [out] */ BMDDeckControlStatusFlags *flags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetStandby(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
             /* [in] */ BOOL standbyOn) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SendCommand(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
             /* [in] */ unsigned char *inBuffer,\r
             /* [in] */ unsigned int inBufferSize,\r
             /* [out] */ unsigned char *outBuffer,\r
             /* [out] */ unsigned int *outDataSize,\r
             /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Play(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Play( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Stop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Stop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Eject(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Eject( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GoToTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
             /* [in] */ BMDTimecodeBCD timecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE FastForward(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FastForward( \r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Rewind(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Rewind( \r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StepForward(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepForward( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StepBack(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepBack( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Jog(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Jog( \r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Shuttle(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
             /* [out] */ BSTR *currentTimeCode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetPreroll(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
             /* [in] */ unsigned int prerollSeconds) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPreroll(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
             /* [out] */ unsigned int *prerollSeconds) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
             /* [in] */ int exportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
             /* [out] */ int *exportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
             /* [out] */ int *deckManualExportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
             /* [in] */ int captureOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
             /* [out] */ int *captureOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartExport(\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
+        \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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
             /* [out] */ unsigned short *deviceId,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDeckControl_v8_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDeckControl_v8_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDeckControl_v8_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Open )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Open)\r
+        HRESULT ( STDMETHODCALLTYPE *Open )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BMDTimeScale timeScale,\r
             /* [in] */ BMDTimeValue timeValue,\r
             /* [in] */ BOOL timecodeIsDropFrame,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Close )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Close)\r
+        HRESULT ( STDMETHODCALLTYPE *Close )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BOOL standbyOn);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetCurrentState)\r
+        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlMode *mode,\r
             /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,\r
             /* [out] */ BMDDeckControlStatusFlags *flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetStandby )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, SetStandby)\r
+        HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BOOL standbyOn);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SendCommand )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, SendCommand)\r
+        HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ unsigned char *inBuffer,\r
             /* [in] */ unsigned int inBufferSize,\r
@@ -12845,133 +14893,161 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
             /* [out] */ unsigned int *outDataSize,\r
             /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Play )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Play)\r
+        HRESULT ( STDMETHODCALLTYPE *Play )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Stop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Stop)\r
+        HRESULT ( STDMETHODCALLTYPE *Stop )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, TogglePlayStop)\r
+        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Eject )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Eject)\r
+        HRESULT ( STDMETHODCALLTYPE *Eject )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GoToTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BMDTimecodeBCD timecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FastForward )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, FastForward)\r
+        HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Rewind )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Rewind)\r
+        HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StepForward )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, StepForward)\r
+        HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StepBack )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, StepBack)\r
+        HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Jog )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Jog)\r
+        HRESULT ( STDMETHODCALLTYPE *Jog )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Shuttle )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Shuttle)\r
+        HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetTimecodeString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BSTR *currentTimeCode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetTimecodeBCD)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, SetPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ unsigned int prerollSeconds);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ unsigned int *prerollSeconds);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, SetExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ int exportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ int *exportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetManualExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ int *deckManualExportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, SetCaptureOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ int captureOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetCaptureOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ int *captureOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartExport )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, StartExport)\r
+        HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
             /* [in] */ BMDTimecodeBCD outTimecode,\r
             /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartCapture )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, StartCapture)\r
+        HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ BOOL useVITC,\r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
             /* [in] */ BMDTimecodeBCD outTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, GetDeviceID)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ unsigned short *deviceId,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Abort )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, Abort)\r
+        HRESULT ( STDMETHODCALLTYPE *Abort )( \r
             IDeckLinkDeckControl_v8_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, CrashRecordStart)\r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, CrashRecordStop)\r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v8_1, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDeckControl_v8_1Vtbl;\r
 \r
@@ -12980,119 +15056,119 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
         CONST_VTBL struct IDeckLinkDeckControl_v8_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDeckControl_v8_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDeckControl_v8_1_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)     \\r
-    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )\r
+    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Close(This,standbyOn)        \\r
-    ( (This)->lpVtbl -> Close(This,standbyOn) )\r
+    ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetCurrentState(This,mode,vtrControlState,flags)     \\r
-    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )\r
+    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_SetStandby(This,standbyOn)   \\r
-    ( (This)->lpVtbl -> SetStandby(This,standbyOn) )\r
+    ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error)    \\r
-    ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) )\r
+    ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Play(This,error)     \\r
-    ( (This)->lpVtbl -> Play(This,error) )\r
+    ( (This)->lpVtbl -> Play(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Stop(This,error)     \\r
-    ( (This)->lpVtbl -> Stop(This,error) )\r
+    ( (This)->lpVtbl -> Stop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_TogglePlayStop(This,error)   \\r
-    ( (This)->lpVtbl -> TogglePlayStop(This,error) )\r
+    ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Eject(This,error)    \\r
-    ( (This)->lpVtbl -> Eject(This,error) )\r
+    ( (This)->lpVtbl -> Eject(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GoToTimecode(This,timecode,error)    \\r
-    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )\r
+    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_FastForward(This,viewTape,error)     \\r
-    ( (This)->lpVtbl -> FastForward(This,viewTape,error) )\r
+    ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Rewind(This,viewTape,error)  \\r
-    ( (This)->lpVtbl -> Rewind(This,viewTape,error) )\r
+    ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_StepForward(This,error)      \\r
-    ( (This)->lpVtbl -> StepForward(This,error) )\r
+    ( (This)->lpVtbl -> StepForward(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_StepBack(This,error) \\r
-    ( (This)->lpVtbl -> StepBack(This,error) )\r
+    ( (This)->lpVtbl -> StepBack(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Jog(This,rate,error) \\r
-    ( (This)->lpVtbl -> Jog(This,rate,error) )\r
+    ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Shuttle(This,rate,error)     \\r
-    ( (This)->lpVtbl -> Shuttle(This,rate,error) )\r
+    ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetTimecodeString(This,currentTimeCode,error)        \\r
-    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )\r
+    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetTimecode(This,currentTimecode,error)      \\r
-    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetTimecodeBCD(This,currentTimecode,error)   \\r
-    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )\r
+    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_SetPreroll(This,prerollSeconds)      \\r
-    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )\r
+    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetPreroll(This,prerollSeconds)      \\r
-    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )\r
+    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_SetExportOffset(This,exportOffsetFields)     \\r
-    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )\r
+    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetExportOffset(This,exportOffsetFields)     \\r
-    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )\r
+    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetManualExportOffset(This,deckManualExportOffsetFields)     \\r
-    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )\r
+    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_SetCaptureOffset(This,captureOffsetFields)   \\r
-    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )\r
+    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetCaptureOffset(This,captureOffsetFields)   \\r
-    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )\r
+    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \\r
-    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )\r
+    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_StartCapture(This,useVITC,inTimecode,outTimecode,error)      \\r
-    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )\r
+    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_GetDeviceID(This,deviceId,error)     \\r
-    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )\r
+    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_Abort(This)  \\r
-    ( (This)->lpVtbl -> Abort(This) )\r
+    ( (This)->lpVtbl -> Abort(This) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_CrashRecordStart(This,error) \\r
-    ( (This)->lpVtbl -> CrashRecordStart(This,error) )\r
+    ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_CrashRecordStop(This,error)  \\r
-    ( (This)->lpVtbl -> CrashRecordStop(This,error) )\r
+    ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v8_1_SetCallback(This,callback)   \\r
-    ( (This)->lpVtbl -> SetCallback(This,callback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -13109,45 +15185,49 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
 #define __IDeckLink_v8_0_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLink_v8_0 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLink_v8_0;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")\r
     IDeckLink_v8_0 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetModelName(\r
+        virtual HRESULT STDMETHODCALLTYPE GetModelName( \r
             /* [out] */ BSTR *modelName) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLink_v8_0Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLink_v8_0 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLink_v8_0 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLink_v8_0 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetModelName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLink_v8_0, GetModelName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetModelName )( \r
             IDeckLink_v8_0 * This,\r
             /* [out] */ BSTR *modelName);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLink_v8_0Vtbl;\r
 \r
@@ -13156,23 +15236,23 @@ EXTERN_C const IID IID_IDeckLink_v8_0;
         CONST_VTBL struct IDeckLink_v8_0Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLink_v8_0_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLink_v8_0_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLink_v8_0_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLink_v8_0_GetModelName(This,modelName)    \\r
-    ( (This)->lpVtbl -> GetModelName(This,modelName) )\r
+    ( (This)->lpVtbl -> GetModelName(This,modelName) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -13189,45 +15269,49 @@ EXTERN_C const IID IID_IDeckLink_v8_0;
 #define __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkIterator_v8_0 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkIterator_v8_0;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")\r
     IDeckLinkIterator_v8_0 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLink_v8_0 **deckLinkInstance) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkIterator_v8_0Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkIterator_v8_0 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkIterator_v8_0 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkIterator_v8_0 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkIterator_v8_0, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkIterator_v8_0 * This,\r
             /* [out] */ IDeckLink_v8_0 **deckLinkInstance);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkIterator_v8_0Vtbl;\r
 \r
@@ -13236,23 +15320,23 @@ EXTERN_C const IID IID_IDeckLinkIterator_v8_0;
         CONST_VTBL struct IDeckLinkIterator_v8_0Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkIterator_v8_0_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkIterator_v8_0_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkIterator_v8_0_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkIterator_v8_0_Next(This,deckLinkInstance)     \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkInstance) )\r
+    ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -13277,300 +15361,335 @@ CDeckLinkIterator_v8_0;
 #define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDeckControl_v7_9 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")\r
     IDeckLinkDeckControl_v7_9 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Open(\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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Close( \r
             /* [in] */ BOOL standbyOn) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCurrentState(\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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
             /* [in] */ BOOL standbyOn) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Play(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Play( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Stop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Stop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Eject(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Eject( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GoToTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
             /* [in] */ BMDTimecodeBCD timecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE FastForward(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE FastForward( \r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Rewind(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Rewind( \r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StepForward(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepForward( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StepBack(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StepBack( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Jog(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Jog( \r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Shuttle(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
             /* [out] */ BSTR *currentTimeCode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetPreroll(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
             /* [in] */ unsigned int prerollSeconds) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetPreroll(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
             /* [out] */ unsigned int *prerollSeconds) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
             /* [in] */ int exportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
             /* [out] */ int *exportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
             /* [out] */ int *deckManualExportOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
             /* [in] */ int captureOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
             /* [out] */ int *captureOffsetFields) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartExport(\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
+        \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
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
             /* [out] */ unsigned short *deviceId,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
             /* [out] */ BMDDeckControlError *error) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
-\r
+        \r
     };\r
-\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
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDeckControl_v7_9 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDeckControl_v7_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Open )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Open)\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
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Close)\r
+        HRESULT ( STDMETHODCALLTYPE *Close )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ BOOL standbyOn);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetCurrentState)\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
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, SetStandby)\r
+        HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ BOOL standbyOn);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Play )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Play)\r
+        HRESULT ( STDMETHODCALLTYPE *Play )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Stop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Stop)\r
+        HRESULT ( STDMETHODCALLTYPE *Stop )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, TogglePlayStop)\r
+        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Eject )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Eject)\r
+        HRESULT ( STDMETHODCALLTYPE *Eject )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GoToTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ BMDTimecodeBCD timecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FastForward )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, FastForward)\r
+        HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Rewind )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Rewind)\r
+        HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ BOOL viewTape,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StepForward )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, StepForward)\r
+        HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StepBack )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, StepBack)\r
+        HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Jog )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Jog)\r
+        HRESULT ( STDMETHODCALLTYPE *Jog )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Shuttle )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Shuttle)\r
+        HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ double rate,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetTimecodeString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BSTR *currentTimeCode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ IDeckLinkTimecode **currentTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetTimecodeBCD)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDTimecodeBCD *currentTimecode,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, SetPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ unsigned int prerollSeconds);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ unsigned int *prerollSeconds);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, SetExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ int exportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ int *exportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetManualExportOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ int *deckManualExportOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, SetCaptureOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ int captureOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetCaptureOffset)\r
+        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ int *captureOffsetFields);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartExport )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, StartExport)\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
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, StartCapture)\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
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, GetDeviceID)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ unsigned short *deviceId,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Abort )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, Abort)\r
+        HRESULT ( STDMETHODCALLTYPE *Abort )( \r
             IDeckLinkDeckControl_v7_9 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, CrashRecordStart)\r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, CrashRecordStop)\r
+        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [out] */ BMDDeckControlError *error);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDeckControl_v7_9, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
             /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDeckControl_v7_9Vtbl;\r
 \r
@@ -13579,116 +15698,116 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
         CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;\r
     };\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
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_Release(This)        \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_Close(This,standbyOn)        \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn)   \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> Play(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_Stop(This,error)     \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_Eject(This,error)    \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error)     \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_StepForward(This,error)      \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> StepBack(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_Jog(This,rate,error) \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error)        \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error)   \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds)      \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields)     \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields)   \\r
-    ( (This)->lpVtbl -> 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
+    ( (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
+    ( (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
+    ( (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
+    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_Abort(This)  \\r
-    ( (This)->lpVtbl -> Abort(This) )\r
+    ( (This)->lpVtbl -> Abort(This) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error) \\r
-    ( (This)->lpVtbl -> 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
+    ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
 \r
 #define IDeckLinkDeckControl_v7_9_SetCallback(This,callback)   \\r
-    ( (This)->lpVtbl -> SetCallback(This,callback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -13705,45 +15824,49 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDisplayModeIterator_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")\r
     IDeckLinkDisplayModeIterator_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDisplayModeIterator_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDisplayModeIterator_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDisplayModeIterator_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayModeIterator_v7_6, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkDisplayModeIterator_v7_6 * This,\r
             /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDisplayModeIterator_v7_6Vtbl;\r
 \r
@@ -13752,23 +15875,23 @@ EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;
         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_6_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_6_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode)       \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )\r
+    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -13785,74 +15908,83 @@ EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;
 #define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDisplayMode_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")\r
     IDeckLinkDisplayMode_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName(\r
+        virtual HRESULT STDMETHODCALLTYPE GetName( \r
             /* [out] */ BSTR *name) = 0;\r
-\r
+        \r
         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameRate(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [out] */ BMDTimeScale *timeScale) = 0;\r
-\r
+        \r
         virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDisplayMode_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDisplayMode_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDisplayMode_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDisplayMode_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_6, GetName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
             IDeckLinkDisplayMode_v7_6 * This,\r
             /* [out] */ BSTR *name);\r
-\r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_6, GetDisplayMode)\r
+        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkDisplayMode_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_6, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkDisplayMode_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_6, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkDisplayMode_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_6, GetFrameRate)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
             IDeckLinkDisplayMode_v7_6 * This,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [out] */ BMDTimeScale *timeScale);\r
-\r
-        BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_6, GetFieldDominance)\r
+        BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
             IDeckLinkDisplayMode_v7_6 * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDisplayMode_v7_6Vtbl;\r
 \r
@@ -13861,38 +15993,38 @@ EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;
         CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDisplayMode_v7_6_GetName(This,name)   \\r
-    ( (This)->lpVtbl -> GetName(This,name) )\r
+    ( (This)->lpVtbl -> GetName(This,name) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This) \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_GetWidth(This)       \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_GetHeight(This)      \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This)      \\r
-    ( (This)->lpVtbl -> GetFieldDominance(This) )\r
+    ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -13909,168 +16041,178 @@ EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;
 #define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkOutput_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkOutput_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")\r
     IDeckLinkOutput_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
             BMDDisplayMode displayMode,\r
             BMDVideoOutputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
             int width,\r
             int height,\r
             int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
             BMDTimeValue displayTime,\r
             BMDTimeValue displayDuration,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
             /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount,\r
             BMDAudioOutputStreamType streamType) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
             BMDTimeValue playbackStartTime,\r
             BMDTimeScale timeScale,\r
             double playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
             BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
             /* [out] */ BOOL *active) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkOutput_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDDisplayMode displayMode,\r
             BMDVideoOutputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v7_6 * This,\r
             int width,\r
             int height,\r
@@ -14078,101 +16220,120 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, CreateAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
             BMDTimeValue displayTime,\r
             BMDTimeValue displayDuration,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, GetBufferedVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [out] */ unsigned int *bufferedFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount,\r
             BMDAudioOutputStreamType streamType);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [out] */ unsigned int *bufferedSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDTimeValue playbackStartTime,\r
             BMDTimeScale timeScale,\r
             double playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, IsScheduledPlaybackRunning)\r
+        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [out] */ BOOL *active);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, GetScheduledStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *streamTime,\r
             /* [out] */ double *playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_6, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkOutput_v7_6Vtbl;\r
 \r
@@ -14181,98 +16342,98 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
         CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkOutput_v7_6_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkOutput_v7_6_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
 \r
 #define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback)    \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags) \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
 \r
 #define IDeckLinkOutput_v7_6_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer)   \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )\r
+    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
 \r
 #define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount)       \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)     \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
 \r
 #define IDeckLinkOutput_v7_6_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v7_6_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v7_6_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)   \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
 \r
 #define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active)   \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )\r
+    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
 \r
 #define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )\r
+    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -14289,149 +16450,167 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
 #define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInput_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInput_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")\r
     IDeckLinkInput_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
             /* [out] */ unsigned int *availableFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInput_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInput_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkInput_v7_6 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkInput_v7_6 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkInput_v7_6 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkInput_v7_6 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v7_6 * This,\r
             /* [out] */ unsigned int *availableFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v7_6 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput_v7_6 * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkInput_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkInput_v7_6 * This,\r
             /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_6, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkInput_v7_6 * This,\r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *hardwareTime,\r
             /* [out] */ BMDTimeValue *timeInFrame,\r
             /* [out] */ BMDTimeValue *ticksPerFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInput_v7_6Vtbl;\r
 \r
@@ -14440,65 +16619,65 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_6;
         CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInput_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
 \r
 #define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback)     \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkInput_v7_6_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount)      \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
 \r
 #define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkInput_v7_6_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)  \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkInput_v7_6_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_FlushStreams(This) \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_6_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)    \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -14515,68 +16694,75 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_6;
 #define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkTimecode_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")\r
     IDeckLinkTimecode_v7_6 : public IUnknown\r
     {\r
     public:\r
         virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetComponents(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
             /* [out] */ unsigned char *hours,\r
             /* [out] */ unsigned char *minutes,\r
             /* [out] */ unsigned char *seconds,\r
             /* [out] */ unsigned char *frames) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetString(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
             /* [out] */ BSTR *timecode) = 0;\r
-\r
+        \r
         virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkTimecode_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkTimecode_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkTimecode_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkTimecode_v7_6 * This);\r
-\r
-        BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode_v7_6, GetBCD)\r
+        BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
             IDeckLinkTimecode_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetComponents )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode_v7_6, GetComponents)\r
+        HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
             IDeckLinkTimecode_v7_6 * This,\r
             /* [out] */ unsigned char *hours,\r
             /* [out] */ unsigned char *minutes,\r
             /* [out] */ unsigned char *seconds,\r
             /* [out] */ unsigned char *frames);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetString )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode_v7_6, GetString)\r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
             IDeckLinkTimecode_v7_6 * This,\r
             /* [out] */ BSTR *timecode);\r
-\r
-        BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkTimecode_v7_6, GetFlags)\r
+        BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkTimecode_v7_6 * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkTimecode_v7_6Vtbl;\r
 \r
@@ -14585,32 +16771,32 @@ EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;
         CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkTimecode_v7_6_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkTimecode_v7_6_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkTimecode_v7_6_GetBCD(This)    \\r
-    ( (This)->lpVtbl -> GetBCD(This) )\r
+    ( (This)->lpVtbl -> GetBCD(This) ) \r
 \r
 #define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames)        \\r
-    ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )\r
+    ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
 \r
 #define IDeckLinkTimecode_v7_6_GetString(This,timecode)        \\r
-    ( (This)->lpVtbl -> GetString(This,timecode) )\r
+    ( (This)->lpVtbl -> GetString(This,timecode) ) \r
 \r
 #define IDeckLinkTimecode_v7_6_GetFlags(This)  \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -14627,86 +16813,97 @@ EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;
 #define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrame_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")\r
     IDeckLinkVideoFrame_v7_6 : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
-\r
+        \r
         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-\r
+        \r
         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             /* [out] */ void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
             BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrame_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrame_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoFrame_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoFrame_v7_6 * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkVideoFrame_v7_6 * This,\r
             BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkVideoFrame_v7_6 * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrame_v7_6Vtbl;\r
 \r
@@ -14715,44 +16912,44 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;
         CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetWidth(This)        \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetHeight(This)       \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetRowBytes(This)     \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This)  \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetFlags(This)        \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode)     \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary)      \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -14769,94 +16966,108 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;
 #define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkMutableVideoFrame_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")\r
     IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlags(\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
             BMDFrameFlags newFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
             BMDTimecodeFormat format,\r
             /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
             BMDTimecodeFormat format,\r
             unsigned char hours,\r
             unsigned char minutes,\r
             unsigned char seconds,\r
             unsigned char frames,\r
             BMDTimecodeFlags flags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame_v7_6, SetFlags)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             BMDFrameFlags newFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame_v7_6, SetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             BMDTimecodeFormat format,\r
             /* [in] */ IDeckLinkTimecode_v7_6 *timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame_v7_6, SetTimecodeFromComponents)\r
+        HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             BMDTimecodeFormat format,\r
             unsigned char hours,\r
@@ -14864,11 +17075,12 @@ EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
             unsigned char seconds,\r
             unsigned char frames,\r
             BMDTimecodeFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkMutableVideoFrame_v7_6, SetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
             IDeckLinkMutableVideoFrame_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkMutableVideoFrame_v7_6Vtbl;\r
 \r
@@ -14877,57 +17089,57 @@ EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
         CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This) \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This)        \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This)      \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This)   \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This) \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer)  \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode)      \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary)       \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags)        \\r
-    ( (This)->lpVtbl -> SetFlags(This,newFlags) )\r
+    ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode)      \\r
-    ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)      \\r
-    ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )\r
+    ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
 \r
 #define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary)       \\r
-    ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -14944,88 +17156,101 @@ EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
 #define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoInputFrame_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")\r
     IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime(\r
+        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
             BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoInputFrame_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoInputFrame_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoInputFrame_v7_6 * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkVideoInputFrame_v7_6 * This,\r
             BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkVideoInputFrame_v7_6 * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoInputFrame_v7_6, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkVideoInputFrame_v7_6 * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoInputFrame_v7_6, GetHardwareReferenceTimestamp)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
             IDeckLinkVideoInputFrame_v7_6 * This,\r
             BMDTimeScale timeScale,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoInputFrame_v7_6Vtbl;\r
 \r
@@ -15034,51 +17259,51 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;
         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetWidth(This)   \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetHeight(This)  \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This)        \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This)     \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetFlags(This)   \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer)    \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode)        \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary) \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale)    \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)    \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15095,45 +17320,49 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;
 #define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkScreenPreviewCallback_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")\r
     IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DrawFrame(\r
+        virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkScreenPreviewCallback_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkScreenPreviewCallback_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkScreenPreviewCallback_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DrawFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkScreenPreviewCallback_v7_6, DrawFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
             IDeckLinkScreenPreviewCallback_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkScreenPreviewCallback_v7_6Vtbl;\r
 \r
@@ -15142,23 +17371,23 @@ EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;
         CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkScreenPreviewCallback_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame)   \\r
-    ( (This)->lpVtbl -> DrawFrame(This,theFrame) )\r
+    ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15175,55 +17404,61 @@ EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;
 #define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkGLScreenPreviewHelper_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")\r
     IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown\r
     {\r
     public:\r
         virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkGLScreenPreviewHelper_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *InitializeGL )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper_v7_6, InitializeGL)\r
+        HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PaintGL )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper_v7_6, PaintGL)\r
+        HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
             IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkGLScreenPreviewHelper_v7_6, SetFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
             IDeckLinkGLScreenPreviewHelper_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;\r
 \r
@@ -15232,29 +17467,29 @@ EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;
         CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This) \\r
-    ( (This)->lpVtbl -> InitializeGL(This) )\r
+    ( (This)->lpVtbl -> InitializeGL(This) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This)      \\r
-    ( (This)->lpVtbl -> PaintGL(This) )\r
+    ( (This)->lpVtbl -> PaintGL(This) ) \r
 \r
 #define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame)    \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) )\r
+    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15271,47 +17506,51 @@ EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;
 #define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoConversion_v7_6 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")\r
     IDeckLinkVideoConversion_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ConvertFrame(\r
+        virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoConversion_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoConversion_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoConversion_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoConversion_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoConversion_v7_6, ConvertFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
             IDeckLinkVideoConversion_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoConversion_v7_6Vtbl;\r
 \r
@@ -15320,23 +17559,23 @@ EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;
         CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoConversion_v7_6_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoConversion_v7_6_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame)     \\r
-    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )\r
+    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15353,246 +17592,277 @@ EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;
 #define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkConfiguration_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")\r
     IDeckLinkConfiguration_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator(\r
+        virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( \r
             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( \r
             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( \r
             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,\r
             /* [out] */ BOOL *active) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( \r
             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( \r
             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( \r
             /* [in] */ BOOL enable) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( \r
             /* [out] */ BOOL *enabled) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( \r
             /* [in] */ BOOL enable444VideoOutput,\r
             /* [in] */ BOOL enable3GbsOutput) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( \r
             /* [out] */ BOOL *is444VideoOutputEnabled,\r
             /* [out] */ BOOL *threeGbsOutputEnabled) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( \r
             /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( \r
             /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( \r
             /* [in] */ BOOL enable) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( \r
             /* [out] */ BOOL *enabled) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( \r
             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( \r
             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( \r
             /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( \r
             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( \r
             /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( \r
             /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( \r
             /* [in] */ BOOL blackOutInCapture) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( \r
             /* [out] */ BOOL *blackOutInCapture) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( \r
             /* [in] */ unsigned int aFrameTimecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( \r
             /* [out] */ unsigned int *aFrameTimecode) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( \r
             /* [in] */ unsigned int activeLine1VANCsource,\r
             /* [in] */ unsigned int activeLine2VANCsource,\r
             /* [in] */ unsigned int activeLine3VANCsource) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( \r
             /* [out] */ unsigned int *activeLine1VANCsource,\r
             /* [out] */ unsigned int *activeLine2VANCsource,\r
             /* [out] */ unsigned int *activeLine3VANCsource) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( \r
             /* [in] */ BMDAudioConnection_v10_2 audioInputFormat) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( \r
             /* [out] */ BMDAudioConnection_v10_2 *audioInputFormat) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkConfiguration_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkConfiguration_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkConfiguration_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetConfigurationValidator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, WriteConfigurationToPreferences)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
             IDeckLinkConfiguration_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetVideoOutputFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, IsVideoOutputActive)\r
+        HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,\r
             /* [out] */ BOOL *active);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetAnalogVideoOutputFlags)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetAnalogVideoOutputFlags)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, EnableFieldFlickerRemovalWhenPaused)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BOOL enable);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, IsEnabledFieldFlickerRemovalWhenPaused)\r
+        HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BOOL *enabled);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, Set444And3GBpsVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BOOL enable444VideoOutput,\r
             /* [in] */ BOOL enable3GbsOutput);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, Get444And3GBpsVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BOOL *is444VideoOutputEnabled,\r
             /* [out] */ BOOL *threeGbsOutputEnabled);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetVideoOutputConversionMode)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDVideoOutputConversionMode conversionMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetVideoOutputConversionMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BMDVideoOutputConversionMode *conversionMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, Set_HD1080p24_to_HD1080i5994_Conversion)\r
+        HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BOOL enable);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, Get_HD1080p24_to_HD1080i5994_Conversion)\r
+        HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BOOL *enabled);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetVideoInputFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetVideoInputFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetAnalogVideoInputFlags)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDAnalogVideoFlags analogVideoFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetAnalogVideoInputFlags)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetVideoInputConversionMode)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDVideoInputConversionMode conversionMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetVideoInputConversionMode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BMDVideoInputConversionMode *conversionMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetBlackVideoOutputDuringCapture)\r
+        HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BOOL blackOutInCapture);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetBlackVideoOutputDuringCapture)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BOOL *blackOutInCapture);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, Set32PulldownSequenceInitialTimecodeFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ unsigned int aFrameTimecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, Get32PulldownSequenceInitialTimecodeFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ unsigned int *aFrameTimecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetVancSourceLineMapping)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ unsigned int activeLine1VANCsource,\r
             /* [in] */ unsigned int activeLine2VANCsource,\r
             /* [in] */ unsigned int activeLine3VANCsource);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetVancSourceLineMapping)\r
+        HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ unsigned int *activeLine1VANCsource,\r
             /* [out] */ unsigned int *activeLine2VANCsource,\r
             /* [out] */ unsigned int *activeLine3VANCsource);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, SetAudioInputFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [in] */ BMDAudioConnection_v10_2 audioInputFormat);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkConfiguration_v7_6, GetAudioInputFormat)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
             /* [out] */ BMDAudioConnection_v10_2 *audioInputFormat);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkConfiguration_v7_6Vtbl;\r
 \r
@@ -15601,104 +17871,104 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
         CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject)       \\r
-    ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) )\r
+    ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This)      \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )\r
+    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection)   \\r
-    ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active)     \\r
-    ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) )\r
+    ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags)   \\r
-    ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) )\r
+    ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags)   \\r
-    ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) )\r
+    ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable)   \\r
-    ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) )\r
+    ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled)       \\r
-    ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) )\r
+    ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput)      \\r
-    ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) )\r
+    ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled)      \\r
-    ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) )\r
+    ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode)  \\r
-    ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) )\r
+    ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode)  \\r
-    ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) )\r
+    ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable)       \\r
-    ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) )\r
+    ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled)      \\r
-    ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) )\r
+    ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat) \\r
-    ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) )\r
+    ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat) \\r
-    ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) )\r
+    ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags)    \\r
-    ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) )\r
+    ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags)    \\r
-    ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) )\r
+    ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode)   \\r
-    ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) )\r
+    ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode)   \\r
-    ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) )\r
+    ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture)   \\r
-    ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) )\r
+    ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture)   \\r
-    ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) )\r
+    ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)     \\r
-    ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )\r
+    ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)     \\r
-    ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )\r
+    ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)   \\r
-    ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )\r
+    ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)   \\r
-    ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )\r
+    ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat) \\r
-    ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) )\r
+    ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) ) \r
 \r
 #define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat) \\r
-    ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) )\r
+    ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15715,52 +17985,57 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
 #define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoOutputCallback_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")\r
     IDeckLinkVideoOutputCallback_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(\r
+        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,\r
             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoOutputCallback_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoOutputCallback_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoOutputCallback_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoOutputCallback_v7_6, ScheduledFrameCompleted)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
             IDeckLinkVideoOutputCallback_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,\r
             /* [in] */ BMDOutputFrameCompletionResult result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoOutputCallback_v7_6, ScheduledPlaybackHasStopped)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
             IDeckLinkVideoOutputCallback_v7_6 * This);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoOutputCallback_v7_6Vtbl;\r
 \r
@@ -15769,26 +18044,26 @@ EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;
         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_6_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_6_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result)  \\r
-    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )\r
+    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This)    \\r
-    ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )\r
+    ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15805,58 +18080,63 @@ EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;
 #define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInputCallback_v7_6 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")\r
     IDeckLinkInputCallback_v7_6 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(\r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInputCallback_v7_6Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInputCallback_v7_6 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInputCallback_v7_6 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInputCallback_v7_6 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v7_6, VideoInputFormatChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
             IDeckLinkInputCallback_v7_6 * This,\r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v7_6, VideoInputFrameArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
             IDeckLinkInputCallback_v7_6 * This,\r
             /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInputCallback_v7_6Vtbl;\r
 \r
@@ -15865,26 +18145,26 @@ EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;
         CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInputCallback_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInputCallback_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)        \\r
-    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )\r
+    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
 \r
 #define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket)        \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )\r
+    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -15917,58 +18197,63 @@ CDeckLinkVideoConversion_v7_6;
 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInputCallback_v7_3 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")\r
     IDeckLinkInputCallback_v7_3 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(\r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInputCallback_v7_3Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInputCallback_v7_3 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInputCallback_v7_3 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInputCallback_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v7_3, VideoInputFormatChanged)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
             IDeckLinkInputCallback_v7_3 * This,\r
             /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
             /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
             /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v7_3, VideoInputFrameArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
             IDeckLinkInputCallback_v7_3 * This,\r
             /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInputCallback_v7_3Vtbl;\r
 \r
@@ -15977,26 +18262,26 @@ EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;
         CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInputCallback_v7_3_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInputCallback_v7_3_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)        \\r
-    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )\r
+    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
 \r
 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket)        \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )\r
+    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -16013,161 +18298,171 @@ EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;
 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkOutput_v7_3 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")\r
     IDeckLinkOutput_v7_3 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
             BMDDisplayMode displayMode,\r
             BMDVideoOutputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
             int width,\r
             int height,\r
             int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
             BMDTimeValue displayTime,\r
             BMDTimeValue displayDuration,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
             /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount,\r
             BMDAudioOutputStreamType streamType) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
             BMDTimeValue playbackStartTime,\r
             BMDTimeScale timeScale,\r
             double playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
             BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
             /* [out] */ BOOL *active) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkOutput_v7_3Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDDisplayMode displayMode,\r
             BMDVideoOutputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v7_3 * This,\r
             int width,\r
             int height,\r
@@ -16175,93 +18470,111 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, CreateAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
             BMDTimeValue displayTime,\r
             BMDTimeValue displayDuration,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, GetBufferedVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [out] */ unsigned int *bufferedFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount,\r
             BMDAudioOutputStreamType streamType);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ void *buffer,\r
             unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [out] */ unsigned int *bufferedSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDTimeValue playbackStartTime,\r
             BMDTimeScale timeScale,\r
             double playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDTimeValue stopPlaybackAtTime,\r
             /* [out] */ BMDTimeValue *actualStopTime,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, IsScheduledPlaybackRunning)\r
+        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [out] */ BOOL *active);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_3, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDTimeScale desiredTimeScale,\r
             /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkOutput_v7_3Vtbl;\r
 \r
@@ -16270,95 +18583,95 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
         CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkOutput_v7_3_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkOutput_v7_3_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
 \r
 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback)    \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags) \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
 \r
 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer)   \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )\r
+    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
 \r
 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount)       \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)     \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
 \r
 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)   \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
 \r
 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
 \r
 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active)   \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )\r
+    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
 \r
 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -16375,136 +18688,153 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInput_v7_3 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInput_v7_3;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")\r
     IDeckLinkInput_v7_3 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
             /* [out] */ unsigned int *availableFrameCount) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
             /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInput_v7_3Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInput_v7_3 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkInput_v7_3 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkInput_v7_3 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, SetScreenPreviewCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
             IDeckLinkInput_v7_3 * This,\r
             /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkInput_v7_3 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, GetAvailableVideoFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v7_3 * This,\r
             /* [out] */ unsigned int *availableFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v7_3 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, GetAvailableAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput_v7_3 * This,\r
             /* [out] */ unsigned int *availableSampleFrameCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, FlushStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
             IDeckLinkInput_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_3, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkInput_v7_3 * This,\r
             /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInput_v7_3Vtbl;\r
 \r
@@ -16513,62 +18843,62 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_3;
         CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInput_v7_3_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
 \r
 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback)     \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )\r
+    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
 \r
 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkInput_v7_3_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount)      \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
 \r
 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkInput_v7_3_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)  \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
 #define IDeckLinkInput_v7_3_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_FlushStreams(This) \\r
-    ( (This)->lpVtbl -> FlushStreams(This) )\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -16585,77 +18915,89 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_3;
 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoInputFrame_v7_3 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")\r
     IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime(\r
+        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             BMDTimeScale timeScale) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoInputFrame_v7_3 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoInputFrame_v7_3 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoInputFrame_v7_3 * This,\r
             /* [out] */ void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetTimecode)\r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
             IDeckLinkVideoInputFrame_v7_3 * This,\r
             BMDTimecodeFormat format,\r
             /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_6, GetAncillaryData)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
             IDeckLinkVideoInputFrame_v7_3 * This,\r
             /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoInputFrame_v7_3, GetStreamTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
             IDeckLinkVideoInputFrame_v7_3 * This,\r
             /* [out] */ BMDTimeValue *frameTime,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             BMDTimeScale timeScale);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoInputFrame_v7_3Vtbl;\r
 \r
@@ -16664,48 +19006,48 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;
         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This)   \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This)  \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This)        \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This)     \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This)   \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer)    \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode)        \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary) \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )\r
+    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale)    \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -16722,45 +19064,49 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;
 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDisplayModeIterator_v7_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")\r
     IDeckLinkDisplayModeIterator_v7_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next(\r
+        virtual HRESULT STDMETHODCALLTYPE Next( \r
             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDisplayModeIterator_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDisplayModeIterator_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDisplayModeIterator_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *Next )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayModeIterator_v7_1, Next)\r
+        HRESULT ( STDMETHODCALLTYPE *Next )( \r
             IDeckLinkDisplayModeIterator_v7_1 * This,\r
             /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDisplayModeIterator_v7_1Vtbl;\r
 \r
@@ -16769,23 +19115,23 @@ EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;
         CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode)       \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )\r
+    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -16802,69 +19148,77 @@ EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;
 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkDisplayMode_v7_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")\r
     IDeckLinkDisplayMode_v7_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName(\r
+        virtual HRESULT STDMETHODCALLTYPE GetName( \r
             /* [out] */ BSTR *name) = 0;\r
-\r
+        \r
         virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameRate(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [out] */ BMDTimeScale *timeScale) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkDisplayMode_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkDisplayMode_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkDisplayMode_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkDisplayMode_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetName )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_1, GetName)\r
+        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
             IDeckLinkDisplayMode_v7_1 * This,\r
             /* [out] */ BSTR *name);\r
-\r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_1, GetDisplayMode)\r
+        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
             IDeckLinkDisplayMode_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_1, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkDisplayMode_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_1, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkDisplayMode_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkDisplayMode_v7_1, GetFrameRate)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
             IDeckLinkDisplayMode_v7_1 * This,\r
             /* [out] */ BMDTimeValue *frameDuration,\r
             /* [out] */ BMDTimeScale *timeScale);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkDisplayMode_v7_1Vtbl;\r
 \r
@@ -16873,35 +19227,35 @@ EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;
         CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkDisplayMode_v7_1_GetName(This,name)   \\r
-    ( (This)->lpVtbl -> GetName(This,name) )\r
+    ( (This)->lpVtbl -> GetName(This,name) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This) \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) )\r
+    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_1_GetWidth(This)       \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_1_GetHeight(This)      \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -16918,70 +19272,79 @@ EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;
 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoFrame_v7_1 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")\r
     IDeckLinkVideoFrame_v7_1 : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-\r
+        \r
         virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
-\r
+        \r
         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-\r
+        \r
         virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             void **buffer) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoFrame_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoFrame_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoFrame_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoFrame_v7_1 * This,\r
             void **buffer);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoFrame_v7_1Vtbl;\r
 \r
@@ -16990,38 +19353,38 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;
         CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoFrame_v7_1_GetWidth(This)        \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_GetHeight(This)       \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This)     \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This)  \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_GetFlags(This)        \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -17038,68 +19401,78 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;
 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoInputFrame_v7_1 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")\r
     IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameTime(\r
+        virtual HRESULT STDMETHODCALLTYPE GetFrameTime( \r
             BMDTimeValue *frameTime,\r
             BMDTimeValue *frameDuration,\r
             BMDTimeScale timeScale) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoInputFrame_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetWidth )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetWidth)\r
+        long ( STDMETHODCALLTYPE *GetWidth )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetHeight )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetHeight)\r
+        long ( STDMETHODCALLTYPE *GetHeight )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetRowBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetRowBytes)\r
+        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetPixelFormat)\r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetFlags)\r
+        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
             IDeckLinkVideoInputFrame_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoFrame_v7_1, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkVideoInputFrame_v7_1 * This,\r
             void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoInputFrame_v7_1, GetFrameTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetFrameTime )( \r
             IDeckLinkVideoInputFrame_v7_1 * This,\r
             BMDTimeValue *frameTime,\r
             BMDTimeValue *frameDuration,\r
             BMDTimeScale timeScale);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoInputFrame_v7_1Vtbl;\r
 \r
@@ -17108,42 +19481,42 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;
         CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This)   \\r
-    ( (This)->lpVtbl -> GetWidth(This) )\r
+    ( (This)->lpVtbl -> GetWidth(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This)  \\r
-    ( (This)->lpVtbl -> GetHeight(This) )\r
+    ( (This)->lpVtbl -> GetHeight(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This)        \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) )\r
+    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This)     \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) )\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This)   \\r
-    ( (This)->lpVtbl -> GetFlags(This) )\r
+    ( (This)->lpVtbl -> GetFlags(This) ) \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer)    \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 \r
 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale)     \\r
-    ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) )\r
+    ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -17160,59 +19533,65 @@ EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;
 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkAudioInputPacket_v7_1 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")\r
     IDeckLinkAudioInputPacket_v7_1 : public IUnknown\r
     {\r
     public:\r
         virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
             void **buffer) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( \r
             BMDTimeValue *packetTime,\r
             BMDTimeScale timeScale) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkAudioInputPacket_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkAudioInputPacket_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkAudioInputPacket_v7_1 * This);\r
-\r
-        long ( STDMETHODCALLTYPE *GetSampleCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioInputPacket_v7_1, GetSampleCount)\r
+        long ( STDMETHODCALLTYPE *GetSampleCount )( \r
             IDeckLinkAudioInputPacket_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioInputPacket_v7_1, GetBytes)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
             IDeckLinkAudioInputPacket_v7_1 * This,\r
             void **buffer);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkAudioInputPacket_v7_1, GetAudioPacketTime)\r
+        HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )( \r
             IDeckLinkAudioInputPacket_v7_1 * This,\r
             BMDTimeValue *packetTime,\r
             BMDTimeScale timeScale);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkAudioInputPacket_v7_1Vtbl;\r
 \r
@@ -17221,29 +19600,29 @@ EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;
         CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkAudioInputPacket_v7_1_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This)    \\r
-    ( (This)->lpVtbl -> GetSampleCount(This) )\r
+    ( (This)->lpVtbl -> GetSampleCount(This) ) \r
 \r
 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer)   \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) )\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale)   \\r
-    ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) )\r
+    ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -17260,47 +19639,51 @@ EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;
 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkVideoOutputCallback_v7_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")\r
     IDeckLinkVideoOutputCallback_v7_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(\r
+        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
             /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkVideoOutputCallback_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkVideoOutputCallback_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkVideoOutputCallback_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkVideoOutputCallback_v7_1, ScheduledFrameCompleted)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
             IDeckLinkVideoOutputCallback_v7_1 * This,\r
             /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
             /* [in] */ BMDOutputFrameCompletionResult result);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkVideoOutputCallback_v7_1Vtbl;\r
 \r
@@ -17309,23 +19692,23 @@ EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;
         CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result)  \\r
-    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )\r
+    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -17342,47 +19725,51 @@ EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;
 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInputCallback_v7_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")\r
     IDeckLinkInputCallback_v7_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(\r
+        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInputCallback_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInputCallback_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInputCallback_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInputCallback_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInputCallback_v7_1, VideoInputFrameArrived)\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
             IDeckLinkInputCallback_v7_1 * This,\r
             /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
             /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInputCallback_v7_1Vtbl;\r
 \r
@@ -17391,23 +19778,23 @@ EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;
         CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInputCallback_v7_1_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInputCallback_v7_1_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket)        \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )\r
+    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -17424,42 +19811,42 @@ EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;
 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkOutput_v7_1 */\r
-/* [helpstring][local][uuid][object] */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")\r
     IDeckLinkOutput_v7_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
             BMDDisplayMode displayMode) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
             int width,\r
             int height,\r
             int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( \r
             void *buffer,\r
             int width,\r
             int height,\r
@@ -17467,107 +19854,116 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
             IDeckLinkVideoFrame_v7_1 *theFrame) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
             IDeckLinkVideoFrame_v7_1 *theFrame,\r
             BMDTimeValue displayTime,\r
             BMDTimeValue displayDuration,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
             void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             void *buffer,\r
             unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
             BMDTimeValue playbackStartTime,\r
             BMDTimeScale timeScale,\r
             double playbackSpeed) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
             BMDTimeValue stopPlaybackAtTime,\r
             BMDTimeValue *actualStopTime,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
             BMDTimeScale desiredTimeScale,\r
             BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkOutput_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkOutput_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkOutput_v7_1 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkOutput_v7_1 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, EnableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
             IDeckLinkOutput_v7_1 * This,\r
             BMDDisplayMode displayMode);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, DisableVideoOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, SetVideoOutputFrameMemoryAllocator)\r
+        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
             IDeckLinkOutput_v7_1 * This,\r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, CreateVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v7_1 * This,\r
             int width,\r
             int height,\r
@@ -17575,8 +19971,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, CreateVideoFrameFromBuffer)\r
+        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( \r
             IDeckLinkOutput_v7_1 * This,\r
             void *buffer,\r
             int width,\r
@@ -17585,79 +19982,94 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, DisplayVideoFrameSync)\r
+        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
             IDeckLinkOutput_v7_1 * This,\r
             IDeckLinkVideoFrame_v7_1 *theFrame);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, ScheduleVideoFrame)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
             IDeckLinkOutput_v7_1 * This,\r
             IDeckLinkVideoFrame_v7_1 *theFrame,\r
             BMDTimeValue displayTime,\r
             BMDTimeValue displayDuration,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, SetScheduledFrameCompletionCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
             IDeckLinkOutput_v7_1 * This,\r
             /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, EnableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v7_1 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, DisableAudioOutput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, WriteAudioSamplesSync)\r
+        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v7_1 * This,\r
             void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, BeginAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, EndAudioPreroll)\r
+        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, ScheduleAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v7_1 * This,\r
             void *buffer,\r
             unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
             /* [out] */ unsigned int *sampleFramesWritten);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v7_1 * This,\r
             /* [out] */ unsigned int *bufferedSampleCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, FlushBufferedAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, SetAudioCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
             IDeckLinkOutput_v7_1 * This,\r
             /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, StartScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
             IDeckLinkOutput_v7_1 * This,\r
             BMDTimeValue playbackStartTime,\r
             BMDTimeScale timeScale,\r
             double playbackSpeed);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, StopScheduledPlayback)\r
+        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
             IDeckLinkOutput_v7_1 * This,\r
             BMDTimeValue stopPlaybackAtTime,\r
             BMDTimeValue *actualStopTime,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkOutput_v7_1, GetHardwareReferenceClock)\r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
             IDeckLinkOutput_v7_1 * This,\r
             BMDTimeScale desiredTimeScale,\r
             BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkOutput_v7_1Vtbl;\r
 \r
@@ -17666,86 +20078,86 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkOutput_v7_1_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkOutput_v7_1_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
 \r
 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode)       \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) )\r
+    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) ) \r
 \r
 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )\r
+    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
 \r
 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame)  \\r
-    ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) )\r
+    ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )\r
+    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
 \r
 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )\r
+    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount)        \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
 \r
 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) )\r
+    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
 \r
 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )\r
+    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
 \r
 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)        \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
 \r
 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )\r
+    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
 \r
 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
 \r
 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )\r
+    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
 \r
 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )\r
+    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
 \r
 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -17762,132 +20174,147 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
 \r
 /* interface IDeckLinkInput_v7_1 */\r
-/* [helpstring][uuid][object] */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
 EXTERN_C const IID IID_IDeckLinkInput_v7_1;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
-\r
+    \r
     MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")\r
     IDeckLinkInput_v7_1 : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(\r
+        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             BMDVideoInputFlags flags) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( \r
             void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesRead,\r
             /* [out] */ BMDTimeValue *audioPacketTime,\r
             BMDTimeScale timeScale) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
             /* [out] */ unsigned int *bufferedSampleCount) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-\r
+        \r
         virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-\r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback(\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;\r
-\r
+        \r
     };\r
-\r
-\r
+    \r
+    \r
 #else  /* C style interface */\r
 \r
     typedef struct IDeckLinkInput_v7_1Vtbl\r
     {\r
         BEGIN_INTERFACE\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)\r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
             IDeckLinkInput_v7_1 * This,\r
             /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */\r
+            /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *AddRef )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, AddRef)\r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        ULONG ( STDMETHODCALLTYPE *Release )(\r
+        \r
+        DECLSPEC_XFGVIRT(IUnknown, Release)\r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, DoesSupportVideoMode)\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
             IDeckLinkInput_v7_1 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             /* [out] */ BMDDisplayModeSupport_v10_11 *result);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, GetDisplayModeIterator)\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
             IDeckLinkInput_v7_1 * This,\r
             /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, EnableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
             IDeckLinkInput_v7_1 * This,\r
             BMDDisplayMode displayMode,\r
             BMDPixelFormat pixelFormat,\r
             BMDVideoInputFlags flags);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, DisableVideoInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, EnableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v7_1 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
             unsigned int channelCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, DisableAudioInput)\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, ReadAudioSamples)\r
+        HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( \r
             IDeckLinkInput_v7_1 * This,\r
             void *buffer,\r
             unsigned int sampleFrameCount,\r
             /* [out] */ unsigned int *sampleFramesRead,\r
             /* [out] */ BMDTimeValue *audioPacketTime,\r
             BMDTimeScale timeScale);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, GetBufferedAudioSampleFrameCount)\r
+        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkInput_v7_1 * This,\r
             /* [out] */ unsigned int *bufferedSampleCount);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, StartStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, StopStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, PauseStreams)\r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
             IDeckLinkInput_v7_1 * This);\r
-\r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )(\r
+        \r
+        DECLSPEC_XFGVIRT(IDeckLinkInput_v7_1, SetCallback)\r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
             IDeckLinkInput_v7_1 * This,\r
             /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);\r
-\r
+        \r
         END_INTERFACE\r
     } IDeckLinkInput_v7_1Vtbl;\r
 \r
@@ -17896,56 +20323,56 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_1;
         CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;\r
     };\r
 \r
-\r
+    \r
 \r
 #ifdef COBJMACROS\r
 \r
 \r
 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
 #define IDeckLinkInput_v7_1_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) )\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
 #define IDeckLinkInput_v7_1_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) )\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
 \r
 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
 #define IDeckLinkInput_v7_1_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) )\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
 \r
 #define IDeckLinkInput_v7_1_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) )\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale)  \\r
-    ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) )\r
+    ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) ) \r
 \r
 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )\r
+    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
 \r
 #define IDeckLinkInput_v7_1_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) )\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_1_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) )\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_1_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) )\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) )\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
index f234854..b3aa85f 100644 (file)
 /* *INDENT-OFF* */
-\r
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */\r
-\r
-/* link this file in with the server and any clients */\r
-\r
-\r
- /* File created by MIDL compiler version 8.01.0622 */\r
-/* at Tue Jan 19 12:14:07 2038\r
- */\r
-/* Compiler settings for ..\..\Blackmagic\DeckLink_SDK_10.11.4\Win\include\DeckLinkAPI.idl:\r
-    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622\r
-    protocol : dce , ms_ext, c_ext, robust\r
-    error checks: allocation ref bounds_check enum stub_data\r
-    VC __declspec() decoration level:\r
-         __declspec(uuid()), __declspec(selectany), __declspec(novtable)\r
-         DECLSPEC_UUID(), MIDL_INTERFACE()\r
-*/\r
-/* @@MIDL_FILE_HEADING(  ) */\r
-\r
-#ifdef _MSC_VER\r
-#pragma warning( disable: 4049 )  /* more than 64k source lines */\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-extern "C"{\r
-#endif\r
-\r
-\r
-#include <rpc.h>\r
-#include <rpcndr.h>\r
-\r
-#ifdef _MIDL_USE_GUIDDEF_\r
-\r
-#ifndef INITGUID\r
-#define INITGUID\r
-#include <guiddef.h>\r
-#undef INITGUID\r
-#else\r
-#include <guiddef.h>\r
-#endif\r
-\r
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \\r
-        DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)\r
-\r
-#else // !_MIDL_USE_GUIDDEF_\r
-\r
-#ifndef __IID_DEFINED__\r
-#define __IID_DEFINED__\r
-\r
-typedef struct _IID\r
-{\r
-    unsigned long x;\r
-    unsigned short s1;\r
-    unsigned short s2;\r
-    unsigned char  c[8];\r
-} IID;\r
-\r
-#endif // __IID_DEFINED__\r
-\r
-#ifndef CLSID_DEFINED\r
-#define CLSID_DEFINED\r
-typedef IID CLSID;\r
-#endif // CLSID_DEFINED\r
-\r
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \\r
-        const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}\r
-\r
-#endif // !_MIDL_USE_GUIDDEF_\r
-\r
-MIDL_DEFINE_GUID(IID, LIBID_DeckLinkAPI,0xD864517A,0xEDD5,0x466D,0x86,0x7D,0xC8,0x19,0xF1,0xC0,0x52,0xBB);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode,0xBC6CFBD3,0x8317,0x4325,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator,0x9C88499F,0xF601,0x4021,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode,0x3EB2C1AB,0x0A3D,0x4523,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLink,0xC418FBDD,0x0587,0x48ED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration,0x912F634B,0x2D4E,0x40A4,0x8A,0xAB,0x8D,0x80,0xB7,0x3F,0x12,0x89);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration,0x138050E5,0xC60A,0x4552,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback,0x53436FFB,0xB434,0x4906,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl,0x8E1C3ACE,0x19C7,0x4E00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDeviceNotificationCallback,0xF9531D64,0x3305,0x4B29,0xA3,0x87,0x7F,0x74,0xBB,0x0D,0x0E,0x84);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264InputCallback,0x823C475F,0x55AE,0x46F9,0x89,0x0C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDiscovery,0x2C837444,0xF989,0x4D87,0x90,0x1A,0x47,0xC8,0xA3,0x6D,0x09,0x6D);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingVideoEncodingMode,0x1AB8035B,0xCD13,0x458D,0xB6,0xDF,0x5E,0x8F,0x7C,0x21,0x41,0xD9);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingMutableVideoEncodingMode,0x19BF7D90,0x1E0A,0x400D,0xB2,0xC6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingVideoEncodingModePresetIterator,0x7AC731A3,0xC950,0x4AD0,0x80,0x4A,0x83,0x77,0xAA,0x51,0xC6,0xC4);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDeviceInput,0x24B6B6EC,0x1727,0x44BB,0x98,0x18,0x34,0xFF,0x08,0x6A,0xCF,0x98);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264NALPacket,0xE260E955,0x14BE,0x4395,0x97,0x75,0x9F,0x02,0xCC,0x0A,0x9D,0x89);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingAudioPacket,0xD9EB5902,0x1AD2,0x43F4,0x9E,0x2C,0x3C,0xFA,0x50,0xB5,0xEE,0x19);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingMPEG2TSPacket,0x91810D1C,0x4FB3,0x4AAA,0xAE,0x56,0xFA,0x30,0x1D,0x3D,0xFA,0x4C);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264NALParser,0x5867F18C,0x5BFA,0x4CCC,0xB2,0xA7,0x9D,0xFD,0x14,0x04,0x17,0xD2);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingDiscovery,0x23A4EDF5,0xA0E5,0x432C,0x94,0xEF,0x3B,0xAB,0xB5,0xF8,0x1C,0x82);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingH264NALParser,0x7753EFBD,0x951C,0x407C,0x97,0xA5,0x23,0xC7,0x37,0xB7,0x3B,0x52);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback,0x20AA5225,0x1958,0x47CB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback,0xDD04E5EC,0x7415,0x42AB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInputCallback,0xACF13E61,0xF4A0,0x4974,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkMemoryAllocator,0xB36EB6E7,0x9D29,0x4AA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioOutputCallback,0x403C681B,0x7F46,0x4A12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator,0x50FB36CD,0x3063,0x4B73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAPIInformation,0x7BEA3C68,0x730D,0x4322,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput,0x065A0F6C,0xC508,0x4D0D,0xB9,0x19,0xF5,0xEB,0x0E,0xBF,0xC9,0x6B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput,0x2A88CF76,0xF494,0x4216,0xA7,0xEF,0xDC,0x74,0xEE,0xB8,0x38,0x82);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkHDMIInputEDID,0xABBBACBC,0x45BC,0x4665,0x9D,0x92,0xAC,0xE6,0xE5,0xA9,0x79,0x02);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInput,0xF222551D,0x13DF,0x4FD8,0xB5,0x87,0x9D,0x4F,0x19,0xEC,0x12,0xC9);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame,0x3F716FE0,0xF023,0x4111,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame,0x69E2639F,0x40DA,0x4E19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame3DExtensions,0xDA0F7E4A,0xEDC7,0x48A8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameMetadataExtensions,0xD5973DC9,0x6432,0x46D0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame,0x05CFE374,0x537C,0x4094,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAncillaryPacket,0xCC5BBF7E,0x029C,0x4D3B,0x91,0x58,0x60,0x00,0xEF,0x5E,0x36,0x70);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAncillaryPacketIterator,0x3FC8994B,0x88FB,0x4C17,0x96,0x8F,0x9A,0xAB,0x69,0xD9,0x64,0xA7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillaryPackets,0x6C186C0F,0x459E,0x41D8,0xAE,0xE2,0x48,0x12,0xD8,0x1A,0xEE,0x68);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillary,0x732E723C,0xD1A4,0x4E29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderPacket,0xB693F36C,0x316E,0x4AF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderVideoPacket,0x4E7FD944,0xE8C7,0x4EAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderAudioPacket,0x49E8EDC8,0x693B,0x4E14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkH265NALPacket,0x639C8E0B,0x68D5,0x4BDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket,0xE43D5870,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback,0xB1D3F49A,0x85FE,0x4C5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper,0x504E2209,0xCAC7,0x4C1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDX9ScreenPreviewHelper,0x2094B522,0xD1A1,0x40C0,0x9A,0xC7,0x1C,0x01,0x22,0x18,0xEF,0x02);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotificationCallback,0xb002a1ec,0x070d,0x4288,0x82,0x89,0xbd,0x5d,0x36,0xe5,0xff,0x0d);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotification,0xb85df4c8,0xbdf5,0x47c1,0x80,0x64,0x28,0x16,0x2e,0xbd,0xd4,0xeb);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileAttributes,0x17D4BF8E,0x4911,0x473A,0x80,0xA0,0x73,0x1C,0xF6,0xFF,0x34,0x5B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileIterator,0x29E5A8C0,0x8BE4,0x46EB,0x93,0xAC,0x31,0xDA,0xAB,0x5B,0x7B,0xF2);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfile,0x16093466,0x674A,0x432B,0x9D,0xA0,0x1A,0xC2,0xC5,0xA8,0x24,0x1C);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileCallback,0xA4F9341E,0x97AA,0x4E04,0x89,0x35,0x15,0xF8,0x09,0x89,0x8C,0xEA);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileManager,0x30D41429,0x3998,0x4B6D,0x84,0xF8,0x78,0xC9,0x4A,0x79,0x7C,0x6E);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkStatus,0x5F558200,0x4028,0x49BC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkKeyer,0x89AFCAF5,0x65F8,0x421E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion,0x3BBCB8A2,0xDA2C,0x42D9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeviceNotificationCallback,0x4997053B,0x0ADF,0x4CC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDiscovery,0xCDBF631C,0xBC76,0x45FA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator,0xBA6C6F44,0x6DA5,0x4DCE,0x94,0xAA,0xEE,0x2D,0x13,0x72,0xA6,0x76);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkAPIInformation,0x263CA19F,0xED09,0x482E,0x9F,0x9D,0x84,0x00,0x57,0x83,0xA2,0x37);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper,0xF63E77C7,0xB655,0x4A4A,0x9A,0xD0,0x3C,0xA8,0x5D,0x39,0x43,0x43);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDX9ScreenPreviewHelper,0xCC010023,0xE01D,0x4525,0x9D,0x59,0x80,0xC8,0xAB,0x3D,0xC7,0xA0);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion,0x7DBBBB11,0x5B7B,0x467D,0xAE,0xA4,0xCE,0xA4,0x68,0xFD,0x36,0x8C);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery,0x22FBFC33,0x8D07,0x495C,0xA5,0xBF,0xDA,0xB5,0xEA,0x9B,0x82,0xDB);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoFrameAncillaryPackets,0xF891AD29,0xD0C2,0x46E9,0xA9,0x26,0x4E,0x2D,0x0D,0xD8,0xCF,0xAD);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_11,0xEF90380B,0x4AE5,0x4346,0x90,0x77,0xE2,0x88,0xE1,0x49,0xF1,0x29);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAttributes_v10_11,0xABC11843,0xD966,0x44CB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotification_v10_11,0x0A1FB207,0xE215,0x441B,0x9B,0x19,0x6F,0xA1,0x57,0x59,0x46,0xC5);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v10_11,0xCC5C8A6E,0x3F2F,0x4B3A,0x87,0xEA,0xFD,0x78,0xAF,0x30,0x05,0x64);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v10_11,0xAF22762B,0xDFAC,0x4846,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInput_v10_11,0x270587DA,0x6B7D,0x42E7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v10_11,0x87D2693F,0x8D4A,0x45C7,0xB4,0x3F,0x10,0xAC,0xBA,0x25,0xE6,0x8F);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery_v10_11,0x652615D4,0x26CD,0x4514,0xB1,0x61,0x2F,0xD5,0x07,0x2E,0xD0,0x08);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_9,0xCB71734A,0xFE37,0x4E8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingDiscovery_v10_8,0x0CAA31F6,0x8A26,0x40B0,0x86,0xA4,0xBF,0x58,0xDC,0xCA,0x71,0x0C);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v10_8,0x1F2E109A,0x8F4F,0x49E4,0x92,0x03,0x13,0x55,0x95,0xCB,0x6F,0xA5);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery_v10_8,0x1073A05C,0xD885,0x47E9,0xB3,0xC6,0x12,0x9B,0x3F,0x9F,0x64,0x8B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration_v10_5,0x67455668,0x0848,0x45DF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_4,0x1E69FCF6,0x4203,0x4936,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_2,0xC679A35B,0x610C,0x4D09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v9_9,0xA3EF0963,0x0862,0x44ED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v9_2,0x6D40EF78,0x28B9,0x4E21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback_v8_1,0xE5F693C1,0x4283,0x4716,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v8_1,0x522A9E39,0x0F3C,0x4742,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLink_v8_0,0x62BFF75D,0x6569,0x4E55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator_v8_0,0x74E936FC,0xCC28,0x4A67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v8_0,0xD9EDA3B3,0x2887,0x41FA,0xB7,0x24,0x01,0x7C,0xF1,0xEB,0x1D,0x37);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v7_9,0xA4D81043,0x0619,0x42B7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_6,0x455D741F,0x1779,0x4800,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_6,0x87451E84,0x2B7E,0x439E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_6,0x29228142,0xEB8C,0x4141,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_6,0x300C135A,0x9F43,0x48E2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode_v7_6,0xEFB9BCA6,0xA521,0x44F7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_6,0xA8D8238E,0x6B18,0x4196,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame_v7_6,0x46FCEE00,0xB4E6,0x43D0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_6,0x9A74FA41,0xAE9F,0x47AC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback_v7_6,0x373F499D,0x4B4D,0x4518,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper_v7_6,0xBA575CD9,0xA15E,0x497B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion_v7_6,0x3EB504C9,0xF97D,0x40FE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v7_6,0xB8EAD569,0xB764,0x47F0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_6,0xE763A626,0x4A3C,0x49D1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_6,0x31D28EE7,0x88B6,0x4CB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper_v7_6,0xD398CEE7,0x4434,0x4CA3,0x9B,0xA6,0x5A,0xE3,0x45,0x56,0xB9,0x05);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion_v7_6,0xFFA84F77,0x73BE,0x4FB7,0xB0,0x3E,0xB5,0xE4,0x4B,0x9F,0x75,0x9B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_3,0xFD6F311D,0x4D00,0x444B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_3,0x271C65E3,0xC323,0x4344,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_3,0x4973F012,0x9925,0x458C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_3,0xCF317790,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_1,0xB28131B6,0x59AC,0x4857,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_1,0xAF0CD6D5,0x8376,0x435E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_1,0x333F3A10,0x8C2D,0x43CF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_1,0xC8B41D95,0x8848,0x40EE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket_v7_1,0xC86DE4F6,0xA29F,0x42E3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_1,0xEBD01AFA,0xE4B0,0x49C6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_1,0x7F94F328,0x5ED4,0x4E9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_1,0xAE5B3E9B,0x4E1E,0x4535,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_1,0x2B54EDEF,0x5B32,0x429F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD);\r
-\r
-#undef MIDL_DEFINE_GUID\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-\r
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.01.0626 */
+/* at Tue Jan 19 12:14:07 2038
+ */
+/* Compiler settings for ..\..\Blackmagic_DeckLink_SDK_12.2.2\BlackmagicDeckLinkSDK12.2.2\Win\include\DeckLinkAPI.idl:
+    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0626 
+    protocol : dce , ms_ext, c_ext, robust
+    error checks: allocation ref bounds_check enum stub_data 
+    VC __declspec() decoration level: 
+         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+         DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING(  ) */
+
+#ifdef _MSC_VER
+#pragma warning( disable: 4049 )  /* more than 64k source lines */
+#endif
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif 
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+        DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+    unsigned long x;
+    unsigned short s1;
+    unsigned short s2;
+    unsigned char  c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+        const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, LIBID_DeckLinkAPI,0xD864517A,0xEDD5,0x466D,0x86,0x7D,0xC8,0x19,0xF1,0xC0,0x52,0xBB);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode,0xBC6CFBD3,0x8317,0x4325,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator,0x9C88499F,0xF601,0x4021,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode,0x3EB2C1AB,0x0A3D,0x4523,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLink,0xC418FBDD,0x0587,0x48ED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration,0x912F634B,0x2D4E,0x40A4,0x8A,0xAB,0x8D,0x80,0xB7,0x3F,0x12,0x89);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration,0x138050E5,0xC60A,0x4552,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback,0x53436FFB,0xB434,0x4906,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl,0x8E1C3ACE,0x19C7,0x4E00,0x8B,0x92,0xD8,0x04,0x31,0xD9,0x58,0xBE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDeviceNotificationCallback,0xF9531D64,0x3305,0x4B29,0xA3,0x87,0x7F,0x74,0xBB,0x0D,0x0E,0x84);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264InputCallback,0x823C475F,0x55AE,0x46F9,0x89,0x0C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDiscovery,0x2C837444,0xF989,0x4D87,0x90,0x1A,0x47,0xC8,0xA3,0x6D,0x09,0x6D);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingVideoEncodingMode,0x1AB8035B,0xCD13,0x458D,0xB6,0xDF,0x5E,0x8F,0x7C,0x21,0x41,0xD9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingMutableVideoEncodingMode,0x19BF7D90,0x1E0A,0x400D,0xB2,0xC6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingVideoEncodingModePresetIterator,0x7AC731A3,0xC950,0x4AD0,0x80,0x4A,0x83,0x77,0xAA,0x51,0xC6,0xC4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingDeviceInput,0x24B6B6EC,0x1727,0x44BB,0x98,0x18,0x34,0xFF,0x08,0x6A,0xCF,0x98);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264NALPacket,0xE260E955,0x14BE,0x4395,0x97,0x75,0x9F,0x02,0xCC,0x0A,0x9D,0x89);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingAudioPacket,0xD9EB5902,0x1AD2,0x43F4,0x9E,0x2C,0x3C,0xFA,0x50,0xB5,0xEE,0x19);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingMPEG2TSPacket,0x91810D1C,0x4FB3,0x4AAA,0xAE,0x56,0xFA,0x30,0x1D,0x3D,0xFA,0x4C);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBMDStreamingH264NALParser,0x5867F18C,0x5BFA,0x4CCC,0xB2,0xA7,0x9D,0xFD,0x14,0x04,0x17,0xD2);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingDiscovery,0x23A4EDF5,0xA0E5,0x432C,0x94,0xEF,0x3B,0xAB,0xB5,0xF8,0x1C,0x82);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingH264NALParser,0x7753EFBD,0x951C,0x407C,0x97,0xA5,0x23,0xC7,0x37,0xB7,0x3B,0x52);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback,0x20AA5225,0x1958,0x47CB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback,0xC6FCE4C9,0xC4E4,0x4047,0x82,0xFB,0x5D,0x23,0x82,0x32,0xA9,0x02);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInputCallback,0xACF13E61,0xF4A0,0x4974,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkMemoryAllocator,0xB36EB6E7,0x9D29,0x4AA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioOutputCallback,0x403C681B,0x7F46,0x4A12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator,0x50FB36CD,0x3063,0x4B73,0xBD,0xBB,0x95,0x80,0x87,0xF2,0xD8,0xBA);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAPIInformation,0x7BEA3C68,0x730D,0x4322,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput,0xBE2D9020,0x461E,0x442F,0x84,0xB7,0xE9,0x49,0xCB,0x95,0x3B,0x9D);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput,0xC21CDB6E,0xF414,0x46E4,0xA6,0x36,0x80,0xA5,0x66,0xE0,0xED,0x37);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkHDMIInputEDID,0xABBBACBC,0x45BC,0x4665,0x9D,0x92,0xAC,0xE6,0xE5,0xA9,0x79,0x02);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInput,0xF222551D,0x13DF,0x4FD8,0xB5,0x87,0x9D,0x4F,0x19,0xEC,0x12,0xC9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame,0x3F716FE0,0xF023,0x4111,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame,0x69E2639F,0x40DA,0x4E19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame3DExtensions,0xDA0F7E4A,0xEDC7,0x48A8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameMetadataExtensions,0xE232A5B7,0x4DB4,0x44C9,0x91,0x52,0xF4,0x7C,0x12,0xE5,0xF0,0x51);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame,0x05CFE374,0x537C,0x4094,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAncillaryPacket,0xCC5BBF7E,0x029C,0x4D3B,0x91,0x58,0x60,0x00,0xEF,0x5E,0x36,0x70);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAncillaryPacketIterator,0x3FC8994B,0x88FB,0x4C17,0x96,0x8F,0x9A,0xAB,0x69,0xD9,0x64,0xA7);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillaryPackets,0x6C186C0F,0x459E,0x41D8,0xAE,0xE2,0x48,0x12,0xD8,0x1A,0xEE,0x68);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillary,0x732E723C,0xD1A4,0x4E29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderPacket,0xB693F36C,0x316E,0x4AF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderVideoPacket,0x4E7FD944,0xE8C7,0x4EAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderAudioPacket,0x49E8EDC8,0x693B,0x4E14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkH265NALPacket,0x639C8E0B,0x68D5,0x4BDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket,0xE43D5870,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback,0xB1D3F49A,0x85FE,0x4C5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper,0x504E2209,0xCAC7,0x4C1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDX9ScreenPreviewHelper,0x2094B522,0xD1A1,0x40C0,0x9A,0xC7,0x1C,0x01,0x22,0x18,0xEF,0x02);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotificationCallback,0xb002a1ec,0x070d,0x4288,0x82,0x89,0xbd,0x5d,0x36,0xe5,0xff,0x0d);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotification,0xb85df4c8,0xbdf5,0x47c1,0x80,0x64,0x28,0x16,0x2e,0xbd,0xd4,0xeb);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileAttributes,0x17D4BF8E,0x4911,0x473A,0x80,0xA0,0x73,0x1C,0xF6,0xFF,0x34,0x5B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileIterator,0x29E5A8C0,0x8BE4,0x46EB,0x93,0xAC,0x31,0xDA,0xAB,0x5B,0x7B,0xF2);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfile,0x16093466,0x674A,0x432B,0x9D,0xA0,0x1A,0xC2,0xC5,0xA8,0x24,0x1C);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileCallback,0xA4F9341E,0x97AA,0x4E04,0x89,0x35,0x15,0xF8,0x09,0x89,0x8C,0xEA);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkProfileManager,0x30D41429,0x3998,0x4B6D,0x84,0xF8,0x78,0xC9,0x4A,0x79,0x7C,0x6E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkStatus,0x5F558200,0x4028,0x49BC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkKeyer,0x89AFCAF5,0x65F8,0x421E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion,0x3BBCB8A2,0xDA2C,0x42D9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeviceNotificationCallback,0x4997053B,0x0ADF,0x4CC8,0xAC,0x70,0x7A,0x50,0xC4,0xBE,0x72,0x8F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDiscovery,0xCDBF631C,0xBC76,0x45FA,0xB4,0x4D,0xC5,0x50,0x59,0xBC,0x61,0x01);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator,0xBA6C6F44,0x6DA5,0x4DCE,0x94,0xAA,0xEE,0x2D,0x13,0x72,0xA6,0x76);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkAPIInformation,0x263CA19F,0xED09,0x482E,0x9F,0x9D,0x84,0x00,0x57,0x83,0xA2,0x37);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper,0xF63E77C7,0xB655,0x4A4A,0x9A,0xD0,0x3C,0xA8,0x5D,0x39,0x43,0x43);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDX9ScreenPreviewHelper,0xCC010023,0xE01D,0x4525,0x9D,0x59,0x80,0xC8,0xAB,0x3D,0xC7,0xA0);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion,0x7DBBBB11,0x5B7B,0x467D,0xAE,0xA4,0xCE,0xA4,0x68,0xFD,0x36,0x8C);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery,0x22FBFC33,0x8D07,0x495C,0xA5,0xBF,0xDA,0xB5,0xEA,0x9B,0x82,0xDB);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoFrameAncillaryPackets,0xF891AD29,0xD0C2,0x46E9,0xA9,0x26,0x4E,0x2D,0x0D,0xD8,0xCF,0xAD);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v11_5_1,0xDD04E5EC,0x7415,0x42AB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v11_5_1,0x9434C6E4,0xB15D,0x4B1C,0x97,0x9E,0x66,0x1E,0x3D,0xDC,0xB4,0xB9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_11,0xEF90380B,0x4AE5,0x4346,0x90,0x77,0xE2,0x88,0xE1,0x49,0xF1,0x29);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAttributes_v10_11,0xABC11843,0xD966,0x44CB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotification_v10_11,0x0A1FB207,0xE215,0x441B,0x9B,0x19,0x6F,0xA1,0x57,0x59,0x46,0xC5);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v10_11,0xCC5C8A6E,0x3F2F,0x4B3A,0x87,0xEA,0xFD,0x78,0xAF,0x30,0x05,0x64);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v10_11,0xAF22762B,0xDFAC,0x4846,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInput_v10_11,0x270587DA,0x6B7D,0x42E7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v10_11,0x87D2693F,0x8D4A,0x45C7,0xB4,0x3F,0x10,0xAC,0xBA,0x25,0xE6,0x8F);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery_v10_11,0x652615D4,0x26CD,0x4514,0xB1,0x61,0x2F,0xD5,0x07,0x2E,0xD0,0x08);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_9,0xCB71734A,0xFE37,0x4E8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CBMDStreamingDiscovery_v10_8,0x0CAA31F6,0x8A26,0x40B0,0x86,0xA4,0xBF,0x58,0xDC,0xCA,0x71,0x0C);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_4,0x1E69FCF6,0x4203,0x4936,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_2,0xC679A35B,0x610C,0x4D09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameMetadataExtensions_v11_5,0xD5973DC9,0x6432,0x46D0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v11_4,0x065A0F6C,0xC508,0x4D0D,0xB9,0x19,0xF5,0xEB,0x0E,0xBF,0xC9,0x6B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v11_4,0x2A88CF76,0xF494,0x4216,0xA7,0xEF,0xDC,0x74,0xEE,0xB8,0x38,0x82);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v10_8,0x1F2E109A,0x8F4F,0x49E4,0x92,0x03,0x13,0x55,0x95,0xCB,0x6F,0xA5);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery_v10_8,0x1073A05C,0xD885,0x47E9,0xB3,0xC6,0x12,0x9B,0x3F,0x9F,0x64,0x8B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration_v10_5,0x67455668,0x0848,0x45DF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v9_9,0xA3EF0963,0x0862,0x44ED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v9_2,0x6D40EF78,0x28B9,0x4E21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback_v8_1,0xE5F693C1,0x4283,0x4716,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v8_1,0x522A9E39,0x0F3C,0x4742,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLink_v8_0,0x62BFF75D,0x6569,0x4E55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator_v8_0,0x74E936FC,0xCC28,0x4A67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator_v8_0,0xD9EDA3B3,0x2887,0x41FA,0xB7,0x24,0x01,0x7C,0xF1,0xEB,0x1D,0x37);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v7_9,0xA4D81043,0x0619,0x42B7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_6,0x455D741F,0x1779,0x4800,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_6,0x87451E84,0x2B7E,0x439E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_6,0x29228142,0xEB8C,0x4141,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_6,0x300C135A,0x9F43,0x48E2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode_v7_6,0xEFB9BCA6,0xA521,0x44F7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_6,0xA8D8238E,0x6B18,0x4196,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame_v7_6,0x46FCEE00,0xB4E6,0x43D0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_6,0x9A74FA41,0xAE9F,0x47AC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback_v7_6,0x373F499D,0x4B4D,0x4518,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper_v7_6,0xBA575CD9,0xA15E,0x497B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion_v7_6,0x3EB504C9,0xF97D,0x40FE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v7_6,0xB8EAD569,0xB764,0x47F0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_6,0xE763A626,0x4A3C,0x49D1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_6,0x31D28EE7,0x88B6,0x4CB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper_v7_6,0xD398CEE7,0x4434,0x4CA3,0x9B,0xA6,0x5A,0xE3,0x45,0x56,0xB9,0x05);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion_v7_6,0xFFA84F77,0x73BE,0x4FB7,0xB0,0x3E,0xB5,0xE4,0x4B,0x9F,0x75,0x9B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_3,0xFD6F311D,0x4D00,0x444B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_3,0x271C65E3,0xC323,0x4344,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_3,0x4973F012,0x9925,0x458C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_3,0xCF317790,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_1,0xB28131B6,0x59AC,0x4857,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_1,0xAF0CD6D5,0x8376,0x435E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_1,0x333F3A10,0x8C2D,0x43CF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_1,0xC8B41D95,0x8848,0x40EE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket_v7_1,0xC86DE4F6,0xA29F,0x42E3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_1,0xEBD01AFA,0xE4B0,0x49C6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_1,0x7F94F328,0x5ED4,0x4E9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_1,0xAE5B3E9B,0x4E1E,0x4535,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5);
+
+
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_1,0x2B54EDEF,0x5B32,0x429F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
 /* *INDENT-ON* */