| 1 | 
 /** | 
 
 
 
 
 
 | 2 | 
  * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 
 | 3 | 
  * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 
 | 4 | 
  * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 
 | 5 | 
  */ | 
 
 
 
 
 
 | 6 | 
 #ifndef _INC_OPMAPI | 
 
 
 
 
 
 | 7 | 
 #define _INC_OPMAPI | 
 
 
 
 
 
 | 8 | 
  | 
 
 
 
 
 
 | 9 | 
 #include <dxva2api.h> | 
 
 
 
 
 
 | 10 | 
  | 
 
 
 
 
 
 | 11 | 
 #define OPM_OMAC_SIZE                                16 | 
 
 
 
 
 
 | 12 | 
 #define OPM_CONFIGURE_SETTING_DATA_SIZE              4056 | 
 
 
 
 
 
 | 13 | 
 #define OPM_REQUESTED_INFORMATION_SIZE               4076 | 
 
 
 
 
 
 | 14 | 
 #define OPM_ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE 256 | 
 
 
 
 
 
 | 15 | 
 #define OPM_GET_INFORMATION_PARAMETERS_SIZE          4056 | 
 
 
 
 
 
 | 16 | 
 #define OPM_HDCP_KEY_SELECTION_VECTOR_SIZE           5 | 
 
 
 
 
 
 | 17 | 
 #define OPM_128_BIT_RANDOM_NUMBER_SIZE               16 | 
 
 
 
 
 
 | 18 | 
  | 
 
 
 
 
 
 | 19 | 
 #define OPM_CGMSA_OFF 0x00 | 
 
 
 
 
 
 | 20 | 
 #define OPM_CGMSA_COPY_FREELY 0x01 | 
 
 
 
 
 
 | 21 | 
 #define OPM_CGMSA_COPY_NO_MORE 0x02 | 
 
 
 
 
 
 | 22 | 
 #define OPM_CGMSA_COPY_ONE_GENERATION 0x03 | 
 
 
 
 
 
 | 23 | 
 #define OPM_CGMSA_COPY_NEVER 0x04 | 
 
 
 
 
 
 | 24 | 
 #define OPM_CGMSA_REDISTRIBUTION_CONTROL_REQUIRED 0x08 | 
 
 
 
 
 
 | 25 | 
  | 
 
 
 
 
 
 | 26 | 
 #define OPM_PROTECTION_STANDARD_OTHER 0x80000000 | 
 
 
 
 
 
 | 27 | 
 #define OPM_PROTECTION_STANDARD_NONE 0x00000000 | 
 
 
 
 
 
 | 28 | 
 #define OPM_PROTECTION_STANDARD_IEC61880_525I 0x00000001 | 
 
 
 
 
 
 | 29 | 
 #define OPM_PROTECTION_STANDARD_IEC61880_2_525I 0x00000002 | 
 
 
 
 
 
 | 30 | 
 #define OPM_PROTECTION_STANDARD_IEC62375_625P 0x00000004 | 
 
 
 
 
 
 | 31 | 
 #define OPM_PROTECTION_STANDARD_EIA608B_525 0x00000008 | 
 
 
 
 
 
 | 32 | 
 #define OPM_PROTECTION_STANDARD_EN300294_625I 0x00000010 | 
 
 
 
 
 
 | 33 | 
 #define OPM_PROTECTION_STANDARD_CEA805A_TYPEA_525P 0x00000020 | 
 
 
 
 
 
 | 34 | 
 #define OPM_PROTECTION_STANDARD_CEA805A_TYPEA_750P 0x00000040 | 
 
 
 
 
 
 | 35 | 
 #define OPM_PROTECTION_STANDARD_CEA805A_TYPEA_1125I 0x00000080 | 
 
 
 
 
 
 | 36 | 
 #define OPM_PROTECTION_STANDARD_CEA805A_TYPEB_525P 0x00000100 | 
 
 
 
 
 
 | 37 | 
 #define OPM_PROTECTION_STANDARD_CEA805A_TYPEB_750P 0x00000200 | 
 
 
 
 
 
 | 38 | 
 #define OPM_PROTECTION_STANDARD_CEA805A_TYPEB_1125I 0x00000400 | 
 
 
 
 
 
 | 39 | 
 #define OPM_PROTECTION_STANDARD_ARIBTRB15_525I 0x00000800 | 
 
 
 
 
 
 | 40 | 
 #define OPM_PROTECTION_STANDARD_ARIBTRB15_525P 0x00001000 | 
 
 
 
 
 
 | 41 | 
 #define OPM_PROTECTION_STANDARD_ARIBTRB15_750P 0x00002000 | 
 
 
 
 
 
 | 42 | 
 #define OPM_PROTECTION_STANDARD_ARIBTRB15_1125I 0x00004000 | 
 
 
 
 
 
 | 43 | 
  | 
 
 
 
 
 
 | 44 | 
 #ifdef __cplusplus | 
 
 
 
 
 
 | 45 | 
 extern "C" { | 
 
 
 
 
 
 | 46 | 
 #endif | 
 
 
 
 
 
 | 47 | 
  | 
 
 
 
 
 
 | 48 | 
 typedef enum _OPM_VIDEO_OUTPUT_SEMANTICS { | 
 
 
 
 
 
 | 49 | 
   OPM_VOS_COPP_SEMANTICS   = 0, | 
 
 
 
 
 
 | 50 | 
   OPM_VOS_OPM_SEMANTICS    = 1 | 
 
 
 
 
 
 | 51 | 
 } OPM_VIDEO_OUTPUT_SEMANTICS; | 
 
 
 
 
 
 | 52 | 
  | 
 
 
 
 
 
 | 53 | 
 typedef enum _OPM_ACP_PROTECTION_LEVEL { | 
 
 
 
 
 
 | 54 | 
   OPM_ACP_OFF           = 0, | 
 
 
 
 
 
 | 55 | 
   OPM_ACP_LEVEL_ONE     = 1, | 
 
 
 
 
 
 | 56 | 
   OPM_ACP_LEVEL_TWO     = 2, | 
 
 
 
 
 
 | 57 | 
   OPM_ACP_LEVEL_THREE   = 3, | 
 
 
 
 
 
 | 58 | 
   OPM_ACP_FORCE_ULONG   = 0x7fffffff | 
 
 
 
 
 
 | 59 | 
 } OPM_ACP_PROTECTION_LEVEL; | 
 
 
 
 
 
 | 60 | 
  | 
 
 
 
 
 
 | 61 | 
 typedef enum _OPM_DPCP_PROTECTION_LEVEL { | 
 
 
 
 
 
 | 62 | 
   OPM_DPCP_OFF           = 0, | 
 
 
 
 
 
 | 63 | 
   OPM_DPCP_ON            = 1, | 
 
 
 
 
 
 | 64 | 
   OPM_DPCP_FORCE_ULONG   = 0x7fffffff | 
 
 
 
 
 
 | 65 | 
 } OPM_DPCP_PROTECTION_LEVEL; | 
 
 
 
 
 
 | 66 | 
  | 
 
 
 
 
 
 | 67 | 
 typedef enum _OPM_HDCP_PROTECTION_LEVEL { | 
 
 
 
 
 
 | 68 | 
   OPM_HDCP_OFF           = 0, | 
 
 
 
 
 
 | 69 | 
   OPM_HDCP_ON            = 1, | 
 
 
 
 
 
 | 70 | 
   OPM_HDCP_FORCE_ULONG   = 0x7fffffff | 
 
 
 
 
 
 | 71 | 
 } OPM_HDCP_PROTECTION_LEVEL; | 
 
 
 
 
 
 | 72 | 
  | 
 
 
 
 
 
 | 73 | 
 typedef enum _OPM_IMAGE_ASPECT_RATIO_EN300294 { | 
 
 
 
 
 
 | 74 | 
   OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3                    = 0, | 
 
 
 
 
 
 | 75 | 
   OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_CENTER                    = 1, | 
 
 
 
 
 
 | 76 | 
   OPM_ASPECT_RATIO_EN300294_BOX_14_BY_9_TOP                       = 2, | 
 
 
 
 
 
 | 77 | 
   OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_CENTER                    = 3, | 
 
 
 
 
 
 | 78 | 
   OPM_ASPECT_RATIO_EN300294_BOX_16_BY_9_TOP                       = 4, | 
 
 
 
 
 
 | 79 | 
   OPM_ASPECT_RATIO_EN300294_BOX_GT_16_BY_9_CENTER                 = 5, | 
 
 
 
 
 
 | 80 | 
   OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_4_BY_3_PROTECTED_CENTER   = 6, | 
 
 
 
 
 
 | 81 | 
   OPM_ASPECT_RATIO_EN300294_FULL_FORMAT_16_BY_9_ANAMORPHIC        = 7, | 
 
 
 
 
 
 | 82 | 
   OPM_ASPECT_RATIO_FORCE_ULONG                                    = 0x7FFFFFFF | 
 
 
 
 
 
 | 83 | 
 } OPM_IMAGE_ASPECT_RATIO_EN300294; | 
 
 
 
 
 
 | 84 | 
  | 
 
 
 
 
 
 | 85 | 
 typedef struct _OPM_OMAC { | 
 
 
 
 
 
 | 86 | 
   BYTE abOMAC[OPM_OMAC_SIZE]; | 
 
 
 
 
 
 | 87 | 
 } OPM_OMAC; | 
 
 
 
 
 
 | 88 | 
  | 
 
 
 
 
 
 | 89 | 
 typedef struct _OPM_REQUESTED_INFORMATION { | 
 
 
 
 
 
 | 90 | 
   OPM_OMAC omac; | 
 
 
 
 
 
 | 91 | 
   ULONG    cbRequestedInformationSize; | 
 
 
 
 
 
 | 92 | 
   BYTE     abRequestedInformation[OPM_REQUESTED_INFORMATION_SIZE]; | 
 
 
 
 
 
 | 93 | 
 } OPM_REQUESTED_INFORMATION; | 
 
 
 
 
 
 | 94 | 
  | 
 
 
 
 
 
 | 95 | 
 typedef struct _OPM_ENCRYPTED_INITIALIZATION_PARAMETERS { | 
 
 
 
 
 
 | 96 | 
   BYTE abEncryptedInitializationParameters[OPM_ENCRYPTED_INITIALIZATION_PARAMETERS_SIZE]; | 
 
 
 
 
 
 | 97 | 
 } OPM_ENCRYPTED_INITIALIZATION_PARAMETERS; | 
 
 
 
 
 
 | 98 | 
  | 
 
 
 
 
 
 | 99 | 
 typedef struct _OPM_RANDOM_NUMBER { | 
 
 
 
 
 
 | 100 | 
   BYTE abRandomNumber[OPM_128_BIT_RANDOM_NUMBER_SIZE]; | 
 
 
 
 
 
 | 101 | 
 } OPM_RANDOM_NUMBER; | 
 
 
 
 
 
 | 102 | 
  | 
 
 
 
 
 
 | 103 | 
 typedef struct _OPM_GET_INFO_PARAMETERS { | 
 
 
 
 
 
 | 104 | 
   OPM_OMAC          omac; | 
 
 
 
 
 
 | 105 | 
   OPM_RANDOM_NUMBER rnRandomNumber; | 
 
 
 
 
 
 | 106 | 
   GUID              guidInformation; | 
 
 
 
 
 
 | 107 | 
   ULONG             ulSequenceNumber; | 
 
 
 
 
 
 | 108 | 
   ULONG             cbParametersSize; | 
 
 
 
 
 
 | 109 | 
   BYTE              abParameters[OPM_GET_INFORMATION_PARAMETERS_SIZE]; | 
 
 
 
 
 
 | 110 | 
 } OPM_GET_INFO_PARAMETERS; | 
 
 
 
 
 
 | 111 | 
  | 
 
 
 
 
 
 | 112 | 
 typedef struct _OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS { | 
 
 
 
 
 
 | 113 | 
   OPM_RANDOM_NUMBER rnRandomNumber; | 
 
 
 
 
 
 | 114 | 
   GUID              guidInformation; | 
 
 
 
 
 
 | 115 | 
   ULONG             ulSequenceNumber; | 
 
 
 
 
 
 | 116 | 
   ULONG             cbParametersSize; | 
 
 
 
 
 
 | 117 | 
   BYTE              abParameters[OPM_GET_INFORMATION_PARAMETERS_SIZE]; | 
 
 
 
 
 
 | 118 | 
 } OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS; | 
 
 
 
 
 
 | 119 | 
  | 
 
 
 
 
 
 | 120 | 
 typedef struct _OPM_ACP_AND_CGMSA_SIGNALING { | 
 
 
 
 
 
 | 121 | 
   OPM_RANDOM_NUMBER rnRandomNumber; | 
 
 
 
 
 
 | 122 | 
   ULONG             ulStatusFlags; | 
 
 
 
 
 
 | 123 | 
   ULONG             ulAvailableTVProtectionStandards; | 
 
 
 
 
 
 | 124 | 
   ULONG             ulActiveTVProtectionStandard; | 
 
 
 
 
 
 | 125 | 
   ULONG             ulReserved; | 
 
 
 
 
 
 | 126 | 
   ULONG             ulAspectRatioValidMask1; | 
 
 
 
 
 
 | 127 | 
   ULONG             ulAspectRatioData1; | 
 
 
 
 
 
 | 128 | 
   ULONG             ulAspectRatioValidMask2; | 
 
 
 
 
 
 | 129 | 
   ULONG             ulAspectRatioData2; | 
 
 
 
 
 
 | 130 | 
   ULONG             ulAspectRatioValidMask3; | 
 
 
 
 
 
 | 131 | 
   ULONG             ulAspectRatioData3; | 
 
 
 
 
 
 | 132 | 
   ULONG             ulReserved2[4]; | 
 
 
 
 
 
 | 133 | 
   ULONG             ulReserved3[4]; | 
 
 
 
 
 
 | 134 | 
 } OPM_ACP_AND_CGMSA_SIGNALING; | 
 
 
 
 
 
 | 135 | 
  | 
 
 
 
 
 
 | 136 | 
 typedef struct _OPM_ACTUAL_OUTPUT_FORMAT { | 
 
 
 
 
 
 | 137 | 
   OPM_RANDOM_NUMBER  rnRandomNumber; | 
 
 
 
 
 
 | 138 | 
   ULONG              ulStatusFlags; | 
 
 
 
 
 
 | 139 | 
   ULONG              ulDisplayWidth; | 
 
 
 
 
 
 | 140 | 
   ULONG              ulDisplayHeight; | 
 
 
 
 
 
 | 141 | 
   DXVA2_SampleFormat dsfSampleInterleaveFormat; | 
 
 
 
 
 
 | 142 | 
   D3DFORMAT          d3dFormat; | 
 
 
 
 
 
 | 143 | 
   ULONG              ulFrequencyNumerator; | 
 
 
 
 
 
 | 144 | 
   ULONG              ulFrequencyDenominator; | 
 
 
 
 
 
 | 145 | 
 } OPM_ACTUAL_OUTPUT_FORMAT; | 
 
 
 
 
 
 | 146 | 
  | 
 
 
 
 
 
 | 147 | 
 typedef struct _OPM_CONFIGURE_PARAMETERS { | 
 
 
 
 
 
 | 148 | 
   OPM_OMAC omac; | 
 
 
 
 
 
 | 149 | 
   GUID     guidSetting; | 
 
 
 
 
 
 | 150 | 
   ULONG    ulSequenceNumber; | 
 
 
 
 
 
 | 151 | 
   ULONG    cbParametersSize; | 
 
 
 
 
 
 | 152 | 
   BYTE     abParameters[OPM_CONFIGURE_SETTING_DATA_SIZE]; | 
 
 
 
 
 
 | 153 | 
 } OPM_CONFIGURE_PARAMETERS; | 
 
 
 
 
 
 | 154 | 
  | 
 
 
 
 
 
 | 155 | 
 typedef struct _OPM_HDCP_KEY_SELECTION_VECTOR { | 
 
 
 
 
 
 | 156 | 
   BYTE abKeySelectionVector[OPM_HDCP_KEY_SELECTION_VECTOR_SIZE]; | 
 
 
 
 
 
 | 157 | 
 } OPM_HDCP_KEY_SELECTION_VECTOR; | 
 
 
 
 
 
 | 158 | 
  | 
 
 
 
 
 
 | 159 | 
 #define OPM_HDCP_FLAG_NONE 0x00 | 
 
 
 
 
 
 | 160 | 
 #define OPM_HDCP_FLAG_REPEATER 0x01 | 
 
 
 
 
 
 | 161 | 
  | 
 
 
 
 
 
 | 162 | 
 typedef struct _OPM_CONNECTED_HDCP_DEVICE_INFORMATION { | 
 
 
 
 
 
 | 163 | 
   OPM_RANDOM_NUMBER             rnRandomNumber; | 
 
 
 
 
 
 | 164 | 
   ULONG                         ulStatusFlags; | 
 
 
 
 
 
 | 165 | 
   ULONG                         ulHDCPFlags; | 
 
 
 
 
 
 | 166 | 
   OPM_HDCP_KEY_SELECTION_VECTOR ksvB; | 
 
 
 
 
 
 | 167 | 
   BYTE                          Reserved[11]; | 
 
 
 
 
 
 | 168 | 
   BYTE                          Reserved2[16]; | 
 
 
 
 
 
 | 169 | 
   BYTE                          Reserved3[16]; | 
 
 
 
 
 
 | 170 | 
 } OPM_CONNECTED_HDCP_DEVICE_INFORMATION; | 
 
 
 
 
 
 | 171 | 
  | 
 
 
 
 
 
 | 172 | 
 typedef struct _OPM_OUTPUT_ID_DATA { | 
 
 
 
 
 
 | 173 | 
   OPM_RANDOM_NUMBER rnRandomNumber; | 
 
 
 
 
 
 | 174 | 
   ULONG             ulStatusFlags; | 
 
 
 
 
 
 | 175 | 
   UINT64            OutputId; | 
 
 
 
 
 
 | 176 | 
 } OPM_OUTPUT_ID_DATA; | 
 
 
 
 
 
 | 177 | 
  | 
 
 
 
 
 
 | 178 | 
 typedef struct _OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS { | 
 
 
 
 
 
 | 179 | 
   ULONG ulNewTVProtectionStandard; | 
 
 
 
 
 
 | 180 | 
   ULONG ulAspectRatioChangeMask1; | 
 
 
 
 
 
 | 181 | 
   ULONG ulAspectRatioData1; | 
 
 
 
 
 
 | 182 | 
   ULONG ulAspectRatioChangeMask2; | 
 
 
 
 
 
 | 183 | 
   ULONG ulAspectRatioData2; | 
 
 
 
 
 
 | 184 | 
   ULONG ulAspectRatioChangeMask3; | 
 
 
 
 
 
 | 185 | 
   ULONG ulAspectRatioData3; | 
 
 
 
 
 
 | 186 | 
   ULONG ulReserved[4]; | 
 
 
 
 
 
 | 187 | 
   ULONG ulReserved2[4]; | 
 
 
 
 
 
 | 188 | 
   ULONG ulReserved3; | 
 
 
 
 
 
 | 189 | 
 } OPM_SET_ACP_AND_CGMSA_SIGNALING_PARAMETERS; | 
 
 
 
 
 
 | 190 | 
  | 
 
 
 
 
 
 | 191 | 
 typedef struct _OPM_SET_HDCP_SRM_PARAMETERS { | 
 
 
 
 
 
 | 192 | 
   ULONG ulSRMVersion; | 
 
 
 
 
 
 | 193 | 
 } OPM_SET_HDCP_SRM_PARAMETERS; | 
 
 
 
 
 
 | 194 | 
  | 
 
 
 
 
 
 | 195 | 
 typedef struct _OPM_SET_PROTECTION_LEVEL_PARAMETERS { | 
 
 
 
 
 
 | 196 | 
   ULONG ulProtectionType; | 
 
 
 
 
 
 | 197 | 
   ULONG ulProtectionLevel; | 
 
 
 
 
 
 | 198 | 
   ULONG Reserved; | 
 
 
 
 
 
 | 199 | 
   ULONG Reserved2; | 
 
 
 
 
 
 | 200 | 
 } OPM_SET_PROTECTION_LEVEL_PARAMETERS; | 
 
 
 
 
 
 | 201 | 
  | 
 
 
 
 
 
 | 202 | 
 typedef struct _OPM_STANDARD_INFORMATION { | 
 
 
 
 
 
 | 203 | 
   OPM_RANDOM_NUMBER rnRandomNumber; | 
 
 
 
 
 
 | 204 | 
   ULONG             ulStatusFlags; | 
 
 
 
 
 
 | 205 | 
   ULONG             ulInformation; | 
 
 
 
 
 
 | 206 | 
   ULONG             ulReserved; | 
 
 
 
 
 
 | 207 | 
   ULONG             ulReserved2; | 
 
 
 
 
 
 | 208 | 
 } OPM_STANDARD_INFORMATION; | 
 
 
 
 
 
 | 209 | 
  | 
 
 
 
 
 
 | 210 | 
 #ifdef __cplusplus | 
 
 
 
 
 
 | 211 | 
 } | 
 
 
 
 
 
 | 212 | 
 #endif | 
 
 
 
 
 
 | 213 | 
  | 
 
 
 
 
 
 | 214 | 
 #undef  INTERFACE | 
 
 
 
 
 
 | 215 | 
 #define INTERFACE IOPMVideoOutput | 
 
 
 
 
 
 | 216 | 
 DECLARE_INTERFACE_(IOPMVideoOutput,IUnknown) | 
 
 
 
 
 
 | 217 | 
 { | 
 
 
 
 
 
 | 218 | 
     BEGIN_INTERFACE | 
 
 
 
 
 
 | 219 | 
  | 
 
 
 
 
 
 | 220 | 
     /* IUnknown methods */ | 
 
 
 
 
 
 | 221 | 
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | 
 
 
 
 
 
 | 222 | 
     STDMETHOD_(ULONG, AddRef)(THIS) PURE; | 
 
 
 
 
 
 | 223 | 
     STDMETHOD_(ULONG, Release)(THIS) PURE; | 
 
 
 
 
 
 | 224 | 
  | 
 
 
 
 
 
 | 225 | 
     /* IOPMVideoOutput methods */ | 
 
 
 
 
 
 | 226 | 
     STDMETHOD_(HRESULT,StartInitialization)(THIS_ OPM_RANDOM_NUMBER *prnRandomNumber,BYTE **ppbCertificate,ULONG *pulCertificateLength) PURE; | 
 
 
 
 
 
 | 227 | 
     STDMETHOD_(HRESULT,FinishInitialization)(THIS_ const OPM_ENCRYPTED_INITIALIZATION_PARAMETERS *pParameters) PURE; | 
 
 
 
 
 
 | 228 | 
     STDMETHOD_(HRESULT,GetInformation)(THIS_ const OPM_GET_INFO_PARAMETERS *pParameters,OPM_REQUESTED_INFORMATION *pRequestedInformation) PURE; | 
 
 
 
 
 
 | 229 | 
     STDMETHOD_(HRESULT,COPPCompatibleGetInformation)(THIS_ const OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *pParameters,OPM_REQUESTED_INFORMATION *pRequestedInformation) PURE; | 
 
 
 
 
 
 | 230 | 
     STDMETHOD_(HRESULT,Configure)(THIS_ const OPM_CONFIGURE_PARAMETERS *pParameters,ULONG ulAdditionalParametersSize,const BYTE *pbAdditionalParameters) PURE; | 
 
 
 
 
 
 | 231 | 
  | 
 
 
 
 
 
 | 232 | 
     END_INTERFACE | 
 
 
 
 
 
 | 233 | 
 }; | 
 
 
 
 
 
 | 234 | 
 #ifdef COBJMACROS | 
 
 
 
 
 
 | 235 | 
 #define IOPMVideoOutput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 
 
 
 
 
 | 236 | 
 #define IOPMVideoOutput_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 
 
 
 
 
 | 237 | 
 #define IOPMVideoOutput_Release(This) (This)->lpVtbl->Release(This) | 
 
 
 
 
 
 | 238 | 
 #define IOPMVideoOutput_Configure(This,pParameters,ulAdditionalParametersSize,pbAdditionalParameters) (This)->lpVtbl->Configure(This,pParameters,ulAdditionalParametersSize,pbAdditionalParameters) | 
 
 
 
 
 
 | 239 | 
 #define IOPMVideoOutput_COPPCompatibleGetInformation(This,pParameters,pRequestedInformation) (This)->lpVtbl->COPPCompatibleGetInformation(This,pParameters,pRequestedInformation) | 
 
 
 
 
 
 | 240 | 
 #define IOPMVideoOutput_FinishInitialization(This,pParameters) (This)->lpVtbl->FinishInitialization(This,pParameters) | 
 
 
 
 
 
 | 241 | 
 #define IOPMVideoOutput_GetInformation(This,pParameters,pRequestedInformation) (This)->lpVtbl->GetInformation(This,pParameters,pRequestedInformation) | 
 
 
 
 
 
 | 242 | 
 #define IOPMVideoOutput_StartInitialization(This,prnRandomNumber,ppbCertificate,pulCertificateLength) (This)->lpVtbl->StartInitialization(This,prnRandomNumber,ppbCertificate,pulCertificateLength) | 
 
 
 
 
 
 | 243 | 
 #endif /*COBJMACROS*/ | 
 
 
 
 
 
 | 244 | 
  | 
 
 
 
 
 
 | 245 | 
 #ifdef __cplusplus | 
 
 
 
 
 
 | 246 | 
 extern "C" { | 
 
 
 
 
 
 | 247 | 
 #endif | 
 
 
 
 
 
 | 248 | 
  | 
 
 
 
 
 
 | 249 | 
 HRESULT WINAPI OPMGetVideoOutputsFromHMONITOR( | 
 
 
 
 
 
 | 250 | 
   HMONITOR hMonitor, | 
 
 
 
 
 
 | 251 | 
   OPM_VIDEO_OUTPUT_SEMANTICS vos, | 
 
 
 
 
 
 | 252 | 
   ULONG *pulNumVideoOutputs, | 
 
 
 
 
 
 | 253 | 
   IOPMVideoOutput ***pppOPMVideoOutputArray | 
 
 
 
 
 
 | 254 | 
 ); | 
 
 
 
 
 
 | 255 | 
  | 
 
 
 
 
 
 | 256 | 
 HRESULT WINAPI OPMGetVideoOutputsFromIDirect3DDevice9Object( | 
 
 
 
 
 
 | 257 | 
   IDirect3DDevice9 *pDirect3DDevice9, | 
 
 
 
 
 
 | 258 | 
   OPM_VIDEO_OUTPUT_SEMANTICS vos, | 
 
 
 
 
 
 | 259 | 
   ULONG *pulNumVideoOutputs, | 
 
 
 
 
 
 | 260 | 
   IOPMVideoOutput ***pppOPMVideoOutputArray | 
 
 
 
 
 
 | 261 | 
 ); | 
 
 
 
 
 
 | 262 | 
  | 
 
 
 
 
 
 | 263 | 
 typedef struct _OPM_GET_CODEC_INFO_INFORMATION { | 
 
 
 
 
 
 | 264 | 
   OPM_RANDOM_NUMBER rnRandomNumber; | 
 
 
 
 
 
 | 265 | 
   DWORD             Merit; | 
 
 
 
 
 
 | 266 | 
 } OPM_GET_CODEC_INFO_INFORMATION; | 
 
 
 
 
 
 | 267 | 
  | 
 
 
 
 
 
 | 268 | 
 typedef struct _OPM_GET_CODEC_INFO_PARAMETERS { | 
 
 
 
 
 
 | 269 | 
   DWORD cbVerifier; | 
 
 
 
 
 
 | 270 | 
   BYTE  Verifier[OPM_GET_INFORMATION_PARAMETERS_SIZE - 4]; | 
 
 
 
 
 
 | 271 | 
 } OPM_GET_CODEC_INFO_PARAMETERS; | 
 
 
 
 
 
 | 272 | 
  | 
 
 
 
 
 
 | 273 | 
 #ifdef __cplusplus | 
 
 
 
 
 
 | 274 | 
 } | 
 
 
 
 
 
 | 275 | 
 #endif | 
 
 
 
 
 
 | 276 | 
  | 
 
 
 
 
 
 | 277 | 
 #endif /*_INC_OPMAPI*/ | 
 
 
 
 
 
 | 278 | 
  |