zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

d3d11.h (471233B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/d3d11.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __d3d11_h__
     17 #define __d3d11_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __ID3D11DeviceChild_FWD_DEFINED__
     22 #define __ID3D11DeviceChild_FWD_DEFINED__
     23 typedef interface ID3D11DeviceChild ID3D11DeviceChild;
     24 #ifdef __cplusplus
     25 interface ID3D11DeviceChild;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __ID3D11Asynchronous_FWD_DEFINED__
     30 #define __ID3D11Asynchronous_FWD_DEFINED__
     31 typedef interface ID3D11Asynchronous ID3D11Asynchronous;
     32 #ifdef __cplusplus
     33 interface ID3D11Asynchronous;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __ID3D11Query_FWD_DEFINED__
     38 #define __ID3D11Query_FWD_DEFINED__
     39 typedef interface ID3D11Query ID3D11Query;
     40 #ifdef __cplusplus
     41 interface ID3D11Query;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __ID3D11Resource_FWD_DEFINED__
     46 #define __ID3D11Resource_FWD_DEFINED__
     47 typedef interface ID3D11Resource ID3D11Resource;
     48 #ifdef __cplusplus
     49 interface ID3D11Resource;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __ID3D11View_FWD_DEFINED__
     54 #define __ID3D11View_FWD_DEFINED__
     55 typedef interface ID3D11View ID3D11View;
     56 #ifdef __cplusplus
     57 interface ID3D11View;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __ID3D11BlendState_FWD_DEFINED__
     62 #define __ID3D11BlendState_FWD_DEFINED__
     63 typedef interface ID3D11BlendState ID3D11BlendState;
     64 #ifdef __cplusplus
     65 interface ID3D11BlendState;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __ID3D11Buffer_FWD_DEFINED__
     70 #define __ID3D11Buffer_FWD_DEFINED__
     71 typedef interface ID3D11Buffer ID3D11Buffer;
     72 #ifdef __cplusplus
     73 interface ID3D11Buffer;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __ID3D11ClassInstance_FWD_DEFINED__
     78 #define __ID3D11ClassInstance_FWD_DEFINED__
     79 typedef interface ID3D11ClassInstance ID3D11ClassInstance;
     80 #ifdef __cplusplus
     81 interface ID3D11ClassInstance;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __ID3D11ClassLinkage_FWD_DEFINED__
     86 #define __ID3D11ClassLinkage_FWD_DEFINED__
     87 typedef interface ID3D11ClassLinkage ID3D11ClassLinkage;
     88 #ifdef __cplusplus
     89 interface ID3D11ClassLinkage;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __ID3D11CommandList_FWD_DEFINED__
     94 #define __ID3D11CommandList_FWD_DEFINED__
     95 typedef interface ID3D11CommandList ID3D11CommandList;
     96 #ifdef __cplusplus
     97 interface ID3D11CommandList;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __ID3D11ComputeShader_FWD_DEFINED__
    102 #define __ID3D11ComputeShader_FWD_DEFINED__
    103 typedef interface ID3D11ComputeShader ID3D11ComputeShader;
    104 #ifdef __cplusplus
    105 interface ID3D11ComputeShader;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __ID3D11Counter_FWD_DEFINED__
    110 #define __ID3D11Counter_FWD_DEFINED__
    111 typedef interface ID3D11Counter ID3D11Counter;
    112 #ifdef __cplusplus
    113 interface ID3D11Counter;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __ID3D11DepthStencilState_FWD_DEFINED__
    118 #define __ID3D11DepthStencilState_FWD_DEFINED__
    119 typedef interface ID3D11DepthStencilState ID3D11DepthStencilState;
    120 #ifdef __cplusplus
    121 interface ID3D11DepthStencilState;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __ID3D11DepthStencilView_FWD_DEFINED__
    126 #define __ID3D11DepthStencilView_FWD_DEFINED__
    127 typedef interface ID3D11DepthStencilView ID3D11DepthStencilView;
    128 #ifdef __cplusplus
    129 interface ID3D11DepthStencilView;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __ID3D11DomainShader_FWD_DEFINED__
    134 #define __ID3D11DomainShader_FWD_DEFINED__
    135 typedef interface ID3D11DomainShader ID3D11DomainShader;
    136 #ifdef __cplusplus
    137 interface ID3D11DomainShader;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __ID3D11GeometryShader_FWD_DEFINED__
    142 #define __ID3D11GeometryShader_FWD_DEFINED__
    143 typedef interface ID3D11GeometryShader ID3D11GeometryShader;
    144 #ifdef __cplusplus
    145 interface ID3D11GeometryShader;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __ID3D11HullShader_FWD_DEFINED__
    150 #define __ID3D11HullShader_FWD_DEFINED__
    151 typedef interface ID3D11HullShader ID3D11HullShader;
    152 #ifdef __cplusplus
    153 interface ID3D11HullShader;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __ID3D11InputLayout_FWD_DEFINED__
    158 #define __ID3D11InputLayout_FWD_DEFINED__
    159 typedef interface ID3D11InputLayout ID3D11InputLayout;
    160 #ifdef __cplusplus
    161 interface ID3D11InputLayout;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __ID3D11PixelShader_FWD_DEFINED__
    166 #define __ID3D11PixelShader_FWD_DEFINED__
    167 typedef interface ID3D11PixelShader ID3D11PixelShader;
    168 #ifdef __cplusplus
    169 interface ID3D11PixelShader;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __ID3D11Predicate_FWD_DEFINED__
    174 #define __ID3D11Predicate_FWD_DEFINED__
    175 typedef interface ID3D11Predicate ID3D11Predicate;
    176 #ifdef __cplusplus
    177 interface ID3D11Predicate;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __ID3D11RasterizerState_FWD_DEFINED__
    182 #define __ID3D11RasterizerState_FWD_DEFINED__
    183 typedef interface ID3D11RasterizerState ID3D11RasterizerState;
    184 #ifdef __cplusplus
    185 interface ID3D11RasterizerState;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __ID3D11RenderTargetView_FWD_DEFINED__
    190 #define __ID3D11RenderTargetView_FWD_DEFINED__
    191 typedef interface ID3D11RenderTargetView ID3D11RenderTargetView;
    192 #ifdef __cplusplus
    193 interface ID3D11RenderTargetView;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __ID3D11SamplerState_FWD_DEFINED__
    198 #define __ID3D11SamplerState_FWD_DEFINED__
    199 typedef interface ID3D11SamplerState ID3D11SamplerState;
    200 #ifdef __cplusplus
    201 interface ID3D11SamplerState;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __ID3D11ShaderResourceView_FWD_DEFINED__
    206 #define __ID3D11ShaderResourceView_FWD_DEFINED__
    207 typedef interface ID3D11ShaderResourceView ID3D11ShaderResourceView;
    208 #ifdef __cplusplus
    209 interface ID3D11ShaderResourceView;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __ID3D11Texture1D_FWD_DEFINED__
    214 #define __ID3D11Texture1D_FWD_DEFINED__
    215 typedef interface ID3D11Texture1D ID3D11Texture1D;
    216 #ifdef __cplusplus
    217 interface ID3D11Texture1D;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __ID3D11Texture2D_FWD_DEFINED__
    222 #define __ID3D11Texture2D_FWD_DEFINED__
    223 typedef interface ID3D11Texture2D ID3D11Texture2D;
    224 #ifdef __cplusplus
    225 interface ID3D11Texture2D;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __ID3D11Texture3D_FWD_DEFINED__
    230 #define __ID3D11Texture3D_FWD_DEFINED__
    231 typedef interface ID3D11Texture3D ID3D11Texture3D;
    232 #ifdef __cplusplus
    233 interface ID3D11Texture3D;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __ID3D11UnorderedAccessView_FWD_DEFINED__
    238 #define __ID3D11UnorderedAccessView_FWD_DEFINED__
    239 typedef interface ID3D11UnorderedAccessView ID3D11UnorderedAccessView;
    240 #ifdef __cplusplus
    241 interface ID3D11UnorderedAccessView;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __ID3D11VertexShader_FWD_DEFINED__
    246 #define __ID3D11VertexShader_FWD_DEFINED__
    247 typedef interface ID3D11VertexShader ID3D11VertexShader;
    248 #ifdef __cplusplus
    249 interface ID3D11VertexShader;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __ID3D11DeviceContext_FWD_DEFINED__
    254 #define __ID3D11DeviceContext_FWD_DEFINED__
    255 typedef interface ID3D11DeviceContext ID3D11DeviceContext;
    256 #ifdef __cplusplus
    257 interface ID3D11DeviceContext;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__
    262 #define __ID3D11AuthenticatedChannel_FWD_DEFINED__
    263 typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel;
    264 #ifdef __cplusplus
    265 interface ID3D11AuthenticatedChannel;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __ID3D11CryptoSession_FWD_DEFINED__
    270 #define __ID3D11CryptoSession_FWD_DEFINED__
    271 typedef interface ID3D11CryptoSession ID3D11CryptoSession;
    272 #ifdef __cplusplus
    273 interface ID3D11CryptoSession;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __ID3D11VideoDecoder_FWD_DEFINED__
    278 #define __ID3D11VideoDecoder_FWD_DEFINED__
    279 typedef interface ID3D11VideoDecoder ID3D11VideoDecoder;
    280 #ifdef __cplusplus
    281 interface ID3D11VideoDecoder;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__
    286 #define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__
    287 typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator;
    288 #ifdef __cplusplus
    289 interface ID3D11VideoProcessorEnumerator;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __ID3D11VideoProcessor_FWD_DEFINED__
    294 #define __ID3D11VideoProcessor_FWD_DEFINED__
    295 typedef interface ID3D11VideoProcessor ID3D11VideoProcessor;
    296 #ifdef __cplusplus
    297 interface ID3D11VideoProcessor;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__
    302 #define __ID3D11VideoDecoderOutputView_FWD_DEFINED__
    303 typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView;
    304 #ifdef __cplusplus
    305 interface ID3D11VideoDecoderOutputView;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__
    310 #define __ID3D11VideoProcessorInputView_FWD_DEFINED__
    311 typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView;
    312 #ifdef __cplusplus
    313 interface ID3D11VideoProcessorInputView;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__
    318 #define __ID3D11VideoProcessorOutputView_FWD_DEFINED__
    319 typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView;
    320 #ifdef __cplusplus
    321 interface ID3D11VideoProcessorOutputView;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __ID3D11VideoDevice_FWD_DEFINED__
    326 #define __ID3D11VideoDevice_FWD_DEFINED__
    327 typedef interface ID3D11VideoDevice ID3D11VideoDevice;
    328 #ifdef __cplusplus
    329 interface ID3D11VideoDevice;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __ID3D11VideoContext_FWD_DEFINED__
    334 #define __ID3D11VideoContext_FWD_DEFINED__
    335 typedef interface ID3D11VideoContext ID3D11VideoContext;
    336 #ifdef __cplusplus
    337 interface ID3D11VideoContext;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __ID3D11Device_FWD_DEFINED__
    342 #define __ID3D11Device_FWD_DEFINED__
    343 typedef interface ID3D11Device ID3D11Device;
    344 #ifdef __cplusplus
    345 interface ID3D11Device;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 /* Headers for imported files */
    350 
    351 #include <oaidl.h>
    352 #include <ocidl.h>
    353 #include <dxgi.h>
    354 #include <d3dcommon.h>
    355 
    356 #ifdef __cplusplus
    357 extern "C" {
    358 #endif
    359 
    360 typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
    361 typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
    362 typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
    363 typedef RECT D3D11_RECT;
    364 #ifndef __ID3D11Device_FWD_DEFINED__
    365 #define __ID3D11Device_FWD_DEFINED__
    366 typedef interface ID3D11Device ID3D11Device;
    367 #ifdef __cplusplus
    368 interface ID3D11Device;
    369 #endif /* __cplusplus */
    370 #endif
    371 
    372 #ifndef __ID3D11ClassLinkage_FWD_DEFINED__
    373 #define __ID3D11ClassLinkage_FWD_DEFINED__
    374 typedef interface ID3D11ClassLinkage ID3D11ClassLinkage;
    375 #ifdef __cplusplus
    376 interface ID3D11ClassLinkage;
    377 #endif /* __cplusplus */
    378 #endif
    379 
    380 #ifndef __ID3D11Resource_FWD_DEFINED__
    381 #define __ID3D11Resource_FWD_DEFINED__
    382 typedef interface ID3D11Resource ID3D11Resource;
    383 #ifdef __cplusplus
    384 interface ID3D11Resource;
    385 #endif /* __cplusplus */
    386 #endif
    387 
    388 #ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__
    389 #define __ID3D11VideoProcessorInputView_FWD_DEFINED__
    390 typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView;
    391 #ifdef __cplusplus
    392 interface ID3D11VideoProcessorInputView;
    393 #endif /* __cplusplus */
    394 #endif
    395 
    396 #ifndef _D3D11_CONSTANTS
    397 #define _D3D11_CONSTANTS
    398 #define D3D11_16BIT_INDEX_STRIP_CUT_VALUE (0xffff)
    399 
    400 #define D3D11_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff)
    401 
    402 #define D3D11_8BIT_INDEX_STRIP_CUT_VALUE (0xff)
    403 
    404 #define D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9)
    405 
    406 #define D3D11_CLIP_OR_CULL_DISTANCE_COUNT (8)
    407 
    408 #define D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2)
    409 
    410 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
    411 
    412 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
    413 
    414 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
    415 
    416 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
    417 
    418 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT (16)
    419 
    420 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
    421 
    422 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
    423 
    424 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
    425 
    426 #define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
    427 
    428 #define D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
    429 
    430 #define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
    431 
    432 #define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
    433 
    434 #define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
    435 
    436 #define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
    437 
    438 #define D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
    439 
    440 #define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
    441 
    442 #define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
    443 
    444 #define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
    445 
    446 #define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
    447 
    448 #define D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
    449 
    450 #define D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
    451 
    452 #define D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
    453 
    454 #define D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
    455 
    456 #define D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
    457 
    458 #define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
    459 
    460 #define D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
    461 
    462 #define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
    463 
    464 #define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
    465 
    466 #define D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
    467 
    468 #define D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
    469 
    470 #define D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
    471 
    472 #define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
    473 
    474 #define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
    475 
    476 #define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
    477 
    478 #define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
    479 
    480 #define D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (256)
    481 
    482 #define D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP (64)
    483 
    484 #define D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (240)
    485 
    486 #define D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP (68)
    487 
    488 #define D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (224)
    489 
    490 #define D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP (72)
    491 
    492 #define D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (208)
    493 
    494 #define D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP (76)
    495 
    496 #define D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (192)
    497 
    498 #define D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP (84)
    499 
    500 #define D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (176)
    501 
    502 #define D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP (92)
    503 
    504 #define D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (160)
    505 
    506 #define D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP (100)
    507 
    508 #define D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (144)
    509 
    510 #define D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP (112)
    511 
    512 #define D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (128)
    513 
    514 #define D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP (128)
    515 
    516 #define D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (112)
    517 
    518 #define D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP (144)
    519 
    520 #define D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (96)
    521 
    522 #define D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP (168)
    523 
    524 #define D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (80)
    525 
    526 #define D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP (204)
    527 
    528 #define D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (64)
    529 
    530 #define D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP (256)
    531 
    532 #define D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (48)
    533 
    534 #define D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP (340)
    535 
    536 #define D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (32)
    537 
    538 #define D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP (512)
    539 
    540 #define D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (16)
    541 
    542 #define D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP (768)
    543 
    544 #define D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION (1)
    545 
    546 #define D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT (256)
    547 
    548 #define D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP (768)
    549 
    550 #define D3D11_CS_4_X_THREAD_GROUP_MAX_X (768)
    551 
    552 #define D3D11_CS_4_X_THREAD_GROUP_MAX_Y (768)
    553 
    554 #define D3D11_CS_4_X_UAV_REGISTER_COUNT (1)
    555 
    556 #define D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535)
    557 
    558 #define D3D11_CS_TGSM_REGISTER_COUNT (8192)
    559 
    560 #define D3D11_CS_TGSM_REGISTER_READS_PER_INST (1)
    561 
    562 #define D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS (1)
    563 
    564 #define D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS (1)
    565 
    566 #define D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP (1024)
    567 
    568 #define D3D11_CS_THREAD_GROUP_MAX_X (1024)
    569 
    570 #define D3D11_CS_THREAD_GROUP_MAX_Y (1024)
    571 
    572 #define D3D11_CS_THREAD_GROUP_MAX_Z (64)
    573 
    574 #define D3D11_CS_THREAD_GROUP_MIN_X (1)
    575 
    576 #define D3D11_CS_THREAD_GROUP_MIN_Y (1)
    577 
    578 #define D3D11_CS_THREAD_GROUP_MIN_Z (1)
    579 
    580 #define D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL (16384)
    581 
    582 #define D3D11_DEFAULT_DEPTH_BIAS (0)
    583 
    584 #define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f
    585 #define D3D11_DEFAULT_MAX_ANISOTROPY (16)
    586 
    587 #define D3D11_DEFAULT_MIP_LOD_BIAS 0.0f
    588 #define D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
    589 
    590 #define D3D11_DEFAULT_SAMPLE_MASK (0xffffffff)
    591 
    592 #define D3D11_DEFAULT_SCISSOR_ENDX (0)
    593 
    594 #define D3D11_DEFAULT_SCISSOR_ENDY (0)
    595 
    596 #define D3D11_DEFAULT_SCISSOR_STARTX (0)
    597 
    598 #define D3D11_DEFAULT_SCISSOR_STARTY (0)
    599 
    600 #define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS 0.0f
    601 #define D3D11_DEFAULT_STENCIL_READ_MASK (0xff)
    602 
    603 #define D3D11_DEFAULT_STENCIL_REFERENCE (0)
    604 
    605 #define D3D11_DEFAULT_STENCIL_WRITE_MASK (0xff)
    606 
    607 #define D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
    608 
    609 #define D3D11_DEFAULT_VIEWPORT_HEIGHT (0)
    610 
    611 #define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH 0.0f
    612 #define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH 0.0f
    613 #define D3D11_DEFAULT_VIEWPORT_TOPLEFTX (0)
    614 
    615 #define D3D11_DEFAULT_VIEWPORT_TOPLEFTY (0)
    616 
    617 #define D3D11_DEFAULT_VIEWPORT_WIDTH (0)
    618 
    619 #define D3D11_FLOAT32_MAX         (3.402823466e+38f)
    620 #define D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0)
    621 
    622 #define D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0)
    623 
    624 #define D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0)
    625 
    626 #define D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
    627 
    628 #define D3D11_IA_INSTANCE_ID_BIT_COUNT (32)
    629 
    630 #define D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT (32)
    631 
    632 #define D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT (32)
    633 
    634 #define D3D11_IA_PRIMITIVE_ID_BIT_COUNT (32)
    635 
    636 #define D3D11_IA_VERTEX_ID_BIT_COUNT (32)
    637 
    638 #define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
    639 
    640 #define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128)
    641 
    642 #define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32)
    643 
    644 #define D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
    645 
    646 #define D3D11_MAX_MAXANISOTROPY (16)
    647 
    648 #define D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
    649 
    650 #define D3D11_VIEWPORT_BOUNDS_MAX (32767)
    651 
    652 #define D3D11_VIEWPORT_BOUNDS_MIN (-32768)
    653 
    654 #define D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
    655 
    656 #define D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
    657 
    658 #define D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL (0xffffffff)
    659 
    660 #define D3D11_KEEP_UNORDERED_ACCESS_VIEWS (0xffffffff)
    661 
    662 #define D3D11_SHADER_MAJOR_VERSION (5)
    663 
    664 #define D3D11_SHADER_MAX_INSTANCES (65535)
    665 
    666 #define D3D11_SHADER_MAX_INTERFACES (253)
    667 
    668 #define D3D11_SHADER_MAX_INTERFACE_CALL_SITES (4096)
    669 
    670 #define D3D11_SHADER_MAX_TYPES (65535)
    671 
    672 #define D3D11_SHADER_MINOR_VERSION (0)
    673 
    674 #define D3D11_VS_OUTPUT_REGISTER_COUNT (32)
    675 
    676 #define D3D11_OMAC_SIZE (16)
    677 
    678 #define D3D11_PS_CS_UAV_REGISTER_COMPONENTS (1)
    679 
    680 #define D3D11_PS_CS_UAV_REGISTER_COUNT (8)
    681 
    682 #define D3D11_PS_CS_UAV_REGISTER_READS_PER_INST (1)
    683 
    684 #define D3D11_PS_CS_UAV_REGISTER_READ_PORTS (1)
    685 
    686 #define D3D11_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
    687 
    688 #define D3D11_PS_FRONTFACING_FALSE_VALUE (0)
    689 
    690 #define D3D11_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
    691 
    692 #define D3D11_PS_INPUT_REGISTER_COMPONENTS (4)
    693 
    694 #define D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
    695 
    696 #define D3D11_PS_INPUT_REGISTER_COUNT (32)
    697 
    698 #define D3D11_PS_INPUT_REGISTER_READS_PER_INST (2)
    699 
    700 #define D3D11_PS_INPUT_REGISTER_READ_PORTS (1)
    701 
    702 #define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)
    703 #define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
    704 
    705 #define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
    706 
    707 #define D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
    708 
    709 #define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
    710 
    711 #define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
    712 
    713 #define D3D11_PS_OUTPUT_MASK_REGISTER_COUNT (1)
    714 
    715 #define D3D11_PS_OUTPUT_REGISTER_COMPONENTS (4)
    716 
    717 #define D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
    718 
    719 #define D3D11_PS_OUTPUT_REGISTER_COUNT (8)
    720 
    721 #define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)
    722 #define D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
    723 
    724 #define D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
    725 
    726 #define D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
    727 
    728 #define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
    729 
    730 #define D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
    731 
    732 #define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
    733 
    734 #define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
    735 
    736 #define D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384)
    737 
    738 #define D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
    739 
    740 #define D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
    741 
    742 #define D3D11_REQ_MAXANISOTROPY (16)
    743 
    744 #define D3D11_REQ_MIP_LEVELS (15)
    745 
    746 #define D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
    747 
    748 #define D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
    749 
    750 #define D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (16384)
    751 
    752 #define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
    753 
    754 #define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)
    755 #define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
    756 
    757 #define D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (20)
    758 
    759 #define D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
    760 
    761 #define D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
    762 
    763 #define D3D11_REQ_TEXTURE1D_U_DIMENSION (16384)
    764 
    765 #define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048)
    766 
    767 #define D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
    768 
    769 #define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
    770 
    771 #define D3D11_REQ_TEXTURECUBE_DIMENSION (16384)
    772 
    773 #define D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
    774 
    775 #define D3D11_SHIFT_INSTRUCTION_PAD_VALUE (0)
    776 
    777 #define D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
    778 
    779 #define D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
    780 
    781 #define D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (512)
    782 
    783 #define D3D11_SO_BUFFER_SLOT_COUNT (4)
    784 
    785 #define D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
    786 
    787 #define D3D11_SO_NO_RASTERIZED_STREAM (0xffffffff)
    788 
    789 #define D3D11_SO_OUTPUT_COMPONENT_COUNT (128)
    790 
    791 #define D3D11_SO_STREAM_COUNT (4)
    792 
    793 #define D3D11_SPEC_DATE_DAY (16)
    794 
    795 #define D3D11_SPEC_DATE_MONTH (5)
    796 
    797 #define D3D11_SPEC_DATE_YEAR (2011)
    798 
    799 #define D3D11_SPEC_VERSION                   (1.07)
    800 #define D3D11_SRGB_GAMMA                     (2.2f)
    801 #define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1    (12.92f)
    802 #define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2    (1.055f)
    803 #define D3D11_SRGB_TO_FLOAT_EXPONENT         (2.4f)
    804 #define D3D11_SRGB_TO_FLOAT_OFFSET           (0.055f)
    805 #define D3D11_SRGB_TO_FLOAT_THRESHOLD        (0.04045f)
    806 #define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)
    807 #define D3D11_STANDARD_COMPONENT_BIT_COUNT (32)
    808 
    809 #define D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
    810 
    811 #define D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
    812 
    813 #define D3D11_STANDARD_PIXEL_COMPONENT_COUNT (128)
    814 
    815 #define D3D11_STANDARD_PIXEL_ELEMENT_COUNT (32)
    816 
    817 #define D3D11_STANDARD_VECTOR_SIZE (4)
    818 
    819 #define D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
    820 
    821 #define D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
    822 
    823 #endif
    824 #ifndef _D3D11_1_CONSTANTS
    825 #define _D3D11_1_CONSTANTS
    826 #define D3D11_1_UAV_SLOT_COUNT (64)
    827 
    828 #endif
    829 #ifndef _D3D11_2_CONSTANTS
    830 #define _D3D11_2_CONSTANTS
    831 #define D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES (0x10000)
    832 
    833 #endif
    834 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
    835 struct CD3D11_DEFAULT {};
    836 extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;
    837 #endif
    838 typedef enum D3D11_BLEND {
    839     D3D11_BLEND_ZERO = 1,
    840     D3D11_BLEND_ONE = 2,
    841     D3D11_BLEND_SRC_COLOR = 3,
    842     D3D11_BLEND_INV_SRC_COLOR = 4,
    843     D3D11_BLEND_SRC_ALPHA = 5,
    844     D3D11_BLEND_INV_SRC_ALPHA = 6,
    845     D3D11_BLEND_DEST_ALPHA = 7,
    846     D3D11_BLEND_INV_DEST_ALPHA = 8,
    847     D3D11_BLEND_DEST_COLOR = 9,
    848     D3D11_BLEND_INV_DEST_COLOR = 10,
    849     D3D11_BLEND_SRC_ALPHA_SAT = 11,
    850     D3D11_BLEND_BLEND_FACTOR = 14,
    851     D3D11_BLEND_INV_BLEND_FACTOR = 15,
    852     D3D11_BLEND_SRC1_COLOR = 16,
    853     D3D11_BLEND_INV_SRC1_COLOR = 17,
    854     D3D11_BLEND_SRC1_ALPHA = 18,
    855     D3D11_BLEND_INV_SRC1_ALPHA = 19
    856 } D3D11_BLEND;
    857 typedef enum D3D11_BLEND_OP {
    858     D3D11_BLEND_OP_ADD = 1,
    859     D3D11_BLEND_OP_SUBTRACT = 2,
    860     D3D11_BLEND_OP_REV_SUBTRACT = 3,
    861     D3D11_BLEND_OP_MIN = 4,
    862     D3D11_BLEND_OP_MAX = 5
    863 } D3D11_BLEND_OP;
    864 typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE {
    865     D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0,
    866     D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1,
    867     D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2,
    868     D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3,
    869     D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4,
    870     D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5,
    871     D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6,
    872     D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7,
    873     D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8
    874 } D3D11_VIDEO_DECODER_BUFFER_TYPE;
    875 typedef enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE {
    876     D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0,
    877     D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1,
    878     D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2,
    879     D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3
    880 } D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE;
    881 typedef enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE {
    882     D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0,
    883     D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1,
    884     D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2
    885 } D3D11_VIDEO_PROCESSOR_OUTPUT_RATE;
    886 typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT {
    887     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0,
    888     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1,
    889     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2,
    890     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3,
    891     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4,
    892     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5,
    893     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
    894     D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7
    895 } D3D11_VIDEO_PROCESSOR_STEREO_FORMAT;
    896 typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE {
    897     D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0,
    898     D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1,
    899     D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2
    900 } D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE;
    901 typedef enum D3D11_VIDEO_PROCESSOR_ROTATION {
    902     D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0,
    903     D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1,
    904     D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2,
    905     D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3
    906 } D3D11_VIDEO_PROCESSOR_ROTATION;
    907 typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS {
    908     D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1,
    909     D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2,
    910     D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
    911     D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8,
    912     D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10
    913 } D3D11_VIDEO_PROCESSOR_DEVICE_CAPS;
    914 typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS {
    915     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1,
    916     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2,
    917     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4,
    918     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8,
    919     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10,
    920     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20,
    921     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40,
    922     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80,
    923     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100,
    924     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200,
    925     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400,
    926     D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x800
    927 } D3D11_VIDEO_PROCESSOR_FEATURE_CAPS;
    928 typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS {
    929     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1,
    930     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2,
    931     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4,
    932     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8,
    933     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10,
    934     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
    935     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40,
    936     D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80
    937 } D3D11_VIDEO_PROCESSOR_FILTER_CAPS;
    938 typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS {
    939     D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1,
    940     D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2,
    941     D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
    942     D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
    943 } D3D11_VIDEO_PROCESSOR_FORMAT_CAPS;
    944 typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS {
    945     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1,
    946     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2,
    947     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4,
    948     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8,
    949     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10,
    950     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20,
    951     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40,
    952     D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80
    953 } D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS;
    954 typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS {
    955     D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1,
    956     D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2,
    957     D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4,
    958     D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8,
    959     D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10
    960 } D3D11_VIDEO_PROCESSOR_STEREO_CAPS;
    961 typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS {
    962     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
    963     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
    964     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
    965     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
    966     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
    967     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
    968 } D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS;
    969 typedef enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS {
    970     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32 = 0x1,
    971     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22 = 0x2,
    972     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224 = 0x4,
    973     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332 = 0x8,
    974     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322 = 0x10,
    975     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55 = 0x20,
    976     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64 = 0x40,
    977     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87 = 0x80,
    978     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223 = 0x100,
    979     D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER = 0x80000000
    980 } D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS;
    981 typedef enum D3D11_CONTENT_PROTECTION_CAPS {
    982     D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE = 0x1,
    983     D3D11_CONTENT_PROTECTION_CAPS_HARDWARE = 0x2,
    984     D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON = 0x4,
    985     D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION = 0x8,
    986     D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY = 0x10,
    987     D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY = 0x20,
    988     D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK = 0x40,
    989     D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY = 0x80,
    990     D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV = 0x100,
    991     D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY = 0x200,
    992     D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT = 0x400,
    993     D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800,
    994     D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000,
    995     D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000,
    996     D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000
    997 } D3D11_CONTENT_PROTECTION_CAPS;
    998 typedef enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE {
    999     D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED = 0x0,
   1000     D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235 = 0x1,
   1001     D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255 = 0x2
   1002 } D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE;
   1003 typedef enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE {
   1004     D3D11_PROCESSIDTYPE_UNKNOWN = 0x0,
   1005     D3D11_PROCESSIDTYPE_DWM = 0x1,
   1006     D3D11_PROCESSIDTYPE_HANDLE = 0x2
   1007 } D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE;
   1008 typedef enum D3D11_BUS_TYPE {
   1009     D3D11_BUS_TYPE_OTHER = 0x0,
   1010     D3D11_BUS_TYPE_PCI = 0x1,
   1011     D3D11_BUS_TYPE_PCIX = 0x2,
   1012     D3D11_BUS_TYPE_PCIEXPRESS = 0x3,
   1013     D3D11_BUS_TYPE_AGP = 0x4,
   1014     D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x10000,
   1015     D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x20000,
   1016     D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x30000,
   1017     D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x40000,
   1018     D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x50000,
   1019     D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = 0x80000000
   1020 } D3D11_BUS_TYPE;
   1021 typedef struct D3D11_BOX {
   1022     UINT left;
   1023     UINT top;
   1024     UINT front;
   1025     UINT right;
   1026     UINT bottom;
   1027     UINT back;
   1028 } D3D11_BOX;
   1029 typedef struct D3D11_BUFFER_RTV {
   1030     __C89_NAMELESS union {
   1031         UINT FirstElement;
   1032         UINT ElementOffset;
   1033     } __C89_NAMELESSUNIONNAME1;
   1034     __C89_NAMELESS union {
   1035         UINT NumElements;
   1036         UINT ElementWidth;
   1037     } __C89_NAMELESSUNIONNAME2;
   1038 } D3D11_BUFFER_RTV;
   1039 typedef struct D3D11_BUFFER_SRV {
   1040     __C89_NAMELESS union {
   1041         UINT FirstElement;
   1042         UINT ElementOffset;
   1043     } __C89_NAMELESSUNIONNAME1;
   1044     __C89_NAMELESS union {
   1045         UINT NumElements;
   1046         UINT ElementWidth;
   1047     } __C89_NAMELESSUNIONNAME2;
   1048 } D3D11_BUFFER_SRV;
   1049 typedef struct D3D11_BUFFER_UAV {
   1050     UINT FirstElement;
   1051     UINT NumElements;
   1052     UINT Flags;
   1053 } D3D11_BUFFER_UAV;
   1054 typedef struct D3D11_BUFFEREX_SRV {
   1055     UINT FirstElement;
   1056     UINT NumElements;
   1057     UINT Flags;
   1058 } D3D11_BUFFEREX_SRV;
   1059 typedef struct D3D11_CLASS_INSTANCE_DESC {
   1060     UINT InstanceId;
   1061     UINT InstanceIndex;
   1062     UINT TypeId;
   1063     UINT ConstantBuffer;
   1064     UINT BaseConstantBufferOffset;
   1065     UINT BaseTexture;
   1066     UINT BaseSampler;
   1067     WINBOOL Created;
   1068 } D3D11_CLASS_INSTANCE_DESC;
   1069 typedef enum D3D11_COMPARISON_FUNC {
   1070     D3D11_COMPARISON_NEVER = 1,
   1071     D3D11_COMPARISON_LESS = 2,
   1072     D3D11_COMPARISON_EQUAL = 3,
   1073     D3D11_COMPARISON_LESS_EQUAL = 4,
   1074     D3D11_COMPARISON_GREATER = 5,
   1075     D3D11_COMPARISON_NOT_EQUAL = 6,
   1076     D3D11_COMPARISON_GREATER_EQUAL = 7,
   1077     D3D11_COMPARISON_ALWAYS = 8
   1078 } D3D11_COMPARISON_FUNC;
   1079 typedef enum D3D11_COUNTER {
   1080     D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
   1081 } D3D11_COUNTER;
   1082 typedef struct D3D11_COUNTER_DESC {
   1083     D3D11_COUNTER Counter;
   1084     UINT MiscFlags;
   1085 } D3D11_COUNTER_DESC;
   1086 typedef struct D3D11_COUNTER_INFO {
   1087     D3D11_COUNTER LastDeviceDependentCounter;
   1088     UINT NumSimultaneousCounters;
   1089     UINT8 NumDetectableParallelUnits;
   1090 } D3D11_COUNTER_INFO;
   1091 typedef enum D3D11_COUNTER_TYPE {
   1092     D3D11_COUNTER_TYPE_FLOAT32 = 0,
   1093     D3D11_COUNTER_TYPE_UINT16 = 1,
   1094     D3D11_COUNTER_TYPE_UINT32 = 2,
   1095     D3D11_COUNTER_TYPE_UINT64 = 3
   1096 } D3D11_COUNTER_TYPE;
   1097 typedef enum D3D11_CULL_MODE {
   1098     D3D11_CULL_NONE = 1,
   1099     D3D11_CULL_FRONT = 2,
   1100     D3D11_CULL_BACK = 3
   1101 } D3D11_CULL_MODE;
   1102 typedef enum D3D11_DEPTH_WRITE_MASK {
   1103     D3D11_DEPTH_WRITE_MASK_ZERO = 0,
   1104     D3D11_DEPTH_WRITE_MASK_ALL = 1
   1105 } D3D11_DEPTH_WRITE_MASK;
   1106 typedef enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS {
   1107     D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
   1108     D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
   1109 } D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
   1110 typedef enum D3D11_DEVICE_CONTEXT_TYPE {
   1111     D3D11_DEVICE_CONTEXT_IMMEDIATE = 0,
   1112     D3D11_DEVICE_CONTEXT_DEFERRED = 1
   1113 } D3D11_DEVICE_CONTEXT_TYPE;
   1114 typedef enum D3D11_DSV_DIMENSION {
   1115     D3D11_DSV_DIMENSION_UNKNOWN = 0,
   1116     D3D11_DSV_DIMENSION_TEXTURE1D = 1,
   1117     D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2,
   1118     D3D11_DSV_DIMENSION_TEXTURE2D = 3,
   1119     D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4,
   1120     D3D11_DSV_DIMENSION_TEXTURE2DMS = 5,
   1121     D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
   1122 } D3D11_DSV_DIMENSION;
   1123 typedef enum D3D11_FEATURE {
   1124     D3D11_FEATURE_THREADING = 0,
   1125     D3D11_FEATURE_DOUBLES = 1,
   1126     D3D11_FEATURE_FORMAT_SUPPORT = 2,
   1127     D3D11_FEATURE_FORMAT_SUPPORT2 = 3,
   1128     D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = 4,
   1129     D3D11_FEATURE_D3D11_OPTIONS = 5,
   1130     D3D11_FEATURE_ARCHITECTURE_INFO = 6,
   1131     D3D11_FEATURE_D3D9_OPTIONS = 7,
   1132     D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = 8,
   1133     D3D11_FEATURE_D3D9_SHADOW_SUPPORT = 9,
   1134     D3D11_FEATURE_D3D11_OPTIONS1 = 10,
   1135     D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = 11,
   1136     D3D11_FEATURE_MARKER_SUPPORT = 12,
   1137     D3D11_FEATURE_D3D9_OPTIONS1 = 13,
   1138     D3D11_FEATURE_D3D11_OPTIONS2 = 14,
   1139     D3D11_FEATURE_D3D11_OPTIONS3 = 15,
   1140     D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 16,
   1141     D3D11_FEATURE_D3D11_OPTIONS4 = 17,
   1142     D3D11_FEATURE_SHADER_CACHE = 18,
   1143     D3D11_FEATURE_D3D11_OPTIONS5 = 19
   1144 } D3D11_FEATURE;
   1145 typedef struct D3D11_FEATURE_DATA_THREADING {
   1146     WINBOOL DriverConcurrentCreates;
   1147     WINBOOL DriverCommandLists;
   1148 } D3D11_FEATURE_DATA_THREADING;
   1149 typedef struct D3D11_FEATURE_DATA_DOUBLES {
   1150     WINBOOL DoublePrecisionFloatShaderOps;
   1151 } D3D11_FEATURE_DATA_DOUBLES;
   1152 typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
   1153     DXGI_FORMAT InFormat;
   1154     UINT OutFormatSupport;
   1155 } D3D11_FEATURE_DATA_FORMAT_SUPPORT;
   1156 typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 {
   1157     DXGI_FORMAT InFormat;
   1158     UINT OutFormatSupport2;
   1159 } D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
   1160 typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS {
   1161     WINBOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
   1162 } D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
   1163 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
   1164     WINBOOL OutputMergerLogicOp;
   1165     WINBOOL UAVOnlyRenderingForcedSampleCount;
   1166     WINBOOL DiscardAPIsSeenByDriver;
   1167     WINBOOL FlagsForUpdateAndCopySeenByDriver;
   1168     WINBOOL ClearView;
   1169     WINBOOL CopyWithOverlap;
   1170     WINBOOL ConstantBufferPartialUpdate;
   1171     WINBOOL ConstantBufferOffsetting;
   1172     WINBOOL MapNoOverwriteOnDynamicConstantBuffer;
   1173     WINBOOL MapNoOverwriteOnDynamicBufferSRV;
   1174     WINBOOL MultisampleRTVWithForcedSampleCountOne;
   1175     WINBOOL SAD4ShaderInstructions;
   1176     WINBOOL ExtendedDoublesShaderInstructions;
   1177     WINBOOL ExtendedResourceSharing;
   1178 } D3D11_FEATURE_DATA_D3D11_OPTIONS;
   1179 typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
   1180     WINBOOL TileBasedDeferredRenderer;
   1181 } D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
   1182 typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS {
   1183     WINBOOL FullNonPow2TextureSupport;
   1184 } D3D11_FEATURE_DATA_D3D9_OPTIONS;
   1185 typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT {
   1186     WINBOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
   1187 } D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT;
   1188 typedef enum D3D11_SHADER_MIN_PRECISION_SUPPORT {
   1189     D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
   1190     D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2
   1191 } D3D11_SHADER_MIN_PRECISION_SUPPORT;
   1192 typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT {
   1193     UINT PixelShaderMinPrecision;
   1194     UINT AllOtherShaderStagesMinPrecision;
   1195 } D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT;
   1196 typedef enum D3D11_TILED_RESOURCES_TIER {
   1197     D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0x0,
   1198     D3D11_TILED_RESOURCES_TIER_1 = 0x1,
   1199     D3D11_TILED_RESOURCES_TIER_2 = 0x2,
   1200     D3D11_TILED_RESOURCES_TIER_3 = 0x3
   1201 } D3D11_TILED_RESOURCES_TIER;
   1202 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 {
   1203     D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
   1204     WINBOOL MinMaxFiltering;
   1205     WINBOOL ClearViewAlsoSupportsDepthOnlyFormats;
   1206     WINBOOL MapOnDefaultBuffers;
   1207 } D3D11_FEATURE_DATA_D3D11_OPTIONS1;
   1208 typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
   1209     WINBOOL SimpleInstancingSupported;
   1210 } D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT;
   1211 typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT {
   1212     WINBOOL Profile;
   1213 } D3D11_FEATURE_DATA_MARKER_SUPPORT;
   1214 typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 {
   1215     WINBOOL FullNonPow2TextureSupported;
   1216     WINBOOL DepthAsTextureWithLessEqualComparisonFilterSupported;
   1217     WINBOOL SimpleInstancingSupported;
   1218     WINBOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported;
   1219 } D3D11_FEATURE_DATA_D3D9_OPTIONS1;
   1220 typedef enum D3D11_CONSERVATIVE_RASTERIZATION_TIER {
   1221     D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0x0,
   1222     D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 0x1,
   1223     D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 0x2,
   1224     D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 0x3
   1225 } D3D11_CONSERVATIVE_RASTERIZATION_TIER;
   1226 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 {
   1227     WINBOOL PSSpecifiedStencilRefSupported;
   1228     WINBOOL TypedUAVLoadAdditionalFormats;
   1229     WINBOOL ROVsSupported;
   1230     D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
   1231     D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
   1232     WINBOOL MapOnDefaultTextures;
   1233     WINBOOL StandardSwizzle;
   1234     WINBOOL UnifiedMemoryArchitecture;
   1235 } D3D11_FEATURE_DATA_D3D11_OPTIONS2;
   1236 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 {
   1237     WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer;
   1238 } D3D11_FEATURE_DATA_D3D11_OPTIONS3;
   1239 typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
   1240     UINT MaxGPUVirtualAddressBitsPerResource;
   1241     UINT MaxGPUVirtualAddressBitsPerProcess;
   1242 } D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
   1243 typedef enum D3D11_SHADER_CACHE_SUPPORT_FLAGS {
   1244     D3D11_SHADER_CACHE_SUPPORT_NONE = 0x0,
   1245     D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x1,
   1246     D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x2
   1247 } D3D11_SHADER_CACHE_SUPPORT_FLAGS;
   1248 typedef struct D3D11_FEATURE_DATA_SHADER_CACHE {
   1249     UINT SupportFlags;
   1250 } D3D11_FEATURE_DATA_SHADER_CACHE;
   1251 typedef enum D3D11_SHARED_RESOURCE_TIER {
   1252     D3D11_SHARED_RESOURCE_TIER_0 = 0,
   1253     D3D11_SHARED_RESOURCE_TIER_1 = 1,
   1254     D3D11_SHARED_RESOURCE_TIER_2 = 2,
   1255     D3D11_SHARED_RESOURCE_TIER_3 = 3
   1256 } D3D11_SHARED_RESOURCE_TIER;
   1257 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS5 {
   1258     D3D11_SHARED_RESOURCE_TIER SharedResourceTier;
   1259 } D3D11_FEATURE_DATA_D3D11_OPTIONS5;
   1260 typedef enum D3D11_FILL_MODE {
   1261     D3D11_FILL_WIREFRAME = 2,
   1262     D3D11_FILL_SOLID = 3
   1263 } D3D11_FILL_MODE;
   1264 typedef enum D3D11_FILTER_TYPE {
   1265     D3D11_FILTER_TYPE_POINT = 0,
   1266     D3D11_FILTER_TYPE_LINEAR = 1
   1267 } D3D11_FILTER_TYPE;
   1268 #define D3D11_MIN_FILTER_SHIFT (4)
   1269 
   1270 #define D3D11_MAG_FILTER_SHIFT (2)
   1271 
   1272 #define D3D11_MIP_FILTER_SHIFT (0)
   1273 
   1274 #define D3D11_FILTER_TYPE_MASK (0x3)
   1275 
   1276 #define D3D11_COMPARISON_FILTERING_BIT (0x80)
   1277 
   1278 #define D3D11_ANISOTROPIC_FILTERING_BIT (0x40)
   1279 
   1280 #define D3D11_ENCODE_BASIC_FILTER(min, mag, mip, bComparison) \
   1281     ((D3D11_FILTER)(((bComparison) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | \
   1282                     (((min)&D3D11_FILTER_TYPE_MASK) << D3D11_MIN_FILTER_SHIFT) | \
   1283                     (((mag)&D3D11_FILTER_TYPE_MASK) << D3D11_MAG_FILTER_SHIFT) | \
   1284                     (((mip)&D3D11_FILTER_TYPE_MASK) << D3D11_MIP_FILTER_SHIFT)))
   1285 #define D3D11_ENCODE_ANISOTROPIC_FILTER(bComparison) \
   1286     ((D3D11_FILTER)(D3D11_ANISOTROPIC_FILTERING_BIT | \
   1287                     D3D11_ENCODE_BASIC_FILTER(D3D11_FILTER_TYPE_LINEAR,D3D11_FILTER_TYPE_LINEAR, \
   1288                                               D3D11_FILTER_TYPE_LINEAR,bComparison)))
   1289 #define D3D11_DECODE_MIN_FILTER(d3d11Filter) \
   1290     ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIN_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))
   1291 #define D3D11_DECODE_MAG_FILTER(d3d11Filter) \
   1292     ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MAG_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))
   1293 #define D3D11_DECODE_MIP_FILTER(d3d11Filter) \
   1294     ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIP_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))
   1295 #define D3D11_DECODE_IS_COMPARISON_FILTER(d3d11Filter) ((d3d11Filter) & D3D11_COMPARISON_FILTERING_BIT)
   1296 #define D3D11_DECODE_IS_ANISOTROPIC_FILTER(d3d11Filter) \
   1297     (((d3d11Filter) & D3D11_ANISOTROPIC_FILTERING_BIT ) \
   1298      && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER(d3d11Filter)) \
   1299      && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER(d3d11Filter)) \
   1300      && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER(d3d11Filter)))
   1301 typedef enum D3D11_FILTER {
   1302     D3D11_FILTER_MIN_MAG_MIP_POINT = 0x0,
   1303     D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
   1304     D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
   1305     D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
   1306     D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
   1307     D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
   1308     D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
   1309     D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
   1310     D3D11_FILTER_ANISOTROPIC = 0x55,
   1311     D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
   1312     D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
   1313     D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
   1314     D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
   1315     D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
   1316     D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
   1317     D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
   1318     D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
   1319     D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
   1320     D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
   1321     D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
   1322     D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
   1323     D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
   1324     D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
   1325     D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
   1326     D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
   1327     D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
   1328     D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
   1329     D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
   1330     D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
   1331     D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
   1332     D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
   1333     D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
   1334     D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
   1335     D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
   1336     D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
   1337     D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
   1338 } D3D11_FILTER;
   1339 typedef enum D3D11_DSV_FLAG {
   1340     D3D11_DSV_READ_ONLY_DEPTH = 0x1,
   1341     D3D11_DSV_READ_ONLY_STENCIL = 0x2
   1342 } D3D11_DSV_FLAG;
   1343 typedef enum D3D11_BUFFEREX_SRV_FLAG {
   1344     D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1
   1345 } D3D11_BUFFEREX_SRV_FLAG;
   1346 typedef enum D3D11_UAV_FLAG {
   1347     D3D11_BUFFER_UAV_FLAG_RAW = 0x1,
   1348     D3D11_BUFFER_UAV_FLAG_APPEND = 0x2,
   1349     D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4
   1350 } D3D11_UAV_FLAG;
   1351 typedef enum D3D11_INPUT_CLASSIFICATION {
   1352     D3D11_INPUT_PER_VERTEX_DATA = 0,
   1353     D3D11_INPUT_PER_INSTANCE_DATA = 1
   1354 } D3D11_INPUT_CLASSIFICATION;
   1355 #define D3D11_APPEND_ALIGNED_ELEMENT (0xffffffff)
   1356 
   1357 typedef struct D3D11_INPUT_ELEMENT_DESC {
   1358     LPCSTR SemanticName;
   1359     UINT SemanticIndex;
   1360     DXGI_FORMAT Format;
   1361     UINT InputSlot;
   1362     UINT AlignedByteOffset;
   1363     D3D11_INPUT_CLASSIFICATION InputSlotClass;
   1364     UINT InstanceDataStepRate;
   1365 } D3D11_INPUT_ELEMENT_DESC;
   1366 typedef enum D3D11_MAP {
   1367     D3D11_MAP_READ = 1,
   1368     D3D11_MAP_WRITE = 2,
   1369     D3D11_MAP_READ_WRITE = 3,
   1370     D3D11_MAP_WRITE_DISCARD = 4,
   1371     D3D11_MAP_WRITE_NO_OVERWRITE = 5
   1372 } D3D11_MAP;
   1373 typedef enum D3D11_MAP_FLAG {
   1374     D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000
   1375 } D3D11_MAP_FLAG;
   1376 typedef enum D3D11_RAISE_FLAG {
   1377     D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1
   1378 } D3D11_RAISE_FLAG;
   1379 typedef struct D3D11_QUERY_DATA_SO_STATISTICS {
   1380     UINT64 NumPrimitivesWritten;
   1381     UINT64 PrimitivesStorageNeeded;
   1382 } D3D11_QUERY_DATA_SO_STATISTICS;
   1383 typedef struct D3D11_MAPPED_SUBRESOURCE {
   1384     void *pData;
   1385     UINT RowPitch;
   1386     UINT DepthPitch;
   1387 } D3D11_MAPPED_SUBRESOURCE;
   1388 typedef enum D3D11_QUERY {
   1389     D3D11_QUERY_EVENT = 0,
   1390     D3D11_QUERY_OCCLUSION = 1,
   1391     D3D11_QUERY_TIMESTAMP = 2,
   1392     D3D11_QUERY_TIMESTAMP_DISJOINT = 3,
   1393     D3D11_QUERY_PIPELINE_STATISTICS = 4,
   1394     D3D11_QUERY_OCCLUSION_PREDICATE = 5,
   1395     D3D11_QUERY_SO_STATISTICS = 6,
   1396     D3D11_QUERY_SO_OVERFLOW_PREDICATE = 7,
   1397     D3D11_QUERY_SO_STATISTICS_STREAM0 = 8,
   1398     D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = 9,
   1399     D3D11_QUERY_SO_STATISTICS_STREAM1 = 10,
   1400     D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = 11,
   1401     D3D11_QUERY_SO_STATISTICS_STREAM2 = 12,
   1402     D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = 13,
   1403     D3D11_QUERY_SO_STATISTICS_STREAM3 = 14,
   1404     D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = 15
   1405 } D3D11_QUERY;
   1406 typedef enum D3D11_QUERY_MISC_FLAG {
   1407     D3D11_QUERY_MISC_PREDICATEHINT = 0x1
   1408 } D3D11_QUERY_MISC_FLAG;
   1409 typedef enum D3D11_ASYNC_GETDATA_FLAG {
   1410     D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1
   1411 } D3D11_ASYNC_GETDATA_FLAG;
   1412 typedef enum D3D11_RESOURCE_MISC_FLAG {
   1413     D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1,
   1414     D3D11_RESOURCE_MISC_SHARED = 0x2,
   1415     D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4,
   1416     D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10,
   1417     D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20,
   1418     D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40,
   1419     D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80,
   1420     D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100,
   1421     D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200,
   1422     D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800,
   1423     D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000,
   1424     D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000,
   1425     D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000,
   1426     D3D11_RESOURCE_MISC_GUARDED = 0x8000,
   1427     D3D11_RESOURCE_MISC_TILE_POOL = 0x20000,
   1428     D3D11_RESOURCE_MISC_TILED = 0x40000,
   1429     D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000,
   1430     D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE = 0x100000,
   1431     D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER = 0x200000
   1432 } D3D11_RESOURCE_MISC_FLAG;
   1433 typedef struct D3D11_QUERY_DESC {
   1434     D3D11_QUERY Query;
   1435     UINT MiscFlags;
   1436 } D3D11_QUERY_DESC;
   1437 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   1438 struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC {
   1439     CD3D11_QUERY_DESC() {}
   1440     ~CD3D11_QUERY_DESC() {}
   1441     explicit CD3D11_QUERY_DESC(const D3D11_QUERY_DESC &other) : D3D11_QUERY_DESC(other) {}
   1442     explicit CD3D11_QUERY_DESC(D3D11_QUERY query, UINT misc_flags = 0) {
   1443         Query = query;
   1444         MiscFlags = misc_flags;
   1445     }
   1446     operator const D3D11_QUERY_DESC&() const {
   1447         return *this;
   1448     }
   1449 };
   1450 #endif
   1451 typedef struct D3D11_RASTERIZER_DESC {
   1452     D3D11_FILL_MODE FillMode;
   1453     D3D11_CULL_MODE CullMode;
   1454     WINBOOL FrontCounterClockwise;
   1455     INT DepthBias;
   1456     FLOAT DepthBiasClamp;
   1457     FLOAT SlopeScaledDepthBias;
   1458     WINBOOL DepthClipEnable;
   1459     WINBOOL ScissorEnable;
   1460     WINBOOL MultisampleEnable;
   1461     WINBOOL AntialiasedLineEnable;
   1462 } D3D11_RASTERIZER_DESC;
   1463 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   1464 struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC {
   1465     CD3D11_RASTERIZER_DESC() {}
   1466     explicit CD3D11_RASTERIZER_DESC(const D3D11_RASTERIZER_DESC &o) : D3D11_RASTERIZER_DESC(o) {}
   1467     explicit CD3D11_RASTERIZER_DESC(CD3D11_DEFAULT) {
   1468         FillMode = D3D11_FILL_SOLID;
   1469         CullMode = D3D11_CULL_BACK;
   1470         FrontCounterClockwise = FALSE;
   1471         DepthBias = D3D11_DEFAULT_DEPTH_BIAS;
   1472         DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;
   1473         SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;
   1474         DepthClipEnable = TRUE;
   1475         ScissorEnable = FALSE;
   1476         MultisampleEnable = FALSE;
   1477         AntialiasedLineEnable = FALSE;
   1478     }
   1479     explicit CD3D11_RASTERIZER_DESC(D3D11_FILL_MODE fillMode, D3D11_CULL_MODE cullMode,
   1480             WINBOOL frontCounterClockwise, INT depthBias, FLOAT depthBiasClamp, FLOAT slopeScaledDepthBias,
   1481             BOOL depthClipEnable, WINBOOL scissorEnable, WINBOOL multisampleEnable, WINBOOL antialiasedLineEnable) {
   1482         FillMode = fillMode;
   1483         CullMode = cullMode;
   1484         FrontCounterClockwise = frontCounterClockwise;
   1485         DepthBias = depthBias;
   1486         DepthBiasClamp = depthBiasClamp;
   1487         SlopeScaledDepthBias = slopeScaledDepthBias;
   1488         DepthClipEnable = depthClipEnable;
   1489         ScissorEnable = scissorEnable;
   1490         MultisampleEnable = multisampleEnable;
   1491         AntialiasedLineEnable = antialiasedLineEnable;
   1492     }
   1493     ~CD3D11_RASTERIZER_DESC() {}
   1494     operator const D3D11_RASTERIZER_DESC&() const { return *this; }
   1495 };
   1496 #endif
   1497 typedef enum D3D11_RESOURCE_DIMENSION {
   1498     D3D11_RESOURCE_DIMENSION_UNKNOWN = 0,
   1499     D3D11_RESOURCE_DIMENSION_BUFFER = 1,
   1500     D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2,
   1501     D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3,
   1502     D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4
   1503 } D3D11_RESOURCE_DIMENSION;
   1504 typedef enum D3D11_RTV_DIMENSION {
   1505     D3D11_RTV_DIMENSION_UNKNOWN = 0,
   1506     D3D11_RTV_DIMENSION_BUFFER = 1,
   1507     D3D11_RTV_DIMENSION_TEXTURE1D = 2,
   1508     D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3,
   1509     D3D11_RTV_DIMENSION_TEXTURE2D = 4,
   1510     D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5,
   1511     D3D11_RTV_DIMENSION_TEXTURE2DMS = 6,
   1512     D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
   1513     D3D11_RTV_DIMENSION_TEXTURE3D = 8
   1514 } D3D11_RTV_DIMENSION;
   1515 typedef struct D3D11_SO_DECLARATION_ENTRY {
   1516     UINT Stream;
   1517     LPCSTR SemanticName;
   1518     UINT SemanticIndex;
   1519     BYTE StartComponent;
   1520     BYTE ComponentCount;
   1521     BYTE OutputSlot;
   1522 } D3D11_SO_DECLARATION_ENTRY;
   1523 typedef enum D3D11_STENCIL_OP {
   1524     D3D11_STENCIL_OP_KEEP = 1,
   1525     D3D11_STENCIL_OP_ZERO = 2,
   1526     D3D11_STENCIL_OP_REPLACE = 3,
   1527     D3D11_STENCIL_OP_INCR_SAT = 4,
   1528     D3D11_STENCIL_OP_DECR_SAT = 5,
   1529     D3D11_STENCIL_OP_INVERT = 6,
   1530     D3D11_STENCIL_OP_INCR = 7,
   1531     D3D11_STENCIL_OP_DECR = 8
   1532 } D3D11_STENCIL_OP;
   1533 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   1534 }
   1535 inline UINT D3D11CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) {
   1536     return MipSlice + ArraySlice * MipLevels;
   1537 }
   1538 extern "C"{
   1539 #endif
   1540 typedef struct D3D11_SUBRESOURCE_DATA {
   1541     const void *pSysMem;
   1542     UINT SysMemPitch;
   1543     UINT SysMemSlicePitch;
   1544 } D3D11_SUBRESOURCE_DATA;
   1545 typedef struct D3D11_TEX1D_ARRAY_DSV {
   1546     UINT MipSlice;
   1547     UINT FirstArraySlice;
   1548     UINT ArraySize;
   1549 } D3D11_TEX1D_ARRAY_DSV;
   1550 typedef struct D3D11_TEX1D_ARRAY_RTV {
   1551     UINT MipSlice;
   1552     UINT FirstArraySlice;
   1553     UINT ArraySize;
   1554 } D3D11_TEX1D_ARRAY_RTV;
   1555 typedef struct D3D11_TEX1D_ARRAY_SRV {
   1556     UINT MostDetailedMip;
   1557     UINT MipLevels;
   1558     UINT FirstArraySlice;
   1559     UINT ArraySize;
   1560 } D3D11_TEX1D_ARRAY_SRV;
   1561 typedef struct D3D11_TEX1D_ARRAY_UAV {
   1562     UINT MipSlice;
   1563     UINT FirstArraySlice;
   1564     UINT ArraySize;
   1565 } D3D11_TEX1D_ARRAY_UAV;
   1566 typedef struct D3D11_TEX1D_DSV {
   1567     UINT MipSlice;
   1568 } D3D11_TEX1D_DSV;
   1569 typedef struct D3D11_TEX1D_RTV {
   1570     UINT MipSlice;
   1571 } D3D11_TEX1D_RTV;
   1572 typedef struct D3D11_TEX1D_SRV {
   1573     UINT MostDetailedMip;
   1574     UINT MipLevels;
   1575 } D3D11_TEX1D_SRV;
   1576 typedef struct D3D11_TEX1D_UAV {
   1577     UINT MipSlice;
   1578 } D3D11_TEX1D_UAV;
   1579 typedef struct D3D11_TEX2D_ARRAY_DSV {
   1580     UINT MipSlice;
   1581     UINT FirstArraySlice;
   1582     UINT ArraySize;
   1583 } D3D11_TEX2D_ARRAY_DSV;
   1584 typedef struct D3D11_TEX2D_ARRAY_RTV {
   1585     UINT MipSlice;
   1586     UINT FirstArraySlice;
   1587     UINT ArraySize;
   1588 } D3D11_TEX2D_ARRAY_RTV;
   1589 typedef struct D3D11_TEX2D_ARRAY_SRV {
   1590     UINT MostDetailedMip;
   1591     UINT MipLevels;
   1592     UINT FirstArraySlice;
   1593     UINT ArraySize;
   1594 } D3D11_TEX2D_ARRAY_SRV;
   1595 typedef struct D3D11_TEX2D_ARRAY_UAV {
   1596     UINT MipSlice;
   1597     UINT FirstArraySlice;
   1598     UINT ArraySize;
   1599 } D3D11_TEX2D_ARRAY_UAV;
   1600 typedef struct D3D11_TEX2D_DSV {
   1601     UINT MipSlice;
   1602 } D3D11_TEX2D_DSV;
   1603 typedef struct D3D11_TEX2D_RTV {
   1604     UINT MipSlice;
   1605 } D3D11_TEX2D_RTV;
   1606 typedef struct D3D11_TEX2D_SRV {
   1607     UINT MostDetailedMip;
   1608     UINT MipLevels;
   1609 } D3D11_TEX2D_SRV;
   1610 typedef struct D3D11_TEX2D_UAV {
   1611     UINT MipSlice;
   1612 } D3D11_TEX2D_UAV;
   1613 typedef struct D3D11_TEX2DMS_ARRAY_DSV {
   1614     UINT FirstArraySlice;
   1615     UINT ArraySize;
   1616 } D3D11_TEX2DMS_ARRAY_DSV;
   1617 typedef struct D3D11_TEX2DMS_ARRAY_RTV {
   1618     UINT FirstArraySlice;
   1619     UINT ArraySize;
   1620 } D3D11_TEX2DMS_ARRAY_RTV;
   1621 typedef struct D3D11_TEX2DMS_ARRAY_SRV {
   1622     UINT FirstArraySlice;
   1623     UINT ArraySize;
   1624 } D3D11_TEX2DMS_ARRAY_SRV;
   1625 typedef struct D3D11_TEX2DMS_DSV {
   1626     UINT UnusedField_NothingToDefine;
   1627 } D3D11_TEX2DMS_DSV;
   1628 typedef struct D3D11_TEX2DMS_RTV {
   1629     UINT UnusedField_NothingToDefine;
   1630 } D3D11_TEX2DMS_RTV;
   1631 typedef struct D3D11_TEX2DMS_SRV {
   1632     UINT UnusedField_NothingToDefine;
   1633 } D3D11_TEX2DMS_SRV;
   1634 typedef struct D3D11_TEX3D_RTV {
   1635     UINT MipSlice;
   1636     UINT FirstWSlice;
   1637     UINT WSize;
   1638 } D3D11_TEX3D_RTV;
   1639 typedef struct D3D11_TEX3D_SRV {
   1640     UINT MostDetailedMip;
   1641     UINT MipLevels;
   1642 } D3D11_TEX3D_SRV;
   1643 typedef struct D3D11_TEX3D_UAV {
   1644     UINT MipSlice;
   1645     UINT FirstWSlice;
   1646     UINT WSize;
   1647 } D3D11_TEX3D_UAV;
   1648 typedef struct D3D11_TEXCUBE_ARRAY_SRV {
   1649     UINT MostDetailedMip;
   1650     UINT MipLevels;
   1651     UINT First2DArrayFace;
   1652     UINT NumCubes;
   1653 } D3D11_TEXCUBE_ARRAY_SRV;
   1654 typedef struct D3D11_TEXCUBE_SRV {
   1655     UINT MostDetailedMip;
   1656     UINT MipLevels;
   1657 } D3D11_TEXCUBE_SRV;
   1658 typedef enum D3D11_TEXTURE_ADDRESS_MODE {
   1659     D3D11_TEXTURE_ADDRESS_WRAP = 1,
   1660     D3D11_TEXTURE_ADDRESS_MIRROR = 2,
   1661     D3D11_TEXTURE_ADDRESS_CLAMP = 3,
   1662     D3D11_TEXTURE_ADDRESS_BORDER = 4,
   1663     D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5
   1664 } D3D11_TEXTURE_ADDRESS_MODE;
   1665 typedef enum D3D11_UAV_DIMENSION {
   1666     D3D11_UAV_DIMENSION_UNKNOWN = 0,
   1667     D3D11_UAV_DIMENSION_BUFFER = 1,
   1668     D3D11_UAV_DIMENSION_TEXTURE1D = 2,
   1669     D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3,
   1670     D3D11_UAV_DIMENSION_TEXTURE2D = 4,
   1671     D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5,
   1672     D3D11_UAV_DIMENSION_TEXTURE3D = 8
   1673 } D3D11_UAV_DIMENSION;
   1674 typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC {
   1675     DXGI_FORMAT Format;
   1676     D3D11_UAV_DIMENSION ViewDimension;
   1677     __C89_NAMELESS union {
   1678         D3D11_BUFFER_UAV Buffer;
   1679         D3D11_TEX1D_UAV Texture1D;
   1680         D3D11_TEX1D_ARRAY_UAV Texture1DArray;
   1681         D3D11_TEX2D_UAV Texture2D;
   1682         D3D11_TEX2D_ARRAY_UAV Texture2DArray;
   1683         D3D11_TEX3D_UAV Texture3D;
   1684     } __C89_NAMELESSUNIONNAME;
   1685 } D3D11_UNORDERED_ACCESS_VIEW_DESC;
   1686 typedef enum D3D11_USAGE {
   1687     D3D11_USAGE_DEFAULT = 0,
   1688     D3D11_USAGE_IMMUTABLE = 1,
   1689     D3D11_USAGE_DYNAMIC = 2,
   1690     D3D11_USAGE_STAGING = 3
   1691 } D3D11_USAGE;
   1692 typedef enum D3D11_BIND_FLAG {
   1693     D3D11_BIND_VERTEX_BUFFER = 0x1,
   1694     D3D11_BIND_INDEX_BUFFER = 0x2,
   1695     D3D11_BIND_CONSTANT_BUFFER = 0x4,
   1696     D3D11_BIND_SHADER_RESOURCE = 0x8,
   1697     D3D11_BIND_STREAM_OUTPUT = 0x10,
   1698     D3D11_BIND_RENDER_TARGET = 0x20,
   1699     D3D11_BIND_DEPTH_STENCIL = 0x40,
   1700     D3D11_BIND_UNORDERED_ACCESS = 0x80,
   1701     D3D11_BIND_DECODER = 0x200,
   1702     D3D11_BIND_VIDEO_ENCODER = 0x400
   1703 } D3D11_BIND_FLAG;
   1704 typedef enum D3D11_CPU_ACCESS_FLAG {
   1705     D3D11_CPU_ACCESS_WRITE = 0x10000,
   1706     D3D11_CPU_ACCESS_READ = 0x20000
   1707 } D3D11_CPU_ACCESS_FLAG;
   1708 typedef struct D3D11_VIEWPORT {
   1709     FLOAT TopLeftX;
   1710     FLOAT TopLeftY;
   1711     FLOAT Width;
   1712     FLOAT Height;
   1713     FLOAT MinDepth;
   1714     FLOAT MaxDepth;
   1715 } D3D11_VIEWPORT;
   1716 typedef enum D3D11_COLOR_WRITE_ENABLE {
   1717     D3D11_COLOR_WRITE_ENABLE_RED = 1,
   1718     D3D11_COLOR_WRITE_ENABLE_GREEN = 2,
   1719     D3D11_COLOR_WRITE_ENABLE_BLUE = 4,
   1720     D3D11_COLOR_WRITE_ENABLE_ALPHA = 8,
   1721     D3D11_COLOR_WRITE_ENABLE_ALL = ((D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN) | D3D11_COLOR_WRITE_ENABLE_BLUE) | D3D11_COLOR_WRITE_ENABLE_ALPHA
   1722 } D3D11_COLOR_WRITE_ENABLE;
   1723 typedef enum D3D11_FORMAT_SUPPORT {
   1724     D3D11_FORMAT_SUPPORT_BUFFER = 0x1,
   1725     D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
   1726     D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
   1727     D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8,
   1728     D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10,
   1729     D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20,
   1730     D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40,
   1731     D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
   1732     D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
   1733     D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
   1734     D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
   1735     D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
   1736     D3D11_FORMAT_SUPPORT_MIP = 0x1000,
   1737     D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
   1738     D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
   1739     D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000,
   1740     D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
   1741     D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
   1742     D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
   1743     D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000,
   1744     D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
   1745     D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
   1746     D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
   1747     D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
   1748     D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000,
   1749     D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
   1750     D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000,
   1751     D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x8000000,
   1752     D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
   1753     D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000,
   1754     D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000
   1755 } D3D11_FORMAT_SUPPORT;
   1756 typedef enum D3D11_FORMAT_SUPPORT2 {
   1757     D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
   1758     D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
   1759     D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
   1760     D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
   1761     D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
   1762     D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
   1763     D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
   1764     D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
   1765     D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
   1766     D3D11_FORMAT_SUPPORT2_TILED = 0x200,
   1767     D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400,
   1768     D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000
   1769 } D3D11_FORMAT_SUPPORT2;
   1770 typedef enum D3D11_CLEAR_FLAG {
   1771     D3D11_CLEAR_DEPTH = 0x1,
   1772     D3D11_CLEAR_STENCIL = 0x2
   1773 } D3D11_CLEAR_FLAG;
   1774 typedef struct D3D11_RENDER_TARGET_BLEND_DESC {
   1775     WINBOOL BlendEnable;
   1776     D3D11_BLEND SrcBlend;
   1777     D3D11_BLEND DestBlend;
   1778     D3D11_BLEND_OP BlendOp;
   1779     D3D11_BLEND SrcBlendAlpha;
   1780     D3D11_BLEND DestBlendAlpha;
   1781     D3D11_BLEND_OP BlendOpAlpha;
   1782     UINT8 RenderTargetWriteMask;
   1783 } D3D11_RENDER_TARGET_BLEND_DESC;
   1784 typedef struct D3D11_BLEND_DESC {
   1785     WINBOOL AlphaToCoverageEnable;
   1786     WINBOOL IndependentBlendEnable;
   1787     D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[8];
   1788 } D3D11_BLEND_DESC;
   1789 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   1790 struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC {
   1791     CD3D11_BLEND_DESC() {}
   1792     explicit CD3D11_BLEND_DESC(const D3D11_BLEND_DESC &o) : D3D11_BLEND_DESC(o) {}
   1793     explicit CD3D11_BLEND_DESC(CD3D11_DEFAULT) {
   1794         AlphaToCoverageEnable = FALSE;
   1795         IndependentBlendEnable = FALSE;
   1796         for(D3D11_RENDER_TARGET_BLEND_DESC *target = RenderTarget;
   1797                 target < RenderTarget + D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT;
   1798                 target++) {
   1799             target->BlendEnable = FALSE;
   1800             target->SrcBlend = target->SrcBlendAlpha = D3D11_BLEND_ONE;
   1801             target->DestBlend = target->DestBlendAlpha = D3D11_BLEND_ZERO;
   1802             target->BlendOp = target->BlendOpAlpha = D3D11_BLEND_OP_ADD;
   1803             target->RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
   1804         }
   1805     }
   1806     ~CD3D11_BLEND_DESC() {}
   1807     operator const D3D11_BLEND_DESC&() const { return *this; }
   1808 };
   1809 #endif
   1810 typedef struct D3D11_BUFFER_DESC {
   1811     UINT ByteWidth;
   1812     D3D11_USAGE Usage;
   1813     UINT BindFlags;
   1814     UINT CPUAccessFlags;
   1815     UINT MiscFlags;
   1816     UINT StructureByteStride;
   1817 } D3D11_BUFFER_DESC;
   1818 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   1819 struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC {
   1820     CD3D11_BUFFER_DESC() {}
   1821     explicit CD3D11_BUFFER_DESC(const D3D11_BUFFER_DESC &o) : D3D11_BUFFER_DESC(o) {}
   1822     explicit CD3D11_BUFFER_DESC(UINT byteWidth,UINT bindFlags,
   1823             D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0,
   1824             UINT miscFlags = 0, UINT structureByteStride = 0 ) {
   1825         ByteWidth = byteWidth;
   1826         Usage = usage;
   1827         BindFlags = bindFlags;
   1828         CPUAccessFlags = cpuaccessFlags;
   1829         MiscFlags = miscFlags;
   1830         StructureByteStride = structureByteStride;
   1831     }
   1832     ~CD3D11_BUFFER_DESC() {}
   1833     operator const D3D11_BUFFER_DESC&() const { return *this; }
   1834 };
   1835 #endif
   1836 typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC {
   1837     DXGI_FORMAT Format;
   1838     D3D11_DSV_DIMENSION ViewDimension;
   1839     UINT Flags;
   1840     __C89_NAMELESS union {
   1841         D3D11_TEX1D_DSV Texture1D;
   1842         D3D11_TEX1D_ARRAY_DSV Texture1DArray;
   1843         D3D11_TEX2D_DSV Texture2D;
   1844         D3D11_TEX2D_ARRAY_DSV Texture2DArray;
   1845         D3D11_TEX2DMS_DSV Texture2DMS;
   1846         D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
   1847     } __C89_NAMELESSUNIONNAME;
   1848 } D3D11_DEPTH_STENCIL_VIEW_DESC;
   1849 typedef struct D3D11_DEPTH_STENCILOP_DESC {
   1850     D3D11_STENCIL_OP StencilFailOp;
   1851     D3D11_STENCIL_OP StencilDepthFailOp;
   1852     D3D11_STENCIL_OP StencilPassOp;
   1853     D3D11_COMPARISON_FUNC StencilFunc;
   1854 } D3D11_DEPTH_STENCILOP_DESC;
   1855 typedef struct D3D11_DEPTH_STENCIL_DESC {
   1856     WINBOOL DepthEnable;
   1857     D3D11_DEPTH_WRITE_MASK DepthWriteMask;
   1858     D3D11_COMPARISON_FUNC DepthFunc;
   1859     WINBOOL StencilEnable;
   1860     UINT8 StencilReadMask;
   1861     UINT8 StencilWriteMask;
   1862     D3D11_DEPTH_STENCILOP_DESC FrontFace;
   1863     D3D11_DEPTH_STENCILOP_DESC BackFace;
   1864 } D3D11_DEPTH_STENCIL_DESC;
   1865 #if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
   1866 struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC {
   1867     CD3D11_DEPTH_STENCIL_DESC() {}
   1868     explicit CD3D11_DEPTH_STENCIL_DESC(const D3D11_DEPTH_STENCIL_DESC &other) : D3D11_DEPTH_STENCIL_DESC(other) {}
   1869     explicit CD3D11_DEPTH_STENCIL_DESC(CD3D11_DEFAULT) {
   1870         const D3D11_DEPTH_STENCILOP_DESC default_op =
   1871             {D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS};
   1872         DepthEnable = TRUE;
   1873         DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
   1874         DepthFunc = D3D11_COMPARISON_LESS;
   1875         StencilEnable = FALSE;
   1876         StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
   1877         StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
   1878         FrontFace = default_op;
   1879         BackFace = default_op;
   1880     }
   1881     explicit CD3D11_DEPTH_STENCIL_DESC(
   1882             WINBOOL depth_enable,
   1883             D3D11_DEPTH_WRITE_MASK depth_write_mask,
   1884             D3D11_COMPARISON_FUNC depth_func,
   1885             WINBOOL stencil_enable,
   1886             UINT8 stencil_read_mask,
   1887             UINT8 stencil_write_mask,
   1888             D3D11_STENCIL_OP front_stencil_fail_op,
   1889             D3D11_STENCIL_OP front_stencil_depth_fail_op,
   1890             D3D11_STENCIL_OP front_stencil_pass_op,
   1891             D3D11_COMPARISON_FUNC front_stencil_func,
   1892             D3D11_STENCIL_OP back_stencil_fail_op,
   1893             D3D11_STENCIL_OP back_stencil_depth_fail_op,
   1894             D3D11_STENCIL_OP back_stencil_pass_op,
   1895             D3D11_COMPARISON_FUNC back_stencil_func) {
   1896         DepthEnable = depth_enable;
   1897         DepthWriteMask = depth_write_mask;
   1898         DepthFunc = depth_func;
   1899         StencilEnable = stencil_enable;
   1900         StencilReadMask = stencil_read_mask;
   1901         StencilWriteMask = stencil_write_mask;
   1902         FrontFace.StencilFailOp = front_stencil_fail_op;
   1903         FrontFace.StencilDepthFailOp = front_stencil_depth_fail_op;
   1904         FrontFace.StencilPassOp = front_stencil_pass_op;
   1905         FrontFace.StencilFunc = front_stencil_func;
   1906         BackFace.StencilFailOp = back_stencil_fail_op;
   1907         BackFace.StencilDepthFailOp = back_stencil_depth_fail_op;
   1908         BackFace.StencilPassOp = back_stencil_pass_op;
   1909         BackFace.StencilFunc = back_stencil_func;
   1910     }
   1911     ~CD3D11_DEPTH_STENCIL_DESC() {}
   1912     operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; }
   1913 };
   1914 #endif
   1915 typedef struct D3D11_RENDER_TARGET_VIEW_DESC {
   1916     DXGI_FORMAT Format;
   1917     D3D11_RTV_DIMENSION ViewDimension;
   1918     __C89_NAMELESS union {
   1919         D3D11_BUFFER_RTV Buffer;
   1920         D3D11_TEX1D_RTV Texture1D;
   1921         D3D11_TEX1D_ARRAY_RTV Texture1DArray;
   1922         D3D11_TEX2D_RTV Texture2D;
   1923         D3D11_TEX2D_ARRAY_RTV Texture2DArray;
   1924         D3D11_TEX2DMS_RTV Texture2DMS;
   1925         D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
   1926         D3D11_TEX3D_RTV Texture3D;
   1927     } __C89_NAMELESSUNIONNAME;
   1928 } D3D11_RENDER_TARGET_VIEW_DESC;
   1929 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   1930 struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC {
   1931     CD3D11_RENDER_TARGET_VIEW_DESC() {}
   1932     explicit CD3D11_RENDER_TARGET_VIEW_DESC(D3D11_RTV_DIMENSION dim, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
   1933             UINT mip_slice = 0, UINT first_slice = 0, UINT array_size = -1) {
   1934         Format = format;
   1935         ViewDimension = dim;
   1936         switch(dim) {
   1937         case D3D11_RTV_DIMENSION_BUFFER:
   1938             Buffer.FirstElement = mip_slice;
   1939             Buffer.NumElements = first_slice;
   1940             break;
   1941         case D3D11_RTV_DIMENSION_TEXTURE1D:
   1942             Texture1D.MipSlice = mip_slice;
   1943             break;
   1944         case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
   1945             Texture1DArray.MipSlice = mip_slice;
   1946             Texture1DArray.FirstArraySlice = first_slice;
   1947             Texture1DArray.ArraySize = array_size;
   1948             break;
   1949         case D3D11_RTV_DIMENSION_TEXTURE2D:
   1950             Texture2D.MipSlice = mip_slice;
   1951             break;
   1952         case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
   1953             Texture2DArray.MipSlice = mip_slice;
   1954             Texture2DArray.FirstArraySlice = first_slice;
   1955             Texture2DArray.ArraySize = array_size;
   1956             break;
   1957         case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
   1958             Texture2DMSArray.FirstArraySlice = first_slice;
   1959             Texture2DMSArray.ArraySize = array_size;
   1960             break;
   1961         case D3D11_RTV_DIMENSION_TEXTURE3D:
   1962             Texture3D.MipSlice = mip_slice;
   1963             Texture3D.FirstWSlice = first_slice;
   1964             Texture3D.WSize = array_size;
   1965             break;
   1966         default:
   1967             break;
   1968         }
   1969     }
   1970     explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,
   1971             UINT elem_cnt) {
   1972         Format = format;
   1973         ViewDimension = D3D11_RTV_DIMENSION_BUFFER;
   1974         Buffer.FirstElement = first_elem;
   1975         Buffer.NumElements = elem_cnt;
   1976     }
   1977     explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture1D *texture, D3D11_RTV_DIMENSION dim,
   1978             DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,
   1979             UINT array_size = -1);
   1980     explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture2D *texture, D3D11_RTV_DIMENSION dim,
   1981             DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,
   1982             UINT array_size = -1);
   1983     explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
   1984             UINT mip_slice = 0, UINT first_w_slice = 0, UINT w_slice = -1 );
   1985     ~CD3D11_RENDER_TARGET_VIEW_DESC() {}
   1986     explicit CD3D11_RENDER_TARGET_VIEW_DESC(const D3D11_RENDER_TARGET_VIEW_DESC &other)
   1987         : D3D11_RENDER_TARGET_VIEW_DESC(other) {}
   1988     operator const D3D11_RENDER_TARGET_VIEW_DESC&() const {
   1989         return *this;
   1990     }
   1991 };
   1992 #endif
   1993 typedef struct D3D11_SAMPLER_DESC {
   1994     D3D11_FILTER Filter;
   1995     D3D11_TEXTURE_ADDRESS_MODE AddressU;
   1996     D3D11_TEXTURE_ADDRESS_MODE AddressV;
   1997     D3D11_TEXTURE_ADDRESS_MODE AddressW;
   1998     FLOAT MipLODBias;
   1999     UINT MaxAnisotropy;
   2000     D3D11_COMPARISON_FUNC ComparisonFunc;
   2001     FLOAT BorderColor[4];
   2002     FLOAT MinLOD;
   2003     FLOAT MaxLOD;
   2004 } D3D11_SAMPLER_DESC;
   2005 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   2006 struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC {
   2007     CD3D11_SAMPLER_DESC() {}
   2008     explicit CD3D11_SAMPLER_DESC(const D3D11_SAMPLER_DESC &o) : D3D11_SAMPLER_DESC(o) {}
   2009     explicit CD3D11_SAMPLER_DESC(CD3D11_DEFAULT) {
   2010         Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
   2011         AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
   2012         AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
   2013         AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
   2014         MipLODBias = 0;
   2015         MaxAnisotropy = 1;
   2016         ComparisonFunc = D3D11_COMPARISON_NEVER;
   2017         BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;
   2018         MinLOD = -3.402823466e+38f;
   2019         MaxLOD = 3.402823466e+38f;
   2020     }
   2021     explicit CD3D11_SAMPLER_DESC(D3D11_FILTER filter, D3D11_TEXTURE_ADDRESS_MODE addressU,
   2022             D3D11_TEXTURE_ADDRESS_MODE addressV, D3D11_TEXTURE_ADDRESS_MODE addressW,
   2023             FLOAT mipLODBias, UINT maxAnisotropy, D3D11_COMPARISON_FUNC comparisonFunc,
   2024             const FLOAT *borderColor, FLOAT minLOD, FLOAT maxLOD) {
   2025         Filter = filter;
   2026         AddressU = addressU;
   2027         AddressV = addressV;
   2028         AddressW = addressW;
   2029         MipLODBias = mipLODBias;
   2030         MaxAnisotropy = maxAnisotropy;
   2031         ComparisonFunc = comparisonFunc;
   2032         if(borderColor) {
   2033             BorderColor[0] = borderColor[0];
   2034             BorderColor[1] = borderColor[1];
   2035             BorderColor[2] = borderColor[2];
   2036             BorderColor[3] = borderColor[3];
   2037         }else {
   2038             BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;
   2039         }
   2040         MinLOD = minLOD;
   2041         MaxLOD = maxLOD;
   2042     }
   2043     ~CD3D11_SAMPLER_DESC() {}
   2044     operator const D3D11_SAMPLER_DESC&() const { return *this; }
   2045 };
   2046 #endif
   2047 typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC {
   2048     DXGI_FORMAT Format;
   2049     D3D11_SRV_DIMENSION ViewDimension;
   2050     __C89_NAMELESS union {
   2051         D3D11_BUFFER_SRV Buffer;
   2052         D3D11_TEX1D_SRV Texture1D;
   2053         D3D11_TEX1D_ARRAY_SRV Texture1DArray;
   2054         D3D11_TEX2D_SRV Texture2D;
   2055         D3D11_TEX2D_ARRAY_SRV Texture2DArray;
   2056         D3D11_TEX2DMS_SRV Texture2DMS;
   2057         D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
   2058         D3D11_TEX3D_SRV Texture3D;
   2059         D3D11_TEXCUBE_SRV TextureCube;
   2060         D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
   2061         D3D11_BUFFEREX_SRV BufferEx;
   2062     } __C89_NAMELESSUNIONNAME;
   2063 } D3D11_SHADER_RESOURCE_VIEW_DESC;
   2064 #if !defined(D3D11_NO_HELPERS) && defined( __cplusplus )
   2065 struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC {
   2066     CD3D11_SHADER_RESOURCE_VIEW_DESC() {}
   2067     explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(D3D11_SRV_DIMENSION dim,
   2068             DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0,
   2069             UINT mip_levels = -1, UINT first_slice = 0, UINT array_size = -1, UINT flags = 0) {
   2070         Format = format;
   2071         ViewDimension = dim;
   2072         switch(ViewDimension) {
   2073         case D3D11_SRV_DIMENSION_BUFFER:
   2074             Buffer.FirstElement = most_detailed_mip;
   2075             Buffer.NumElements = mip_levels;
   2076             break;
   2077         case D3D11_SRV_DIMENSION_TEXTURE1D:
   2078             Texture1D.MostDetailedMip = most_detailed_mip;
   2079             Texture1D.MipLevels = mip_levels;
   2080             break;
   2081         case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:
   2082             Texture1DArray.MostDetailedMip = most_detailed_mip;
   2083             Texture1DArray.MipLevels = mip_levels;
   2084             Texture1DArray.FirstArraySlice = first_slice;
   2085             Texture1DArray.ArraySize = array_size;
   2086             break;
   2087         case D3D11_SRV_DIMENSION_TEXTURE2D:
   2088             Texture2D.MostDetailedMip = most_detailed_mip;
   2089             Texture2D.MipLevels = mip_levels;
   2090             break;
   2091         case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:
   2092             Texture2DArray.MostDetailedMip = most_detailed_mip;
   2093             Texture2DArray.MipLevels = mip_levels;
   2094             Texture2DArray.FirstArraySlice = first_slice;
   2095             Texture2DArray.ArraySize = array_size;
   2096             break;
   2097         case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:
   2098             Texture2DMSArray.FirstArraySlice = first_slice;
   2099             Texture2DMSArray.ArraySize = array_size;
   2100             break;
   2101         case D3D11_SRV_DIMENSION_TEXTURE3D:
   2102             Texture3D.MostDetailedMip = most_detailed_mip;
   2103             Texture3D.MipLevels = mip_levels;
   2104             break;
   2105         case D3D11_SRV_DIMENSION_TEXTURECUBE:
   2106             TextureCube.MostDetailedMip = most_detailed_mip;
   2107             TextureCube.MipLevels = mip_levels;
   2108             break;
   2109         case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:
   2110             TextureCubeArray.MostDetailedMip = most_detailed_mip;
   2111             TextureCubeArray.MipLevels = mip_levels;
   2112             TextureCubeArray.First2DArrayFace = first_slice;
   2113             TextureCubeArray.NumCubes = array_size;
   2114             break;
   2115         case D3D11_SRV_DIMENSION_BUFFEREX:
   2116             BufferEx.FirstElement = most_detailed_mip;
   2117             BufferEx.NumElements = mip_levels;
   2118             BufferEx.Flags = flags;
   2119             break;
   2120         default:
   2121             break;
   2122         }
   2123     }
   2124     explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,
   2125             UINT elem_cnt, UINT flags = 0);
   2126     explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture1D *texture, D3D11_SRV_DIMENSION dim,
   2127             DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,
   2128             UINT first_slice = 0, UINT array_size = -1 );
   2129     explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture2D *texture, D3D11_SRV_DIMENSION dim,
   2130             DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,
   2131             UINT first_slice = 0, UINT array_size = -1 );
   2132     explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
   2133             UINT most_detailed_mip = 0, UINT mip_levels = -1 );
   2134     ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {}
   2135     explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(const D3D11_SHADER_RESOURCE_VIEW_DESC &other)
   2136         : D3D11_SHADER_RESOURCE_VIEW_DESC(other) {}
   2137     operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const {
   2138         return *this;
   2139     }
   2140 };
   2141 #endif
   2142 typedef struct D3D11_TEXTURE1D_DESC {
   2143     UINT Width;
   2144     UINT MipLevels;
   2145     UINT ArraySize;
   2146     DXGI_FORMAT Format;
   2147     D3D11_USAGE Usage;
   2148     UINT BindFlags;
   2149     UINT CPUAccessFlags;
   2150     UINT MiscFlags;
   2151 } D3D11_TEXTURE1D_DESC;
   2152 typedef struct D3D11_TEXTURE2D_DESC {
   2153     UINT Width;
   2154     UINT Height;
   2155     UINT MipLevels;
   2156     UINT ArraySize;
   2157     DXGI_FORMAT Format;
   2158     DXGI_SAMPLE_DESC SampleDesc;
   2159     D3D11_USAGE Usage;
   2160     UINT BindFlags;
   2161     UINT CPUAccessFlags;
   2162     UINT MiscFlags;
   2163 } D3D11_TEXTURE2D_DESC;
   2164 #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
   2165 struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC {
   2166     CD3D11_TEXTURE2D_DESC() {}
   2167     explicit CD3D11_TEXTURE2D_DESC(const D3D11_TEXTURE2D_DESC &o) : D3D11_TEXTURE2D_DESC(o) {}
   2168     explicit CD3D11_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height, UINT arraySize = 1,
   2169             UINT mipLevels = 0, UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
   2170             D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT sampleCount = 1,
   2171             UINT sampleQuality = 0, UINT miscFlags = 0) {
   2172         Width = width;
   2173         Height = height;
   2174         MipLevels = mipLevels;
   2175         ArraySize = arraySize;
   2176         Format = format;
   2177         SampleDesc.Count = sampleCount;
   2178         SampleDesc.Quality = sampleQuality;
   2179         Usage = usage;
   2180         BindFlags = bindFlags;
   2181         CPUAccessFlags = cpuaccessFlags;
   2182         MiscFlags = miscFlags;
   2183     }
   2184     ~CD3D11_TEXTURE2D_DESC() {}
   2185     operator const D3D11_TEXTURE2D_DESC&() const { return *this; }
   2186 };
   2187 #endif
   2188 typedef struct D3D11_TEXTURE3D_DESC {
   2189     UINT Width;
   2190     UINT Height;
   2191     UINT Depth;
   2192     UINT MipLevels;
   2193     DXGI_FORMAT Format;
   2194     D3D11_USAGE Usage;
   2195     UINT BindFlags;
   2196     UINT CPUAccessFlags;
   2197     UINT MiscFlags;
   2198 } D3D11_TEXTURE3D_DESC;
   2199 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_MOCOMP,                      0xe6a9f44b,0x61b0,0x4563,0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);
   2200 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_IDCT,                        0xbf22ad00,0x03ea,0x4690,0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);
   2201 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_VLD,                         0xee27417f,0x5e28,0x4e65,0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);
   2202 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG1_VLD,                         0x6f3ec719,0x3735,0x42cc,0x80,0x63,0x65,0xcc,0x3c,0xb3,0x66,0x16);
   2203 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2and1_VLD,                     0x86695f12,0x340e,0x4f04,0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60);
   2204 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT,                 0x1b81be64,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2205 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,                   0x1b81be65,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2206 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,                   0x1b81be66,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2207 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_FGT,                     0x1b81be67,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2208 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_NOFGT,                    0x1b81be68,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2209 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_FGT,                      0x1b81be69,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2210 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,         0xd5f04ff9,0x3418,0x45d8,0x95,0x61,0x32,0xa7,0x6a,0xae,0x2d,0xdd);
   2211 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT, 0xd79be8da,0x0cf1,0x4c81,0xb8,0x2a,0x69,0xa4,0xe2,0x36,0xf4,0x3d);
   2212 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT,             0xf9aaccbb,0xc2b6,0x4cfc,0x87,0x79,0x57,0x07,0xb1,0x76,0x05,0x52);
   2213 DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,          0x705b9d82,0x76cf,0x49d6,0xb7,0xe6,0xac,0x88,0x72,0xdb,0x01,0x3c);
   2214 DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_POSTPROC,                     0x1b81be80,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2215 DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_MOCOMP,                       0x1b81be81,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2216 DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_POSTPROC,                     0x1b81be90,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2217 DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_MOCOMP,                       0x1b81be91,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2218 DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_IDCT,                         0x1b81be94,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2219 DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_POSTPROC,                      0x1b81beA0,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2220 DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_MOCOMP,                        0x1b81beA1,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2221 DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_IDCT,                          0x1b81beA2,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2222 DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_VLD,                           0x1b81beA3,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2223 DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_D2010,                         0x1b81beA4,0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
   2224 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,               0xefd64d74,0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);
   2225 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,      0xed418a9f,0x010d,0x4eda,0x9a,0xe3,0x9a,0x65,0x35,0x8d,0x8d,0x2e);
   2226 DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,        0xab998b5b,0x4258,0x44a9,0x9f,0xeb,0x94,0xe5,0x97,0xa6,0xba,0xae);
   2227 DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN,                     0x5b11d51b,0x2f4c,0x4452,0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0);
   2228 DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,                   0x107af0e0,0xef1a,0x4d19,0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13);
   2229 DEFINE_GUID(D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0,                  0x463707f8,0xa1d0,0x4585,0x87,0x6d,0x83,0xaa,0x6d,0x60,0xb8,0x9e);
   2230 DEFINE_GUID(D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2,            0xa4c749ef,0x6ecf,0x48aa,0x84,0x48,0x50,0xa7,0xa1,0x16,0x5f,0xf7);
   2231 DEFINE_GUID(D3D11_DECODER_PROFILE_VP8_VLD,                           0x90b899ea,0x3a62,0x4705,0x88,0xb3,0x8d,0xf0,0x4b,0x27,0x44,0xe7);
   2232 typedef struct D3D11_VIDEO_DECODER_DESC {
   2233     GUID Guid;
   2234     UINT SampleWidth;
   2235     UINT SampleHeight;
   2236     DXGI_FORMAT OutputFormat;
   2237 } D3D11_VIDEO_DECODER_DESC;
   2238 typedef struct D3D11_VIDEO_DECODER_CONFIG {
   2239     GUID guidConfigBitstreamEncryption;
   2240     GUID guidConfigMBcontrolEncryption;
   2241     GUID guidConfigResidDiffEncryption;
   2242     UINT ConfigBitstreamRaw;
   2243     UINT ConfigMBcontrolRasterOrder;
   2244     UINT ConfigResidDiffHost;
   2245     UINT ConfigSpatialResid8;
   2246     UINT ConfigResid8Subtraction;
   2247     UINT ConfigSpatialHost8or9Clipping;
   2248     UINT ConfigSpatialResidInterleaved;
   2249     UINT ConfigIntraResidUnsigned;
   2250     UINT ConfigResidDiffAccelerator;
   2251     UINT ConfigHostInverseScan;
   2252     UINT ConfigSpecificIDCT;
   2253     UINT Config4GroupedCoefs;
   2254     USHORT ConfigMinRenderTargetBuffCount;
   2255     USHORT ConfigDecoderSpecific;
   2256 } D3D11_VIDEO_DECODER_CONFIG;
   2257 typedef enum D3D11_VIDEO_FRAME_FORMAT {
   2258     D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0,
   2259     D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
   2260     D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
   2261 } D3D11_VIDEO_FRAME_FORMAT;
   2262 typedef enum D3D11_VIDEO_USAGE {
   2263     D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0,
   2264     D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1,
   2265     D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2
   2266 } D3D11_VIDEO_USAGE;
   2267 typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC {
   2268     D3D11_VIDEO_FRAME_FORMAT InputFrameFormat;
   2269     DXGI_RATIONAL InputFrameRate;
   2270     UINT InputWidth;
   2271     UINT InputHeight;
   2272     DXGI_RATIONAL OutputFrameRate;
   2273     UINT OutputWidth;
   2274     UINT OutputHeight;
   2275     D3D11_VIDEO_USAGE Usage;
   2276 } D3D11_VIDEO_PROCESSOR_CONTENT_DESC;
   2277 typedef struct D3D11_VIDEO_PROCESSOR_CAPS {
   2278     UINT DeviceCaps;
   2279     UINT FeatureCaps;
   2280     UINT FilterCaps;
   2281     UINT InputFormatCaps;
   2282     UINT AutoStreamCaps;
   2283     UINT StereoCaps;
   2284     UINT RateConversionCapsCount;
   2285     UINT MaxInputStreams;
   2286     UINT MaxStreamStates;
   2287 } D3D11_VIDEO_PROCESSOR_CAPS;
   2288 typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS {
   2289     UINT PastFrames;
   2290     UINT FutureFrames;
   2291     UINT ProcessorCaps;
   2292     UINT ITelecineCaps;
   2293     UINT CustomRateCount;
   2294 } D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS;
   2295 typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE {
   2296     DXGI_RATIONAL CustomRate;
   2297     UINT OutputFrames;
   2298     WINBOOL InputInterlaced;
   2299     UINT InputFramesOrFields;
   2300 } D3D11_VIDEO_PROCESSOR_CUSTOM_RATE;
   2301 typedef enum D3D11_VIDEO_PROCESSOR_FILTER {
   2302     D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0,
   2303     D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1,
   2304     D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2,
   2305     D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3,
   2306     D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4,
   2307     D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5,
   2308     D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6,
   2309     D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7
   2310 } D3D11_VIDEO_PROCESSOR_FILTER;
   2311 typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE {
   2312     int Minimum;
   2313     int Maximum;
   2314     int Default;
   2315     float Multiplier;
   2316 } D3D11_VIDEO_PROCESSOR_FILTER_RANGE;
   2317 typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE {
   2318     D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1,
   2319     D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2,
   2320     D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3
   2321 } D3D11_AUTHENTICATED_CHANNEL_TYPE;
   2322 typedef enum D3D11_VDOV_DIMENSION {
   2323     D3D11_VDOV_DIMENSION_UNKNOWN = 0,
   2324     D3D11_VDOV_DIMENSION_TEXTURE2D = 1
   2325 } D3D11_VDOV_DIMENSION;
   2326 typedef struct D3D11_TEX2D_VDOV {
   2327     UINT ArraySlice;
   2328 } D3D11_TEX2D_VDOV;
   2329 typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC {
   2330     GUID DecodeProfile;
   2331     D3D11_VDOV_DIMENSION ViewDimension;
   2332     __C89_NAMELESS union {
   2333         D3D11_TEX2D_VDOV Texture2D;
   2334     } __C89_NAMELESSUNIONNAME;
   2335 } D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC;
   2336 typedef enum D3D11_VPIV_DIMENSION {
   2337     D3D11_VPIV_DIMENSION_UNKNOWN = 0,
   2338     D3D11_VPIV_DIMENSION_TEXTURE2D = 1
   2339 } D3D11_VPIV_DIMENSION;
   2340 typedef struct D3D11_TEX2D_VPIV {
   2341     UINT MipSlice;
   2342     UINT ArraySlice;
   2343 } D3D11_TEX2D_VPIV;
   2344 typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC {
   2345     UINT FourCC;
   2346     D3D11_VPIV_DIMENSION ViewDimension;
   2347     __C89_NAMELESS union {
   2348         D3D11_TEX2D_VPIV Texture2D;
   2349     } __C89_NAMELESSUNIONNAME;
   2350 } D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC;
   2351 typedef enum D3D11_VPOV_DIMENSION {
   2352     D3D11_VPOV_DIMENSION_UNKNOWN = 0,
   2353     D3D11_VPOV_DIMENSION_TEXTURE2D = 1,
   2354     D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2
   2355 } D3D11_VPOV_DIMENSION;
   2356 typedef struct D3D11_TEX2D_VPOV {
   2357     UINT MipSlice;
   2358 } D3D11_TEX2D_VPOV;
   2359 typedef struct D3D11_TEX2D_ARRAY_VPOV {
   2360     UINT MipSlice;
   2361     UINT FirstArraySlice;
   2362     UINT ArraySize;
   2363 } D3D11_TEX2D_ARRAY_VPOV;
   2364 typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC {
   2365     D3D11_VPOV_DIMENSION ViewDimension;
   2366     __C89_NAMELESS union {
   2367         D3D11_TEX2D_VPOV Texture2D;
   2368         D3D11_TEX2D_ARRAY_VPOV Texture2DArray;
   2369     } __C89_NAMELESSUNIONNAME;
   2370 } D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC;
   2371 typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS {
   2372     UINT Caps;
   2373     UINT KeyExchangeTypeCount;
   2374     UINT BlockAlignmentSize;
   2375     ULONGLONG ProtectedMemorySize;
   2376 } D3D11_VIDEO_CONTENT_PROTECTION_CAPS;
   2377 typedef struct D3D11_ENCRYPTED_BLOCK_INFO {
   2378     UINT NumEncryptedBytesAtBeginning;
   2379     UINT NumBytesInSkipPattern;
   2380     UINT NumBytesInEncryptPattern;
   2381 } D3D11_ENCRYPTED_BLOCK_INFO;
   2382 typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC {
   2383     D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
   2384     UINT BufferIndex;
   2385     UINT DataOffset;
   2386     UINT DataSize;
   2387     UINT FirstMBaddress;
   2388     UINT NumMBsInBuffer;
   2389     UINT Width;
   2390     UINT Height;
   2391     UINT Stride;
   2392     UINT ReservedBits;
   2393     void *pIV;
   2394     UINT IVSize;
   2395     WINBOOL PartialEncryption;
   2396     D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo;
   2397 } D3D11_VIDEO_DECODER_BUFFER_DESC;
   2398 typedef struct D3D11_VIDEO_DECODER_EXTENSION {
   2399     UINT Function;
   2400     void *pPrivateInputData;
   2401     UINT PrivateInputDataSize;
   2402     void *pPrivateOutputData;
   2403     UINT PrivateOutputDataSize;
   2404     UINT ResourceCount;
   2405     ID3D11Resource **ppResourceList;
   2406 } D3D11_VIDEO_DECODER_EXTENSION;
   2407 typedef struct D3D11_VIDEO_COLOR_YCbCrA {
   2408     float Y;
   2409     float Cb;
   2410     float Cr;
   2411     float A;
   2412 } D3D11_VIDEO_COLOR_YCbCrA;
   2413 typedef struct D3D11_VIDEO_COLOR_RGBA {
   2414     float R;
   2415     float G;
   2416     float B;
   2417     float A;
   2418 } D3D11_VIDEO_COLOR_RGBA;
   2419 typedef struct D3D11_VIDEO_COLOR {
   2420     __C89_NAMELESS union {
   2421         D3D11_VIDEO_COLOR_YCbCrA YCbCr;
   2422         D3D11_VIDEO_COLOR_RGBA RGBA;
   2423     } __C89_NAMELESSUNIONNAME;
   2424 } D3D11_VIDEO_COLOR;
   2425 typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE {
   2426     UINT Usage : 1;
   2427     UINT RGB_Range : 1;
   2428     UINT YCbCr_Matrix : 1;
   2429     UINT YCbCr_xvYCC : 1;
   2430     UINT Nominal_Range : 2;
   2431     UINT Reserved : 26;
   2432 } D3D11_VIDEO_PROCESSOR_COLOR_SPACE;
   2433 typedef struct D3D11_VIDEO_PROCESSOR_STREAM {
   2434     WINBOOL Enable;
   2435     UINT OutputIndex;
   2436     UINT InputFrameOrField;
   2437     UINT PastFrames;
   2438     UINT FutureFrames;
   2439     ID3D11VideoProcessorInputView **ppPastSurfaces;
   2440     ID3D11VideoProcessorInputView *pInputSurface;
   2441     ID3D11VideoProcessorInputView **ppFutureSurfaces;
   2442     ID3D11VideoProcessorInputView **ppPastSurfacesRight;
   2443     ID3D11VideoProcessorInputView *pInputSurfaceRight;
   2444     ID3D11VideoProcessorInputView **ppFutureSurfacesRight;
   2445 } D3D11_VIDEO_PROCESSOR_STREAM;
   2446 typedef struct D3D11_OMAC {
   2447     BYTE Omac[16];
   2448 } D3D11_OMAC;
   2449 typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT {
   2450     D3D11_OMAC omac;
   2451     GUID ConfigureType;
   2452     HANDLE hChannel;
   2453     UINT SequenceNumber;
   2454     HRESULT ReturnCode;
   2455 } D3D11_AUTHENTICATED_CONFIGURE_OUTPUT;
   2456 typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT {
   2457     UINT64 Frequency;
   2458     WINBOOL Disjoint;
   2459 } D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
   2460 typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS {
   2461     UINT64 IAVertices;
   2462     UINT64 IAPrimitives;
   2463     UINT64 VSInvocations;
   2464     UINT64 GSInvocations;
   2465     UINT64 GSPrimitives;
   2466     UINT64 CInvocations;
   2467     UINT64 CPrimitives;
   2468     UINT64 PSInvocations;
   2469     UINT64 HSInvocations;
   2470     UINT64 DSInvocations;
   2471     UINT64 CSInvocations;
   2472 } D3D11_QUERY_DATA_PIPELINE_STATISTICS;
   2473 typedef struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS {
   2474     UINT VertexCountPerInstance;
   2475     UINT InstanceCount;
   2476     UINT StartVertexLocation;
   2477     UINT StartInstanceLocation;
   2478 } D3D11_DRAW_INSTANCED_INDIRECT_ARGS;
   2479 typedef struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS {
   2480     UINT IndexCountPerInstance;
   2481     UINT InstanceCount;
   2482     UINT StartIndexLocation;
   2483     INT BaseVertexLocation;
   2484     UINT StartInstanceLocation;
   2485 } D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS;
   2486 typedef struct D3D11_AUTHENTICATED_CONFIGURE_INPUT {
   2487     D3D11_OMAC omac;
   2488     GUID ConfigureType;
   2489     HANDLE hChannel;
   2490     UINT SequenceNumber;
   2491 } D3D11_AUTHENTICATED_CONFIGURE_INPUT;
   2492 typedef struct D3D11_AUTHENTICATED_QUERY_INPUT {
   2493     GUID QueryType;
   2494     HANDLE hChannel;
   2495     UINT SequenceNumber;
   2496 } D3D11_AUTHENTICATED_QUERY_INPUT;
   2497 typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT {
   2498     D3D11_OMAC omac;
   2499     GUID QueryType;
   2500     HANDLE hChannel;
   2501     UINT SequenceNumber;
   2502     HRESULT ReturnCode;
   2503 } D3D11_AUTHENTICATED_QUERY_OUTPUT;
   2504 typedef union D3D11_AUTHENTICATED_PROTECTION_FLAGS {
   2505     struct {
   2506         UINT ProtectionEnabled : 1;
   2507         UINT OverlayOrFullscreenRequired : 1;
   2508         UINT Reserved : 30;
   2509     } Flags;
   2510     UINT Value;
   2511 } D3D11_AUTHENTICATED_PROTECTION_FLAGS;
   2512 typedef struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT {
   2513     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2514     D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags;
   2515 } D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT;
   2516 typedef struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT {
   2517     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2518     D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType;
   2519 } D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT;
   2520 typedef struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT {
   2521     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2522     HANDLE DeviceHandle;
   2523 } D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT;
   2524 typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT {
   2525     D3D11_AUTHENTICATED_QUERY_INPUT Input;
   2526     HANDLE DecoderHandle;
   2527 } D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT;
   2528 typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT {
   2529     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2530     HANDLE DecoderHandle;
   2531     HANDLE CryptoSessionHandle;
   2532     HANDLE DeviceHandle;
   2533 } D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT;
   2534 typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT {
   2535     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2536     UINT RestrictedSharedResourceProcessCount;
   2537 } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT;
   2538 typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT {
   2539     D3D11_AUTHENTICATED_QUERY_INPUT Input;
   2540     UINT ProcessIndex;
   2541 } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT;
   2542 typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT {
   2543     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2544     UINT ProcessIndex;
   2545     D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier;
   2546     HANDLE ProcessHandle;
   2547 } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT;
   2548 typedef struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT {
   2549     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2550     UINT UnrestrictedProtectedSharedResourceCount;
   2551 } D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT;
   2552 typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT {
   2553     D3D11_AUTHENTICATED_QUERY_INPUT Input;
   2554     HANDLE DeviceHandle;
   2555     HANDLE CryptoSessionHandle;
   2556 } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT;
   2557 typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT {
   2558     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2559     HANDLE DeviceHandle;
   2560     HANDLE CryptoSessionHandle;
   2561     UINT OutputIDCount;
   2562 } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT;
   2563 typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT {
   2564     D3D11_AUTHENTICATED_QUERY_INPUT Input;
   2565     HANDLE DeviceHandle;
   2566     HANDLE CryptoSessionHandle;
   2567     UINT OutputIDIndex;
   2568 } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT;
   2569 typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT {
   2570     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2571     HANDLE DeviceHandle;
   2572     HANDLE CryptoSessionHandle;
   2573     UINT OutputIDIndex;
   2574     UINT64 OutputID;
   2575 } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT;
   2576 typedef struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT {
   2577     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2578     D3D11_BUS_TYPE BusType;
   2579     WINBOOL AccessibleInContiguousBlocks;
   2580     WINBOOL AccessibleInNonContiguousBlocks;
   2581 } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_OUTPUT;
   2582 typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT {
   2583     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2584     UINT EncryptionGuidCount;
   2585 } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT;
   2586 typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT {
   2587     D3D11_AUTHENTICATED_QUERY_INPUT Input;
   2588     UINT EncryptionGuidIndex;
   2589 } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT;
   2590 typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT {
   2591     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2592     UINT EncryptionGuidIndex;
   2593     GUID EncryptionGuid;
   2594 } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT;
   2595 typedef struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT {
   2596     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
   2597     GUID EncryptionGuid;
   2598 } D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT;
   2599 typedef struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT {
   2600     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
   2601     UINT StartSequenceQuery;
   2602     UINT StartSequenceConfigure;
   2603 } D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT;
   2604 typedef struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT {
   2605     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
   2606     D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections;
   2607 } D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT;
   2608 typedef struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT {
   2609     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
   2610     HANDLE DecoderHandle;
   2611     HANDLE CryptoSessionHandle;
   2612     HANDLE DeviceHandle;
   2613 } D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT;
   2614 typedef struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT {
   2615     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
   2616     D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType;
   2617     HANDLE ProcessHandle;
   2618     WINBOOL AllowAccess;
   2619 } D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT;
   2620 typedef struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT {
   2621     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
   2622     GUID EncryptionGuid;
   2623 } D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT;
   2624 /*****************************************************************************
   2625  * ID3D11DeviceChild interface
   2626  */
   2627 #ifndef __ID3D11DeviceChild_INTERFACE_DEFINED__
   2628 #define __ID3D11DeviceChild_INTERFACE_DEFINED__
   2629 
   2630 DEFINE_GUID(IID_ID3D11DeviceChild, 0x1841e5c8, 0x16b0, 0x489b, 0xbc,0xc8, 0x44,0xcf,0xb0,0xd5,0xde,0xae);
   2631 #if defined(__cplusplus) && !defined(CINTERFACE)
   2632 MIDL_INTERFACE("1841e5c8-16b0-489b-bcc8-44cfb0d5deae")
   2633 ID3D11DeviceChild : public IUnknown
   2634 {
   2635     virtual void STDMETHODCALLTYPE GetDevice(
   2636         ID3D11Device **ppDevice) = 0;
   2637 
   2638     virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
   2639         REFGUID guid,
   2640         UINT *pDataSize,
   2641         void *pData) = 0;
   2642 
   2643     virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
   2644         REFGUID guid,
   2645         UINT DataSize,
   2646         const void *pData) = 0;
   2647 
   2648     virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
   2649         REFGUID guid,
   2650         const IUnknown *pData) = 0;
   2651 
   2652 };
   2653 #ifdef __CRT_UUID_DECL
   2654 __CRT_UUID_DECL(ID3D11DeviceChild, 0x1841e5c8, 0x16b0, 0x489b, 0xbc,0xc8, 0x44,0xcf,0xb0,0xd5,0xde,0xae)
   2655 #endif
   2656 #else
   2657 typedef struct ID3D11DeviceChildVtbl {
   2658     BEGIN_INTERFACE
   2659 
   2660     /*** IUnknown methods ***/
   2661     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2662         ID3D11DeviceChild *This,
   2663         REFIID riid,
   2664         void **ppvObject);
   2665 
   2666     ULONG (STDMETHODCALLTYPE *AddRef)(
   2667         ID3D11DeviceChild *This);
   2668 
   2669     ULONG (STDMETHODCALLTYPE *Release)(
   2670         ID3D11DeviceChild *This);
   2671 
   2672     /*** ID3D11DeviceChild methods ***/
   2673     void (STDMETHODCALLTYPE *GetDevice)(
   2674         ID3D11DeviceChild *This,
   2675         ID3D11Device **ppDevice);
   2676 
   2677     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   2678         ID3D11DeviceChild *This,
   2679         REFGUID guid,
   2680         UINT *pDataSize,
   2681         void *pData);
   2682 
   2683     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   2684         ID3D11DeviceChild *This,
   2685         REFGUID guid,
   2686         UINT DataSize,
   2687         const void *pData);
   2688 
   2689     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   2690         ID3D11DeviceChild *This,
   2691         REFGUID guid,
   2692         const IUnknown *pData);
   2693 
   2694     END_INTERFACE
   2695 } ID3D11DeviceChildVtbl;
   2696 
   2697 interface ID3D11DeviceChild {
   2698     CONST_VTBL ID3D11DeviceChildVtbl* lpVtbl;
   2699 };
   2700 
   2701 #ifdef COBJMACROS
   2702 #ifndef WIDL_C_INLINE_WRAPPERS
   2703 /*** IUnknown methods ***/
   2704 #define ID3D11DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2705 #define ID3D11DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
   2706 #define ID3D11DeviceChild_Release(This) (This)->lpVtbl->Release(This)
   2707 /*** ID3D11DeviceChild methods ***/
   2708 #define ID3D11DeviceChild_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   2709 #define ID3D11DeviceChild_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   2710 #define ID3D11DeviceChild_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   2711 #define ID3D11DeviceChild_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   2712 #else
   2713 /*** IUnknown methods ***/
   2714 static inline HRESULT ID3D11DeviceChild_QueryInterface(ID3D11DeviceChild* This,REFIID riid,void **ppvObject) {
   2715     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2716 }
   2717 static inline ULONG ID3D11DeviceChild_AddRef(ID3D11DeviceChild* This) {
   2718     return This->lpVtbl->AddRef(This);
   2719 }
   2720 static inline ULONG ID3D11DeviceChild_Release(ID3D11DeviceChild* This) {
   2721     return This->lpVtbl->Release(This);
   2722 }
   2723 /*** ID3D11DeviceChild methods ***/
   2724 static inline void ID3D11DeviceChild_GetDevice(ID3D11DeviceChild* This,ID3D11Device **ppDevice) {
   2725     This->lpVtbl->GetDevice(This,ppDevice);
   2726 }
   2727 static inline HRESULT ID3D11DeviceChild_GetPrivateData(ID3D11DeviceChild* This,REFGUID guid,UINT *pDataSize,void *pData) {
   2728     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   2729 }
   2730 static inline HRESULT ID3D11DeviceChild_SetPrivateData(ID3D11DeviceChild* This,REFGUID guid,UINT DataSize,const void *pData) {
   2731     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   2732 }
   2733 static inline HRESULT ID3D11DeviceChild_SetPrivateDataInterface(ID3D11DeviceChild* This,REFGUID guid,const IUnknown *pData) {
   2734     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   2735 }
   2736 #endif
   2737 #endif
   2738 
   2739 #endif
   2740 
   2741 
   2742 #endif  /* __ID3D11DeviceChild_INTERFACE_DEFINED__ */
   2743 
   2744 /*****************************************************************************
   2745  * ID3D11Asynchronous interface
   2746  */
   2747 #ifndef __ID3D11Asynchronous_INTERFACE_DEFINED__
   2748 #define __ID3D11Asynchronous_INTERFACE_DEFINED__
   2749 
   2750 DEFINE_GUID(IID_ID3D11Asynchronous, 0x4b35d0cd, 0x1e15, 0x4258, 0x9c,0x98, 0x1b,0x13,0x33,0xf6,0xdd,0x3b);
   2751 #if defined(__cplusplus) && !defined(CINTERFACE)
   2752 MIDL_INTERFACE("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b")
   2753 ID3D11Asynchronous : public ID3D11DeviceChild
   2754 {
   2755     virtual UINT STDMETHODCALLTYPE GetDataSize(
   2756         ) = 0;
   2757 
   2758 };
   2759 #ifdef __CRT_UUID_DECL
   2760 __CRT_UUID_DECL(ID3D11Asynchronous, 0x4b35d0cd, 0x1e15, 0x4258, 0x9c,0x98, 0x1b,0x13,0x33,0xf6,0xdd,0x3b)
   2761 #endif
   2762 #else
   2763 typedef struct ID3D11AsynchronousVtbl {
   2764     BEGIN_INTERFACE
   2765 
   2766     /*** IUnknown methods ***/
   2767     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2768         ID3D11Asynchronous *This,
   2769         REFIID riid,
   2770         void **ppvObject);
   2771 
   2772     ULONG (STDMETHODCALLTYPE *AddRef)(
   2773         ID3D11Asynchronous *This);
   2774 
   2775     ULONG (STDMETHODCALLTYPE *Release)(
   2776         ID3D11Asynchronous *This);
   2777 
   2778     /*** ID3D11DeviceChild methods ***/
   2779     void (STDMETHODCALLTYPE *GetDevice)(
   2780         ID3D11Asynchronous *This,
   2781         ID3D11Device **ppDevice);
   2782 
   2783     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   2784         ID3D11Asynchronous *This,
   2785         REFGUID guid,
   2786         UINT *pDataSize,
   2787         void *pData);
   2788 
   2789     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   2790         ID3D11Asynchronous *This,
   2791         REFGUID guid,
   2792         UINT DataSize,
   2793         const void *pData);
   2794 
   2795     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   2796         ID3D11Asynchronous *This,
   2797         REFGUID guid,
   2798         const IUnknown *pData);
   2799 
   2800     /*** ID3D11Asynchronous methods ***/
   2801     UINT (STDMETHODCALLTYPE *GetDataSize)(
   2802         ID3D11Asynchronous *This);
   2803 
   2804     END_INTERFACE
   2805 } ID3D11AsynchronousVtbl;
   2806 
   2807 interface ID3D11Asynchronous {
   2808     CONST_VTBL ID3D11AsynchronousVtbl* lpVtbl;
   2809 };
   2810 
   2811 #ifdef COBJMACROS
   2812 #ifndef WIDL_C_INLINE_WRAPPERS
   2813 /*** IUnknown methods ***/
   2814 #define ID3D11Asynchronous_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2815 #define ID3D11Asynchronous_AddRef(This) (This)->lpVtbl->AddRef(This)
   2816 #define ID3D11Asynchronous_Release(This) (This)->lpVtbl->Release(This)
   2817 /*** ID3D11DeviceChild methods ***/
   2818 #define ID3D11Asynchronous_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   2819 #define ID3D11Asynchronous_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   2820 #define ID3D11Asynchronous_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   2821 #define ID3D11Asynchronous_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   2822 /*** ID3D11Asynchronous methods ***/
   2823 #define ID3D11Asynchronous_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
   2824 #else
   2825 /*** IUnknown methods ***/
   2826 static inline HRESULT ID3D11Asynchronous_QueryInterface(ID3D11Asynchronous* This,REFIID riid,void **ppvObject) {
   2827     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2828 }
   2829 static inline ULONG ID3D11Asynchronous_AddRef(ID3D11Asynchronous* This) {
   2830     return This->lpVtbl->AddRef(This);
   2831 }
   2832 static inline ULONG ID3D11Asynchronous_Release(ID3D11Asynchronous* This) {
   2833     return This->lpVtbl->Release(This);
   2834 }
   2835 /*** ID3D11DeviceChild methods ***/
   2836 static inline void ID3D11Asynchronous_GetDevice(ID3D11Asynchronous* This,ID3D11Device **ppDevice) {
   2837     This->lpVtbl->GetDevice(This,ppDevice);
   2838 }
   2839 static inline HRESULT ID3D11Asynchronous_GetPrivateData(ID3D11Asynchronous* This,REFGUID guid,UINT *pDataSize,void *pData) {
   2840     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   2841 }
   2842 static inline HRESULT ID3D11Asynchronous_SetPrivateData(ID3D11Asynchronous* This,REFGUID guid,UINT DataSize,const void *pData) {
   2843     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   2844 }
   2845 static inline HRESULT ID3D11Asynchronous_SetPrivateDataInterface(ID3D11Asynchronous* This,REFGUID guid,const IUnknown *pData) {
   2846     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   2847 }
   2848 /*** ID3D11Asynchronous methods ***/
   2849 static inline UINT ID3D11Asynchronous_GetDataSize(ID3D11Asynchronous* This) {
   2850     return This->lpVtbl->GetDataSize(This);
   2851 }
   2852 #endif
   2853 #endif
   2854 
   2855 #endif
   2856 
   2857 
   2858 #endif  /* __ID3D11Asynchronous_INTERFACE_DEFINED__ */
   2859 
   2860 /*****************************************************************************
   2861  * ID3D11Query interface
   2862  */
   2863 #ifndef __ID3D11Query_INTERFACE_DEFINED__
   2864 #define __ID3D11Query_INTERFACE_DEFINED__
   2865 
   2866 DEFINE_GUID(IID_ID3D11Query, 0xd6c00747, 0x87b7, 0x425e, 0xb8,0x4d, 0x44,0xd1,0x08,0x56,0x0a,0xfd);
   2867 #if defined(__cplusplus) && !defined(CINTERFACE)
   2868 MIDL_INTERFACE("d6c00747-87b7-425e-b84d-44d108560afd")
   2869 ID3D11Query : public ID3D11Asynchronous
   2870 {
   2871     virtual void STDMETHODCALLTYPE GetDesc(
   2872         D3D11_QUERY_DESC *pDesc) = 0;
   2873 
   2874 };
   2875 #ifdef __CRT_UUID_DECL
   2876 __CRT_UUID_DECL(ID3D11Query, 0xd6c00747, 0x87b7, 0x425e, 0xb8,0x4d, 0x44,0xd1,0x08,0x56,0x0a,0xfd)
   2877 #endif
   2878 #else
   2879 typedef struct ID3D11QueryVtbl {
   2880     BEGIN_INTERFACE
   2881 
   2882     /*** IUnknown methods ***/
   2883     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2884         ID3D11Query *This,
   2885         REFIID riid,
   2886         void **ppvObject);
   2887 
   2888     ULONG (STDMETHODCALLTYPE *AddRef)(
   2889         ID3D11Query *This);
   2890 
   2891     ULONG (STDMETHODCALLTYPE *Release)(
   2892         ID3D11Query *This);
   2893 
   2894     /*** ID3D11DeviceChild methods ***/
   2895     void (STDMETHODCALLTYPE *GetDevice)(
   2896         ID3D11Query *This,
   2897         ID3D11Device **ppDevice);
   2898 
   2899     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   2900         ID3D11Query *This,
   2901         REFGUID guid,
   2902         UINT *pDataSize,
   2903         void *pData);
   2904 
   2905     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   2906         ID3D11Query *This,
   2907         REFGUID guid,
   2908         UINT DataSize,
   2909         const void *pData);
   2910 
   2911     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   2912         ID3D11Query *This,
   2913         REFGUID guid,
   2914         const IUnknown *pData);
   2915 
   2916     /*** ID3D11Asynchronous methods ***/
   2917     UINT (STDMETHODCALLTYPE *GetDataSize)(
   2918         ID3D11Query *This);
   2919 
   2920     /*** ID3D11Query methods ***/
   2921     void (STDMETHODCALLTYPE *GetDesc)(
   2922         ID3D11Query *This,
   2923         D3D11_QUERY_DESC *pDesc);
   2924 
   2925     END_INTERFACE
   2926 } ID3D11QueryVtbl;
   2927 
   2928 interface ID3D11Query {
   2929     CONST_VTBL ID3D11QueryVtbl* lpVtbl;
   2930 };
   2931 
   2932 #ifdef COBJMACROS
   2933 #ifndef WIDL_C_INLINE_WRAPPERS
   2934 /*** IUnknown methods ***/
   2935 #define ID3D11Query_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2936 #define ID3D11Query_AddRef(This) (This)->lpVtbl->AddRef(This)
   2937 #define ID3D11Query_Release(This) (This)->lpVtbl->Release(This)
   2938 /*** ID3D11DeviceChild methods ***/
   2939 #define ID3D11Query_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   2940 #define ID3D11Query_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   2941 #define ID3D11Query_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   2942 #define ID3D11Query_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   2943 /*** ID3D11Asynchronous methods ***/
   2944 #define ID3D11Query_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
   2945 /*** ID3D11Query methods ***/
   2946 #define ID3D11Query_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   2947 #else
   2948 /*** IUnknown methods ***/
   2949 static inline HRESULT ID3D11Query_QueryInterface(ID3D11Query* This,REFIID riid,void **ppvObject) {
   2950     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2951 }
   2952 static inline ULONG ID3D11Query_AddRef(ID3D11Query* This) {
   2953     return This->lpVtbl->AddRef(This);
   2954 }
   2955 static inline ULONG ID3D11Query_Release(ID3D11Query* This) {
   2956     return This->lpVtbl->Release(This);
   2957 }
   2958 /*** ID3D11DeviceChild methods ***/
   2959 static inline void ID3D11Query_GetDevice(ID3D11Query* This,ID3D11Device **ppDevice) {
   2960     This->lpVtbl->GetDevice(This,ppDevice);
   2961 }
   2962 static inline HRESULT ID3D11Query_GetPrivateData(ID3D11Query* This,REFGUID guid,UINT *pDataSize,void *pData) {
   2963     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   2964 }
   2965 static inline HRESULT ID3D11Query_SetPrivateData(ID3D11Query* This,REFGUID guid,UINT DataSize,const void *pData) {
   2966     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   2967 }
   2968 static inline HRESULT ID3D11Query_SetPrivateDataInterface(ID3D11Query* This,REFGUID guid,const IUnknown *pData) {
   2969     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   2970 }
   2971 /*** ID3D11Asynchronous methods ***/
   2972 static inline UINT ID3D11Query_GetDataSize(ID3D11Query* This) {
   2973     return This->lpVtbl->GetDataSize(This);
   2974 }
   2975 /*** ID3D11Query methods ***/
   2976 static inline void ID3D11Query_GetDesc(ID3D11Query* This,D3D11_QUERY_DESC *pDesc) {
   2977     This->lpVtbl->GetDesc(This,pDesc);
   2978 }
   2979 #endif
   2980 #endif
   2981 
   2982 #endif
   2983 
   2984 
   2985 #endif  /* __ID3D11Query_INTERFACE_DEFINED__ */
   2986 
   2987 /*****************************************************************************
   2988  * ID3D11Resource interface
   2989  */
   2990 #ifndef __ID3D11Resource_INTERFACE_DEFINED__
   2991 #define __ID3D11Resource_INTERFACE_DEFINED__
   2992 
   2993 DEFINE_GUID(IID_ID3D11Resource, 0xdc8e63f3, 0xd12b, 0x4952, 0xb4,0x7b, 0x5e,0x45,0x02,0x6a,0x86,0x2d);
   2994 #if defined(__cplusplus) && !defined(CINTERFACE)
   2995 MIDL_INTERFACE("dc8e63f3-d12b-4952-b47b-5e45026a862d")
   2996 ID3D11Resource : public ID3D11DeviceChild
   2997 {
   2998     virtual void STDMETHODCALLTYPE GetType(
   2999         D3D11_RESOURCE_DIMENSION *pResourceDimension) = 0;
   3000 
   3001     virtual void STDMETHODCALLTYPE SetEvictionPriority(
   3002         UINT EvictionPriority) = 0;
   3003 
   3004     virtual UINT STDMETHODCALLTYPE GetEvictionPriority(
   3005         ) = 0;
   3006 
   3007 };
   3008 #ifdef __CRT_UUID_DECL
   3009 __CRT_UUID_DECL(ID3D11Resource, 0xdc8e63f3, 0xd12b, 0x4952, 0xb4,0x7b, 0x5e,0x45,0x02,0x6a,0x86,0x2d)
   3010 #endif
   3011 #else
   3012 typedef struct ID3D11ResourceVtbl {
   3013     BEGIN_INTERFACE
   3014 
   3015     /*** IUnknown methods ***/
   3016     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3017         ID3D11Resource *This,
   3018         REFIID riid,
   3019         void **ppvObject);
   3020 
   3021     ULONG (STDMETHODCALLTYPE *AddRef)(
   3022         ID3D11Resource *This);
   3023 
   3024     ULONG (STDMETHODCALLTYPE *Release)(
   3025         ID3D11Resource *This);
   3026 
   3027     /*** ID3D11DeviceChild methods ***/
   3028     void (STDMETHODCALLTYPE *GetDevice)(
   3029         ID3D11Resource *This,
   3030         ID3D11Device **ppDevice);
   3031 
   3032     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3033         ID3D11Resource *This,
   3034         REFGUID guid,
   3035         UINT *pDataSize,
   3036         void *pData);
   3037 
   3038     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3039         ID3D11Resource *This,
   3040         REFGUID guid,
   3041         UINT DataSize,
   3042         const void *pData);
   3043 
   3044     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3045         ID3D11Resource *This,
   3046         REFGUID guid,
   3047         const IUnknown *pData);
   3048 
   3049     /*** ID3D11Resource methods ***/
   3050     void (STDMETHODCALLTYPE *GetType)(
   3051         ID3D11Resource *This,
   3052         D3D11_RESOURCE_DIMENSION *pResourceDimension);
   3053 
   3054     void (STDMETHODCALLTYPE *SetEvictionPriority)(
   3055         ID3D11Resource *This,
   3056         UINT EvictionPriority);
   3057 
   3058     UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
   3059         ID3D11Resource *This);
   3060 
   3061     END_INTERFACE
   3062 } ID3D11ResourceVtbl;
   3063 
   3064 interface ID3D11Resource {
   3065     CONST_VTBL ID3D11ResourceVtbl* lpVtbl;
   3066 };
   3067 
   3068 #ifdef COBJMACROS
   3069 #ifndef WIDL_C_INLINE_WRAPPERS
   3070 /*** IUnknown methods ***/
   3071 #define ID3D11Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3072 #define ID3D11Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
   3073 #define ID3D11Resource_Release(This) (This)->lpVtbl->Release(This)
   3074 /*** ID3D11DeviceChild methods ***/
   3075 #define ID3D11Resource_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3076 #define ID3D11Resource_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3077 #define ID3D11Resource_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3078 #define ID3D11Resource_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3079 /*** ID3D11Resource methods ***/
   3080 #define ID3D11Resource_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
   3081 #define ID3D11Resource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
   3082 #define ID3D11Resource_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
   3083 #else
   3084 /*** IUnknown methods ***/
   3085 static inline HRESULT ID3D11Resource_QueryInterface(ID3D11Resource* This,REFIID riid,void **ppvObject) {
   3086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3087 }
   3088 static inline ULONG ID3D11Resource_AddRef(ID3D11Resource* This) {
   3089     return This->lpVtbl->AddRef(This);
   3090 }
   3091 static inline ULONG ID3D11Resource_Release(ID3D11Resource* This) {
   3092     return This->lpVtbl->Release(This);
   3093 }
   3094 /*** ID3D11DeviceChild methods ***/
   3095 static inline void ID3D11Resource_GetDevice(ID3D11Resource* This,ID3D11Device **ppDevice) {
   3096     This->lpVtbl->GetDevice(This,ppDevice);
   3097 }
   3098 static inline HRESULT ID3D11Resource_GetPrivateData(ID3D11Resource* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3099     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3100 }
   3101 static inline HRESULT ID3D11Resource_SetPrivateData(ID3D11Resource* This,REFGUID guid,UINT DataSize,const void *pData) {
   3102     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3103 }
   3104 static inline HRESULT ID3D11Resource_SetPrivateDataInterface(ID3D11Resource* This,REFGUID guid,const IUnknown *pData) {
   3105     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3106 }
   3107 /*** ID3D11Resource methods ***/
   3108 static inline void ID3D11Resource_GetType(ID3D11Resource* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
   3109     This->lpVtbl->GetType(This,pResourceDimension);
   3110 }
   3111 static inline void ID3D11Resource_SetEvictionPriority(ID3D11Resource* This,UINT EvictionPriority) {
   3112     This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
   3113 }
   3114 static inline UINT ID3D11Resource_GetEvictionPriority(ID3D11Resource* This) {
   3115     return This->lpVtbl->GetEvictionPriority(This);
   3116 }
   3117 #endif
   3118 #endif
   3119 
   3120 #endif
   3121 
   3122 
   3123 #endif  /* __ID3D11Resource_INTERFACE_DEFINED__ */
   3124 
   3125 /*****************************************************************************
   3126  * ID3D11View interface
   3127  */
   3128 #ifndef __ID3D11View_INTERFACE_DEFINED__
   3129 #define __ID3D11View_INTERFACE_DEFINED__
   3130 
   3131 DEFINE_GUID(IID_ID3D11View, 0x839d1216, 0xbb2e, 0x412b, 0xb7,0xf4, 0xa9,0xdb,0xeb,0xe0,0x8e,0xd1);
   3132 #if defined(__cplusplus) && !defined(CINTERFACE)
   3133 MIDL_INTERFACE("839d1216-bb2e-412b-b7f4-a9dbebe08ed1")
   3134 ID3D11View : public ID3D11DeviceChild
   3135 {
   3136     virtual void STDMETHODCALLTYPE GetResource(
   3137         ID3D11Resource **ppResource) = 0;
   3138 
   3139 };
   3140 #ifdef __CRT_UUID_DECL
   3141 __CRT_UUID_DECL(ID3D11View, 0x839d1216, 0xbb2e, 0x412b, 0xb7,0xf4, 0xa9,0xdb,0xeb,0xe0,0x8e,0xd1)
   3142 #endif
   3143 #else
   3144 typedef struct ID3D11ViewVtbl {
   3145     BEGIN_INTERFACE
   3146 
   3147     /*** IUnknown methods ***/
   3148     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3149         ID3D11View *This,
   3150         REFIID riid,
   3151         void **ppvObject);
   3152 
   3153     ULONG (STDMETHODCALLTYPE *AddRef)(
   3154         ID3D11View *This);
   3155 
   3156     ULONG (STDMETHODCALLTYPE *Release)(
   3157         ID3D11View *This);
   3158 
   3159     /*** ID3D11DeviceChild methods ***/
   3160     void (STDMETHODCALLTYPE *GetDevice)(
   3161         ID3D11View *This,
   3162         ID3D11Device **ppDevice);
   3163 
   3164     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3165         ID3D11View *This,
   3166         REFGUID guid,
   3167         UINT *pDataSize,
   3168         void *pData);
   3169 
   3170     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3171         ID3D11View *This,
   3172         REFGUID guid,
   3173         UINT DataSize,
   3174         const void *pData);
   3175 
   3176     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3177         ID3D11View *This,
   3178         REFGUID guid,
   3179         const IUnknown *pData);
   3180 
   3181     /*** ID3D11View methods ***/
   3182     void (STDMETHODCALLTYPE *GetResource)(
   3183         ID3D11View *This,
   3184         ID3D11Resource **ppResource);
   3185 
   3186     END_INTERFACE
   3187 } ID3D11ViewVtbl;
   3188 
   3189 interface ID3D11View {
   3190     CONST_VTBL ID3D11ViewVtbl* lpVtbl;
   3191 };
   3192 
   3193 #ifdef COBJMACROS
   3194 #ifndef WIDL_C_INLINE_WRAPPERS
   3195 /*** IUnknown methods ***/
   3196 #define ID3D11View_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3197 #define ID3D11View_AddRef(This) (This)->lpVtbl->AddRef(This)
   3198 #define ID3D11View_Release(This) (This)->lpVtbl->Release(This)
   3199 /*** ID3D11DeviceChild methods ***/
   3200 #define ID3D11View_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3201 #define ID3D11View_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3202 #define ID3D11View_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3203 #define ID3D11View_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3204 /*** ID3D11View methods ***/
   3205 #define ID3D11View_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   3206 #else
   3207 /*** IUnknown methods ***/
   3208 static inline HRESULT ID3D11View_QueryInterface(ID3D11View* This,REFIID riid,void **ppvObject) {
   3209     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3210 }
   3211 static inline ULONG ID3D11View_AddRef(ID3D11View* This) {
   3212     return This->lpVtbl->AddRef(This);
   3213 }
   3214 static inline ULONG ID3D11View_Release(ID3D11View* This) {
   3215     return This->lpVtbl->Release(This);
   3216 }
   3217 /*** ID3D11DeviceChild methods ***/
   3218 static inline void ID3D11View_GetDevice(ID3D11View* This,ID3D11Device **ppDevice) {
   3219     This->lpVtbl->GetDevice(This,ppDevice);
   3220 }
   3221 static inline HRESULT ID3D11View_GetPrivateData(ID3D11View* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3222     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3223 }
   3224 static inline HRESULT ID3D11View_SetPrivateData(ID3D11View* This,REFGUID guid,UINT DataSize,const void *pData) {
   3225     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3226 }
   3227 static inline HRESULT ID3D11View_SetPrivateDataInterface(ID3D11View* This,REFGUID guid,const IUnknown *pData) {
   3228     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3229 }
   3230 /*** ID3D11View methods ***/
   3231 static inline void ID3D11View_GetResource(ID3D11View* This,ID3D11Resource **ppResource) {
   3232     This->lpVtbl->GetResource(This,ppResource);
   3233 }
   3234 #endif
   3235 #endif
   3236 
   3237 #endif
   3238 
   3239 
   3240 #endif  /* __ID3D11View_INTERFACE_DEFINED__ */
   3241 
   3242 /*****************************************************************************
   3243  * ID3D11BlendState interface
   3244  */
   3245 #ifndef __ID3D11BlendState_INTERFACE_DEFINED__
   3246 #define __ID3D11BlendState_INTERFACE_DEFINED__
   3247 
   3248 DEFINE_GUID(IID_ID3D11BlendState, 0x75b68faa, 0x347d, 0x4159, 0x8f,0x45, 0xa0,0x64,0x0f,0x01,0xcd,0x9a);
   3249 #if defined(__cplusplus) && !defined(CINTERFACE)
   3250 MIDL_INTERFACE("75b68faa-347d-4159-8f45-a0640f01cd9a")
   3251 ID3D11BlendState : public ID3D11DeviceChild
   3252 {
   3253     virtual void STDMETHODCALLTYPE GetDesc(
   3254         D3D11_BLEND_DESC *pDesc) = 0;
   3255 
   3256 };
   3257 #ifdef __CRT_UUID_DECL
   3258 __CRT_UUID_DECL(ID3D11BlendState, 0x75b68faa, 0x347d, 0x4159, 0x8f,0x45, 0xa0,0x64,0x0f,0x01,0xcd,0x9a)
   3259 #endif
   3260 #else
   3261 typedef struct ID3D11BlendStateVtbl {
   3262     BEGIN_INTERFACE
   3263 
   3264     /*** IUnknown methods ***/
   3265     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3266         ID3D11BlendState *This,
   3267         REFIID riid,
   3268         void **ppvObject);
   3269 
   3270     ULONG (STDMETHODCALLTYPE *AddRef)(
   3271         ID3D11BlendState *This);
   3272 
   3273     ULONG (STDMETHODCALLTYPE *Release)(
   3274         ID3D11BlendState *This);
   3275 
   3276     /*** ID3D11DeviceChild methods ***/
   3277     void (STDMETHODCALLTYPE *GetDevice)(
   3278         ID3D11BlendState *This,
   3279         ID3D11Device **ppDevice);
   3280 
   3281     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3282         ID3D11BlendState *This,
   3283         REFGUID guid,
   3284         UINT *pDataSize,
   3285         void *pData);
   3286 
   3287     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3288         ID3D11BlendState *This,
   3289         REFGUID guid,
   3290         UINT DataSize,
   3291         const void *pData);
   3292 
   3293     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3294         ID3D11BlendState *This,
   3295         REFGUID guid,
   3296         const IUnknown *pData);
   3297 
   3298     /*** ID3D11BlendState methods ***/
   3299     void (STDMETHODCALLTYPE *GetDesc)(
   3300         ID3D11BlendState *This,
   3301         D3D11_BLEND_DESC *pDesc);
   3302 
   3303     END_INTERFACE
   3304 } ID3D11BlendStateVtbl;
   3305 
   3306 interface ID3D11BlendState {
   3307     CONST_VTBL ID3D11BlendStateVtbl* lpVtbl;
   3308 };
   3309 
   3310 #ifdef COBJMACROS
   3311 #ifndef WIDL_C_INLINE_WRAPPERS
   3312 /*** IUnknown methods ***/
   3313 #define ID3D11BlendState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3314 #define ID3D11BlendState_AddRef(This) (This)->lpVtbl->AddRef(This)
   3315 #define ID3D11BlendState_Release(This) (This)->lpVtbl->Release(This)
   3316 /*** ID3D11DeviceChild methods ***/
   3317 #define ID3D11BlendState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3318 #define ID3D11BlendState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3319 #define ID3D11BlendState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3320 #define ID3D11BlendState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3321 /*** ID3D11BlendState methods ***/
   3322 #define ID3D11BlendState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   3323 #else
   3324 /*** IUnknown methods ***/
   3325 static inline HRESULT ID3D11BlendState_QueryInterface(ID3D11BlendState* This,REFIID riid,void **ppvObject) {
   3326     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3327 }
   3328 static inline ULONG ID3D11BlendState_AddRef(ID3D11BlendState* This) {
   3329     return This->lpVtbl->AddRef(This);
   3330 }
   3331 static inline ULONG ID3D11BlendState_Release(ID3D11BlendState* This) {
   3332     return This->lpVtbl->Release(This);
   3333 }
   3334 /*** ID3D11DeviceChild methods ***/
   3335 static inline void ID3D11BlendState_GetDevice(ID3D11BlendState* This,ID3D11Device **ppDevice) {
   3336     This->lpVtbl->GetDevice(This,ppDevice);
   3337 }
   3338 static inline HRESULT ID3D11BlendState_GetPrivateData(ID3D11BlendState* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3339     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3340 }
   3341 static inline HRESULT ID3D11BlendState_SetPrivateData(ID3D11BlendState* This,REFGUID guid,UINT DataSize,const void *pData) {
   3342     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3343 }
   3344 static inline HRESULT ID3D11BlendState_SetPrivateDataInterface(ID3D11BlendState* This,REFGUID guid,const IUnknown *pData) {
   3345     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3346 }
   3347 /*** ID3D11BlendState methods ***/
   3348 static inline void ID3D11BlendState_GetDesc(ID3D11BlendState* This,D3D11_BLEND_DESC *pDesc) {
   3349     This->lpVtbl->GetDesc(This,pDesc);
   3350 }
   3351 #endif
   3352 #endif
   3353 
   3354 #endif
   3355 
   3356 
   3357 #endif  /* __ID3D11BlendState_INTERFACE_DEFINED__ */
   3358 
   3359 /*****************************************************************************
   3360  * ID3D11Buffer interface
   3361  */
   3362 #ifndef __ID3D11Buffer_INTERFACE_DEFINED__
   3363 #define __ID3D11Buffer_INTERFACE_DEFINED__
   3364 
   3365 DEFINE_GUID(IID_ID3D11Buffer, 0x48570b85, 0xd1ee, 0x4fcd, 0xa2,0x50, 0xeb,0x35,0x07,0x22,0xb0,0x37);
   3366 #if defined(__cplusplus) && !defined(CINTERFACE)
   3367 MIDL_INTERFACE("48570b85-d1ee-4fcd-a250-eb350722b037")
   3368 ID3D11Buffer : public ID3D11Resource
   3369 {
   3370     virtual void STDMETHODCALLTYPE GetDesc(
   3371         D3D11_BUFFER_DESC *pDesc) = 0;
   3372 
   3373 };
   3374 #ifdef __CRT_UUID_DECL
   3375 __CRT_UUID_DECL(ID3D11Buffer, 0x48570b85, 0xd1ee, 0x4fcd, 0xa2,0x50, 0xeb,0x35,0x07,0x22,0xb0,0x37)
   3376 #endif
   3377 #else
   3378 typedef struct ID3D11BufferVtbl {
   3379     BEGIN_INTERFACE
   3380 
   3381     /*** IUnknown methods ***/
   3382     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3383         ID3D11Buffer *This,
   3384         REFIID riid,
   3385         void **ppvObject);
   3386 
   3387     ULONG (STDMETHODCALLTYPE *AddRef)(
   3388         ID3D11Buffer *This);
   3389 
   3390     ULONG (STDMETHODCALLTYPE *Release)(
   3391         ID3D11Buffer *This);
   3392 
   3393     /*** ID3D11DeviceChild methods ***/
   3394     void (STDMETHODCALLTYPE *GetDevice)(
   3395         ID3D11Buffer *This,
   3396         ID3D11Device **ppDevice);
   3397 
   3398     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3399         ID3D11Buffer *This,
   3400         REFGUID guid,
   3401         UINT *pDataSize,
   3402         void *pData);
   3403 
   3404     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3405         ID3D11Buffer *This,
   3406         REFGUID guid,
   3407         UINT DataSize,
   3408         const void *pData);
   3409 
   3410     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3411         ID3D11Buffer *This,
   3412         REFGUID guid,
   3413         const IUnknown *pData);
   3414 
   3415     /*** ID3D11Resource methods ***/
   3416     void (STDMETHODCALLTYPE *GetType)(
   3417         ID3D11Buffer *This,
   3418         D3D11_RESOURCE_DIMENSION *pResourceDimension);
   3419 
   3420     void (STDMETHODCALLTYPE *SetEvictionPriority)(
   3421         ID3D11Buffer *This,
   3422         UINT EvictionPriority);
   3423 
   3424     UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
   3425         ID3D11Buffer *This);
   3426 
   3427     /*** ID3D11Buffer methods ***/
   3428     void (STDMETHODCALLTYPE *GetDesc)(
   3429         ID3D11Buffer *This,
   3430         D3D11_BUFFER_DESC *pDesc);
   3431 
   3432     END_INTERFACE
   3433 } ID3D11BufferVtbl;
   3434 
   3435 interface ID3D11Buffer {
   3436     CONST_VTBL ID3D11BufferVtbl* lpVtbl;
   3437 };
   3438 
   3439 #ifdef COBJMACROS
   3440 #ifndef WIDL_C_INLINE_WRAPPERS
   3441 /*** IUnknown methods ***/
   3442 #define ID3D11Buffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3443 #define ID3D11Buffer_AddRef(This) (This)->lpVtbl->AddRef(This)
   3444 #define ID3D11Buffer_Release(This) (This)->lpVtbl->Release(This)
   3445 /*** ID3D11DeviceChild methods ***/
   3446 #define ID3D11Buffer_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3447 #define ID3D11Buffer_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3448 #define ID3D11Buffer_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3449 #define ID3D11Buffer_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3450 /*** ID3D11Resource methods ***/
   3451 #define ID3D11Buffer_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
   3452 #define ID3D11Buffer_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
   3453 #define ID3D11Buffer_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
   3454 /*** ID3D11Buffer methods ***/
   3455 #define ID3D11Buffer_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   3456 #else
   3457 /*** IUnknown methods ***/
   3458 static inline HRESULT ID3D11Buffer_QueryInterface(ID3D11Buffer* This,REFIID riid,void **ppvObject) {
   3459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3460 }
   3461 static inline ULONG ID3D11Buffer_AddRef(ID3D11Buffer* This) {
   3462     return This->lpVtbl->AddRef(This);
   3463 }
   3464 static inline ULONG ID3D11Buffer_Release(ID3D11Buffer* This) {
   3465     return This->lpVtbl->Release(This);
   3466 }
   3467 /*** ID3D11DeviceChild methods ***/
   3468 static inline void ID3D11Buffer_GetDevice(ID3D11Buffer* This,ID3D11Device **ppDevice) {
   3469     This->lpVtbl->GetDevice(This,ppDevice);
   3470 }
   3471 static inline HRESULT ID3D11Buffer_GetPrivateData(ID3D11Buffer* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3472     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3473 }
   3474 static inline HRESULT ID3D11Buffer_SetPrivateData(ID3D11Buffer* This,REFGUID guid,UINT DataSize,const void *pData) {
   3475     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3476 }
   3477 static inline HRESULT ID3D11Buffer_SetPrivateDataInterface(ID3D11Buffer* This,REFGUID guid,const IUnknown *pData) {
   3478     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3479 }
   3480 /*** ID3D11Resource methods ***/
   3481 static inline void ID3D11Buffer_GetType(ID3D11Buffer* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
   3482     This->lpVtbl->GetType(This,pResourceDimension);
   3483 }
   3484 static inline void ID3D11Buffer_SetEvictionPriority(ID3D11Buffer* This,UINT EvictionPriority) {
   3485     This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
   3486 }
   3487 static inline UINT ID3D11Buffer_GetEvictionPriority(ID3D11Buffer* This) {
   3488     return This->lpVtbl->GetEvictionPriority(This);
   3489 }
   3490 /*** ID3D11Buffer methods ***/
   3491 static inline void ID3D11Buffer_GetDesc(ID3D11Buffer* This,D3D11_BUFFER_DESC *pDesc) {
   3492     This->lpVtbl->GetDesc(This,pDesc);
   3493 }
   3494 #endif
   3495 #endif
   3496 
   3497 #endif
   3498 
   3499 
   3500 #endif  /* __ID3D11Buffer_INTERFACE_DEFINED__ */
   3501 
   3502 /*****************************************************************************
   3503  * ID3D11ClassInstance interface
   3504  */
   3505 #ifndef __ID3D11ClassInstance_INTERFACE_DEFINED__
   3506 #define __ID3D11ClassInstance_INTERFACE_DEFINED__
   3507 
   3508 DEFINE_GUID(IID_ID3D11ClassInstance, 0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94,0x36, 0x86,0x62,0xa6,0x57,0x97,0xcb);
   3509 #if defined(__cplusplus) && !defined(CINTERFACE)
   3510 MIDL_INTERFACE("a6cd7faa-b0b7-4a2f-9436-8662a65797cb")
   3511 ID3D11ClassInstance : public ID3D11DeviceChild
   3512 {
   3513     virtual void STDMETHODCALLTYPE GetClassLinkage(
   3514         ID3D11ClassLinkage **ppLinkage) = 0;
   3515 
   3516     virtual void STDMETHODCALLTYPE GetDesc(
   3517         D3D11_CLASS_INSTANCE_DESC *pDesc) = 0;
   3518 
   3519     virtual void STDMETHODCALLTYPE GetInstanceName(
   3520         LPSTR pInstanceName,
   3521         SIZE_T *pBufferLength) = 0;
   3522 
   3523     virtual void STDMETHODCALLTYPE GetTypeName(
   3524         LPSTR pTypeName,
   3525         SIZE_T *pBufferLength) = 0;
   3526 
   3527 };
   3528 #ifdef __CRT_UUID_DECL
   3529 __CRT_UUID_DECL(ID3D11ClassInstance, 0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94,0x36, 0x86,0x62,0xa6,0x57,0x97,0xcb)
   3530 #endif
   3531 #else
   3532 typedef struct ID3D11ClassInstanceVtbl {
   3533     BEGIN_INTERFACE
   3534 
   3535     /*** IUnknown methods ***/
   3536     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3537         ID3D11ClassInstance *This,
   3538         REFIID riid,
   3539         void **ppvObject);
   3540 
   3541     ULONG (STDMETHODCALLTYPE *AddRef)(
   3542         ID3D11ClassInstance *This);
   3543 
   3544     ULONG (STDMETHODCALLTYPE *Release)(
   3545         ID3D11ClassInstance *This);
   3546 
   3547     /*** ID3D11DeviceChild methods ***/
   3548     void (STDMETHODCALLTYPE *GetDevice)(
   3549         ID3D11ClassInstance *This,
   3550         ID3D11Device **ppDevice);
   3551 
   3552     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3553         ID3D11ClassInstance *This,
   3554         REFGUID guid,
   3555         UINT *pDataSize,
   3556         void *pData);
   3557 
   3558     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3559         ID3D11ClassInstance *This,
   3560         REFGUID guid,
   3561         UINT DataSize,
   3562         const void *pData);
   3563 
   3564     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3565         ID3D11ClassInstance *This,
   3566         REFGUID guid,
   3567         const IUnknown *pData);
   3568 
   3569     /*** ID3D11ClassInstance methods ***/
   3570     void (STDMETHODCALLTYPE *GetClassLinkage)(
   3571         ID3D11ClassInstance *This,
   3572         ID3D11ClassLinkage **ppLinkage);
   3573 
   3574     void (STDMETHODCALLTYPE *GetDesc)(
   3575         ID3D11ClassInstance *This,
   3576         D3D11_CLASS_INSTANCE_DESC *pDesc);
   3577 
   3578     void (STDMETHODCALLTYPE *GetInstanceName)(
   3579         ID3D11ClassInstance *This,
   3580         LPSTR pInstanceName,
   3581         SIZE_T *pBufferLength);
   3582 
   3583     void (STDMETHODCALLTYPE *GetTypeName)(
   3584         ID3D11ClassInstance *This,
   3585         LPSTR pTypeName,
   3586         SIZE_T *pBufferLength);
   3587 
   3588     END_INTERFACE
   3589 } ID3D11ClassInstanceVtbl;
   3590 
   3591 interface ID3D11ClassInstance {
   3592     CONST_VTBL ID3D11ClassInstanceVtbl* lpVtbl;
   3593 };
   3594 
   3595 #ifdef COBJMACROS
   3596 #ifndef WIDL_C_INLINE_WRAPPERS
   3597 /*** IUnknown methods ***/
   3598 #define ID3D11ClassInstance_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3599 #define ID3D11ClassInstance_AddRef(This) (This)->lpVtbl->AddRef(This)
   3600 #define ID3D11ClassInstance_Release(This) (This)->lpVtbl->Release(This)
   3601 /*** ID3D11DeviceChild methods ***/
   3602 #define ID3D11ClassInstance_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3603 #define ID3D11ClassInstance_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3604 #define ID3D11ClassInstance_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3605 #define ID3D11ClassInstance_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3606 /*** ID3D11ClassInstance methods ***/
   3607 #define ID3D11ClassInstance_GetClassLinkage(This,ppLinkage) (This)->lpVtbl->GetClassLinkage(This,ppLinkage)
   3608 #define ID3D11ClassInstance_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   3609 #define ID3D11ClassInstance_GetInstanceName(This,pInstanceName,pBufferLength) (This)->lpVtbl->GetInstanceName(This,pInstanceName,pBufferLength)
   3610 #define ID3D11ClassInstance_GetTypeName(This,pTypeName,pBufferLength) (This)->lpVtbl->GetTypeName(This,pTypeName,pBufferLength)
   3611 #else
   3612 /*** IUnknown methods ***/
   3613 static inline HRESULT ID3D11ClassInstance_QueryInterface(ID3D11ClassInstance* This,REFIID riid,void **ppvObject) {
   3614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3615 }
   3616 static inline ULONG ID3D11ClassInstance_AddRef(ID3D11ClassInstance* This) {
   3617     return This->lpVtbl->AddRef(This);
   3618 }
   3619 static inline ULONG ID3D11ClassInstance_Release(ID3D11ClassInstance* This) {
   3620     return This->lpVtbl->Release(This);
   3621 }
   3622 /*** ID3D11DeviceChild methods ***/
   3623 static inline void ID3D11ClassInstance_GetDevice(ID3D11ClassInstance* This,ID3D11Device **ppDevice) {
   3624     This->lpVtbl->GetDevice(This,ppDevice);
   3625 }
   3626 static inline HRESULT ID3D11ClassInstance_GetPrivateData(ID3D11ClassInstance* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3627     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3628 }
   3629 static inline HRESULT ID3D11ClassInstance_SetPrivateData(ID3D11ClassInstance* This,REFGUID guid,UINT DataSize,const void *pData) {
   3630     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3631 }
   3632 static inline HRESULT ID3D11ClassInstance_SetPrivateDataInterface(ID3D11ClassInstance* This,REFGUID guid,const IUnknown *pData) {
   3633     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3634 }
   3635 /*** ID3D11ClassInstance methods ***/
   3636 static inline void ID3D11ClassInstance_GetClassLinkage(ID3D11ClassInstance* This,ID3D11ClassLinkage **ppLinkage) {
   3637     This->lpVtbl->GetClassLinkage(This,ppLinkage);
   3638 }
   3639 static inline void ID3D11ClassInstance_GetDesc(ID3D11ClassInstance* This,D3D11_CLASS_INSTANCE_DESC *pDesc) {
   3640     This->lpVtbl->GetDesc(This,pDesc);
   3641 }
   3642 static inline void ID3D11ClassInstance_GetInstanceName(ID3D11ClassInstance* This,LPSTR pInstanceName,SIZE_T *pBufferLength) {
   3643     This->lpVtbl->GetInstanceName(This,pInstanceName,pBufferLength);
   3644 }
   3645 static inline void ID3D11ClassInstance_GetTypeName(ID3D11ClassInstance* This,LPSTR pTypeName,SIZE_T *pBufferLength) {
   3646     This->lpVtbl->GetTypeName(This,pTypeName,pBufferLength);
   3647 }
   3648 #endif
   3649 #endif
   3650 
   3651 #endif
   3652 
   3653 
   3654 #endif  /* __ID3D11ClassInstance_INTERFACE_DEFINED__ */
   3655 
   3656 /*****************************************************************************
   3657  * ID3D11ClassLinkage interface
   3658  */
   3659 #ifndef __ID3D11ClassLinkage_INTERFACE_DEFINED__
   3660 #define __ID3D11ClassLinkage_INTERFACE_DEFINED__
   3661 
   3662 DEFINE_GUID(IID_ID3D11ClassLinkage, 0xddf57cba, 0x9543, 0x46e4, 0xa1,0x2b, 0xf2,0x07,0xa0,0xfe,0x7f,0xed);
   3663 #if defined(__cplusplus) && !defined(CINTERFACE)
   3664 MIDL_INTERFACE("ddf57cba-9543-46e4-a12b-f207a0fe7fed")
   3665 ID3D11ClassLinkage : public ID3D11DeviceChild
   3666 {
   3667     virtual HRESULT STDMETHODCALLTYPE GetClassInstance(
   3668         LPCSTR pClassInstanceName,
   3669         UINT InstanceIndex,
   3670         ID3D11ClassInstance **ppInstance) = 0;
   3671 
   3672     virtual HRESULT STDMETHODCALLTYPE CreateClassInstance(
   3673         LPCSTR pClassTypeName,
   3674         UINT ConstantBufferOffset,
   3675         UINT ConstantVectorOffset,
   3676         UINT TextureOffset,
   3677         UINT SamplerOffset,
   3678         ID3D11ClassInstance **ppInstance) = 0;
   3679 
   3680 };
   3681 #ifdef __CRT_UUID_DECL
   3682 __CRT_UUID_DECL(ID3D11ClassLinkage, 0xddf57cba, 0x9543, 0x46e4, 0xa1,0x2b, 0xf2,0x07,0xa0,0xfe,0x7f,0xed)
   3683 #endif
   3684 #else
   3685 typedef struct ID3D11ClassLinkageVtbl {
   3686     BEGIN_INTERFACE
   3687 
   3688     /*** IUnknown methods ***/
   3689     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3690         ID3D11ClassLinkage *This,
   3691         REFIID riid,
   3692         void **ppvObject);
   3693 
   3694     ULONG (STDMETHODCALLTYPE *AddRef)(
   3695         ID3D11ClassLinkage *This);
   3696 
   3697     ULONG (STDMETHODCALLTYPE *Release)(
   3698         ID3D11ClassLinkage *This);
   3699 
   3700     /*** ID3D11DeviceChild methods ***/
   3701     void (STDMETHODCALLTYPE *GetDevice)(
   3702         ID3D11ClassLinkage *This,
   3703         ID3D11Device **ppDevice);
   3704 
   3705     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3706         ID3D11ClassLinkage *This,
   3707         REFGUID guid,
   3708         UINT *pDataSize,
   3709         void *pData);
   3710 
   3711     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3712         ID3D11ClassLinkage *This,
   3713         REFGUID guid,
   3714         UINT DataSize,
   3715         const void *pData);
   3716 
   3717     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3718         ID3D11ClassLinkage *This,
   3719         REFGUID guid,
   3720         const IUnknown *pData);
   3721 
   3722     /*** ID3D11ClassLinkage methods ***/
   3723     HRESULT (STDMETHODCALLTYPE *GetClassInstance)(
   3724         ID3D11ClassLinkage *This,
   3725         LPCSTR pClassInstanceName,
   3726         UINT InstanceIndex,
   3727         ID3D11ClassInstance **ppInstance);
   3728 
   3729     HRESULT (STDMETHODCALLTYPE *CreateClassInstance)(
   3730         ID3D11ClassLinkage *This,
   3731         LPCSTR pClassTypeName,
   3732         UINT ConstantBufferOffset,
   3733         UINT ConstantVectorOffset,
   3734         UINT TextureOffset,
   3735         UINT SamplerOffset,
   3736         ID3D11ClassInstance **ppInstance);
   3737 
   3738     END_INTERFACE
   3739 } ID3D11ClassLinkageVtbl;
   3740 
   3741 interface ID3D11ClassLinkage {
   3742     CONST_VTBL ID3D11ClassLinkageVtbl* lpVtbl;
   3743 };
   3744 
   3745 #ifdef COBJMACROS
   3746 #ifndef WIDL_C_INLINE_WRAPPERS
   3747 /*** IUnknown methods ***/
   3748 #define ID3D11ClassLinkage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3749 #define ID3D11ClassLinkage_AddRef(This) (This)->lpVtbl->AddRef(This)
   3750 #define ID3D11ClassLinkage_Release(This) (This)->lpVtbl->Release(This)
   3751 /*** ID3D11DeviceChild methods ***/
   3752 #define ID3D11ClassLinkage_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3753 #define ID3D11ClassLinkage_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3754 #define ID3D11ClassLinkage_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3755 #define ID3D11ClassLinkage_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3756 /*** ID3D11ClassLinkage methods ***/
   3757 #define ID3D11ClassLinkage_GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance) (This)->lpVtbl->GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance)
   3758 #define ID3D11ClassLinkage_CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance) (This)->lpVtbl->CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance)
   3759 #else
   3760 /*** IUnknown methods ***/
   3761 static inline HRESULT ID3D11ClassLinkage_QueryInterface(ID3D11ClassLinkage* This,REFIID riid,void **ppvObject) {
   3762     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3763 }
   3764 static inline ULONG ID3D11ClassLinkage_AddRef(ID3D11ClassLinkage* This) {
   3765     return This->lpVtbl->AddRef(This);
   3766 }
   3767 static inline ULONG ID3D11ClassLinkage_Release(ID3D11ClassLinkage* This) {
   3768     return This->lpVtbl->Release(This);
   3769 }
   3770 /*** ID3D11DeviceChild methods ***/
   3771 static inline void ID3D11ClassLinkage_GetDevice(ID3D11ClassLinkage* This,ID3D11Device **ppDevice) {
   3772     This->lpVtbl->GetDevice(This,ppDevice);
   3773 }
   3774 static inline HRESULT ID3D11ClassLinkage_GetPrivateData(ID3D11ClassLinkage* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3775     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3776 }
   3777 static inline HRESULT ID3D11ClassLinkage_SetPrivateData(ID3D11ClassLinkage* This,REFGUID guid,UINT DataSize,const void *pData) {
   3778     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3779 }
   3780 static inline HRESULT ID3D11ClassLinkage_SetPrivateDataInterface(ID3D11ClassLinkage* This,REFGUID guid,const IUnknown *pData) {
   3781     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3782 }
   3783 /*** ID3D11ClassLinkage methods ***/
   3784 static inline HRESULT ID3D11ClassLinkage_GetClassInstance(ID3D11ClassLinkage* This,LPCSTR pClassInstanceName,UINT InstanceIndex,ID3D11ClassInstance **ppInstance) {
   3785     return This->lpVtbl->GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance);
   3786 }
   3787 static inline HRESULT ID3D11ClassLinkage_CreateClassInstance(ID3D11ClassLinkage* This,LPCSTR pClassTypeName,UINT ConstantBufferOffset,UINT ConstantVectorOffset,UINT TextureOffset,UINT SamplerOffset,ID3D11ClassInstance **ppInstance) {
   3788     return This->lpVtbl->CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance);
   3789 }
   3790 #endif
   3791 #endif
   3792 
   3793 #endif
   3794 
   3795 
   3796 #endif  /* __ID3D11ClassLinkage_INTERFACE_DEFINED__ */
   3797 
   3798 /*****************************************************************************
   3799  * ID3D11CommandList interface
   3800  */
   3801 #ifndef __ID3D11CommandList_INTERFACE_DEFINED__
   3802 #define __ID3D11CommandList_INTERFACE_DEFINED__
   3803 
   3804 DEFINE_GUID(IID_ID3D11CommandList, 0xa24bc4d1, 0x769e, 0x43f7, 0x80,0x13, 0x98,0xff,0x56,0x6c,0x18,0xe2);
   3805 #if defined(__cplusplus) && !defined(CINTERFACE)
   3806 MIDL_INTERFACE("a24bc4d1-769e-43f7-8013-98ff566c18e2")
   3807 ID3D11CommandList : public ID3D11DeviceChild
   3808 {
   3809     virtual UINT STDMETHODCALLTYPE GetContextFlags(
   3810         ) = 0;
   3811 
   3812 };
   3813 #ifdef __CRT_UUID_DECL
   3814 __CRT_UUID_DECL(ID3D11CommandList, 0xa24bc4d1, 0x769e, 0x43f7, 0x80,0x13, 0x98,0xff,0x56,0x6c,0x18,0xe2)
   3815 #endif
   3816 #else
   3817 typedef struct ID3D11CommandListVtbl {
   3818     BEGIN_INTERFACE
   3819 
   3820     /*** IUnknown methods ***/
   3821     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3822         ID3D11CommandList *This,
   3823         REFIID riid,
   3824         void **ppvObject);
   3825 
   3826     ULONG (STDMETHODCALLTYPE *AddRef)(
   3827         ID3D11CommandList *This);
   3828 
   3829     ULONG (STDMETHODCALLTYPE *Release)(
   3830         ID3D11CommandList *This);
   3831 
   3832     /*** ID3D11DeviceChild methods ***/
   3833     void (STDMETHODCALLTYPE *GetDevice)(
   3834         ID3D11CommandList *This,
   3835         ID3D11Device **ppDevice);
   3836 
   3837     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3838         ID3D11CommandList *This,
   3839         REFGUID guid,
   3840         UINT *pDataSize,
   3841         void *pData);
   3842 
   3843     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3844         ID3D11CommandList *This,
   3845         REFGUID guid,
   3846         UINT DataSize,
   3847         const void *pData);
   3848 
   3849     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3850         ID3D11CommandList *This,
   3851         REFGUID guid,
   3852         const IUnknown *pData);
   3853 
   3854     /*** ID3D11CommandList methods ***/
   3855     UINT (STDMETHODCALLTYPE *GetContextFlags)(
   3856         ID3D11CommandList *This);
   3857 
   3858     END_INTERFACE
   3859 } ID3D11CommandListVtbl;
   3860 
   3861 interface ID3D11CommandList {
   3862     CONST_VTBL ID3D11CommandListVtbl* lpVtbl;
   3863 };
   3864 
   3865 #ifdef COBJMACROS
   3866 #ifndef WIDL_C_INLINE_WRAPPERS
   3867 /*** IUnknown methods ***/
   3868 #define ID3D11CommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3869 #define ID3D11CommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
   3870 #define ID3D11CommandList_Release(This) (This)->lpVtbl->Release(This)
   3871 /*** ID3D11DeviceChild methods ***/
   3872 #define ID3D11CommandList_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3873 #define ID3D11CommandList_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3874 #define ID3D11CommandList_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3875 #define ID3D11CommandList_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3876 /*** ID3D11CommandList methods ***/
   3877 #define ID3D11CommandList_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
   3878 #else
   3879 /*** IUnknown methods ***/
   3880 static inline HRESULT ID3D11CommandList_QueryInterface(ID3D11CommandList* This,REFIID riid,void **ppvObject) {
   3881     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3882 }
   3883 static inline ULONG ID3D11CommandList_AddRef(ID3D11CommandList* This) {
   3884     return This->lpVtbl->AddRef(This);
   3885 }
   3886 static inline ULONG ID3D11CommandList_Release(ID3D11CommandList* This) {
   3887     return This->lpVtbl->Release(This);
   3888 }
   3889 /*** ID3D11DeviceChild methods ***/
   3890 static inline void ID3D11CommandList_GetDevice(ID3D11CommandList* This,ID3D11Device **ppDevice) {
   3891     This->lpVtbl->GetDevice(This,ppDevice);
   3892 }
   3893 static inline HRESULT ID3D11CommandList_GetPrivateData(ID3D11CommandList* This,REFGUID guid,UINT *pDataSize,void *pData) {
   3894     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   3895 }
   3896 static inline HRESULT ID3D11CommandList_SetPrivateData(ID3D11CommandList* This,REFGUID guid,UINT DataSize,const void *pData) {
   3897     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   3898 }
   3899 static inline HRESULT ID3D11CommandList_SetPrivateDataInterface(ID3D11CommandList* This,REFGUID guid,const IUnknown *pData) {
   3900     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   3901 }
   3902 /*** ID3D11CommandList methods ***/
   3903 static inline UINT ID3D11CommandList_GetContextFlags(ID3D11CommandList* This) {
   3904     return This->lpVtbl->GetContextFlags(This);
   3905 }
   3906 #endif
   3907 #endif
   3908 
   3909 #endif
   3910 
   3911 
   3912 #endif  /* __ID3D11CommandList_INTERFACE_DEFINED__ */
   3913 
   3914 /*****************************************************************************
   3915  * ID3D11ComputeShader interface
   3916  */
   3917 #ifndef __ID3D11ComputeShader_INTERFACE_DEFINED__
   3918 #define __ID3D11ComputeShader_INTERFACE_DEFINED__
   3919 
   3920 DEFINE_GUID(IID_ID3D11ComputeShader, 0x4f5b196e, 0xc2bd, 0x495e, 0xbd,0x01, 0x1f,0xde,0xd3,0x8e,0x49,0x69);
   3921 #if defined(__cplusplus) && !defined(CINTERFACE)
   3922 MIDL_INTERFACE("4f5b196e-c2bd-495e-bd01-1fded38e4969")
   3923 ID3D11ComputeShader : public ID3D11DeviceChild
   3924 {
   3925 };
   3926 #ifdef __CRT_UUID_DECL
   3927 __CRT_UUID_DECL(ID3D11ComputeShader, 0x4f5b196e, 0xc2bd, 0x495e, 0xbd,0x01, 0x1f,0xde,0xd3,0x8e,0x49,0x69)
   3928 #endif
   3929 #else
   3930 typedef struct ID3D11ComputeShaderVtbl {
   3931     BEGIN_INTERFACE
   3932 
   3933     /*** IUnknown methods ***/
   3934     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3935         ID3D11ComputeShader *This,
   3936         REFIID riid,
   3937         void **ppvObject);
   3938 
   3939     ULONG (STDMETHODCALLTYPE *AddRef)(
   3940         ID3D11ComputeShader *This);
   3941 
   3942     ULONG (STDMETHODCALLTYPE *Release)(
   3943         ID3D11ComputeShader *This);
   3944 
   3945     /*** ID3D11DeviceChild methods ***/
   3946     void (STDMETHODCALLTYPE *GetDevice)(
   3947         ID3D11ComputeShader *This,
   3948         ID3D11Device **ppDevice);
   3949 
   3950     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   3951         ID3D11ComputeShader *This,
   3952         REFGUID guid,
   3953         UINT *pDataSize,
   3954         void *pData);
   3955 
   3956     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   3957         ID3D11ComputeShader *This,
   3958         REFGUID guid,
   3959         UINT DataSize,
   3960         const void *pData);
   3961 
   3962     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   3963         ID3D11ComputeShader *This,
   3964         REFGUID guid,
   3965         const IUnknown *pData);
   3966 
   3967     END_INTERFACE
   3968 } ID3D11ComputeShaderVtbl;
   3969 
   3970 interface ID3D11ComputeShader {
   3971     CONST_VTBL ID3D11ComputeShaderVtbl* lpVtbl;
   3972 };
   3973 
   3974 #ifdef COBJMACROS
   3975 #ifndef WIDL_C_INLINE_WRAPPERS
   3976 /*** IUnknown methods ***/
   3977 #define ID3D11ComputeShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3978 #define ID3D11ComputeShader_AddRef(This) (This)->lpVtbl->AddRef(This)
   3979 #define ID3D11ComputeShader_Release(This) (This)->lpVtbl->Release(This)
   3980 /*** ID3D11DeviceChild methods ***/
   3981 #define ID3D11ComputeShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   3982 #define ID3D11ComputeShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   3983 #define ID3D11ComputeShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   3984 #define ID3D11ComputeShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   3985 #else
   3986 /*** IUnknown methods ***/
   3987 static inline HRESULT ID3D11ComputeShader_QueryInterface(ID3D11ComputeShader* This,REFIID riid,void **ppvObject) {
   3988     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3989 }
   3990 static inline ULONG ID3D11ComputeShader_AddRef(ID3D11ComputeShader* This) {
   3991     return This->lpVtbl->AddRef(This);
   3992 }
   3993 static inline ULONG ID3D11ComputeShader_Release(ID3D11ComputeShader* This) {
   3994     return This->lpVtbl->Release(This);
   3995 }
   3996 /*** ID3D11DeviceChild methods ***/
   3997 static inline void ID3D11ComputeShader_GetDevice(ID3D11ComputeShader* This,ID3D11Device **ppDevice) {
   3998     This->lpVtbl->GetDevice(This,ppDevice);
   3999 }
   4000 static inline HRESULT ID3D11ComputeShader_GetPrivateData(ID3D11ComputeShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4001     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4002 }
   4003 static inline HRESULT ID3D11ComputeShader_SetPrivateData(ID3D11ComputeShader* This,REFGUID guid,UINT DataSize,const void *pData) {
   4004     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4005 }
   4006 static inline HRESULT ID3D11ComputeShader_SetPrivateDataInterface(ID3D11ComputeShader* This,REFGUID guid,const IUnknown *pData) {
   4007     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4008 }
   4009 #endif
   4010 #endif
   4011 
   4012 #endif
   4013 
   4014 
   4015 #endif  /* __ID3D11ComputeShader_INTERFACE_DEFINED__ */
   4016 
   4017 /*****************************************************************************
   4018  * ID3D11Counter interface
   4019  */
   4020 #ifndef __ID3D11Counter_INTERFACE_DEFINED__
   4021 #define __ID3D11Counter_INTERFACE_DEFINED__
   4022 
   4023 DEFINE_GUID(IID_ID3D11Counter, 0x6e8c49fb, 0xa371, 0x4770, 0xb4,0x40, 0x29,0x08,0x60,0x22,0xb7,0x41);
   4024 #if defined(__cplusplus) && !defined(CINTERFACE)
   4025 MIDL_INTERFACE("6e8c49fb-a371-4770-b440-29086022b741")
   4026 ID3D11Counter : public ID3D11Asynchronous
   4027 {
   4028     virtual void STDMETHODCALLTYPE GetDesc(
   4029         D3D11_COUNTER_DESC *pDesc) = 0;
   4030 
   4031 };
   4032 #ifdef __CRT_UUID_DECL
   4033 __CRT_UUID_DECL(ID3D11Counter, 0x6e8c49fb, 0xa371, 0x4770, 0xb4,0x40, 0x29,0x08,0x60,0x22,0xb7,0x41)
   4034 #endif
   4035 #else
   4036 typedef struct ID3D11CounterVtbl {
   4037     BEGIN_INTERFACE
   4038 
   4039     /*** IUnknown methods ***/
   4040     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4041         ID3D11Counter *This,
   4042         REFIID riid,
   4043         void **ppvObject);
   4044 
   4045     ULONG (STDMETHODCALLTYPE *AddRef)(
   4046         ID3D11Counter *This);
   4047 
   4048     ULONG (STDMETHODCALLTYPE *Release)(
   4049         ID3D11Counter *This);
   4050 
   4051     /*** ID3D11DeviceChild methods ***/
   4052     void (STDMETHODCALLTYPE *GetDevice)(
   4053         ID3D11Counter *This,
   4054         ID3D11Device **ppDevice);
   4055 
   4056     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4057         ID3D11Counter *This,
   4058         REFGUID guid,
   4059         UINT *pDataSize,
   4060         void *pData);
   4061 
   4062     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4063         ID3D11Counter *This,
   4064         REFGUID guid,
   4065         UINT DataSize,
   4066         const void *pData);
   4067 
   4068     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4069         ID3D11Counter *This,
   4070         REFGUID guid,
   4071         const IUnknown *pData);
   4072 
   4073     /*** ID3D11Asynchronous methods ***/
   4074     UINT (STDMETHODCALLTYPE *GetDataSize)(
   4075         ID3D11Counter *This);
   4076 
   4077     /*** ID3D11Counter methods ***/
   4078     void (STDMETHODCALLTYPE *GetDesc)(
   4079         ID3D11Counter *This,
   4080         D3D11_COUNTER_DESC *pDesc);
   4081 
   4082     END_INTERFACE
   4083 } ID3D11CounterVtbl;
   4084 
   4085 interface ID3D11Counter {
   4086     CONST_VTBL ID3D11CounterVtbl* lpVtbl;
   4087 };
   4088 
   4089 #ifdef COBJMACROS
   4090 #ifndef WIDL_C_INLINE_WRAPPERS
   4091 /*** IUnknown methods ***/
   4092 #define ID3D11Counter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4093 #define ID3D11Counter_AddRef(This) (This)->lpVtbl->AddRef(This)
   4094 #define ID3D11Counter_Release(This) (This)->lpVtbl->Release(This)
   4095 /*** ID3D11DeviceChild methods ***/
   4096 #define ID3D11Counter_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4097 #define ID3D11Counter_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4098 #define ID3D11Counter_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4099 #define ID3D11Counter_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4100 /*** ID3D11Asynchronous methods ***/
   4101 #define ID3D11Counter_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
   4102 /*** ID3D11Counter methods ***/
   4103 #define ID3D11Counter_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   4104 #else
   4105 /*** IUnknown methods ***/
   4106 static inline HRESULT ID3D11Counter_QueryInterface(ID3D11Counter* This,REFIID riid,void **ppvObject) {
   4107     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4108 }
   4109 static inline ULONG ID3D11Counter_AddRef(ID3D11Counter* This) {
   4110     return This->lpVtbl->AddRef(This);
   4111 }
   4112 static inline ULONG ID3D11Counter_Release(ID3D11Counter* This) {
   4113     return This->lpVtbl->Release(This);
   4114 }
   4115 /*** ID3D11DeviceChild methods ***/
   4116 static inline void ID3D11Counter_GetDevice(ID3D11Counter* This,ID3D11Device **ppDevice) {
   4117     This->lpVtbl->GetDevice(This,ppDevice);
   4118 }
   4119 static inline HRESULT ID3D11Counter_GetPrivateData(ID3D11Counter* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4120     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4121 }
   4122 static inline HRESULT ID3D11Counter_SetPrivateData(ID3D11Counter* This,REFGUID guid,UINT DataSize,const void *pData) {
   4123     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4124 }
   4125 static inline HRESULT ID3D11Counter_SetPrivateDataInterface(ID3D11Counter* This,REFGUID guid,const IUnknown *pData) {
   4126     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4127 }
   4128 /*** ID3D11Asynchronous methods ***/
   4129 static inline UINT ID3D11Counter_GetDataSize(ID3D11Counter* This) {
   4130     return This->lpVtbl->GetDataSize(This);
   4131 }
   4132 /*** ID3D11Counter methods ***/
   4133 static inline void ID3D11Counter_GetDesc(ID3D11Counter* This,D3D11_COUNTER_DESC *pDesc) {
   4134     This->lpVtbl->GetDesc(This,pDesc);
   4135 }
   4136 #endif
   4137 #endif
   4138 
   4139 #endif
   4140 
   4141 
   4142 #endif  /* __ID3D11Counter_INTERFACE_DEFINED__ */
   4143 
   4144 /*****************************************************************************
   4145  * ID3D11DepthStencilState interface
   4146  */
   4147 #ifndef __ID3D11DepthStencilState_INTERFACE_DEFINED__
   4148 #define __ID3D11DepthStencilState_INTERFACE_DEFINED__
   4149 
   4150 DEFINE_GUID(IID_ID3D11DepthStencilState, 0x03823efb, 0x8d8f, 0x4e1c, 0x9a,0xa2, 0xf6,0x4b,0xb2,0xcb,0xfd,0xf1);
   4151 #if defined(__cplusplus) && !defined(CINTERFACE)
   4152 MIDL_INTERFACE("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1")
   4153 ID3D11DepthStencilState : public ID3D11DeviceChild
   4154 {
   4155     virtual void STDMETHODCALLTYPE GetDesc(
   4156         D3D11_DEPTH_STENCIL_DESC *pDesc) = 0;
   4157 
   4158 };
   4159 #ifdef __CRT_UUID_DECL
   4160 __CRT_UUID_DECL(ID3D11DepthStencilState, 0x03823efb, 0x8d8f, 0x4e1c, 0x9a,0xa2, 0xf6,0x4b,0xb2,0xcb,0xfd,0xf1)
   4161 #endif
   4162 #else
   4163 typedef struct ID3D11DepthStencilStateVtbl {
   4164     BEGIN_INTERFACE
   4165 
   4166     /*** IUnknown methods ***/
   4167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4168         ID3D11DepthStencilState *This,
   4169         REFIID riid,
   4170         void **ppvObject);
   4171 
   4172     ULONG (STDMETHODCALLTYPE *AddRef)(
   4173         ID3D11DepthStencilState *This);
   4174 
   4175     ULONG (STDMETHODCALLTYPE *Release)(
   4176         ID3D11DepthStencilState *This);
   4177 
   4178     /*** ID3D11DeviceChild methods ***/
   4179     void (STDMETHODCALLTYPE *GetDevice)(
   4180         ID3D11DepthStencilState *This,
   4181         ID3D11Device **ppDevice);
   4182 
   4183     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4184         ID3D11DepthStencilState *This,
   4185         REFGUID guid,
   4186         UINT *pDataSize,
   4187         void *pData);
   4188 
   4189     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4190         ID3D11DepthStencilState *This,
   4191         REFGUID guid,
   4192         UINT DataSize,
   4193         const void *pData);
   4194 
   4195     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4196         ID3D11DepthStencilState *This,
   4197         REFGUID guid,
   4198         const IUnknown *pData);
   4199 
   4200     /*** ID3D11DepthStencilState methods ***/
   4201     void (STDMETHODCALLTYPE *GetDesc)(
   4202         ID3D11DepthStencilState *This,
   4203         D3D11_DEPTH_STENCIL_DESC *pDesc);
   4204 
   4205     END_INTERFACE
   4206 } ID3D11DepthStencilStateVtbl;
   4207 
   4208 interface ID3D11DepthStencilState {
   4209     CONST_VTBL ID3D11DepthStencilStateVtbl* lpVtbl;
   4210 };
   4211 
   4212 #ifdef COBJMACROS
   4213 #ifndef WIDL_C_INLINE_WRAPPERS
   4214 /*** IUnknown methods ***/
   4215 #define ID3D11DepthStencilState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4216 #define ID3D11DepthStencilState_AddRef(This) (This)->lpVtbl->AddRef(This)
   4217 #define ID3D11DepthStencilState_Release(This) (This)->lpVtbl->Release(This)
   4218 /*** ID3D11DeviceChild methods ***/
   4219 #define ID3D11DepthStencilState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4220 #define ID3D11DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4221 #define ID3D11DepthStencilState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4222 #define ID3D11DepthStencilState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4223 /*** ID3D11DepthStencilState methods ***/
   4224 #define ID3D11DepthStencilState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   4225 #else
   4226 /*** IUnknown methods ***/
   4227 static inline HRESULT ID3D11DepthStencilState_QueryInterface(ID3D11DepthStencilState* This,REFIID riid,void **ppvObject) {
   4228     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4229 }
   4230 static inline ULONG ID3D11DepthStencilState_AddRef(ID3D11DepthStencilState* This) {
   4231     return This->lpVtbl->AddRef(This);
   4232 }
   4233 static inline ULONG ID3D11DepthStencilState_Release(ID3D11DepthStencilState* This) {
   4234     return This->lpVtbl->Release(This);
   4235 }
   4236 /*** ID3D11DeviceChild methods ***/
   4237 static inline void ID3D11DepthStencilState_GetDevice(ID3D11DepthStencilState* This,ID3D11Device **ppDevice) {
   4238     This->lpVtbl->GetDevice(This,ppDevice);
   4239 }
   4240 static inline HRESULT ID3D11DepthStencilState_GetPrivateData(ID3D11DepthStencilState* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4241     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4242 }
   4243 static inline HRESULT ID3D11DepthStencilState_SetPrivateData(ID3D11DepthStencilState* This,REFGUID guid,UINT DataSize,const void *pData) {
   4244     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4245 }
   4246 static inline HRESULT ID3D11DepthStencilState_SetPrivateDataInterface(ID3D11DepthStencilState* This,REFGUID guid,const IUnknown *pData) {
   4247     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4248 }
   4249 /*** ID3D11DepthStencilState methods ***/
   4250 static inline void ID3D11DepthStencilState_GetDesc(ID3D11DepthStencilState* This,D3D11_DEPTH_STENCIL_DESC *pDesc) {
   4251     This->lpVtbl->GetDesc(This,pDesc);
   4252 }
   4253 #endif
   4254 #endif
   4255 
   4256 #endif
   4257 
   4258 
   4259 #endif  /* __ID3D11DepthStencilState_INTERFACE_DEFINED__ */
   4260 
   4261 /*****************************************************************************
   4262  * ID3D11DepthStencilView interface
   4263  */
   4264 #ifndef __ID3D11DepthStencilView_INTERFACE_DEFINED__
   4265 #define __ID3D11DepthStencilView_INTERFACE_DEFINED__
   4266 
   4267 DEFINE_GUID(IID_ID3D11DepthStencilView, 0x9fdac92a, 0x1876, 0x48c3, 0xaf,0xad, 0x25,0xb9,0x4f,0x84,0xa9,0xb6);
   4268 #if defined(__cplusplus) && !defined(CINTERFACE)
   4269 MIDL_INTERFACE("9fdac92a-1876-48c3-afad-25b94f84a9b6")
   4270 ID3D11DepthStencilView : public ID3D11View
   4271 {
   4272     virtual void STDMETHODCALLTYPE GetDesc(
   4273         D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
   4274 
   4275 };
   4276 #ifdef __CRT_UUID_DECL
   4277 __CRT_UUID_DECL(ID3D11DepthStencilView, 0x9fdac92a, 0x1876, 0x48c3, 0xaf,0xad, 0x25,0xb9,0x4f,0x84,0xa9,0xb6)
   4278 #endif
   4279 #else
   4280 typedef struct ID3D11DepthStencilViewVtbl {
   4281     BEGIN_INTERFACE
   4282 
   4283     /*** IUnknown methods ***/
   4284     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4285         ID3D11DepthStencilView *This,
   4286         REFIID riid,
   4287         void **ppvObject);
   4288 
   4289     ULONG (STDMETHODCALLTYPE *AddRef)(
   4290         ID3D11DepthStencilView *This);
   4291 
   4292     ULONG (STDMETHODCALLTYPE *Release)(
   4293         ID3D11DepthStencilView *This);
   4294 
   4295     /*** ID3D11DeviceChild methods ***/
   4296     void (STDMETHODCALLTYPE *GetDevice)(
   4297         ID3D11DepthStencilView *This,
   4298         ID3D11Device **ppDevice);
   4299 
   4300     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4301         ID3D11DepthStencilView *This,
   4302         REFGUID guid,
   4303         UINT *pDataSize,
   4304         void *pData);
   4305 
   4306     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4307         ID3D11DepthStencilView *This,
   4308         REFGUID guid,
   4309         UINT DataSize,
   4310         const void *pData);
   4311 
   4312     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4313         ID3D11DepthStencilView *This,
   4314         REFGUID guid,
   4315         const IUnknown *pData);
   4316 
   4317     /*** ID3D11View methods ***/
   4318     void (STDMETHODCALLTYPE *GetResource)(
   4319         ID3D11DepthStencilView *This,
   4320         ID3D11Resource **ppResource);
   4321 
   4322     /*** ID3D11DepthStencilView methods ***/
   4323     void (STDMETHODCALLTYPE *GetDesc)(
   4324         ID3D11DepthStencilView *This,
   4325         D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
   4326 
   4327     END_INTERFACE
   4328 } ID3D11DepthStencilViewVtbl;
   4329 
   4330 interface ID3D11DepthStencilView {
   4331     CONST_VTBL ID3D11DepthStencilViewVtbl* lpVtbl;
   4332 };
   4333 
   4334 #ifdef COBJMACROS
   4335 #ifndef WIDL_C_INLINE_WRAPPERS
   4336 /*** IUnknown methods ***/
   4337 #define ID3D11DepthStencilView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4338 #define ID3D11DepthStencilView_AddRef(This) (This)->lpVtbl->AddRef(This)
   4339 #define ID3D11DepthStencilView_Release(This) (This)->lpVtbl->Release(This)
   4340 /*** ID3D11DeviceChild methods ***/
   4341 #define ID3D11DepthStencilView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4342 #define ID3D11DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4343 #define ID3D11DepthStencilView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4344 #define ID3D11DepthStencilView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4345 /*** ID3D11View methods ***/
   4346 #define ID3D11DepthStencilView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   4347 /*** ID3D11DepthStencilView methods ***/
   4348 #define ID3D11DepthStencilView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   4349 #else
   4350 /*** IUnknown methods ***/
   4351 static inline HRESULT ID3D11DepthStencilView_QueryInterface(ID3D11DepthStencilView* This,REFIID riid,void **ppvObject) {
   4352     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4353 }
   4354 static inline ULONG ID3D11DepthStencilView_AddRef(ID3D11DepthStencilView* This) {
   4355     return This->lpVtbl->AddRef(This);
   4356 }
   4357 static inline ULONG ID3D11DepthStencilView_Release(ID3D11DepthStencilView* This) {
   4358     return This->lpVtbl->Release(This);
   4359 }
   4360 /*** ID3D11DeviceChild methods ***/
   4361 static inline void ID3D11DepthStencilView_GetDevice(ID3D11DepthStencilView* This,ID3D11Device **ppDevice) {
   4362     This->lpVtbl->GetDevice(This,ppDevice);
   4363 }
   4364 static inline HRESULT ID3D11DepthStencilView_GetPrivateData(ID3D11DepthStencilView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4365     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4366 }
   4367 static inline HRESULT ID3D11DepthStencilView_SetPrivateData(ID3D11DepthStencilView* This,REFGUID guid,UINT DataSize,const void *pData) {
   4368     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4369 }
   4370 static inline HRESULT ID3D11DepthStencilView_SetPrivateDataInterface(ID3D11DepthStencilView* This,REFGUID guid,const IUnknown *pData) {
   4371     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4372 }
   4373 /*** ID3D11View methods ***/
   4374 static inline void ID3D11DepthStencilView_GetResource(ID3D11DepthStencilView* This,ID3D11Resource **ppResource) {
   4375     This->lpVtbl->GetResource(This,ppResource);
   4376 }
   4377 /*** ID3D11DepthStencilView methods ***/
   4378 static inline void ID3D11DepthStencilView_GetDesc(ID3D11DepthStencilView* This,D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) {
   4379     This->lpVtbl->GetDesc(This,pDesc);
   4380 }
   4381 #endif
   4382 #endif
   4383 
   4384 #endif
   4385 
   4386 
   4387 #endif  /* __ID3D11DepthStencilView_INTERFACE_DEFINED__ */
   4388 
   4389 /*****************************************************************************
   4390  * ID3D11DomainShader interface
   4391  */
   4392 #ifndef __ID3D11DomainShader_INTERFACE_DEFINED__
   4393 #define __ID3D11DomainShader_INTERFACE_DEFINED__
   4394 
   4395 DEFINE_GUID(IID_ID3D11DomainShader, 0xf582c508, 0x0f36, 0x490c, 0x99,0x77, 0x31,0xee,0xce,0x26,0x8c,0xfa);
   4396 #if defined(__cplusplus) && !defined(CINTERFACE)
   4397 MIDL_INTERFACE("f582c508-0f36-490c-9977-31eece268cfa")
   4398 ID3D11DomainShader : public ID3D11DeviceChild
   4399 {
   4400 };
   4401 #ifdef __CRT_UUID_DECL
   4402 __CRT_UUID_DECL(ID3D11DomainShader, 0xf582c508, 0x0f36, 0x490c, 0x99,0x77, 0x31,0xee,0xce,0x26,0x8c,0xfa)
   4403 #endif
   4404 #else
   4405 typedef struct ID3D11DomainShaderVtbl {
   4406     BEGIN_INTERFACE
   4407 
   4408     /*** IUnknown methods ***/
   4409     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4410         ID3D11DomainShader *This,
   4411         REFIID riid,
   4412         void **ppvObject);
   4413 
   4414     ULONG (STDMETHODCALLTYPE *AddRef)(
   4415         ID3D11DomainShader *This);
   4416 
   4417     ULONG (STDMETHODCALLTYPE *Release)(
   4418         ID3D11DomainShader *This);
   4419 
   4420     /*** ID3D11DeviceChild methods ***/
   4421     void (STDMETHODCALLTYPE *GetDevice)(
   4422         ID3D11DomainShader *This,
   4423         ID3D11Device **ppDevice);
   4424 
   4425     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4426         ID3D11DomainShader *This,
   4427         REFGUID guid,
   4428         UINT *pDataSize,
   4429         void *pData);
   4430 
   4431     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4432         ID3D11DomainShader *This,
   4433         REFGUID guid,
   4434         UINT DataSize,
   4435         const void *pData);
   4436 
   4437     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4438         ID3D11DomainShader *This,
   4439         REFGUID guid,
   4440         const IUnknown *pData);
   4441 
   4442     END_INTERFACE
   4443 } ID3D11DomainShaderVtbl;
   4444 
   4445 interface ID3D11DomainShader {
   4446     CONST_VTBL ID3D11DomainShaderVtbl* lpVtbl;
   4447 };
   4448 
   4449 #ifdef COBJMACROS
   4450 #ifndef WIDL_C_INLINE_WRAPPERS
   4451 /*** IUnknown methods ***/
   4452 #define ID3D11DomainShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4453 #define ID3D11DomainShader_AddRef(This) (This)->lpVtbl->AddRef(This)
   4454 #define ID3D11DomainShader_Release(This) (This)->lpVtbl->Release(This)
   4455 /*** ID3D11DeviceChild methods ***/
   4456 #define ID3D11DomainShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4457 #define ID3D11DomainShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4458 #define ID3D11DomainShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4459 #define ID3D11DomainShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4460 #else
   4461 /*** IUnknown methods ***/
   4462 static inline HRESULT ID3D11DomainShader_QueryInterface(ID3D11DomainShader* This,REFIID riid,void **ppvObject) {
   4463     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4464 }
   4465 static inline ULONG ID3D11DomainShader_AddRef(ID3D11DomainShader* This) {
   4466     return This->lpVtbl->AddRef(This);
   4467 }
   4468 static inline ULONG ID3D11DomainShader_Release(ID3D11DomainShader* This) {
   4469     return This->lpVtbl->Release(This);
   4470 }
   4471 /*** ID3D11DeviceChild methods ***/
   4472 static inline void ID3D11DomainShader_GetDevice(ID3D11DomainShader* This,ID3D11Device **ppDevice) {
   4473     This->lpVtbl->GetDevice(This,ppDevice);
   4474 }
   4475 static inline HRESULT ID3D11DomainShader_GetPrivateData(ID3D11DomainShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4476     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4477 }
   4478 static inline HRESULT ID3D11DomainShader_SetPrivateData(ID3D11DomainShader* This,REFGUID guid,UINT DataSize,const void *pData) {
   4479     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4480 }
   4481 static inline HRESULT ID3D11DomainShader_SetPrivateDataInterface(ID3D11DomainShader* This,REFGUID guid,const IUnknown *pData) {
   4482     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4483 }
   4484 #endif
   4485 #endif
   4486 
   4487 #endif
   4488 
   4489 
   4490 #endif  /* __ID3D11DomainShader_INTERFACE_DEFINED__ */
   4491 
   4492 /*****************************************************************************
   4493  * ID3D11GeometryShader interface
   4494  */
   4495 #ifndef __ID3D11GeometryShader_INTERFACE_DEFINED__
   4496 #define __ID3D11GeometryShader_INTERFACE_DEFINED__
   4497 
   4498 DEFINE_GUID(IID_ID3D11GeometryShader, 0x38325b96, 0xeffb, 0x4022, 0xba,0x02, 0x2e,0x79,0x5b,0x70,0x27,0x5c);
   4499 #if defined(__cplusplus) && !defined(CINTERFACE)
   4500 MIDL_INTERFACE("38325b96-effb-4022-ba02-2e795b70275c")
   4501 ID3D11GeometryShader : public ID3D11DeviceChild
   4502 {
   4503 };
   4504 #ifdef __CRT_UUID_DECL
   4505 __CRT_UUID_DECL(ID3D11GeometryShader, 0x38325b96, 0xeffb, 0x4022, 0xba,0x02, 0x2e,0x79,0x5b,0x70,0x27,0x5c)
   4506 #endif
   4507 #else
   4508 typedef struct ID3D11GeometryShaderVtbl {
   4509     BEGIN_INTERFACE
   4510 
   4511     /*** IUnknown methods ***/
   4512     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4513         ID3D11GeometryShader *This,
   4514         REFIID riid,
   4515         void **ppvObject);
   4516 
   4517     ULONG (STDMETHODCALLTYPE *AddRef)(
   4518         ID3D11GeometryShader *This);
   4519 
   4520     ULONG (STDMETHODCALLTYPE *Release)(
   4521         ID3D11GeometryShader *This);
   4522 
   4523     /*** ID3D11DeviceChild methods ***/
   4524     void (STDMETHODCALLTYPE *GetDevice)(
   4525         ID3D11GeometryShader *This,
   4526         ID3D11Device **ppDevice);
   4527 
   4528     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4529         ID3D11GeometryShader *This,
   4530         REFGUID guid,
   4531         UINT *pDataSize,
   4532         void *pData);
   4533 
   4534     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4535         ID3D11GeometryShader *This,
   4536         REFGUID guid,
   4537         UINT DataSize,
   4538         const void *pData);
   4539 
   4540     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4541         ID3D11GeometryShader *This,
   4542         REFGUID guid,
   4543         const IUnknown *pData);
   4544 
   4545     END_INTERFACE
   4546 } ID3D11GeometryShaderVtbl;
   4547 
   4548 interface ID3D11GeometryShader {
   4549     CONST_VTBL ID3D11GeometryShaderVtbl* lpVtbl;
   4550 };
   4551 
   4552 #ifdef COBJMACROS
   4553 #ifndef WIDL_C_INLINE_WRAPPERS
   4554 /*** IUnknown methods ***/
   4555 #define ID3D11GeometryShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4556 #define ID3D11GeometryShader_AddRef(This) (This)->lpVtbl->AddRef(This)
   4557 #define ID3D11GeometryShader_Release(This) (This)->lpVtbl->Release(This)
   4558 /*** ID3D11DeviceChild methods ***/
   4559 #define ID3D11GeometryShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4560 #define ID3D11GeometryShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4561 #define ID3D11GeometryShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4562 #define ID3D11GeometryShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4563 #else
   4564 /*** IUnknown methods ***/
   4565 static inline HRESULT ID3D11GeometryShader_QueryInterface(ID3D11GeometryShader* This,REFIID riid,void **ppvObject) {
   4566     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4567 }
   4568 static inline ULONG ID3D11GeometryShader_AddRef(ID3D11GeometryShader* This) {
   4569     return This->lpVtbl->AddRef(This);
   4570 }
   4571 static inline ULONG ID3D11GeometryShader_Release(ID3D11GeometryShader* This) {
   4572     return This->lpVtbl->Release(This);
   4573 }
   4574 /*** ID3D11DeviceChild methods ***/
   4575 static inline void ID3D11GeometryShader_GetDevice(ID3D11GeometryShader* This,ID3D11Device **ppDevice) {
   4576     This->lpVtbl->GetDevice(This,ppDevice);
   4577 }
   4578 static inline HRESULT ID3D11GeometryShader_GetPrivateData(ID3D11GeometryShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4579     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4580 }
   4581 static inline HRESULT ID3D11GeometryShader_SetPrivateData(ID3D11GeometryShader* This,REFGUID guid,UINT DataSize,const void *pData) {
   4582     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4583 }
   4584 static inline HRESULT ID3D11GeometryShader_SetPrivateDataInterface(ID3D11GeometryShader* This,REFGUID guid,const IUnknown *pData) {
   4585     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4586 }
   4587 #endif
   4588 #endif
   4589 
   4590 #endif
   4591 
   4592 
   4593 #endif  /* __ID3D11GeometryShader_INTERFACE_DEFINED__ */
   4594 
   4595 /*****************************************************************************
   4596  * ID3D11HullShader interface
   4597  */
   4598 #ifndef __ID3D11HullShader_INTERFACE_DEFINED__
   4599 #define __ID3D11HullShader_INTERFACE_DEFINED__
   4600 
   4601 DEFINE_GUID(IID_ID3D11HullShader, 0x8e5c6061, 0x628a, 0x4c8e, 0x82,0x64, 0xbb,0xe4,0x5c,0xb3,0xd5,0xdd);
   4602 #if defined(__cplusplus) && !defined(CINTERFACE)
   4603 MIDL_INTERFACE("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd")
   4604 ID3D11HullShader : public ID3D11DeviceChild
   4605 {
   4606 };
   4607 #ifdef __CRT_UUID_DECL
   4608 __CRT_UUID_DECL(ID3D11HullShader, 0x8e5c6061, 0x628a, 0x4c8e, 0x82,0x64, 0xbb,0xe4,0x5c,0xb3,0xd5,0xdd)
   4609 #endif
   4610 #else
   4611 typedef struct ID3D11HullShaderVtbl {
   4612     BEGIN_INTERFACE
   4613 
   4614     /*** IUnknown methods ***/
   4615     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4616         ID3D11HullShader *This,
   4617         REFIID riid,
   4618         void **ppvObject);
   4619 
   4620     ULONG (STDMETHODCALLTYPE *AddRef)(
   4621         ID3D11HullShader *This);
   4622 
   4623     ULONG (STDMETHODCALLTYPE *Release)(
   4624         ID3D11HullShader *This);
   4625 
   4626     /*** ID3D11DeviceChild methods ***/
   4627     void (STDMETHODCALLTYPE *GetDevice)(
   4628         ID3D11HullShader *This,
   4629         ID3D11Device **ppDevice);
   4630 
   4631     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4632         ID3D11HullShader *This,
   4633         REFGUID guid,
   4634         UINT *pDataSize,
   4635         void *pData);
   4636 
   4637     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4638         ID3D11HullShader *This,
   4639         REFGUID guid,
   4640         UINT DataSize,
   4641         const void *pData);
   4642 
   4643     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4644         ID3D11HullShader *This,
   4645         REFGUID guid,
   4646         const IUnknown *pData);
   4647 
   4648     END_INTERFACE
   4649 } ID3D11HullShaderVtbl;
   4650 
   4651 interface ID3D11HullShader {
   4652     CONST_VTBL ID3D11HullShaderVtbl* lpVtbl;
   4653 };
   4654 
   4655 #ifdef COBJMACROS
   4656 #ifndef WIDL_C_INLINE_WRAPPERS
   4657 /*** IUnknown methods ***/
   4658 #define ID3D11HullShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4659 #define ID3D11HullShader_AddRef(This) (This)->lpVtbl->AddRef(This)
   4660 #define ID3D11HullShader_Release(This) (This)->lpVtbl->Release(This)
   4661 /*** ID3D11DeviceChild methods ***/
   4662 #define ID3D11HullShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4663 #define ID3D11HullShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4664 #define ID3D11HullShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4665 #define ID3D11HullShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4666 #else
   4667 /*** IUnknown methods ***/
   4668 static inline HRESULT ID3D11HullShader_QueryInterface(ID3D11HullShader* This,REFIID riid,void **ppvObject) {
   4669     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4670 }
   4671 static inline ULONG ID3D11HullShader_AddRef(ID3D11HullShader* This) {
   4672     return This->lpVtbl->AddRef(This);
   4673 }
   4674 static inline ULONG ID3D11HullShader_Release(ID3D11HullShader* This) {
   4675     return This->lpVtbl->Release(This);
   4676 }
   4677 /*** ID3D11DeviceChild methods ***/
   4678 static inline void ID3D11HullShader_GetDevice(ID3D11HullShader* This,ID3D11Device **ppDevice) {
   4679     This->lpVtbl->GetDevice(This,ppDevice);
   4680 }
   4681 static inline HRESULT ID3D11HullShader_GetPrivateData(ID3D11HullShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4682     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4683 }
   4684 static inline HRESULT ID3D11HullShader_SetPrivateData(ID3D11HullShader* This,REFGUID guid,UINT DataSize,const void *pData) {
   4685     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4686 }
   4687 static inline HRESULT ID3D11HullShader_SetPrivateDataInterface(ID3D11HullShader* This,REFGUID guid,const IUnknown *pData) {
   4688     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4689 }
   4690 #endif
   4691 #endif
   4692 
   4693 #endif
   4694 
   4695 
   4696 #endif  /* __ID3D11HullShader_INTERFACE_DEFINED__ */
   4697 
   4698 /*****************************************************************************
   4699  * ID3D11InputLayout interface
   4700  */
   4701 #ifndef __ID3D11InputLayout_INTERFACE_DEFINED__
   4702 #define __ID3D11InputLayout_INTERFACE_DEFINED__
   4703 
   4704 DEFINE_GUID(IID_ID3D11InputLayout, 0xe4819ddc, 0x4cf0, 0x4025, 0xbd,0x26, 0x5d,0xe8,0x2a,0x3e,0x07,0xb7);
   4705 #if defined(__cplusplus) && !defined(CINTERFACE)
   4706 MIDL_INTERFACE("e4819ddc-4cf0-4025-bd26-5de82a3e07b7")
   4707 ID3D11InputLayout : public ID3D11DeviceChild
   4708 {
   4709 };
   4710 #ifdef __CRT_UUID_DECL
   4711 __CRT_UUID_DECL(ID3D11InputLayout, 0xe4819ddc, 0x4cf0, 0x4025, 0xbd,0x26, 0x5d,0xe8,0x2a,0x3e,0x07,0xb7)
   4712 #endif
   4713 #else
   4714 typedef struct ID3D11InputLayoutVtbl {
   4715     BEGIN_INTERFACE
   4716 
   4717     /*** IUnknown methods ***/
   4718     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4719         ID3D11InputLayout *This,
   4720         REFIID riid,
   4721         void **ppvObject);
   4722 
   4723     ULONG (STDMETHODCALLTYPE *AddRef)(
   4724         ID3D11InputLayout *This);
   4725 
   4726     ULONG (STDMETHODCALLTYPE *Release)(
   4727         ID3D11InputLayout *This);
   4728 
   4729     /*** ID3D11DeviceChild methods ***/
   4730     void (STDMETHODCALLTYPE *GetDevice)(
   4731         ID3D11InputLayout *This,
   4732         ID3D11Device **ppDevice);
   4733 
   4734     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4735         ID3D11InputLayout *This,
   4736         REFGUID guid,
   4737         UINT *pDataSize,
   4738         void *pData);
   4739 
   4740     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4741         ID3D11InputLayout *This,
   4742         REFGUID guid,
   4743         UINT DataSize,
   4744         const void *pData);
   4745 
   4746     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4747         ID3D11InputLayout *This,
   4748         REFGUID guid,
   4749         const IUnknown *pData);
   4750 
   4751     END_INTERFACE
   4752 } ID3D11InputLayoutVtbl;
   4753 
   4754 interface ID3D11InputLayout {
   4755     CONST_VTBL ID3D11InputLayoutVtbl* lpVtbl;
   4756 };
   4757 
   4758 #ifdef COBJMACROS
   4759 #ifndef WIDL_C_INLINE_WRAPPERS
   4760 /*** IUnknown methods ***/
   4761 #define ID3D11InputLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4762 #define ID3D11InputLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
   4763 #define ID3D11InputLayout_Release(This) (This)->lpVtbl->Release(This)
   4764 /*** ID3D11DeviceChild methods ***/
   4765 #define ID3D11InputLayout_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4766 #define ID3D11InputLayout_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4767 #define ID3D11InputLayout_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4768 #define ID3D11InputLayout_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4769 #else
   4770 /*** IUnknown methods ***/
   4771 static inline HRESULT ID3D11InputLayout_QueryInterface(ID3D11InputLayout* This,REFIID riid,void **ppvObject) {
   4772     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4773 }
   4774 static inline ULONG ID3D11InputLayout_AddRef(ID3D11InputLayout* This) {
   4775     return This->lpVtbl->AddRef(This);
   4776 }
   4777 static inline ULONG ID3D11InputLayout_Release(ID3D11InputLayout* This) {
   4778     return This->lpVtbl->Release(This);
   4779 }
   4780 /*** ID3D11DeviceChild methods ***/
   4781 static inline void ID3D11InputLayout_GetDevice(ID3D11InputLayout* This,ID3D11Device **ppDevice) {
   4782     This->lpVtbl->GetDevice(This,ppDevice);
   4783 }
   4784 static inline HRESULT ID3D11InputLayout_GetPrivateData(ID3D11InputLayout* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4785     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4786 }
   4787 static inline HRESULT ID3D11InputLayout_SetPrivateData(ID3D11InputLayout* This,REFGUID guid,UINT DataSize,const void *pData) {
   4788     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4789 }
   4790 static inline HRESULT ID3D11InputLayout_SetPrivateDataInterface(ID3D11InputLayout* This,REFGUID guid,const IUnknown *pData) {
   4791     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4792 }
   4793 #endif
   4794 #endif
   4795 
   4796 #endif
   4797 
   4798 
   4799 #endif  /* __ID3D11InputLayout_INTERFACE_DEFINED__ */
   4800 
   4801 /*****************************************************************************
   4802  * ID3D11PixelShader interface
   4803  */
   4804 #ifndef __ID3D11PixelShader_INTERFACE_DEFINED__
   4805 #define __ID3D11PixelShader_INTERFACE_DEFINED__
   4806 
   4807 DEFINE_GUID(IID_ID3D11PixelShader, 0xea82e40d, 0x51dc, 0x4f33, 0x93,0xd4, 0xdb,0x7c,0x91,0x25,0xae,0x8c);
   4808 #if defined(__cplusplus) && !defined(CINTERFACE)
   4809 MIDL_INTERFACE("ea82e40d-51dc-4f33-93d4-db7c9125ae8c")
   4810 ID3D11PixelShader : public ID3D11DeviceChild
   4811 {
   4812 };
   4813 #ifdef __CRT_UUID_DECL
   4814 __CRT_UUID_DECL(ID3D11PixelShader, 0xea82e40d, 0x51dc, 0x4f33, 0x93,0xd4, 0xdb,0x7c,0x91,0x25,0xae,0x8c)
   4815 #endif
   4816 #else
   4817 typedef struct ID3D11PixelShaderVtbl {
   4818     BEGIN_INTERFACE
   4819 
   4820     /*** IUnknown methods ***/
   4821     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4822         ID3D11PixelShader *This,
   4823         REFIID riid,
   4824         void **ppvObject);
   4825 
   4826     ULONG (STDMETHODCALLTYPE *AddRef)(
   4827         ID3D11PixelShader *This);
   4828 
   4829     ULONG (STDMETHODCALLTYPE *Release)(
   4830         ID3D11PixelShader *This);
   4831 
   4832     /*** ID3D11DeviceChild methods ***/
   4833     void (STDMETHODCALLTYPE *GetDevice)(
   4834         ID3D11PixelShader *This,
   4835         ID3D11Device **ppDevice);
   4836 
   4837     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4838         ID3D11PixelShader *This,
   4839         REFGUID guid,
   4840         UINT *pDataSize,
   4841         void *pData);
   4842 
   4843     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4844         ID3D11PixelShader *This,
   4845         REFGUID guid,
   4846         UINT DataSize,
   4847         const void *pData);
   4848 
   4849     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4850         ID3D11PixelShader *This,
   4851         REFGUID guid,
   4852         const IUnknown *pData);
   4853 
   4854     END_INTERFACE
   4855 } ID3D11PixelShaderVtbl;
   4856 
   4857 interface ID3D11PixelShader {
   4858     CONST_VTBL ID3D11PixelShaderVtbl* lpVtbl;
   4859 };
   4860 
   4861 #ifdef COBJMACROS
   4862 #ifndef WIDL_C_INLINE_WRAPPERS
   4863 /*** IUnknown methods ***/
   4864 #define ID3D11PixelShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4865 #define ID3D11PixelShader_AddRef(This) (This)->lpVtbl->AddRef(This)
   4866 #define ID3D11PixelShader_Release(This) (This)->lpVtbl->Release(This)
   4867 /*** ID3D11DeviceChild methods ***/
   4868 #define ID3D11PixelShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4869 #define ID3D11PixelShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4870 #define ID3D11PixelShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4871 #define ID3D11PixelShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4872 #else
   4873 /*** IUnknown methods ***/
   4874 static inline HRESULT ID3D11PixelShader_QueryInterface(ID3D11PixelShader* This,REFIID riid,void **ppvObject) {
   4875     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4876 }
   4877 static inline ULONG ID3D11PixelShader_AddRef(ID3D11PixelShader* This) {
   4878     return This->lpVtbl->AddRef(This);
   4879 }
   4880 static inline ULONG ID3D11PixelShader_Release(ID3D11PixelShader* This) {
   4881     return This->lpVtbl->Release(This);
   4882 }
   4883 /*** ID3D11DeviceChild methods ***/
   4884 static inline void ID3D11PixelShader_GetDevice(ID3D11PixelShader* This,ID3D11Device **ppDevice) {
   4885     This->lpVtbl->GetDevice(This,ppDevice);
   4886 }
   4887 static inline HRESULT ID3D11PixelShader_GetPrivateData(ID3D11PixelShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
   4888     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   4889 }
   4890 static inline HRESULT ID3D11PixelShader_SetPrivateData(ID3D11PixelShader* This,REFGUID guid,UINT DataSize,const void *pData) {
   4891     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   4892 }
   4893 static inline HRESULT ID3D11PixelShader_SetPrivateDataInterface(ID3D11PixelShader* This,REFGUID guid,const IUnknown *pData) {
   4894     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   4895 }
   4896 #endif
   4897 #endif
   4898 
   4899 #endif
   4900 
   4901 
   4902 #endif  /* __ID3D11PixelShader_INTERFACE_DEFINED__ */
   4903 
   4904 /*****************************************************************************
   4905  * ID3D11Predicate interface
   4906  */
   4907 #ifndef __ID3D11Predicate_INTERFACE_DEFINED__
   4908 #define __ID3D11Predicate_INTERFACE_DEFINED__
   4909 
   4910 DEFINE_GUID(IID_ID3D11Predicate, 0x9eb576dd, 0x9f77, 0x4d86, 0x81,0xaa, 0x8b,0xab,0x5f,0xe4,0x90,0xe2);
   4911 #if defined(__cplusplus) && !defined(CINTERFACE)
   4912 MIDL_INTERFACE("9eb576dd-9f77-4d86-81aa-8bab5fe490e2")
   4913 ID3D11Predicate : public ID3D11Query
   4914 {
   4915 };
   4916 #ifdef __CRT_UUID_DECL
   4917 __CRT_UUID_DECL(ID3D11Predicate, 0x9eb576dd, 0x9f77, 0x4d86, 0x81,0xaa, 0x8b,0xab,0x5f,0xe4,0x90,0xe2)
   4918 #endif
   4919 #else
   4920 typedef struct ID3D11PredicateVtbl {
   4921     BEGIN_INTERFACE
   4922 
   4923     /*** IUnknown methods ***/
   4924     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4925         ID3D11Predicate *This,
   4926         REFIID riid,
   4927         void **ppvObject);
   4928 
   4929     ULONG (STDMETHODCALLTYPE *AddRef)(
   4930         ID3D11Predicate *This);
   4931 
   4932     ULONG (STDMETHODCALLTYPE *Release)(
   4933         ID3D11Predicate *This);
   4934 
   4935     /*** ID3D11DeviceChild methods ***/
   4936     void (STDMETHODCALLTYPE *GetDevice)(
   4937         ID3D11Predicate *This,
   4938         ID3D11Device **ppDevice);
   4939 
   4940     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   4941         ID3D11Predicate *This,
   4942         REFGUID guid,
   4943         UINT *pDataSize,
   4944         void *pData);
   4945 
   4946     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   4947         ID3D11Predicate *This,
   4948         REFGUID guid,
   4949         UINT DataSize,
   4950         const void *pData);
   4951 
   4952     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   4953         ID3D11Predicate *This,
   4954         REFGUID guid,
   4955         const IUnknown *pData);
   4956 
   4957     /*** ID3D11Asynchronous methods ***/
   4958     UINT (STDMETHODCALLTYPE *GetDataSize)(
   4959         ID3D11Predicate *This);
   4960 
   4961     /*** ID3D11Query methods ***/
   4962     void (STDMETHODCALLTYPE *GetDesc)(
   4963         ID3D11Predicate *This,
   4964         D3D11_QUERY_DESC *pDesc);
   4965 
   4966     END_INTERFACE
   4967 } ID3D11PredicateVtbl;
   4968 
   4969 interface ID3D11Predicate {
   4970     CONST_VTBL ID3D11PredicateVtbl* lpVtbl;
   4971 };
   4972 
   4973 #ifdef COBJMACROS
   4974 #ifndef WIDL_C_INLINE_WRAPPERS
   4975 /*** IUnknown methods ***/
   4976 #define ID3D11Predicate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4977 #define ID3D11Predicate_AddRef(This) (This)->lpVtbl->AddRef(This)
   4978 #define ID3D11Predicate_Release(This) (This)->lpVtbl->Release(This)
   4979 /*** ID3D11DeviceChild methods ***/
   4980 #define ID3D11Predicate_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   4981 #define ID3D11Predicate_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   4982 #define ID3D11Predicate_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   4983 #define ID3D11Predicate_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   4984 /*** ID3D11Asynchronous methods ***/
   4985 #define ID3D11Predicate_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
   4986 /*** ID3D11Query methods ***/
   4987 #define ID3D11Predicate_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   4988 #else
   4989 /*** IUnknown methods ***/
   4990 static inline HRESULT ID3D11Predicate_QueryInterface(ID3D11Predicate* This,REFIID riid,void **ppvObject) {
   4991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4992 }
   4993 static inline ULONG ID3D11Predicate_AddRef(ID3D11Predicate* This) {
   4994     return This->lpVtbl->AddRef(This);
   4995 }
   4996 static inline ULONG ID3D11Predicate_Release(ID3D11Predicate* This) {
   4997     return This->lpVtbl->Release(This);
   4998 }
   4999 /*** ID3D11DeviceChild methods ***/
   5000 static inline void ID3D11Predicate_GetDevice(ID3D11Predicate* This,ID3D11Device **ppDevice) {
   5001     This->lpVtbl->GetDevice(This,ppDevice);
   5002 }
   5003 static inline HRESULT ID3D11Predicate_GetPrivateData(ID3D11Predicate* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5004     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5005 }
   5006 static inline HRESULT ID3D11Predicate_SetPrivateData(ID3D11Predicate* This,REFGUID guid,UINT DataSize,const void *pData) {
   5007     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5008 }
   5009 static inline HRESULT ID3D11Predicate_SetPrivateDataInterface(ID3D11Predicate* This,REFGUID guid,const IUnknown *pData) {
   5010     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5011 }
   5012 /*** ID3D11Asynchronous methods ***/
   5013 static inline UINT ID3D11Predicate_GetDataSize(ID3D11Predicate* This) {
   5014     return This->lpVtbl->GetDataSize(This);
   5015 }
   5016 /*** ID3D11Query methods ***/
   5017 static inline void ID3D11Predicate_GetDesc(ID3D11Predicate* This,D3D11_QUERY_DESC *pDesc) {
   5018     This->lpVtbl->GetDesc(This,pDesc);
   5019 }
   5020 #endif
   5021 #endif
   5022 
   5023 #endif
   5024 
   5025 
   5026 #endif  /* __ID3D11Predicate_INTERFACE_DEFINED__ */
   5027 
   5028 /*****************************************************************************
   5029  * ID3D11RasterizerState interface
   5030  */
   5031 #ifndef __ID3D11RasterizerState_INTERFACE_DEFINED__
   5032 #define __ID3D11RasterizerState_INTERFACE_DEFINED__
   5033 
   5034 DEFINE_GUID(IID_ID3D11RasterizerState, 0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5,0x06, 0xfc,0x04,0x20,0x0b,0x6e,0xe7);
   5035 #if defined(__cplusplus) && !defined(CINTERFACE)
   5036 MIDL_INTERFACE("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7")
   5037 ID3D11RasterizerState : public ID3D11DeviceChild
   5038 {
   5039     virtual void STDMETHODCALLTYPE GetDesc(
   5040         D3D11_RASTERIZER_DESC *pDesc) = 0;
   5041 
   5042 };
   5043 #ifdef __CRT_UUID_DECL
   5044 __CRT_UUID_DECL(ID3D11RasterizerState, 0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5,0x06, 0xfc,0x04,0x20,0x0b,0x6e,0xe7)
   5045 #endif
   5046 #else
   5047 typedef struct ID3D11RasterizerStateVtbl {
   5048     BEGIN_INTERFACE
   5049 
   5050     /*** IUnknown methods ***/
   5051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5052         ID3D11RasterizerState *This,
   5053         REFIID riid,
   5054         void **ppvObject);
   5055 
   5056     ULONG (STDMETHODCALLTYPE *AddRef)(
   5057         ID3D11RasterizerState *This);
   5058 
   5059     ULONG (STDMETHODCALLTYPE *Release)(
   5060         ID3D11RasterizerState *This);
   5061 
   5062     /*** ID3D11DeviceChild methods ***/
   5063     void (STDMETHODCALLTYPE *GetDevice)(
   5064         ID3D11RasterizerState *This,
   5065         ID3D11Device **ppDevice);
   5066 
   5067     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5068         ID3D11RasterizerState *This,
   5069         REFGUID guid,
   5070         UINT *pDataSize,
   5071         void *pData);
   5072 
   5073     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5074         ID3D11RasterizerState *This,
   5075         REFGUID guid,
   5076         UINT DataSize,
   5077         const void *pData);
   5078 
   5079     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5080         ID3D11RasterizerState *This,
   5081         REFGUID guid,
   5082         const IUnknown *pData);
   5083 
   5084     /*** ID3D11RasterizerState methods ***/
   5085     void (STDMETHODCALLTYPE *GetDesc)(
   5086         ID3D11RasterizerState *This,
   5087         D3D11_RASTERIZER_DESC *pDesc);
   5088 
   5089     END_INTERFACE
   5090 } ID3D11RasterizerStateVtbl;
   5091 
   5092 interface ID3D11RasterizerState {
   5093     CONST_VTBL ID3D11RasterizerStateVtbl* lpVtbl;
   5094 };
   5095 
   5096 #ifdef COBJMACROS
   5097 #ifndef WIDL_C_INLINE_WRAPPERS
   5098 /*** IUnknown methods ***/
   5099 #define ID3D11RasterizerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5100 #define ID3D11RasterizerState_AddRef(This) (This)->lpVtbl->AddRef(This)
   5101 #define ID3D11RasterizerState_Release(This) (This)->lpVtbl->Release(This)
   5102 /*** ID3D11DeviceChild methods ***/
   5103 #define ID3D11RasterizerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5104 #define ID3D11RasterizerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5105 #define ID3D11RasterizerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5106 #define ID3D11RasterizerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5107 /*** ID3D11RasterizerState methods ***/
   5108 #define ID3D11RasterizerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5109 #else
   5110 /*** IUnknown methods ***/
   5111 static inline HRESULT ID3D11RasterizerState_QueryInterface(ID3D11RasterizerState* This,REFIID riid,void **ppvObject) {
   5112     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5113 }
   5114 static inline ULONG ID3D11RasterizerState_AddRef(ID3D11RasterizerState* This) {
   5115     return This->lpVtbl->AddRef(This);
   5116 }
   5117 static inline ULONG ID3D11RasterizerState_Release(ID3D11RasterizerState* This) {
   5118     return This->lpVtbl->Release(This);
   5119 }
   5120 /*** ID3D11DeviceChild methods ***/
   5121 static inline void ID3D11RasterizerState_GetDevice(ID3D11RasterizerState* This,ID3D11Device **ppDevice) {
   5122     This->lpVtbl->GetDevice(This,ppDevice);
   5123 }
   5124 static inline HRESULT ID3D11RasterizerState_GetPrivateData(ID3D11RasterizerState* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5125     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5126 }
   5127 static inline HRESULT ID3D11RasterizerState_SetPrivateData(ID3D11RasterizerState* This,REFGUID guid,UINT DataSize,const void *pData) {
   5128     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5129 }
   5130 static inline HRESULT ID3D11RasterizerState_SetPrivateDataInterface(ID3D11RasterizerState* This,REFGUID guid,const IUnknown *pData) {
   5131     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5132 }
   5133 /*** ID3D11RasterizerState methods ***/
   5134 static inline void ID3D11RasterizerState_GetDesc(ID3D11RasterizerState* This,D3D11_RASTERIZER_DESC *pDesc) {
   5135     This->lpVtbl->GetDesc(This,pDesc);
   5136 }
   5137 #endif
   5138 #endif
   5139 
   5140 #endif
   5141 
   5142 
   5143 #endif  /* __ID3D11RasterizerState_INTERFACE_DEFINED__ */
   5144 
   5145 /*****************************************************************************
   5146  * ID3D11RenderTargetView interface
   5147  */
   5148 #ifndef __ID3D11RenderTargetView_INTERFACE_DEFINED__
   5149 #define __ID3D11RenderTargetView_INTERFACE_DEFINED__
   5150 
   5151 DEFINE_GUID(IID_ID3D11RenderTargetView, 0xdfdba067, 0x0b8d, 0x4865, 0x87,0x5b, 0xd7,0xb4,0x51,0x6c,0xc1,0x64);
   5152 #if defined(__cplusplus) && !defined(CINTERFACE)
   5153 MIDL_INTERFACE("dfdba067-0b8d-4865-875b-d7b4516cc164")
   5154 ID3D11RenderTargetView : public ID3D11View
   5155 {
   5156     virtual void STDMETHODCALLTYPE GetDesc(
   5157         D3D11_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
   5158 
   5159 };
   5160 #ifdef __CRT_UUID_DECL
   5161 __CRT_UUID_DECL(ID3D11RenderTargetView, 0xdfdba067, 0x0b8d, 0x4865, 0x87,0x5b, 0xd7,0xb4,0x51,0x6c,0xc1,0x64)
   5162 #endif
   5163 #else
   5164 typedef struct ID3D11RenderTargetViewVtbl {
   5165     BEGIN_INTERFACE
   5166 
   5167     /*** IUnknown methods ***/
   5168     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5169         ID3D11RenderTargetView *This,
   5170         REFIID riid,
   5171         void **ppvObject);
   5172 
   5173     ULONG (STDMETHODCALLTYPE *AddRef)(
   5174         ID3D11RenderTargetView *This);
   5175 
   5176     ULONG (STDMETHODCALLTYPE *Release)(
   5177         ID3D11RenderTargetView *This);
   5178 
   5179     /*** ID3D11DeviceChild methods ***/
   5180     void (STDMETHODCALLTYPE *GetDevice)(
   5181         ID3D11RenderTargetView *This,
   5182         ID3D11Device **ppDevice);
   5183 
   5184     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5185         ID3D11RenderTargetView *This,
   5186         REFGUID guid,
   5187         UINT *pDataSize,
   5188         void *pData);
   5189 
   5190     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5191         ID3D11RenderTargetView *This,
   5192         REFGUID guid,
   5193         UINT DataSize,
   5194         const void *pData);
   5195 
   5196     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5197         ID3D11RenderTargetView *This,
   5198         REFGUID guid,
   5199         const IUnknown *pData);
   5200 
   5201     /*** ID3D11View methods ***/
   5202     void (STDMETHODCALLTYPE *GetResource)(
   5203         ID3D11RenderTargetView *This,
   5204         ID3D11Resource **ppResource);
   5205 
   5206     /*** ID3D11RenderTargetView methods ***/
   5207     void (STDMETHODCALLTYPE *GetDesc)(
   5208         ID3D11RenderTargetView *This,
   5209         D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
   5210 
   5211     END_INTERFACE
   5212 } ID3D11RenderTargetViewVtbl;
   5213 
   5214 interface ID3D11RenderTargetView {
   5215     CONST_VTBL ID3D11RenderTargetViewVtbl* lpVtbl;
   5216 };
   5217 
   5218 #ifdef COBJMACROS
   5219 #ifndef WIDL_C_INLINE_WRAPPERS
   5220 /*** IUnknown methods ***/
   5221 #define ID3D11RenderTargetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5222 #define ID3D11RenderTargetView_AddRef(This) (This)->lpVtbl->AddRef(This)
   5223 #define ID3D11RenderTargetView_Release(This) (This)->lpVtbl->Release(This)
   5224 /*** ID3D11DeviceChild methods ***/
   5225 #define ID3D11RenderTargetView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5226 #define ID3D11RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5227 #define ID3D11RenderTargetView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5228 #define ID3D11RenderTargetView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5229 /*** ID3D11View methods ***/
   5230 #define ID3D11RenderTargetView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   5231 /*** ID3D11RenderTargetView methods ***/
   5232 #define ID3D11RenderTargetView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5233 #else
   5234 /*** IUnknown methods ***/
   5235 static inline HRESULT ID3D11RenderTargetView_QueryInterface(ID3D11RenderTargetView* This,REFIID riid,void **ppvObject) {
   5236     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5237 }
   5238 static inline ULONG ID3D11RenderTargetView_AddRef(ID3D11RenderTargetView* This) {
   5239     return This->lpVtbl->AddRef(This);
   5240 }
   5241 static inline ULONG ID3D11RenderTargetView_Release(ID3D11RenderTargetView* This) {
   5242     return This->lpVtbl->Release(This);
   5243 }
   5244 /*** ID3D11DeviceChild methods ***/
   5245 static inline void ID3D11RenderTargetView_GetDevice(ID3D11RenderTargetView* This,ID3D11Device **ppDevice) {
   5246     This->lpVtbl->GetDevice(This,ppDevice);
   5247 }
   5248 static inline HRESULT ID3D11RenderTargetView_GetPrivateData(ID3D11RenderTargetView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5249     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5250 }
   5251 static inline HRESULT ID3D11RenderTargetView_SetPrivateData(ID3D11RenderTargetView* This,REFGUID guid,UINT DataSize,const void *pData) {
   5252     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5253 }
   5254 static inline HRESULT ID3D11RenderTargetView_SetPrivateDataInterface(ID3D11RenderTargetView* This,REFGUID guid,const IUnknown *pData) {
   5255     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5256 }
   5257 /*** ID3D11View methods ***/
   5258 static inline void ID3D11RenderTargetView_GetResource(ID3D11RenderTargetView* This,ID3D11Resource **ppResource) {
   5259     This->lpVtbl->GetResource(This,ppResource);
   5260 }
   5261 /*** ID3D11RenderTargetView methods ***/
   5262 static inline void ID3D11RenderTargetView_GetDesc(ID3D11RenderTargetView* This,D3D11_RENDER_TARGET_VIEW_DESC *pDesc) {
   5263     This->lpVtbl->GetDesc(This,pDesc);
   5264 }
   5265 #endif
   5266 #endif
   5267 
   5268 #endif
   5269 
   5270 
   5271 #endif  /* __ID3D11RenderTargetView_INTERFACE_DEFINED__ */
   5272 
   5273 /*****************************************************************************
   5274  * ID3D11SamplerState interface
   5275  */
   5276 #ifndef __ID3D11SamplerState_INTERFACE_DEFINED__
   5277 #define __ID3D11SamplerState_INTERFACE_DEFINED__
   5278 
   5279 DEFINE_GUID(IID_ID3D11SamplerState, 0xda6fea51, 0x564c, 0x4487, 0x98,0x10, 0xf0,0xd0,0xf9,0xb4,0xe3,0xa5);
   5280 #if defined(__cplusplus) && !defined(CINTERFACE)
   5281 MIDL_INTERFACE("da6fea51-564c-4487-9810-f0d0f9b4e3a5")
   5282 ID3D11SamplerState : public ID3D11DeviceChild
   5283 {
   5284     virtual void STDMETHODCALLTYPE GetDesc(
   5285         D3D11_SAMPLER_DESC *pDesc) = 0;
   5286 
   5287 };
   5288 #ifdef __CRT_UUID_DECL
   5289 __CRT_UUID_DECL(ID3D11SamplerState, 0xda6fea51, 0x564c, 0x4487, 0x98,0x10, 0xf0,0xd0,0xf9,0xb4,0xe3,0xa5)
   5290 #endif
   5291 #else
   5292 typedef struct ID3D11SamplerStateVtbl {
   5293     BEGIN_INTERFACE
   5294 
   5295     /*** IUnknown methods ***/
   5296     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5297         ID3D11SamplerState *This,
   5298         REFIID riid,
   5299         void **ppvObject);
   5300 
   5301     ULONG (STDMETHODCALLTYPE *AddRef)(
   5302         ID3D11SamplerState *This);
   5303 
   5304     ULONG (STDMETHODCALLTYPE *Release)(
   5305         ID3D11SamplerState *This);
   5306 
   5307     /*** ID3D11DeviceChild methods ***/
   5308     void (STDMETHODCALLTYPE *GetDevice)(
   5309         ID3D11SamplerState *This,
   5310         ID3D11Device **ppDevice);
   5311 
   5312     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5313         ID3D11SamplerState *This,
   5314         REFGUID guid,
   5315         UINT *pDataSize,
   5316         void *pData);
   5317 
   5318     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5319         ID3D11SamplerState *This,
   5320         REFGUID guid,
   5321         UINT DataSize,
   5322         const void *pData);
   5323 
   5324     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5325         ID3D11SamplerState *This,
   5326         REFGUID guid,
   5327         const IUnknown *pData);
   5328 
   5329     /*** ID3D11SamplerState methods ***/
   5330     void (STDMETHODCALLTYPE *GetDesc)(
   5331         ID3D11SamplerState *This,
   5332         D3D11_SAMPLER_DESC *pDesc);
   5333 
   5334     END_INTERFACE
   5335 } ID3D11SamplerStateVtbl;
   5336 
   5337 interface ID3D11SamplerState {
   5338     CONST_VTBL ID3D11SamplerStateVtbl* lpVtbl;
   5339 };
   5340 
   5341 #ifdef COBJMACROS
   5342 #ifndef WIDL_C_INLINE_WRAPPERS
   5343 /*** IUnknown methods ***/
   5344 #define ID3D11SamplerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5345 #define ID3D11SamplerState_AddRef(This) (This)->lpVtbl->AddRef(This)
   5346 #define ID3D11SamplerState_Release(This) (This)->lpVtbl->Release(This)
   5347 /*** ID3D11DeviceChild methods ***/
   5348 #define ID3D11SamplerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5349 #define ID3D11SamplerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5350 #define ID3D11SamplerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5351 #define ID3D11SamplerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5352 /*** ID3D11SamplerState methods ***/
   5353 #define ID3D11SamplerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5354 #else
   5355 /*** IUnknown methods ***/
   5356 static inline HRESULT ID3D11SamplerState_QueryInterface(ID3D11SamplerState* This,REFIID riid,void **ppvObject) {
   5357     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5358 }
   5359 static inline ULONG ID3D11SamplerState_AddRef(ID3D11SamplerState* This) {
   5360     return This->lpVtbl->AddRef(This);
   5361 }
   5362 static inline ULONG ID3D11SamplerState_Release(ID3D11SamplerState* This) {
   5363     return This->lpVtbl->Release(This);
   5364 }
   5365 /*** ID3D11DeviceChild methods ***/
   5366 static inline void ID3D11SamplerState_GetDevice(ID3D11SamplerState* This,ID3D11Device **ppDevice) {
   5367     This->lpVtbl->GetDevice(This,ppDevice);
   5368 }
   5369 static inline HRESULT ID3D11SamplerState_GetPrivateData(ID3D11SamplerState* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5370     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5371 }
   5372 static inline HRESULT ID3D11SamplerState_SetPrivateData(ID3D11SamplerState* This,REFGUID guid,UINT DataSize,const void *pData) {
   5373     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5374 }
   5375 static inline HRESULT ID3D11SamplerState_SetPrivateDataInterface(ID3D11SamplerState* This,REFGUID guid,const IUnknown *pData) {
   5376     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5377 }
   5378 /*** ID3D11SamplerState methods ***/
   5379 static inline void ID3D11SamplerState_GetDesc(ID3D11SamplerState* This,D3D11_SAMPLER_DESC *pDesc) {
   5380     This->lpVtbl->GetDesc(This,pDesc);
   5381 }
   5382 #endif
   5383 #endif
   5384 
   5385 #endif
   5386 
   5387 
   5388 #endif  /* __ID3D11SamplerState_INTERFACE_DEFINED__ */
   5389 
   5390 /*****************************************************************************
   5391  * ID3D11ShaderResourceView interface
   5392  */
   5393 #ifndef __ID3D11ShaderResourceView_INTERFACE_DEFINED__
   5394 #define __ID3D11ShaderResourceView_INTERFACE_DEFINED__
   5395 
   5396 DEFINE_GUID(IID_ID3D11ShaderResourceView, 0xb0e06fe0, 0x8192, 0x4e1a, 0xb1,0xca, 0x36,0xd7,0x41,0x47,0x10,0xb2);
   5397 #if defined(__cplusplus) && !defined(CINTERFACE)
   5398 MIDL_INTERFACE("b0e06fe0-8192-4e1a-b1ca-36d7414710b2")
   5399 ID3D11ShaderResourceView : public ID3D11View
   5400 {
   5401     virtual void STDMETHODCALLTYPE GetDesc(
   5402         D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
   5403 
   5404 };
   5405 #ifdef __CRT_UUID_DECL
   5406 __CRT_UUID_DECL(ID3D11ShaderResourceView, 0xb0e06fe0, 0x8192, 0x4e1a, 0xb1,0xca, 0x36,0xd7,0x41,0x47,0x10,0xb2)
   5407 #endif
   5408 #else
   5409 typedef struct ID3D11ShaderResourceViewVtbl {
   5410     BEGIN_INTERFACE
   5411 
   5412     /*** IUnknown methods ***/
   5413     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5414         ID3D11ShaderResourceView *This,
   5415         REFIID riid,
   5416         void **ppvObject);
   5417 
   5418     ULONG (STDMETHODCALLTYPE *AddRef)(
   5419         ID3D11ShaderResourceView *This);
   5420 
   5421     ULONG (STDMETHODCALLTYPE *Release)(
   5422         ID3D11ShaderResourceView *This);
   5423 
   5424     /*** ID3D11DeviceChild methods ***/
   5425     void (STDMETHODCALLTYPE *GetDevice)(
   5426         ID3D11ShaderResourceView *This,
   5427         ID3D11Device **ppDevice);
   5428 
   5429     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5430         ID3D11ShaderResourceView *This,
   5431         REFGUID guid,
   5432         UINT *pDataSize,
   5433         void *pData);
   5434 
   5435     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5436         ID3D11ShaderResourceView *This,
   5437         REFGUID guid,
   5438         UINT DataSize,
   5439         const void *pData);
   5440 
   5441     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5442         ID3D11ShaderResourceView *This,
   5443         REFGUID guid,
   5444         const IUnknown *pData);
   5445 
   5446     /*** ID3D11View methods ***/
   5447     void (STDMETHODCALLTYPE *GetResource)(
   5448         ID3D11ShaderResourceView *This,
   5449         ID3D11Resource **ppResource);
   5450 
   5451     /*** ID3D11ShaderResourceView methods ***/
   5452     void (STDMETHODCALLTYPE *GetDesc)(
   5453         ID3D11ShaderResourceView *This,
   5454         D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
   5455 
   5456     END_INTERFACE
   5457 } ID3D11ShaderResourceViewVtbl;
   5458 
   5459 interface ID3D11ShaderResourceView {
   5460     CONST_VTBL ID3D11ShaderResourceViewVtbl* lpVtbl;
   5461 };
   5462 
   5463 #ifdef COBJMACROS
   5464 #ifndef WIDL_C_INLINE_WRAPPERS
   5465 /*** IUnknown methods ***/
   5466 #define ID3D11ShaderResourceView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5467 #define ID3D11ShaderResourceView_AddRef(This) (This)->lpVtbl->AddRef(This)
   5468 #define ID3D11ShaderResourceView_Release(This) (This)->lpVtbl->Release(This)
   5469 /*** ID3D11DeviceChild methods ***/
   5470 #define ID3D11ShaderResourceView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5471 #define ID3D11ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5472 #define ID3D11ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5473 #define ID3D11ShaderResourceView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5474 /*** ID3D11View methods ***/
   5475 #define ID3D11ShaderResourceView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   5476 /*** ID3D11ShaderResourceView methods ***/
   5477 #define ID3D11ShaderResourceView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5478 #else
   5479 /*** IUnknown methods ***/
   5480 static inline HRESULT ID3D11ShaderResourceView_QueryInterface(ID3D11ShaderResourceView* This,REFIID riid,void **ppvObject) {
   5481     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5482 }
   5483 static inline ULONG ID3D11ShaderResourceView_AddRef(ID3D11ShaderResourceView* This) {
   5484     return This->lpVtbl->AddRef(This);
   5485 }
   5486 static inline ULONG ID3D11ShaderResourceView_Release(ID3D11ShaderResourceView* This) {
   5487     return This->lpVtbl->Release(This);
   5488 }
   5489 /*** ID3D11DeviceChild methods ***/
   5490 static inline void ID3D11ShaderResourceView_GetDevice(ID3D11ShaderResourceView* This,ID3D11Device **ppDevice) {
   5491     This->lpVtbl->GetDevice(This,ppDevice);
   5492 }
   5493 static inline HRESULT ID3D11ShaderResourceView_GetPrivateData(ID3D11ShaderResourceView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5494     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5495 }
   5496 static inline HRESULT ID3D11ShaderResourceView_SetPrivateData(ID3D11ShaderResourceView* This,REFGUID guid,UINT DataSize,const void *pData) {
   5497     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5498 }
   5499 static inline HRESULT ID3D11ShaderResourceView_SetPrivateDataInterface(ID3D11ShaderResourceView* This,REFGUID guid,const IUnknown *pData) {
   5500     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5501 }
   5502 /*** ID3D11View methods ***/
   5503 static inline void ID3D11ShaderResourceView_GetResource(ID3D11ShaderResourceView* This,ID3D11Resource **ppResource) {
   5504     This->lpVtbl->GetResource(This,ppResource);
   5505 }
   5506 /*** ID3D11ShaderResourceView methods ***/
   5507 static inline void ID3D11ShaderResourceView_GetDesc(ID3D11ShaderResourceView* This,D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) {
   5508     This->lpVtbl->GetDesc(This,pDesc);
   5509 }
   5510 #endif
   5511 #endif
   5512 
   5513 #endif
   5514 
   5515 
   5516 #endif  /* __ID3D11ShaderResourceView_INTERFACE_DEFINED__ */
   5517 
   5518 /*****************************************************************************
   5519  * ID3D11Texture1D interface
   5520  */
   5521 #ifndef __ID3D11Texture1D_INTERFACE_DEFINED__
   5522 #define __ID3D11Texture1D_INTERFACE_DEFINED__
   5523 
   5524 DEFINE_GUID(IID_ID3D11Texture1D, 0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4,0xc8, 0x43,0x9a,0xf2,0xef,0x56,0x4c);
   5525 #if defined(__cplusplus) && !defined(CINTERFACE)
   5526 MIDL_INTERFACE("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c")
   5527 ID3D11Texture1D : public ID3D11Resource
   5528 {
   5529     virtual void STDMETHODCALLTYPE GetDesc(
   5530         D3D11_TEXTURE1D_DESC *pDesc) = 0;
   5531 
   5532 };
   5533 #ifdef __CRT_UUID_DECL
   5534 __CRT_UUID_DECL(ID3D11Texture1D, 0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4,0xc8, 0x43,0x9a,0xf2,0xef,0x56,0x4c)
   5535 #endif
   5536 #else
   5537 typedef struct ID3D11Texture1DVtbl {
   5538     BEGIN_INTERFACE
   5539 
   5540     /*** IUnknown methods ***/
   5541     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5542         ID3D11Texture1D *This,
   5543         REFIID riid,
   5544         void **ppvObject);
   5545 
   5546     ULONG (STDMETHODCALLTYPE *AddRef)(
   5547         ID3D11Texture1D *This);
   5548 
   5549     ULONG (STDMETHODCALLTYPE *Release)(
   5550         ID3D11Texture1D *This);
   5551 
   5552     /*** ID3D11DeviceChild methods ***/
   5553     void (STDMETHODCALLTYPE *GetDevice)(
   5554         ID3D11Texture1D *This,
   5555         ID3D11Device **ppDevice);
   5556 
   5557     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5558         ID3D11Texture1D *This,
   5559         REFGUID guid,
   5560         UINT *pDataSize,
   5561         void *pData);
   5562 
   5563     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5564         ID3D11Texture1D *This,
   5565         REFGUID guid,
   5566         UINT DataSize,
   5567         const void *pData);
   5568 
   5569     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5570         ID3D11Texture1D *This,
   5571         REFGUID guid,
   5572         const IUnknown *pData);
   5573 
   5574     /*** ID3D11Resource methods ***/
   5575     void (STDMETHODCALLTYPE *GetType)(
   5576         ID3D11Texture1D *This,
   5577         D3D11_RESOURCE_DIMENSION *pResourceDimension);
   5578 
   5579     void (STDMETHODCALLTYPE *SetEvictionPriority)(
   5580         ID3D11Texture1D *This,
   5581         UINT EvictionPriority);
   5582 
   5583     UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
   5584         ID3D11Texture1D *This);
   5585 
   5586     /*** ID3D11Texture1D methods ***/
   5587     void (STDMETHODCALLTYPE *GetDesc)(
   5588         ID3D11Texture1D *This,
   5589         D3D11_TEXTURE1D_DESC *pDesc);
   5590 
   5591     END_INTERFACE
   5592 } ID3D11Texture1DVtbl;
   5593 
   5594 interface ID3D11Texture1D {
   5595     CONST_VTBL ID3D11Texture1DVtbl* lpVtbl;
   5596 };
   5597 
   5598 #ifdef COBJMACROS
   5599 #ifndef WIDL_C_INLINE_WRAPPERS
   5600 /*** IUnknown methods ***/
   5601 #define ID3D11Texture1D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5602 #define ID3D11Texture1D_AddRef(This) (This)->lpVtbl->AddRef(This)
   5603 #define ID3D11Texture1D_Release(This) (This)->lpVtbl->Release(This)
   5604 /*** ID3D11DeviceChild methods ***/
   5605 #define ID3D11Texture1D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5606 #define ID3D11Texture1D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5607 #define ID3D11Texture1D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5608 #define ID3D11Texture1D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5609 /*** ID3D11Resource methods ***/
   5610 #define ID3D11Texture1D_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
   5611 #define ID3D11Texture1D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
   5612 #define ID3D11Texture1D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
   5613 /*** ID3D11Texture1D methods ***/
   5614 #define ID3D11Texture1D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5615 #else
   5616 /*** IUnknown methods ***/
   5617 static inline HRESULT ID3D11Texture1D_QueryInterface(ID3D11Texture1D* This,REFIID riid,void **ppvObject) {
   5618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5619 }
   5620 static inline ULONG ID3D11Texture1D_AddRef(ID3D11Texture1D* This) {
   5621     return This->lpVtbl->AddRef(This);
   5622 }
   5623 static inline ULONG ID3D11Texture1D_Release(ID3D11Texture1D* This) {
   5624     return This->lpVtbl->Release(This);
   5625 }
   5626 /*** ID3D11DeviceChild methods ***/
   5627 static inline void ID3D11Texture1D_GetDevice(ID3D11Texture1D* This,ID3D11Device **ppDevice) {
   5628     This->lpVtbl->GetDevice(This,ppDevice);
   5629 }
   5630 static inline HRESULT ID3D11Texture1D_GetPrivateData(ID3D11Texture1D* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5631     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5632 }
   5633 static inline HRESULT ID3D11Texture1D_SetPrivateData(ID3D11Texture1D* This,REFGUID guid,UINT DataSize,const void *pData) {
   5634     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5635 }
   5636 static inline HRESULT ID3D11Texture1D_SetPrivateDataInterface(ID3D11Texture1D* This,REFGUID guid,const IUnknown *pData) {
   5637     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5638 }
   5639 /*** ID3D11Resource methods ***/
   5640 static inline void ID3D11Texture1D_GetType(ID3D11Texture1D* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
   5641     This->lpVtbl->GetType(This,pResourceDimension);
   5642 }
   5643 static inline void ID3D11Texture1D_SetEvictionPriority(ID3D11Texture1D* This,UINT EvictionPriority) {
   5644     This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
   5645 }
   5646 static inline UINT ID3D11Texture1D_GetEvictionPriority(ID3D11Texture1D* This) {
   5647     return This->lpVtbl->GetEvictionPriority(This);
   5648 }
   5649 /*** ID3D11Texture1D methods ***/
   5650 static inline void ID3D11Texture1D_GetDesc(ID3D11Texture1D* This,D3D11_TEXTURE1D_DESC *pDesc) {
   5651     This->lpVtbl->GetDesc(This,pDesc);
   5652 }
   5653 #endif
   5654 #endif
   5655 
   5656 #endif
   5657 
   5658 
   5659 #endif  /* __ID3D11Texture1D_INTERFACE_DEFINED__ */
   5660 
   5661 /*****************************************************************************
   5662  * ID3D11Texture2D interface
   5663  */
   5664 #ifndef __ID3D11Texture2D_INTERFACE_DEFINED__
   5665 #define __ID3D11Texture2D_INTERFACE_DEFINED__
   5666 
   5667 DEFINE_GUID(IID_ID3D11Texture2D, 0x6f15aaf2, 0xd208, 0x4e89, 0x9a,0xb4, 0x48,0x95,0x35,0xd3,0x4f,0x9c);
   5668 #if defined(__cplusplus) && !defined(CINTERFACE)
   5669 MIDL_INTERFACE("6f15aaf2-d208-4e89-9ab4-489535d34f9c")
   5670 ID3D11Texture2D : public ID3D11Resource
   5671 {
   5672     virtual void STDMETHODCALLTYPE GetDesc(
   5673         D3D11_TEXTURE2D_DESC *pDesc) = 0;
   5674 
   5675 };
   5676 #ifdef __CRT_UUID_DECL
   5677 __CRT_UUID_DECL(ID3D11Texture2D, 0x6f15aaf2, 0xd208, 0x4e89, 0x9a,0xb4, 0x48,0x95,0x35,0xd3,0x4f,0x9c)
   5678 #endif
   5679 #else
   5680 typedef struct ID3D11Texture2DVtbl {
   5681     BEGIN_INTERFACE
   5682 
   5683     /*** IUnknown methods ***/
   5684     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5685         ID3D11Texture2D *This,
   5686         REFIID riid,
   5687         void **ppvObject);
   5688 
   5689     ULONG (STDMETHODCALLTYPE *AddRef)(
   5690         ID3D11Texture2D *This);
   5691 
   5692     ULONG (STDMETHODCALLTYPE *Release)(
   5693         ID3D11Texture2D *This);
   5694 
   5695     /*** ID3D11DeviceChild methods ***/
   5696     void (STDMETHODCALLTYPE *GetDevice)(
   5697         ID3D11Texture2D *This,
   5698         ID3D11Device **ppDevice);
   5699 
   5700     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5701         ID3D11Texture2D *This,
   5702         REFGUID guid,
   5703         UINT *pDataSize,
   5704         void *pData);
   5705 
   5706     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5707         ID3D11Texture2D *This,
   5708         REFGUID guid,
   5709         UINT DataSize,
   5710         const void *pData);
   5711 
   5712     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5713         ID3D11Texture2D *This,
   5714         REFGUID guid,
   5715         const IUnknown *pData);
   5716 
   5717     /*** ID3D11Resource methods ***/
   5718     void (STDMETHODCALLTYPE *GetType)(
   5719         ID3D11Texture2D *This,
   5720         D3D11_RESOURCE_DIMENSION *pResourceDimension);
   5721 
   5722     void (STDMETHODCALLTYPE *SetEvictionPriority)(
   5723         ID3D11Texture2D *This,
   5724         UINT EvictionPriority);
   5725 
   5726     UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
   5727         ID3D11Texture2D *This);
   5728 
   5729     /*** ID3D11Texture2D methods ***/
   5730     void (STDMETHODCALLTYPE *GetDesc)(
   5731         ID3D11Texture2D *This,
   5732         D3D11_TEXTURE2D_DESC *pDesc);
   5733 
   5734     END_INTERFACE
   5735 } ID3D11Texture2DVtbl;
   5736 
   5737 interface ID3D11Texture2D {
   5738     CONST_VTBL ID3D11Texture2DVtbl* lpVtbl;
   5739 };
   5740 
   5741 #ifdef COBJMACROS
   5742 #ifndef WIDL_C_INLINE_WRAPPERS
   5743 /*** IUnknown methods ***/
   5744 #define ID3D11Texture2D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5745 #define ID3D11Texture2D_AddRef(This) (This)->lpVtbl->AddRef(This)
   5746 #define ID3D11Texture2D_Release(This) (This)->lpVtbl->Release(This)
   5747 /*** ID3D11DeviceChild methods ***/
   5748 #define ID3D11Texture2D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5749 #define ID3D11Texture2D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5750 #define ID3D11Texture2D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5751 #define ID3D11Texture2D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5752 /*** ID3D11Resource methods ***/
   5753 #define ID3D11Texture2D_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
   5754 #define ID3D11Texture2D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
   5755 #define ID3D11Texture2D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
   5756 /*** ID3D11Texture2D methods ***/
   5757 #define ID3D11Texture2D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5758 #else
   5759 /*** IUnknown methods ***/
   5760 static inline HRESULT ID3D11Texture2D_QueryInterface(ID3D11Texture2D* This,REFIID riid,void **ppvObject) {
   5761     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5762 }
   5763 static inline ULONG ID3D11Texture2D_AddRef(ID3D11Texture2D* This) {
   5764     return This->lpVtbl->AddRef(This);
   5765 }
   5766 static inline ULONG ID3D11Texture2D_Release(ID3D11Texture2D* This) {
   5767     return This->lpVtbl->Release(This);
   5768 }
   5769 /*** ID3D11DeviceChild methods ***/
   5770 static inline void ID3D11Texture2D_GetDevice(ID3D11Texture2D* This,ID3D11Device **ppDevice) {
   5771     This->lpVtbl->GetDevice(This,ppDevice);
   5772 }
   5773 static inline HRESULT ID3D11Texture2D_GetPrivateData(ID3D11Texture2D* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5774     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5775 }
   5776 static inline HRESULT ID3D11Texture2D_SetPrivateData(ID3D11Texture2D* This,REFGUID guid,UINT DataSize,const void *pData) {
   5777     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5778 }
   5779 static inline HRESULT ID3D11Texture2D_SetPrivateDataInterface(ID3D11Texture2D* This,REFGUID guid,const IUnknown *pData) {
   5780     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5781 }
   5782 /*** ID3D11Resource methods ***/
   5783 static inline void ID3D11Texture2D_GetType(ID3D11Texture2D* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
   5784     This->lpVtbl->GetType(This,pResourceDimension);
   5785 }
   5786 static inline void ID3D11Texture2D_SetEvictionPriority(ID3D11Texture2D* This,UINT EvictionPriority) {
   5787     This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
   5788 }
   5789 static inline UINT ID3D11Texture2D_GetEvictionPriority(ID3D11Texture2D* This) {
   5790     return This->lpVtbl->GetEvictionPriority(This);
   5791 }
   5792 /*** ID3D11Texture2D methods ***/
   5793 static inline void ID3D11Texture2D_GetDesc(ID3D11Texture2D* This,D3D11_TEXTURE2D_DESC *pDesc) {
   5794     This->lpVtbl->GetDesc(This,pDesc);
   5795 }
   5796 #endif
   5797 #endif
   5798 
   5799 #endif
   5800 
   5801 
   5802 #endif  /* __ID3D11Texture2D_INTERFACE_DEFINED__ */
   5803 
   5804 /*****************************************************************************
   5805  * ID3D11Texture3D interface
   5806  */
   5807 #ifndef __ID3D11Texture3D_INTERFACE_DEFINED__
   5808 #define __ID3D11Texture3D_INTERFACE_DEFINED__
   5809 
   5810 DEFINE_GUID(IID_ID3D11Texture3D, 0x037e866e, 0xf56d, 0x4357, 0xa8,0xaf, 0x9d,0xab,0xbe,0x6e,0x25,0x0e);
   5811 #if defined(__cplusplus) && !defined(CINTERFACE)
   5812 MIDL_INTERFACE("037e866e-f56d-4357-a8af-9dabbe6e250e")
   5813 ID3D11Texture3D : public ID3D11Resource
   5814 {
   5815     virtual void STDMETHODCALLTYPE GetDesc(
   5816         D3D11_TEXTURE3D_DESC *pDesc) = 0;
   5817 
   5818 };
   5819 #ifdef __CRT_UUID_DECL
   5820 __CRT_UUID_DECL(ID3D11Texture3D, 0x037e866e, 0xf56d, 0x4357, 0xa8,0xaf, 0x9d,0xab,0xbe,0x6e,0x25,0x0e)
   5821 #endif
   5822 #else
   5823 typedef struct ID3D11Texture3DVtbl {
   5824     BEGIN_INTERFACE
   5825 
   5826     /*** IUnknown methods ***/
   5827     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5828         ID3D11Texture3D *This,
   5829         REFIID riid,
   5830         void **ppvObject);
   5831 
   5832     ULONG (STDMETHODCALLTYPE *AddRef)(
   5833         ID3D11Texture3D *This);
   5834 
   5835     ULONG (STDMETHODCALLTYPE *Release)(
   5836         ID3D11Texture3D *This);
   5837 
   5838     /*** ID3D11DeviceChild methods ***/
   5839     void (STDMETHODCALLTYPE *GetDevice)(
   5840         ID3D11Texture3D *This,
   5841         ID3D11Device **ppDevice);
   5842 
   5843     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5844         ID3D11Texture3D *This,
   5845         REFGUID guid,
   5846         UINT *pDataSize,
   5847         void *pData);
   5848 
   5849     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5850         ID3D11Texture3D *This,
   5851         REFGUID guid,
   5852         UINT DataSize,
   5853         const void *pData);
   5854 
   5855     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5856         ID3D11Texture3D *This,
   5857         REFGUID guid,
   5858         const IUnknown *pData);
   5859 
   5860     /*** ID3D11Resource methods ***/
   5861     void (STDMETHODCALLTYPE *GetType)(
   5862         ID3D11Texture3D *This,
   5863         D3D11_RESOURCE_DIMENSION *pResourceDimension);
   5864 
   5865     void (STDMETHODCALLTYPE *SetEvictionPriority)(
   5866         ID3D11Texture3D *This,
   5867         UINT EvictionPriority);
   5868 
   5869     UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
   5870         ID3D11Texture3D *This);
   5871 
   5872     /*** ID3D11Texture3D methods ***/
   5873     void (STDMETHODCALLTYPE *GetDesc)(
   5874         ID3D11Texture3D *This,
   5875         D3D11_TEXTURE3D_DESC *pDesc);
   5876 
   5877     END_INTERFACE
   5878 } ID3D11Texture3DVtbl;
   5879 
   5880 interface ID3D11Texture3D {
   5881     CONST_VTBL ID3D11Texture3DVtbl* lpVtbl;
   5882 };
   5883 
   5884 #ifdef COBJMACROS
   5885 #ifndef WIDL_C_INLINE_WRAPPERS
   5886 /*** IUnknown methods ***/
   5887 #define ID3D11Texture3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5888 #define ID3D11Texture3D_AddRef(This) (This)->lpVtbl->AddRef(This)
   5889 #define ID3D11Texture3D_Release(This) (This)->lpVtbl->Release(This)
   5890 /*** ID3D11DeviceChild methods ***/
   5891 #define ID3D11Texture3D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   5892 #define ID3D11Texture3D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   5893 #define ID3D11Texture3D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   5894 #define ID3D11Texture3D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   5895 /*** ID3D11Resource methods ***/
   5896 #define ID3D11Texture3D_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
   5897 #define ID3D11Texture3D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
   5898 #define ID3D11Texture3D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
   5899 /*** ID3D11Texture3D methods ***/
   5900 #define ID3D11Texture3D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   5901 #else
   5902 /*** IUnknown methods ***/
   5903 static inline HRESULT ID3D11Texture3D_QueryInterface(ID3D11Texture3D* This,REFIID riid,void **ppvObject) {
   5904     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5905 }
   5906 static inline ULONG ID3D11Texture3D_AddRef(ID3D11Texture3D* This) {
   5907     return This->lpVtbl->AddRef(This);
   5908 }
   5909 static inline ULONG ID3D11Texture3D_Release(ID3D11Texture3D* This) {
   5910     return This->lpVtbl->Release(This);
   5911 }
   5912 /*** ID3D11DeviceChild methods ***/
   5913 static inline void ID3D11Texture3D_GetDevice(ID3D11Texture3D* This,ID3D11Device **ppDevice) {
   5914     This->lpVtbl->GetDevice(This,ppDevice);
   5915 }
   5916 static inline HRESULT ID3D11Texture3D_GetPrivateData(ID3D11Texture3D* This,REFGUID guid,UINT *pDataSize,void *pData) {
   5917     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   5918 }
   5919 static inline HRESULT ID3D11Texture3D_SetPrivateData(ID3D11Texture3D* This,REFGUID guid,UINT DataSize,const void *pData) {
   5920     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   5921 }
   5922 static inline HRESULT ID3D11Texture3D_SetPrivateDataInterface(ID3D11Texture3D* This,REFGUID guid,const IUnknown *pData) {
   5923     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   5924 }
   5925 /*** ID3D11Resource methods ***/
   5926 static inline void ID3D11Texture3D_GetType(ID3D11Texture3D* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
   5927     This->lpVtbl->GetType(This,pResourceDimension);
   5928 }
   5929 static inline void ID3D11Texture3D_SetEvictionPriority(ID3D11Texture3D* This,UINT EvictionPriority) {
   5930     This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
   5931 }
   5932 static inline UINT ID3D11Texture3D_GetEvictionPriority(ID3D11Texture3D* This) {
   5933     return This->lpVtbl->GetEvictionPriority(This);
   5934 }
   5935 /*** ID3D11Texture3D methods ***/
   5936 static inline void ID3D11Texture3D_GetDesc(ID3D11Texture3D* This,D3D11_TEXTURE3D_DESC *pDesc) {
   5937     This->lpVtbl->GetDesc(This,pDesc);
   5938 }
   5939 #endif
   5940 #endif
   5941 
   5942 #endif
   5943 
   5944 
   5945 #endif  /* __ID3D11Texture3D_INTERFACE_DEFINED__ */
   5946 
   5947 /*****************************************************************************
   5948  * ID3D11UnorderedAccessView interface
   5949  */
   5950 #ifndef __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
   5951 #define __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
   5952 
   5953 DEFINE_GUID(IID_ID3D11UnorderedAccessView, 0x28acf509, 0x7f5c, 0x48f6, 0x86,0x11, 0xf3,0x16,0x01,0x0a,0x63,0x80);
   5954 #if defined(__cplusplus) && !defined(CINTERFACE)
   5955 MIDL_INTERFACE("28acf509-7f5c-48f6-8611-f316010a6380")
   5956 ID3D11UnorderedAccessView : public ID3D11View
   5957 {
   5958     virtual void STDMETHODCALLTYPE GetDesc(
   5959         D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) = 0;
   5960 
   5961 };
   5962 #ifdef __CRT_UUID_DECL
   5963 __CRT_UUID_DECL(ID3D11UnorderedAccessView, 0x28acf509, 0x7f5c, 0x48f6, 0x86,0x11, 0xf3,0x16,0x01,0x0a,0x63,0x80)
   5964 #endif
   5965 #else
   5966 typedef struct ID3D11UnorderedAccessViewVtbl {
   5967     BEGIN_INTERFACE
   5968 
   5969     /*** IUnknown methods ***/
   5970     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5971         ID3D11UnorderedAccessView *This,
   5972         REFIID riid,
   5973         void **ppvObject);
   5974 
   5975     ULONG (STDMETHODCALLTYPE *AddRef)(
   5976         ID3D11UnorderedAccessView *This);
   5977 
   5978     ULONG (STDMETHODCALLTYPE *Release)(
   5979         ID3D11UnorderedAccessView *This);
   5980 
   5981     /*** ID3D11DeviceChild methods ***/
   5982     void (STDMETHODCALLTYPE *GetDevice)(
   5983         ID3D11UnorderedAccessView *This,
   5984         ID3D11Device **ppDevice);
   5985 
   5986     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   5987         ID3D11UnorderedAccessView *This,
   5988         REFGUID guid,
   5989         UINT *pDataSize,
   5990         void *pData);
   5991 
   5992     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   5993         ID3D11UnorderedAccessView *This,
   5994         REFGUID guid,
   5995         UINT DataSize,
   5996         const void *pData);
   5997 
   5998     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   5999         ID3D11UnorderedAccessView *This,
   6000         REFGUID guid,
   6001         const IUnknown *pData);
   6002 
   6003     /*** ID3D11View methods ***/
   6004     void (STDMETHODCALLTYPE *GetResource)(
   6005         ID3D11UnorderedAccessView *This,
   6006         ID3D11Resource **ppResource);
   6007 
   6008     /*** ID3D11UnorderedAccessView methods ***/
   6009     void (STDMETHODCALLTYPE *GetDesc)(
   6010         ID3D11UnorderedAccessView *This,
   6011         D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
   6012 
   6013     END_INTERFACE
   6014 } ID3D11UnorderedAccessViewVtbl;
   6015 
   6016 interface ID3D11UnorderedAccessView {
   6017     CONST_VTBL ID3D11UnorderedAccessViewVtbl* lpVtbl;
   6018 };
   6019 
   6020 #ifdef COBJMACROS
   6021 #ifndef WIDL_C_INLINE_WRAPPERS
   6022 /*** IUnknown methods ***/
   6023 #define ID3D11UnorderedAccessView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6024 #define ID3D11UnorderedAccessView_AddRef(This) (This)->lpVtbl->AddRef(This)
   6025 #define ID3D11UnorderedAccessView_Release(This) (This)->lpVtbl->Release(This)
   6026 /*** ID3D11DeviceChild methods ***/
   6027 #define ID3D11UnorderedAccessView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   6028 #define ID3D11UnorderedAccessView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   6029 #define ID3D11UnorderedAccessView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   6030 #define ID3D11UnorderedAccessView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   6031 /*** ID3D11View methods ***/
   6032 #define ID3D11UnorderedAccessView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   6033 /*** ID3D11UnorderedAccessView methods ***/
   6034 #define ID3D11UnorderedAccessView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   6035 #else
   6036 /*** IUnknown methods ***/
   6037 static inline HRESULT ID3D11UnorderedAccessView_QueryInterface(ID3D11UnorderedAccessView* This,REFIID riid,void **ppvObject) {
   6038     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6039 }
   6040 static inline ULONG ID3D11UnorderedAccessView_AddRef(ID3D11UnorderedAccessView* This) {
   6041     return This->lpVtbl->AddRef(This);
   6042 }
   6043 static inline ULONG ID3D11UnorderedAccessView_Release(ID3D11UnorderedAccessView* This) {
   6044     return This->lpVtbl->Release(This);
   6045 }
   6046 /*** ID3D11DeviceChild methods ***/
   6047 static inline void ID3D11UnorderedAccessView_GetDevice(ID3D11UnorderedAccessView* This,ID3D11Device **ppDevice) {
   6048     This->lpVtbl->GetDevice(This,ppDevice);
   6049 }
   6050 static inline HRESULT ID3D11UnorderedAccessView_GetPrivateData(ID3D11UnorderedAccessView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   6051     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   6052 }
   6053 static inline HRESULT ID3D11UnorderedAccessView_SetPrivateData(ID3D11UnorderedAccessView* This,REFGUID guid,UINT DataSize,const void *pData) {
   6054     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   6055 }
   6056 static inline HRESULT ID3D11UnorderedAccessView_SetPrivateDataInterface(ID3D11UnorderedAccessView* This,REFGUID guid,const IUnknown *pData) {
   6057     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   6058 }
   6059 /*** ID3D11View methods ***/
   6060 static inline void ID3D11UnorderedAccessView_GetResource(ID3D11UnorderedAccessView* This,ID3D11Resource **ppResource) {
   6061     This->lpVtbl->GetResource(This,ppResource);
   6062 }
   6063 /*** ID3D11UnorderedAccessView methods ***/
   6064 static inline void ID3D11UnorderedAccessView_GetDesc(ID3D11UnorderedAccessView* This,D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) {
   6065     This->lpVtbl->GetDesc(This,pDesc);
   6066 }
   6067 #endif
   6068 #endif
   6069 
   6070 #endif
   6071 
   6072 
   6073 #endif  /* __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ */
   6074 
   6075 /*****************************************************************************
   6076  * ID3D11VertexShader interface
   6077  */
   6078 #ifndef __ID3D11VertexShader_INTERFACE_DEFINED__
   6079 #define __ID3D11VertexShader_INTERFACE_DEFINED__
   6080 
   6081 DEFINE_GUID(IID_ID3D11VertexShader, 0x3b301d64, 0xd678, 0x4289, 0x88,0x97, 0x22,0xf8,0x92,0x8b,0x72,0xf3);
   6082 #if defined(__cplusplus) && !defined(CINTERFACE)
   6083 MIDL_INTERFACE("3b301d64-d678-4289-8897-22f8928b72f3")
   6084 ID3D11VertexShader : public ID3D11DeviceChild
   6085 {
   6086 };
   6087 #ifdef __CRT_UUID_DECL
   6088 __CRT_UUID_DECL(ID3D11VertexShader, 0x3b301d64, 0xd678, 0x4289, 0x88,0x97, 0x22,0xf8,0x92,0x8b,0x72,0xf3)
   6089 #endif
   6090 #else
   6091 typedef struct ID3D11VertexShaderVtbl {
   6092     BEGIN_INTERFACE
   6093 
   6094     /*** IUnknown methods ***/
   6095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6096         ID3D11VertexShader *This,
   6097         REFIID riid,
   6098         void **ppvObject);
   6099 
   6100     ULONG (STDMETHODCALLTYPE *AddRef)(
   6101         ID3D11VertexShader *This);
   6102 
   6103     ULONG (STDMETHODCALLTYPE *Release)(
   6104         ID3D11VertexShader *This);
   6105 
   6106     /*** ID3D11DeviceChild methods ***/
   6107     void (STDMETHODCALLTYPE *GetDevice)(
   6108         ID3D11VertexShader *This,
   6109         ID3D11Device **ppDevice);
   6110 
   6111     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   6112         ID3D11VertexShader *This,
   6113         REFGUID guid,
   6114         UINT *pDataSize,
   6115         void *pData);
   6116 
   6117     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   6118         ID3D11VertexShader *This,
   6119         REFGUID guid,
   6120         UINT DataSize,
   6121         const void *pData);
   6122 
   6123     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   6124         ID3D11VertexShader *This,
   6125         REFGUID guid,
   6126         const IUnknown *pData);
   6127 
   6128     END_INTERFACE
   6129 } ID3D11VertexShaderVtbl;
   6130 
   6131 interface ID3D11VertexShader {
   6132     CONST_VTBL ID3D11VertexShaderVtbl* lpVtbl;
   6133 };
   6134 
   6135 #ifdef COBJMACROS
   6136 #ifndef WIDL_C_INLINE_WRAPPERS
   6137 /*** IUnknown methods ***/
   6138 #define ID3D11VertexShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6139 #define ID3D11VertexShader_AddRef(This) (This)->lpVtbl->AddRef(This)
   6140 #define ID3D11VertexShader_Release(This) (This)->lpVtbl->Release(This)
   6141 /*** ID3D11DeviceChild methods ***/
   6142 #define ID3D11VertexShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   6143 #define ID3D11VertexShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   6144 #define ID3D11VertexShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   6145 #define ID3D11VertexShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   6146 #else
   6147 /*** IUnknown methods ***/
   6148 static inline HRESULT ID3D11VertexShader_QueryInterface(ID3D11VertexShader* This,REFIID riid,void **ppvObject) {
   6149     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6150 }
   6151 static inline ULONG ID3D11VertexShader_AddRef(ID3D11VertexShader* This) {
   6152     return This->lpVtbl->AddRef(This);
   6153 }
   6154 static inline ULONG ID3D11VertexShader_Release(ID3D11VertexShader* This) {
   6155     return This->lpVtbl->Release(This);
   6156 }
   6157 /*** ID3D11DeviceChild methods ***/
   6158 static inline void ID3D11VertexShader_GetDevice(ID3D11VertexShader* This,ID3D11Device **ppDevice) {
   6159     This->lpVtbl->GetDevice(This,ppDevice);
   6160 }
   6161 static inline HRESULT ID3D11VertexShader_GetPrivateData(ID3D11VertexShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
   6162     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   6163 }
   6164 static inline HRESULT ID3D11VertexShader_SetPrivateData(ID3D11VertexShader* This,REFGUID guid,UINT DataSize,const void *pData) {
   6165     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   6166 }
   6167 static inline HRESULT ID3D11VertexShader_SetPrivateDataInterface(ID3D11VertexShader* This,REFGUID guid,const IUnknown *pData) {
   6168     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   6169 }
   6170 #endif
   6171 #endif
   6172 
   6173 #endif
   6174 
   6175 
   6176 #endif  /* __ID3D11VertexShader_INTERFACE_DEFINED__ */
   6177 
   6178 /*****************************************************************************
   6179  * ID3D11DeviceContext interface
   6180  */
   6181 #ifndef __ID3D11DeviceContext_INTERFACE_DEFINED__
   6182 #define __ID3D11DeviceContext_INTERFACE_DEFINED__
   6183 
   6184 DEFINE_GUID(IID_ID3D11DeviceContext, 0xc0bfa96c, 0xe089, 0x44fb, 0x8e,0xaf, 0x26,0xf8,0x79,0x61,0x90,0xda);
   6185 #if defined(__cplusplus) && !defined(CINTERFACE)
   6186 MIDL_INTERFACE("c0bfa96c-e089-44fb-8eaf-26f8796190da")
   6187 ID3D11DeviceContext : public ID3D11DeviceChild
   6188 {
   6189     virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
   6190         UINT StartSlot,
   6191         UINT NumBuffers,
   6192         ID3D11Buffer *const *ppConstantBuffers) = 0;
   6193 
   6194     virtual void STDMETHODCALLTYPE PSSetShaderResources(
   6195         UINT StartSlot,
   6196         UINT NumViews,
   6197         ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
   6198 
   6199     virtual void STDMETHODCALLTYPE PSSetShader(
   6200         ID3D11PixelShader *pPixelShader,
   6201         ID3D11ClassInstance *const *ppClassInstances,
   6202         UINT NumClassInstances) = 0;
   6203 
   6204     virtual void STDMETHODCALLTYPE PSSetSamplers(
   6205         UINT StartSlot,
   6206         UINT NumSamplers,
   6207         ID3D11SamplerState *const *ppSamplers) = 0;
   6208 
   6209     virtual void STDMETHODCALLTYPE VSSetShader(
   6210         ID3D11VertexShader *pVertexShader,
   6211         ID3D11ClassInstance *const *ppClassInstances,
   6212         UINT NumClassInstances) = 0;
   6213 
   6214     virtual void STDMETHODCALLTYPE DrawIndexed(
   6215         UINT IndexCount,
   6216         UINT StartIndexLocation,
   6217         INT BaseVertexLocation) = 0;
   6218 
   6219     virtual void STDMETHODCALLTYPE Draw(
   6220         UINT VertexCount,
   6221         UINT StartVertexLocation) = 0;
   6222 
   6223     virtual HRESULT STDMETHODCALLTYPE Map(
   6224         ID3D11Resource *pResource,
   6225         UINT Subresource,
   6226         D3D11_MAP MapType,
   6227         UINT MapFlags,
   6228         D3D11_MAPPED_SUBRESOURCE *pMappedResource) = 0;
   6229 
   6230     virtual void STDMETHODCALLTYPE Unmap(
   6231         ID3D11Resource *pResource,
   6232         UINT Subresource) = 0;
   6233 
   6234     virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
   6235         UINT StartSlot,
   6236         UINT NumBuffers,
   6237         ID3D11Buffer *const *ppConstantBuffers) = 0;
   6238 
   6239     virtual void STDMETHODCALLTYPE IASetInputLayout(
   6240         ID3D11InputLayout *pInputLayout) = 0;
   6241 
   6242     virtual void STDMETHODCALLTYPE IASetVertexBuffers(
   6243         UINT StartSlot,
   6244         UINT NumBuffers,
   6245         ID3D11Buffer *const *ppVertexBuffers,
   6246         const UINT *pStrides,
   6247         const UINT *pOffsets) = 0;
   6248 
   6249     virtual void STDMETHODCALLTYPE IASetIndexBuffer(
   6250         ID3D11Buffer *pIndexBuffer,
   6251         DXGI_FORMAT Format,
   6252         UINT Offset) = 0;
   6253 
   6254     virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
   6255         UINT IndexCountPerInstance,
   6256         UINT InstanceCount,
   6257         UINT StartIndexLocation,
   6258         INT BaseVertexLocation,
   6259         UINT StartInstanceLocation) = 0;
   6260 
   6261     virtual void STDMETHODCALLTYPE DrawInstanced(
   6262         UINT VertexCountPerInstance,
   6263         UINT InstanceCount,
   6264         UINT StartVertexLocation,
   6265         UINT StartInstanceLocation) = 0;
   6266 
   6267     virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
   6268         UINT StartSlot,
   6269         UINT NumBuffers,
   6270         ID3D11Buffer *const *ppConstantBuffers) = 0;
   6271 
   6272     virtual void STDMETHODCALLTYPE GSSetShader(
   6273         ID3D11GeometryShader *pShader,
   6274         ID3D11ClassInstance *const *ppClassInstances,
   6275         UINT NumClassInstances) = 0;
   6276 
   6277     virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
   6278         D3D11_PRIMITIVE_TOPOLOGY Topology) = 0;
   6279 
   6280     virtual void STDMETHODCALLTYPE VSSetShaderResources(
   6281         UINT StartSlot,
   6282         UINT NumViews,
   6283         ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
   6284 
   6285     virtual void STDMETHODCALLTYPE VSSetSamplers(
   6286         UINT StartSlot,
   6287         UINT NumSamplers,
   6288         ID3D11SamplerState *const *ppSamplers) = 0;
   6289 
   6290     virtual void STDMETHODCALLTYPE Begin(
   6291         ID3D11Asynchronous *pAsync) = 0;
   6292 
   6293     virtual void STDMETHODCALLTYPE End(
   6294         ID3D11Asynchronous *pAsync) = 0;
   6295 
   6296     virtual HRESULT STDMETHODCALLTYPE GetData(
   6297         ID3D11Asynchronous *pAsync,
   6298         void *pData,
   6299         UINT DataSize,
   6300         UINT GetDataFlags) = 0;
   6301 
   6302     virtual void STDMETHODCALLTYPE SetPredication(
   6303         ID3D11Predicate *pPredicate,
   6304         WINBOOL PredicateValue) = 0;
   6305 
   6306     virtual void STDMETHODCALLTYPE GSSetShaderResources(
   6307         UINT StartSlot,
   6308         UINT NumViews,
   6309         ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
   6310 
   6311     virtual void STDMETHODCALLTYPE GSSetSamplers(
   6312         UINT StartSlot,
   6313         UINT NumSamplers,
   6314         ID3D11SamplerState *const *ppSamplers) = 0;
   6315 
   6316     virtual void STDMETHODCALLTYPE OMSetRenderTargets(
   6317         UINT NumViews,
   6318         ID3D11RenderTargetView *const *ppRenderTargetViews,
   6319         ID3D11DepthStencilView *pDepthStencilView) = 0;
   6320 
   6321     virtual void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews(
   6322         UINT NumRTVs,
   6323         ID3D11RenderTargetView *const *ppRenderTargetViews,
   6324         ID3D11DepthStencilView *pDepthStencilView,
   6325         UINT UAVStartSlot,
   6326         UINT NumUAVs,
   6327         ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
   6328         const UINT *pUAVInitialCounts) = 0;
   6329 
   6330     virtual void STDMETHODCALLTYPE OMSetBlendState(
   6331         ID3D11BlendState *pBlendState,
   6332         const FLOAT BlendFactor[4],
   6333         UINT SampleMask) = 0;
   6334 
   6335     virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
   6336         ID3D11DepthStencilState *pDepthStencilState,
   6337         UINT StencilRef) = 0;
   6338 
   6339     virtual void STDMETHODCALLTYPE SOSetTargets(
   6340         UINT NumBuffers,
   6341         ID3D11Buffer *const *ppSOTargets,
   6342         const UINT *pOffsets) = 0;
   6343 
   6344     virtual void STDMETHODCALLTYPE DrawAuto(
   6345         ) = 0;
   6346 
   6347     virtual void STDMETHODCALLTYPE DrawIndexedInstancedIndirect(
   6348         ID3D11Buffer *pBufferForArgs,
   6349         UINT AlignedByteOffsetForArgs) = 0;
   6350 
   6351     virtual void STDMETHODCALLTYPE DrawInstancedIndirect(
   6352         ID3D11Buffer *pBufferForArgs,
   6353         UINT AlignedByteOffsetForArgs) = 0;
   6354 
   6355     virtual void STDMETHODCALLTYPE Dispatch(
   6356         UINT ThreadGroupCountX,
   6357         UINT ThreadGroupCountY,
   6358         UINT ThreadGroupCountZ) = 0;
   6359 
   6360     virtual void STDMETHODCALLTYPE DispatchIndirect(
   6361         ID3D11Buffer *pBufferForArgs,
   6362         UINT AlignedByteOffsetForArgs) = 0;
   6363 
   6364     virtual void STDMETHODCALLTYPE RSSetState(
   6365         ID3D11RasterizerState *pRasterizerState) = 0;
   6366 
   6367     virtual void STDMETHODCALLTYPE RSSetViewports(
   6368         UINT NumViewports,
   6369         const D3D11_VIEWPORT *pViewports) = 0;
   6370 
   6371     virtual void STDMETHODCALLTYPE RSSetScissorRects(
   6372         UINT NumRects,
   6373         const D3D11_RECT *pRects) = 0;
   6374 
   6375     virtual void STDMETHODCALLTYPE CopySubresourceRegion(
   6376         ID3D11Resource *pDstResource,
   6377         UINT DstSubresource,
   6378         UINT DstX,
   6379         UINT DstY,
   6380         UINT DstZ,
   6381         ID3D11Resource *pSrcResource,
   6382         UINT SrcSubresource,
   6383         const D3D11_BOX *pSrcBox) = 0;
   6384 
   6385     virtual void STDMETHODCALLTYPE CopyResource(
   6386         ID3D11Resource *pDstResource,
   6387         ID3D11Resource *pSrcResource) = 0;
   6388 
   6389     virtual void STDMETHODCALLTYPE UpdateSubresource(
   6390         ID3D11Resource *pDstResource,
   6391         UINT DstSubresource,
   6392         const D3D11_BOX *pDstBox,
   6393         const void *pSrcData,
   6394         UINT SrcRowPitch,
   6395         UINT SrcDepthPitch) = 0;
   6396 
   6397     virtual void STDMETHODCALLTYPE CopyStructureCount(
   6398         ID3D11Buffer *pDstBuffer,
   6399         UINT DstAlignedByteOffset,
   6400         ID3D11UnorderedAccessView *pSrcView) = 0;
   6401 
   6402     virtual void STDMETHODCALLTYPE ClearRenderTargetView(
   6403         ID3D11RenderTargetView *pRenderTargetView,
   6404         const FLOAT ColorRGBA[4]) = 0;
   6405 
   6406     virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
   6407         ID3D11UnorderedAccessView *pUnorderedAccessView,
   6408         const UINT Values[4]) = 0;
   6409 
   6410     virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
   6411         ID3D11UnorderedAccessView *pUnorderedAccessView,
   6412         const FLOAT Values[4]) = 0;
   6413 
   6414     virtual void STDMETHODCALLTYPE ClearDepthStencilView(
   6415         ID3D11DepthStencilView *pDepthStencilView,
   6416         UINT ClearFlags,
   6417         FLOAT Depth,
   6418         UINT8 Stencil) = 0;
   6419 
   6420     virtual void STDMETHODCALLTYPE GenerateMips(
   6421         ID3D11ShaderResourceView *pShaderResourceView) = 0;
   6422 
   6423     virtual void STDMETHODCALLTYPE SetResourceMinLOD(
   6424         ID3D11Resource *pResource,
   6425         FLOAT MinLOD) = 0;
   6426 
   6427     virtual FLOAT STDMETHODCALLTYPE GetResourceMinLOD(
   6428         ID3D11Resource *pResource) = 0;
   6429 
   6430     virtual void STDMETHODCALLTYPE ResolveSubresource(
   6431         ID3D11Resource *pDstResource,
   6432         UINT DstSubresource,
   6433         ID3D11Resource *pSrcResource,
   6434         UINT SrcSubresource,
   6435         DXGI_FORMAT Format) = 0;
   6436 
   6437     virtual void STDMETHODCALLTYPE ExecuteCommandList(
   6438         ID3D11CommandList *pCommandList,
   6439         WINBOOL RestoreContextState) = 0;
   6440 
   6441     virtual void STDMETHODCALLTYPE HSSetShaderResources(
   6442         UINT StartSlot,
   6443         UINT NumViews,
   6444         ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
   6445 
   6446     virtual void STDMETHODCALLTYPE HSSetShader(
   6447         ID3D11HullShader *pHullShader,
   6448         ID3D11ClassInstance *const *ppClassInstances,
   6449         UINT NumClassInstances) = 0;
   6450 
   6451     virtual void STDMETHODCALLTYPE HSSetSamplers(
   6452         UINT StartSlot,
   6453         UINT NumSamplers,
   6454         ID3D11SamplerState *const *ppSamplers) = 0;
   6455 
   6456     virtual void STDMETHODCALLTYPE HSSetConstantBuffers(
   6457         UINT StartSlot,
   6458         UINT NumBuffers,
   6459         ID3D11Buffer *const *ppConstantBuffers) = 0;
   6460 
   6461     virtual void STDMETHODCALLTYPE DSSetShaderResources(
   6462         UINT StartSlot,
   6463         UINT NumViews,
   6464         ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
   6465 
   6466     virtual void STDMETHODCALLTYPE DSSetShader(
   6467         ID3D11DomainShader *pDomainShader,
   6468         ID3D11ClassInstance *const *ppClassInstances,
   6469         UINT NumClassInstances) = 0;
   6470 
   6471     virtual void STDMETHODCALLTYPE DSSetSamplers(
   6472         UINT StartSlot,
   6473         UINT NumSamplers,
   6474         ID3D11SamplerState *const *ppSamplers) = 0;
   6475 
   6476     virtual void STDMETHODCALLTYPE DSSetConstantBuffers(
   6477         UINT StartSlot,
   6478         UINT NumBuffers,
   6479         ID3D11Buffer *const *ppConstantBuffers) = 0;
   6480 
   6481     virtual void STDMETHODCALLTYPE CSSetShaderResources(
   6482         UINT StartSlot,
   6483         UINT NumViews,
   6484         ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
   6485 
   6486     virtual void STDMETHODCALLTYPE CSSetUnorderedAccessViews(
   6487         UINT StartSlot,
   6488         UINT NumUAVs,
   6489         ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
   6490         const UINT *pUAVInitialCounts) = 0;
   6491 
   6492     virtual void STDMETHODCALLTYPE CSSetShader(
   6493         ID3D11ComputeShader *pComputeShader,
   6494         ID3D11ClassInstance *const *ppClassInstances,
   6495         UINT NumClassInstances) = 0;
   6496 
   6497     virtual void STDMETHODCALLTYPE CSSetSamplers(
   6498         UINT StartSlot,
   6499         UINT NumSamplers,
   6500         ID3D11SamplerState *const *ppSamplers) = 0;
   6501 
   6502     virtual void STDMETHODCALLTYPE CSSetConstantBuffers(
   6503         UINT StartSlot,
   6504         UINT NumBuffers,
   6505         ID3D11Buffer *const *ppConstantBuffers) = 0;
   6506 
   6507     virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
   6508         UINT StartSlot,
   6509         UINT NumBuffers,
   6510         ID3D11Buffer **ppConstantBuffers) = 0;
   6511 
   6512     virtual void STDMETHODCALLTYPE PSGetShaderResources(
   6513         UINT StartSlot,
   6514         UINT NumViews,
   6515         ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
   6516 
   6517     virtual void STDMETHODCALLTYPE PSGetShader(
   6518         ID3D11PixelShader **ppPixelShader,
   6519         ID3D11ClassInstance **ppClassInstances,
   6520         UINT *pNumClassInstances) = 0;
   6521 
   6522     virtual void STDMETHODCALLTYPE PSGetSamplers(
   6523         UINT StartSlot,
   6524         UINT NumSamplers,
   6525         ID3D11SamplerState **ppSamplers) = 0;
   6526 
   6527     virtual void STDMETHODCALLTYPE VSGetShader(
   6528         ID3D11VertexShader **ppVertexShader,
   6529         ID3D11ClassInstance **ppClassInstances,
   6530         UINT *pNumClassInstances) = 0;
   6531 
   6532     virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
   6533         UINT StartSlot,
   6534         UINT NumBuffers,
   6535         ID3D11Buffer **ppConstantBuffers) = 0;
   6536 
   6537     virtual void STDMETHODCALLTYPE IAGetInputLayout(
   6538         ID3D11InputLayout **ppInputLayout) = 0;
   6539 
   6540     virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
   6541         UINT StartSlot,
   6542         UINT NumBuffers,
   6543         ID3D11Buffer **ppVertexBuffers,
   6544         UINT *pStrides,
   6545         UINT *pOffsets) = 0;
   6546 
   6547     virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
   6548         ID3D11Buffer **pIndexBuffer,
   6549         DXGI_FORMAT *Format,
   6550         UINT *Offset) = 0;
   6551 
   6552     virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
   6553         UINT StartSlot,
   6554         UINT NumBuffers,
   6555         ID3D11Buffer **ppConstantBuffers) = 0;
   6556 
   6557     virtual void STDMETHODCALLTYPE GSGetShader(
   6558         ID3D11GeometryShader **ppGeometryShader,
   6559         ID3D11ClassInstance **ppClassInstances,
   6560         UINT *pNumClassInstances) = 0;
   6561 
   6562     virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
   6563         D3D11_PRIMITIVE_TOPOLOGY *pTopology) = 0;
   6564 
   6565     virtual void STDMETHODCALLTYPE VSGetShaderResources(
   6566         UINT StartSlot,
   6567         UINT NumViews,
   6568         ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
   6569 
   6570     virtual void STDMETHODCALLTYPE VSGetSamplers(
   6571         UINT StartSlot,
   6572         UINT NumSamplers,
   6573         ID3D11SamplerState **ppSamplers) = 0;
   6574 
   6575     virtual void STDMETHODCALLTYPE GetPredication(
   6576         ID3D11Predicate **ppPredicate,
   6577         WINBOOL *pPredicateValue) = 0;
   6578 
   6579     virtual void STDMETHODCALLTYPE GSGetShaderResources(
   6580         UINT StartSlot,
   6581         UINT NumViews,
   6582         ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
   6583 
   6584     virtual void STDMETHODCALLTYPE GSGetSamplers(
   6585         UINT StartSlot,
   6586         UINT NumSamplers,
   6587         ID3D11SamplerState **ppSamplers) = 0;
   6588 
   6589     virtual void STDMETHODCALLTYPE OMGetRenderTargets(
   6590         UINT NumViews,
   6591         ID3D11RenderTargetView **ppRenderTargetViews,
   6592         ID3D11DepthStencilView **ppDepthStencilView) = 0;
   6593 
   6594     virtual void STDMETHODCALLTYPE OMGetRenderTargetsAndUnorderedAccessViews(
   6595         UINT NumRTVs,
   6596         ID3D11RenderTargetView **ppRenderTargetViews,
   6597         ID3D11DepthStencilView **ppDepthStencilView,
   6598         UINT UAVStartSlot,
   6599         UINT NumUAVs,
   6600         ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
   6601 
   6602     virtual void STDMETHODCALLTYPE OMGetBlendState(
   6603         ID3D11BlendState **ppBlendState,
   6604         FLOAT BlendFactor[4],
   6605         UINT *pSampleMask) = 0;
   6606 
   6607     virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
   6608         ID3D11DepthStencilState **ppDepthStencilState,
   6609         UINT *pStencilRef) = 0;
   6610 
   6611     virtual void STDMETHODCALLTYPE SOGetTargets(
   6612         UINT NumBuffers,
   6613         ID3D11Buffer **ppSOTargets) = 0;
   6614 
   6615     virtual void STDMETHODCALLTYPE RSGetState(
   6616         ID3D11RasterizerState **ppRasterizerState) = 0;
   6617 
   6618     virtual void STDMETHODCALLTYPE RSGetViewports(
   6619         UINT *pNumViewports,
   6620         D3D11_VIEWPORT *pViewports) = 0;
   6621 
   6622     virtual void STDMETHODCALLTYPE RSGetScissorRects(
   6623         UINT *pNumRects,
   6624         D3D11_RECT *pRects) = 0;
   6625 
   6626     virtual void STDMETHODCALLTYPE HSGetShaderResources(
   6627         UINT StartSlot,
   6628         UINT NumViews,
   6629         ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
   6630 
   6631     virtual void STDMETHODCALLTYPE HSGetShader(
   6632         ID3D11HullShader **ppHullShader,
   6633         ID3D11ClassInstance **ppClassInstances,
   6634         UINT *pNumClassInstances) = 0;
   6635 
   6636     virtual void STDMETHODCALLTYPE HSGetSamplers(
   6637         UINT StartSlot,
   6638         UINT NumSamplers,
   6639         ID3D11SamplerState **ppSamplers) = 0;
   6640 
   6641     virtual void STDMETHODCALLTYPE HSGetConstantBuffers(
   6642         UINT StartSlot,
   6643         UINT NumBuffers,
   6644         ID3D11Buffer **ppConstantBuffers) = 0;
   6645 
   6646     virtual void STDMETHODCALLTYPE DSGetShaderResources(
   6647         UINT StartSlot,
   6648         UINT NumViews,
   6649         ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
   6650 
   6651     virtual void STDMETHODCALLTYPE DSGetShader(
   6652         ID3D11DomainShader **ppDomainShader,
   6653         ID3D11ClassInstance **ppClassInstances,
   6654         UINT *pNumClassInstances) = 0;
   6655 
   6656     virtual void STDMETHODCALLTYPE DSGetSamplers(
   6657         UINT StartSlot,
   6658         UINT NumSamplers,
   6659         ID3D11SamplerState **ppSamplers) = 0;
   6660 
   6661     virtual void STDMETHODCALLTYPE DSGetConstantBuffers(
   6662         UINT StartSlot,
   6663         UINT NumBuffers,
   6664         ID3D11Buffer **ppConstantBuffers) = 0;
   6665 
   6666     virtual void STDMETHODCALLTYPE CSGetShaderResources(
   6667         UINT StartSlot,
   6668         UINT NumViews,
   6669         ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
   6670 
   6671     virtual void STDMETHODCALLTYPE CSGetUnorderedAccessViews(
   6672         UINT StartSlot,
   6673         UINT NumUAVs,
   6674         ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
   6675 
   6676     virtual void STDMETHODCALLTYPE CSGetShader(
   6677         ID3D11ComputeShader **ppComputeShader,
   6678         ID3D11ClassInstance **ppClassInstances,
   6679         UINT *pNumClassInstances) = 0;
   6680 
   6681     virtual void STDMETHODCALLTYPE CSGetSamplers(
   6682         UINT StartSlot,
   6683         UINT NumSamplers,
   6684         ID3D11SamplerState **ppSamplers) = 0;
   6685 
   6686     virtual void STDMETHODCALLTYPE CSGetConstantBuffers(
   6687         UINT StartSlot,
   6688         UINT NumBuffers,
   6689         ID3D11Buffer **ppConstantBuffers) = 0;
   6690 
   6691     virtual void STDMETHODCALLTYPE ClearState(
   6692         ) = 0;
   6693 
   6694     virtual void STDMETHODCALLTYPE Flush(
   6695         ) = 0;
   6696 
   6697     virtual D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType(
   6698         ) = 0;
   6699 
   6700     virtual UINT STDMETHODCALLTYPE GetContextFlags(
   6701         ) = 0;
   6702 
   6703     virtual HRESULT STDMETHODCALLTYPE FinishCommandList(
   6704         WINBOOL RestoreDeferredContextState,
   6705         ID3D11CommandList **ppCommandList) = 0;
   6706 
   6707 };
   6708 #ifdef __CRT_UUID_DECL
   6709 __CRT_UUID_DECL(ID3D11DeviceContext, 0xc0bfa96c, 0xe089, 0x44fb, 0x8e,0xaf, 0x26,0xf8,0x79,0x61,0x90,0xda)
   6710 #endif
   6711 #else
   6712 typedef struct ID3D11DeviceContextVtbl {
   6713     BEGIN_INTERFACE
   6714 
   6715     /*** IUnknown methods ***/
   6716     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6717         ID3D11DeviceContext *This,
   6718         REFIID riid,
   6719         void **ppvObject);
   6720 
   6721     ULONG (STDMETHODCALLTYPE *AddRef)(
   6722         ID3D11DeviceContext *This);
   6723 
   6724     ULONG (STDMETHODCALLTYPE *Release)(
   6725         ID3D11DeviceContext *This);
   6726 
   6727     /*** ID3D11DeviceChild methods ***/
   6728     void (STDMETHODCALLTYPE *GetDevice)(
   6729         ID3D11DeviceContext *This,
   6730         ID3D11Device **ppDevice);
   6731 
   6732     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   6733         ID3D11DeviceContext *This,
   6734         REFGUID guid,
   6735         UINT *pDataSize,
   6736         void *pData);
   6737 
   6738     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   6739         ID3D11DeviceContext *This,
   6740         REFGUID guid,
   6741         UINT DataSize,
   6742         const void *pData);
   6743 
   6744     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   6745         ID3D11DeviceContext *This,
   6746         REFGUID guid,
   6747         const IUnknown *pData);
   6748 
   6749     /*** ID3D11DeviceContext methods ***/
   6750     void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
   6751         ID3D11DeviceContext *This,
   6752         UINT StartSlot,
   6753         UINT NumBuffers,
   6754         ID3D11Buffer *const *ppConstantBuffers);
   6755 
   6756     void (STDMETHODCALLTYPE *PSSetShaderResources)(
   6757         ID3D11DeviceContext *This,
   6758         UINT StartSlot,
   6759         UINT NumViews,
   6760         ID3D11ShaderResourceView *const *ppShaderResourceViews);
   6761 
   6762     void (STDMETHODCALLTYPE *PSSetShader)(
   6763         ID3D11DeviceContext *This,
   6764         ID3D11PixelShader *pPixelShader,
   6765         ID3D11ClassInstance *const *ppClassInstances,
   6766         UINT NumClassInstances);
   6767 
   6768     void (STDMETHODCALLTYPE *PSSetSamplers)(
   6769         ID3D11DeviceContext *This,
   6770         UINT StartSlot,
   6771         UINT NumSamplers,
   6772         ID3D11SamplerState *const *ppSamplers);
   6773 
   6774     void (STDMETHODCALLTYPE *VSSetShader)(
   6775         ID3D11DeviceContext *This,
   6776         ID3D11VertexShader *pVertexShader,
   6777         ID3D11ClassInstance *const *ppClassInstances,
   6778         UINT NumClassInstances);
   6779 
   6780     void (STDMETHODCALLTYPE *DrawIndexed)(
   6781         ID3D11DeviceContext *This,
   6782         UINT IndexCount,
   6783         UINT StartIndexLocation,
   6784         INT BaseVertexLocation);
   6785 
   6786     void (STDMETHODCALLTYPE *Draw)(
   6787         ID3D11DeviceContext *This,
   6788         UINT VertexCount,
   6789         UINT StartVertexLocation);
   6790 
   6791     HRESULT (STDMETHODCALLTYPE *Map)(
   6792         ID3D11DeviceContext *This,
   6793         ID3D11Resource *pResource,
   6794         UINT Subresource,
   6795         D3D11_MAP MapType,
   6796         UINT MapFlags,
   6797         D3D11_MAPPED_SUBRESOURCE *pMappedResource);
   6798 
   6799     void (STDMETHODCALLTYPE *Unmap)(
   6800         ID3D11DeviceContext *This,
   6801         ID3D11Resource *pResource,
   6802         UINT Subresource);
   6803 
   6804     void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
   6805         ID3D11DeviceContext *This,
   6806         UINT StartSlot,
   6807         UINT NumBuffers,
   6808         ID3D11Buffer *const *ppConstantBuffers);
   6809 
   6810     void (STDMETHODCALLTYPE *IASetInputLayout)(
   6811         ID3D11DeviceContext *This,
   6812         ID3D11InputLayout *pInputLayout);
   6813 
   6814     void (STDMETHODCALLTYPE *IASetVertexBuffers)(
   6815         ID3D11DeviceContext *This,
   6816         UINT StartSlot,
   6817         UINT NumBuffers,
   6818         ID3D11Buffer *const *ppVertexBuffers,
   6819         const UINT *pStrides,
   6820         const UINT *pOffsets);
   6821 
   6822     void (STDMETHODCALLTYPE *IASetIndexBuffer)(
   6823         ID3D11DeviceContext *This,
   6824         ID3D11Buffer *pIndexBuffer,
   6825         DXGI_FORMAT Format,
   6826         UINT Offset);
   6827 
   6828     void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
   6829         ID3D11DeviceContext *This,
   6830         UINT IndexCountPerInstance,
   6831         UINT InstanceCount,
   6832         UINT StartIndexLocation,
   6833         INT BaseVertexLocation,
   6834         UINT StartInstanceLocation);
   6835 
   6836     void (STDMETHODCALLTYPE *DrawInstanced)(
   6837         ID3D11DeviceContext *This,
   6838         UINT VertexCountPerInstance,
   6839         UINT InstanceCount,
   6840         UINT StartVertexLocation,
   6841         UINT StartInstanceLocation);
   6842 
   6843     void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
   6844         ID3D11DeviceContext *This,
   6845         UINT StartSlot,
   6846         UINT NumBuffers,
   6847         ID3D11Buffer *const *ppConstantBuffers);
   6848 
   6849     void (STDMETHODCALLTYPE *GSSetShader)(
   6850         ID3D11DeviceContext *This,
   6851         ID3D11GeometryShader *pShader,
   6852         ID3D11ClassInstance *const *ppClassInstances,
   6853         UINT NumClassInstances);
   6854 
   6855     void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
   6856         ID3D11DeviceContext *This,
   6857         D3D11_PRIMITIVE_TOPOLOGY Topology);
   6858 
   6859     void (STDMETHODCALLTYPE *VSSetShaderResources)(
   6860         ID3D11DeviceContext *This,
   6861         UINT StartSlot,
   6862         UINT NumViews,
   6863         ID3D11ShaderResourceView *const *ppShaderResourceViews);
   6864 
   6865     void (STDMETHODCALLTYPE *VSSetSamplers)(
   6866         ID3D11DeviceContext *This,
   6867         UINT StartSlot,
   6868         UINT NumSamplers,
   6869         ID3D11SamplerState *const *ppSamplers);
   6870 
   6871     void (STDMETHODCALLTYPE *Begin)(
   6872         ID3D11DeviceContext *This,
   6873         ID3D11Asynchronous *pAsync);
   6874 
   6875     void (STDMETHODCALLTYPE *End)(
   6876         ID3D11DeviceContext *This,
   6877         ID3D11Asynchronous *pAsync);
   6878 
   6879     HRESULT (STDMETHODCALLTYPE *GetData)(
   6880         ID3D11DeviceContext *This,
   6881         ID3D11Asynchronous *pAsync,
   6882         void *pData,
   6883         UINT DataSize,
   6884         UINT GetDataFlags);
   6885 
   6886     void (STDMETHODCALLTYPE *SetPredication)(
   6887         ID3D11DeviceContext *This,
   6888         ID3D11Predicate *pPredicate,
   6889         WINBOOL PredicateValue);
   6890 
   6891     void (STDMETHODCALLTYPE *GSSetShaderResources)(
   6892         ID3D11DeviceContext *This,
   6893         UINT StartSlot,
   6894         UINT NumViews,
   6895         ID3D11ShaderResourceView *const *ppShaderResourceViews);
   6896 
   6897     void (STDMETHODCALLTYPE *GSSetSamplers)(
   6898         ID3D11DeviceContext *This,
   6899         UINT StartSlot,
   6900         UINT NumSamplers,
   6901         ID3D11SamplerState *const *ppSamplers);
   6902 
   6903     void (STDMETHODCALLTYPE *OMSetRenderTargets)(
   6904         ID3D11DeviceContext *This,
   6905         UINT NumViews,
   6906         ID3D11RenderTargetView *const *ppRenderTargetViews,
   6907         ID3D11DepthStencilView *pDepthStencilView);
   6908 
   6909     void (STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews)(
   6910         ID3D11DeviceContext *This,
   6911         UINT NumRTVs,
   6912         ID3D11RenderTargetView *const *ppRenderTargetViews,
   6913         ID3D11DepthStencilView *pDepthStencilView,
   6914         UINT UAVStartSlot,
   6915         UINT NumUAVs,
   6916         ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
   6917         const UINT *pUAVInitialCounts);
   6918 
   6919     void (STDMETHODCALLTYPE *OMSetBlendState)(
   6920         ID3D11DeviceContext *This,
   6921         ID3D11BlendState *pBlendState,
   6922         const FLOAT BlendFactor[4],
   6923         UINT SampleMask);
   6924 
   6925     void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
   6926         ID3D11DeviceContext *This,
   6927         ID3D11DepthStencilState *pDepthStencilState,
   6928         UINT StencilRef);
   6929 
   6930     void (STDMETHODCALLTYPE *SOSetTargets)(
   6931         ID3D11DeviceContext *This,
   6932         UINT NumBuffers,
   6933         ID3D11Buffer *const *ppSOTargets,
   6934         const UINT *pOffsets);
   6935 
   6936     void (STDMETHODCALLTYPE *DrawAuto)(
   6937         ID3D11DeviceContext *This);
   6938 
   6939     void (STDMETHODCALLTYPE *DrawIndexedInstancedIndirect)(
   6940         ID3D11DeviceContext *This,
   6941         ID3D11Buffer *pBufferForArgs,
   6942         UINT AlignedByteOffsetForArgs);
   6943 
   6944     void (STDMETHODCALLTYPE *DrawInstancedIndirect)(
   6945         ID3D11DeviceContext *This,
   6946         ID3D11Buffer *pBufferForArgs,
   6947         UINT AlignedByteOffsetForArgs);
   6948 
   6949     void (STDMETHODCALLTYPE *Dispatch)(
   6950         ID3D11DeviceContext *This,
   6951         UINT ThreadGroupCountX,
   6952         UINT ThreadGroupCountY,
   6953         UINT ThreadGroupCountZ);
   6954 
   6955     void (STDMETHODCALLTYPE *DispatchIndirect)(
   6956         ID3D11DeviceContext *This,
   6957         ID3D11Buffer *pBufferForArgs,
   6958         UINT AlignedByteOffsetForArgs);
   6959 
   6960     void (STDMETHODCALLTYPE *RSSetState)(
   6961         ID3D11DeviceContext *This,
   6962         ID3D11RasterizerState *pRasterizerState);
   6963 
   6964     void (STDMETHODCALLTYPE *RSSetViewports)(
   6965         ID3D11DeviceContext *This,
   6966         UINT NumViewports,
   6967         const D3D11_VIEWPORT *pViewports);
   6968 
   6969     void (STDMETHODCALLTYPE *RSSetScissorRects)(
   6970         ID3D11DeviceContext *This,
   6971         UINT NumRects,
   6972         const D3D11_RECT *pRects);
   6973 
   6974     void (STDMETHODCALLTYPE *CopySubresourceRegion)(
   6975         ID3D11DeviceContext *This,
   6976         ID3D11Resource *pDstResource,
   6977         UINT DstSubresource,
   6978         UINT DstX,
   6979         UINT DstY,
   6980         UINT DstZ,
   6981         ID3D11Resource *pSrcResource,
   6982         UINT SrcSubresource,
   6983         const D3D11_BOX *pSrcBox);
   6984 
   6985     void (STDMETHODCALLTYPE *CopyResource)(
   6986         ID3D11DeviceContext *This,
   6987         ID3D11Resource *pDstResource,
   6988         ID3D11Resource *pSrcResource);
   6989 
   6990     void (STDMETHODCALLTYPE *UpdateSubresource)(
   6991         ID3D11DeviceContext *This,
   6992         ID3D11Resource *pDstResource,
   6993         UINT DstSubresource,
   6994         const D3D11_BOX *pDstBox,
   6995         const void *pSrcData,
   6996         UINT SrcRowPitch,
   6997         UINT SrcDepthPitch);
   6998 
   6999     void (STDMETHODCALLTYPE *CopyStructureCount)(
   7000         ID3D11DeviceContext *This,
   7001         ID3D11Buffer *pDstBuffer,
   7002         UINT DstAlignedByteOffset,
   7003         ID3D11UnorderedAccessView *pSrcView);
   7004 
   7005     void (STDMETHODCALLTYPE *ClearRenderTargetView)(
   7006         ID3D11DeviceContext *This,
   7007         ID3D11RenderTargetView *pRenderTargetView,
   7008         const FLOAT ColorRGBA[4]);
   7009 
   7010     void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
   7011         ID3D11DeviceContext *This,
   7012         ID3D11UnorderedAccessView *pUnorderedAccessView,
   7013         const UINT Values[4]);
   7014 
   7015     void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
   7016         ID3D11DeviceContext *This,
   7017         ID3D11UnorderedAccessView *pUnorderedAccessView,
   7018         const FLOAT Values[4]);
   7019 
   7020     void (STDMETHODCALLTYPE *ClearDepthStencilView)(
   7021         ID3D11DeviceContext *This,
   7022         ID3D11DepthStencilView *pDepthStencilView,
   7023         UINT ClearFlags,
   7024         FLOAT Depth,
   7025         UINT8 Stencil);
   7026 
   7027     void (STDMETHODCALLTYPE *GenerateMips)(
   7028         ID3D11DeviceContext *This,
   7029         ID3D11ShaderResourceView *pShaderResourceView);
   7030 
   7031     void (STDMETHODCALLTYPE *SetResourceMinLOD)(
   7032         ID3D11DeviceContext *This,
   7033         ID3D11Resource *pResource,
   7034         FLOAT MinLOD);
   7035 
   7036     FLOAT (STDMETHODCALLTYPE *GetResourceMinLOD)(
   7037         ID3D11DeviceContext *This,
   7038         ID3D11Resource *pResource);
   7039 
   7040     void (STDMETHODCALLTYPE *ResolveSubresource)(
   7041         ID3D11DeviceContext *This,
   7042         ID3D11Resource *pDstResource,
   7043         UINT DstSubresource,
   7044         ID3D11Resource *pSrcResource,
   7045         UINT SrcSubresource,
   7046         DXGI_FORMAT Format);
   7047 
   7048     void (STDMETHODCALLTYPE *ExecuteCommandList)(
   7049         ID3D11DeviceContext *This,
   7050         ID3D11CommandList *pCommandList,
   7051         WINBOOL RestoreContextState);
   7052 
   7053     void (STDMETHODCALLTYPE *HSSetShaderResources)(
   7054         ID3D11DeviceContext *This,
   7055         UINT StartSlot,
   7056         UINT NumViews,
   7057         ID3D11ShaderResourceView *const *ppShaderResourceViews);
   7058 
   7059     void (STDMETHODCALLTYPE *HSSetShader)(
   7060         ID3D11DeviceContext *This,
   7061         ID3D11HullShader *pHullShader,
   7062         ID3D11ClassInstance *const *ppClassInstances,
   7063         UINT NumClassInstances);
   7064 
   7065     void (STDMETHODCALLTYPE *HSSetSamplers)(
   7066         ID3D11DeviceContext *This,
   7067         UINT StartSlot,
   7068         UINT NumSamplers,
   7069         ID3D11SamplerState *const *ppSamplers);
   7070 
   7071     void (STDMETHODCALLTYPE *HSSetConstantBuffers)(
   7072         ID3D11DeviceContext *This,
   7073         UINT StartSlot,
   7074         UINT NumBuffers,
   7075         ID3D11Buffer *const *ppConstantBuffers);
   7076 
   7077     void (STDMETHODCALLTYPE *DSSetShaderResources)(
   7078         ID3D11DeviceContext *This,
   7079         UINT StartSlot,
   7080         UINT NumViews,
   7081         ID3D11ShaderResourceView *const *ppShaderResourceViews);
   7082 
   7083     void (STDMETHODCALLTYPE *DSSetShader)(
   7084         ID3D11DeviceContext *This,
   7085         ID3D11DomainShader *pDomainShader,
   7086         ID3D11ClassInstance *const *ppClassInstances,
   7087         UINT NumClassInstances);
   7088 
   7089     void (STDMETHODCALLTYPE *DSSetSamplers)(
   7090         ID3D11DeviceContext *This,
   7091         UINT StartSlot,
   7092         UINT NumSamplers,
   7093         ID3D11SamplerState *const *ppSamplers);
   7094 
   7095     void (STDMETHODCALLTYPE *DSSetConstantBuffers)(
   7096         ID3D11DeviceContext *This,
   7097         UINT StartSlot,
   7098         UINT NumBuffers,
   7099         ID3D11Buffer *const *ppConstantBuffers);
   7100 
   7101     void (STDMETHODCALLTYPE *CSSetShaderResources)(
   7102         ID3D11DeviceContext *This,
   7103         UINT StartSlot,
   7104         UINT NumViews,
   7105         ID3D11ShaderResourceView *const *ppShaderResourceViews);
   7106 
   7107     void (STDMETHODCALLTYPE *CSSetUnorderedAccessViews)(
   7108         ID3D11DeviceContext *This,
   7109         UINT StartSlot,
   7110         UINT NumUAVs,
   7111         ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
   7112         const UINT *pUAVInitialCounts);
   7113 
   7114     void (STDMETHODCALLTYPE *CSSetShader)(
   7115         ID3D11DeviceContext *This,
   7116         ID3D11ComputeShader *pComputeShader,
   7117         ID3D11ClassInstance *const *ppClassInstances,
   7118         UINT NumClassInstances);
   7119 
   7120     void (STDMETHODCALLTYPE *CSSetSamplers)(
   7121         ID3D11DeviceContext *This,
   7122         UINT StartSlot,
   7123         UINT NumSamplers,
   7124         ID3D11SamplerState *const *ppSamplers);
   7125 
   7126     void (STDMETHODCALLTYPE *CSSetConstantBuffers)(
   7127         ID3D11DeviceContext *This,
   7128         UINT StartSlot,
   7129         UINT NumBuffers,
   7130         ID3D11Buffer *const *ppConstantBuffers);
   7131 
   7132     void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
   7133         ID3D11DeviceContext *This,
   7134         UINT StartSlot,
   7135         UINT NumBuffers,
   7136         ID3D11Buffer **ppConstantBuffers);
   7137 
   7138     void (STDMETHODCALLTYPE *PSGetShaderResources)(
   7139         ID3D11DeviceContext *This,
   7140         UINT StartSlot,
   7141         UINT NumViews,
   7142         ID3D11ShaderResourceView **ppShaderResourceViews);
   7143 
   7144     void (STDMETHODCALLTYPE *PSGetShader)(
   7145         ID3D11DeviceContext *This,
   7146         ID3D11PixelShader **ppPixelShader,
   7147         ID3D11ClassInstance **ppClassInstances,
   7148         UINT *pNumClassInstances);
   7149 
   7150     void (STDMETHODCALLTYPE *PSGetSamplers)(
   7151         ID3D11DeviceContext *This,
   7152         UINT StartSlot,
   7153         UINT NumSamplers,
   7154         ID3D11SamplerState **ppSamplers);
   7155 
   7156     void (STDMETHODCALLTYPE *VSGetShader)(
   7157         ID3D11DeviceContext *This,
   7158         ID3D11VertexShader **ppVertexShader,
   7159         ID3D11ClassInstance **ppClassInstances,
   7160         UINT *pNumClassInstances);
   7161 
   7162     void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
   7163         ID3D11DeviceContext *This,
   7164         UINT StartSlot,
   7165         UINT NumBuffers,
   7166         ID3D11Buffer **ppConstantBuffers);
   7167 
   7168     void (STDMETHODCALLTYPE *IAGetInputLayout)(
   7169         ID3D11DeviceContext *This,
   7170         ID3D11InputLayout **ppInputLayout);
   7171 
   7172     void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
   7173         ID3D11DeviceContext *This,
   7174         UINT StartSlot,
   7175         UINT NumBuffers,
   7176         ID3D11Buffer **ppVertexBuffers,
   7177         UINT *pStrides,
   7178         UINT *pOffsets);
   7179 
   7180     void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
   7181         ID3D11DeviceContext *This,
   7182         ID3D11Buffer **pIndexBuffer,
   7183         DXGI_FORMAT *Format,
   7184         UINT *Offset);
   7185 
   7186     void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
   7187         ID3D11DeviceContext *This,
   7188         UINT StartSlot,
   7189         UINT NumBuffers,
   7190         ID3D11Buffer **ppConstantBuffers);
   7191 
   7192     void (STDMETHODCALLTYPE *GSGetShader)(
   7193         ID3D11DeviceContext *This,
   7194         ID3D11GeometryShader **ppGeometryShader,
   7195         ID3D11ClassInstance **ppClassInstances,
   7196         UINT *pNumClassInstances);
   7197 
   7198     void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
   7199         ID3D11DeviceContext *This,
   7200         D3D11_PRIMITIVE_TOPOLOGY *pTopology);
   7201 
   7202     void (STDMETHODCALLTYPE *VSGetShaderResources)(
   7203         ID3D11DeviceContext *This,
   7204         UINT StartSlot,
   7205         UINT NumViews,
   7206         ID3D11ShaderResourceView **ppShaderResourceViews);
   7207 
   7208     void (STDMETHODCALLTYPE *VSGetSamplers)(
   7209         ID3D11DeviceContext *This,
   7210         UINT StartSlot,
   7211         UINT NumSamplers,
   7212         ID3D11SamplerState **ppSamplers);
   7213 
   7214     void (STDMETHODCALLTYPE *GetPredication)(
   7215         ID3D11DeviceContext *This,
   7216         ID3D11Predicate **ppPredicate,
   7217         WINBOOL *pPredicateValue);
   7218 
   7219     void (STDMETHODCALLTYPE *GSGetShaderResources)(
   7220         ID3D11DeviceContext *This,
   7221         UINT StartSlot,
   7222         UINT NumViews,
   7223         ID3D11ShaderResourceView **ppShaderResourceViews);
   7224 
   7225     void (STDMETHODCALLTYPE *GSGetSamplers)(
   7226         ID3D11DeviceContext *This,
   7227         UINT StartSlot,
   7228         UINT NumSamplers,
   7229         ID3D11SamplerState **ppSamplers);
   7230 
   7231     void (STDMETHODCALLTYPE *OMGetRenderTargets)(
   7232         ID3D11DeviceContext *This,
   7233         UINT NumViews,
   7234         ID3D11RenderTargetView **ppRenderTargetViews,
   7235         ID3D11DepthStencilView **ppDepthStencilView);
   7236 
   7237     void (STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews)(
   7238         ID3D11DeviceContext *This,
   7239         UINT NumRTVs,
   7240         ID3D11RenderTargetView **ppRenderTargetViews,
   7241         ID3D11DepthStencilView **ppDepthStencilView,
   7242         UINT UAVStartSlot,
   7243         UINT NumUAVs,
   7244         ID3D11UnorderedAccessView **ppUnorderedAccessViews);
   7245 
   7246     void (STDMETHODCALLTYPE *OMGetBlendState)(
   7247         ID3D11DeviceContext *This,
   7248         ID3D11BlendState **ppBlendState,
   7249         FLOAT BlendFactor[4],
   7250         UINT *pSampleMask);
   7251 
   7252     void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
   7253         ID3D11DeviceContext *This,
   7254         ID3D11DepthStencilState **ppDepthStencilState,
   7255         UINT *pStencilRef);
   7256 
   7257     void (STDMETHODCALLTYPE *SOGetTargets)(
   7258         ID3D11DeviceContext *This,
   7259         UINT NumBuffers,
   7260         ID3D11Buffer **ppSOTargets);
   7261 
   7262     void (STDMETHODCALLTYPE *RSGetState)(
   7263         ID3D11DeviceContext *This,
   7264         ID3D11RasterizerState **ppRasterizerState);
   7265 
   7266     void (STDMETHODCALLTYPE *RSGetViewports)(
   7267         ID3D11DeviceContext *This,
   7268         UINT *pNumViewports,
   7269         D3D11_VIEWPORT *pViewports);
   7270 
   7271     void (STDMETHODCALLTYPE *RSGetScissorRects)(
   7272         ID3D11DeviceContext *This,
   7273         UINT *pNumRects,
   7274         D3D11_RECT *pRects);
   7275 
   7276     void (STDMETHODCALLTYPE *HSGetShaderResources)(
   7277         ID3D11DeviceContext *This,
   7278         UINT StartSlot,
   7279         UINT NumViews,
   7280         ID3D11ShaderResourceView **ppShaderResourceViews);
   7281 
   7282     void (STDMETHODCALLTYPE *HSGetShader)(
   7283         ID3D11DeviceContext *This,
   7284         ID3D11HullShader **ppHullShader,
   7285         ID3D11ClassInstance **ppClassInstances,
   7286         UINT *pNumClassInstances);
   7287 
   7288     void (STDMETHODCALLTYPE *HSGetSamplers)(
   7289         ID3D11DeviceContext *This,
   7290         UINT StartSlot,
   7291         UINT NumSamplers,
   7292         ID3D11SamplerState **ppSamplers);
   7293 
   7294     void (STDMETHODCALLTYPE *HSGetConstantBuffers)(
   7295         ID3D11DeviceContext *This,
   7296         UINT StartSlot,
   7297         UINT NumBuffers,
   7298         ID3D11Buffer **ppConstantBuffers);
   7299 
   7300     void (STDMETHODCALLTYPE *DSGetShaderResources)(
   7301         ID3D11DeviceContext *This,
   7302         UINT StartSlot,
   7303         UINT NumViews,
   7304         ID3D11ShaderResourceView **ppShaderResourceViews);
   7305 
   7306     void (STDMETHODCALLTYPE *DSGetShader)(
   7307         ID3D11DeviceContext *This,
   7308         ID3D11DomainShader **ppDomainShader,
   7309         ID3D11ClassInstance **ppClassInstances,
   7310         UINT *pNumClassInstances);
   7311 
   7312     void (STDMETHODCALLTYPE *DSGetSamplers)(
   7313         ID3D11DeviceContext *This,
   7314         UINT StartSlot,
   7315         UINT NumSamplers,
   7316         ID3D11SamplerState **ppSamplers);
   7317 
   7318     void (STDMETHODCALLTYPE *DSGetConstantBuffers)(
   7319         ID3D11DeviceContext *This,
   7320         UINT StartSlot,
   7321         UINT NumBuffers,
   7322         ID3D11Buffer **ppConstantBuffers);
   7323 
   7324     void (STDMETHODCALLTYPE *CSGetShaderResources)(
   7325         ID3D11DeviceContext *This,
   7326         UINT StartSlot,
   7327         UINT NumViews,
   7328         ID3D11ShaderResourceView **ppShaderResourceViews);
   7329 
   7330     void (STDMETHODCALLTYPE *CSGetUnorderedAccessViews)(
   7331         ID3D11DeviceContext *This,
   7332         UINT StartSlot,
   7333         UINT NumUAVs,
   7334         ID3D11UnorderedAccessView **ppUnorderedAccessViews);
   7335 
   7336     void (STDMETHODCALLTYPE *CSGetShader)(
   7337         ID3D11DeviceContext *This,
   7338         ID3D11ComputeShader **ppComputeShader,
   7339         ID3D11ClassInstance **ppClassInstances,
   7340         UINT *pNumClassInstances);
   7341 
   7342     void (STDMETHODCALLTYPE *CSGetSamplers)(
   7343         ID3D11DeviceContext *This,
   7344         UINT StartSlot,
   7345         UINT NumSamplers,
   7346         ID3D11SamplerState **ppSamplers);
   7347 
   7348     void (STDMETHODCALLTYPE *CSGetConstantBuffers)(
   7349         ID3D11DeviceContext *This,
   7350         UINT StartSlot,
   7351         UINT NumBuffers,
   7352         ID3D11Buffer **ppConstantBuffers);
   7353 
   7354     void (STDMETHODCALLTYPE *ClearState)(
   7355         ID3D11DeviceContext *This);
   7356 
   7357     void (STDMETHODCALLTYPE *Flush)(
   7358         ID3D11DeviceContext *This);
   7359 
   7360     D3D11_DEVICE_CONTEXT_TYPE (STDMETHODCALLTYPE *GetType)(
   7361         ID3D11DeviceContext *This);
   7362 
   7363     UINT (STDMETHODCALLTYPE *GetContextFlags)(
   7364         ID3D11DeviceContext *This);
   7365 
   7366     HRESULT (STDMETHODCALLTYPE *FinishCommandList)(
   7367         ID3D11DeviceContext *This,
   7368         WINBOOL RestoreDeferredContextState,
   7369         ID3D11CommandList **ppCommandList);
   7370 
   7371     END_INTERFACE
   7372 } ID3D11DeviceContextVtbl;
   7373 
   7374 interface ID3D11DeviceContext {
   7375     CONST_VTBL ID3D11DeviceContextVtbl* lpVtbl;
   7376 };
   7377 
   7378 #ifdef COBJMACROS
   7379 #ifndef WIDL_C_INLINE_WRAPPERS
   7380 /*** IUnknown methods ***/
   7381 #define ID3D11DeviceContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7382 #define ID3D11DeviceContext_AddRef(This) (This)->lpVtbl->AddRef(This)
   7383 #define ID3D11DeviceContext_Release(This) (This)->lpVtbl->Release(This)
   7384 /*** ID3D11DeviceChild methods ***/
   7385 #define ID3D11DeviceContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   7386 #define ID3D11DeviceContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   7387 #define ID3D11DeviceContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   7388 #define ID3D11DeviceContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   7389 /*** ID3D11DeviceContext methods ***/
   7390 #define ID3D11DeviceContext_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7391 #define ID3D11DeviceContext_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7392 #define ID3D11DeviceContext_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)
   7393 #define ID3D11DeviceContext_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7394 #define ID3D11DeviceContext_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)
   7395 #define ID3D11DeviceContext_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
   7396 #define ID3D11DeviceContext_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
   7397 #define ID3D11DeviceContext_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) (This)->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)
   7398 #define ID3D11DeviceContext_Unmap(This,pResource,Subresource) (This)->lpVtbl->Unmap(This,pResource,Subresource)
   7399 #define ID3D11DeviceContext_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7400 #define ID3D11DeviceContext_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
   7401 #define ID3D11DeviceContext_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
   7402 #define ID3D11DeviceContext_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
   7403 #define ID3D11DeviceContext_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
   7404 #define ID3D11DeviceContext_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
   7405 #define ID3D11DeviceContext_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7406 #define ID3D11DeviceContext_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances)
   7407 #define ID3D11DeviceContext_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
   7408 #define ID3D11DeviceContext_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7409 #define ID3D11DeviceContext_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7410 #define ID3D11DeviceContext_Begin(This,pAsync) (This)->lpVtbl->Begin(This,pAsync)
   7411 #define ID3D11DeviceContext_End(This,pAsync) (This)->lpVtbl->End(This,pAsync)
   7412 #define ID3D11DeviceContext_GetData(This,pAsync,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags)
   7413 #define ID3D11DeviceContext_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
   7414 #define ID3D11DeviceContext_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7415 #define ID3D11DeviceContext_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7416 #define ID3D11DeviceContext_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
   7417 #define ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
   7418 #define ID3D11DeviceContext_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
   7419 #define ID3D11DeviceContext_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
   7420 #define ID3D11DeviceContext_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
   7421 #define ID3D11DeviceContext_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
   7422 #define ID3D11DeviceContext_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
   7423 #define ID3D11DeviceContext_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
   7424 #define ID3D11DeviceContext_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) (This)->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)
   7425 #define ID3D11DeviceContext_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
   7426 #define ID3D11DeviceContext_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
   7427 #define ID3D11DeviceContext_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
   7428 #define ID3D11DeviceContext_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
   7429 #define ID3D11DeviceContext_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
   7430 #define ID3D11DeviceContext_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
   7431 #define ID3D11DeviceContext_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
   7432 #define ID3D11DeviceContext_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) (This)->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)
   7433 #define ID3D11DeviceContext_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
   7434 #define ID3D11DeviceContext_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)
   7435 #define ID3D11DeviceContext_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)
   7436 #define ID3D11DeviceContext_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
   7437 #define ID3D11DeviceContext_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
   7438 #define ID3D11DeviceContext_SetResourceMinLOD(This,pResource,MinLOD) (This)->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD)
   7439 #define ID3D11DeviceContext_GetResourceMinLOD(This,pResource) (This)->lpVtbl->GetResourceMinLOD(This,pResource)
   7440 #define ID3D11DeviceContext_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
   7441 #define ID3D11DeviceContext_ExecuteCommandList(This,pCommandList,RestoreContextState) (This)->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState)
   7442 #define ID3D11DeviceContext_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7443 #define ID3D11DeviceContext_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)
   7444 #define ID3D11DeviceContext_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7445 #define ID3D11DeviceContext_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7446 #define ID3D11DeviceContext_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7447 #define ID3D11DeviceContext_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)
   7448 #define ID3D11DeviceContext_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7449 #define ID3D11DeviceContext_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7450 #define ID3D11DeviceContext_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7451 #define ID3D11DeviceContext_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
   7452 #define ID3D11DeviceContext_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)
   7453 #define ID3D11DeviceContext_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7454 #define ID3D11DeviceContext_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7455 #define ID3D11DeviceContext_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7456 #define ID3D11DeviceContext_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7457 #define ID3D11DeviceContext_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)
   7458 #define ID3D11DeviceContext_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7459 #define ID3D11DeviceContext_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)
   7460 #define ID3D11DeviceContext_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7461 #define ID3D11DeviceContext_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
   7462 #define ID3D11DeviceContext_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
   7463 #define ID3D11DeviceContext_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
   7464 #define ID3D11DeviceContext_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7465 #define ID3D11DeviceContext_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)
   7466 #define ID3D11DeviceContext_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
   7467 #define ID3D11DeviceContext_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7468 #define ID3D11DeviceContext_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7469 #define ID3D11DeviceContext_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
   7470 #define ID3D11DeviceContext_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7471 #define ID3D11DeviceContext_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7472 #define ID3D11DeviceContext_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
   7473 #define ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)
   7474 #define ID3D11DeviceContext_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
   7475 #define ID3D11DeviceContext_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
   7476 #define ID3D11DeviceContext_SOGetTargets(This,NumBuffers,ppSOTargets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets)
   7477 #define ID3D11DeviceContext_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
   7478 #define ID3D11DeviceContext_RSGetViewports(This,pNumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,pNumViewports,pViewports)
   7479 #define ID3D11DeviceContext_RSGetScissorRects(This,pNumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,pNumRects,pRects)
   7480 #define ID3D11DeviceContext_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7481 #define ID3D11DeviceContext_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)
   7482 #define ID3D11DeviceContext_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7483 #define ID3D11DeviceContext_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7484 #define ID3D11DeviceContext_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7485 #define ID3D11DeviceContext_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)
   7486 #define ID3D11DeviceContext_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7487 #define ID3D11DeviceContext_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7488 #define ID3D11DeviceContext_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
   7489 #define ID3D11DeviceContext_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)
   7490 #define ID3D11DeviceContext_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)
   7491 #define ID3D11DeviceContext_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
   7492 #define ID3D11DeviceContext_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
   7493 #define ID3D11DeviceContext_ClearState(This) (This)->lpVtbl->ClearState(This)
   7494 #define ID3D11DeviceContext_Flush(This) (This)->lpVtbl->Flush(This)
   7495 #define ID3D11DeviceContext_GetType(This) (This)->lpVtbl->GetType(This)
   7496 #define ID3D11DeviceContext_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
   7497 #define ID3D11DeviceContext_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) (This)->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList)
   7498 #else
   7499 /*** IUnknown methods ***/
   7500 static inline HRESULT ID3D11DeviceContext_QueryInterface(ID3D11DeviceContext* This,REFIID riid,void **ppvObject) {
   7501     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7502 }
   7503 static inline ULONG ID3D11DeviceContext_AddRef(ID3D11DeviceContext* This) {
   7504     return This->lpVtbl->AddRef(This);
   7505 }
   7506 static inline ULONG ID3D11DeviceContext_Release(ID3D11DeviceContext* This) {
   7507     return This->lpVtbl->Release(This);
   7508 }
   7509 /*** ID3D11DeviceChild methods ***/
   7510 static inline void ID3D11DeviceContext_GetDevice(ID3D11DeviceContext* This,ID3D11Device **ppDevice) {
   7511     This->lpVtbl->GetDevice(This,ppDevice);
   7512 }
   7513 static inline HRESULT ID3D11DeviceContext_GetPrivateData(ID3D11DeviceContext* This,REFGUID guid,UINT *pDataSize,void *pData) {
   7514     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   7515 }
   7516 static inline HRESULT ID3D11DeviceContext_SetPrivateData(ID3D11DeviceContext* This,REFGUID guid,UINT DataSize,const void *pData) {
   7517     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   7518 }
   7519 static inline HRESULT ID3D11DeviceContext_SetPrivateDataInterface(ID3D11DeviceContext* This,REFGUID guid,const IUnknown *pData) {
   7520     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   7521 }
   7522 /*** ID3D11DeviceContext methods ***/
   7523 static inline void ID3D11DeviceContext_VSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
   7524     This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7525 }
   7526 static inline void ID3D11DeviceContext_PSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
   7527     This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7528 }
   7529 static inline void ID3D11DeviceContext_PSSetShader(ID3D11DeviceContext* This,ID3D11PixelShader *pPixelShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
   7530     This->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances);
   7531 }
   7532 static inline void ID3D11DeviceContext_PSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
   7533     This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7534 }
   7535 static inline void ID3D11DeviceContext_VSSetShader(ID3D11DeviceContext* This,ID3D11VertexShader *pVertexShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
   7536     This->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances);
   7537 }
   7538 static inline void ID3D11DeviceContext_DrawIndexed(ID3D11DeviceContext* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
   7539     This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
   7540 }
   7541 static inline void ID3D11DeviceContext_Draw(ID3D11DeviceContext* This,UINT VertexCount,UINT StartVertexLocation) {
   7542     This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
   7543 }
   7544 static inline HRESULT ID3D11DeviceContext_Map(ID3D11DeviceContext* This,ID3D11Resource *pResource,UINT Subresource,D3D11_MAP MapType,UINT MapFlags,D3D11_MAPPED_SUBRESOURCE *pMappedResource) {
   7545     return This->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource);
   7546 }
   7547 static inline void ID3D11DeviceContext_Unmap(ID3D11DeviceContext* This,ID3D11Resource *pResource,UINT Subresource) {
   7548     This->lpVtbl->Unmap(This,pResource,Subresource);
   7549 }
   7550 static inline void ID3D11DeviceContext_PSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
   7551     This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7552 }
   7553 static inline void ID3D11DeviceContext_IASetInputLayout(ID3D11DeviceContext* This,ID3D11InputLayout *pInputLayout) {
   7554     This->lpVtbl->IASetInputLayout(This,pInputLayout);
   7555 }
   7556 static inline void ID3D11DeviceContext_IASetVertexBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
   7557     This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
   7558 }
   7559 static inline void ID3D11DeviceContext_IASetIndexBuffer(ID3D11DeviceContext* This,ID3D11Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
   7560     This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
   7561 }
   7562 static inline void ID3D11DeviceContext_DrawIndexedInstanced(ID3D11DeviceContext* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
   7563     This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
   7564 }
   7565 static inline void ID3D11DeviceContext_DrawInstanced(ID3D11DeviceContext* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
   7566     This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
   7567 }
   7568 static inline void ID3D11DeviceContext_GSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
   7569     This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7570 }
   7571 static inline void ID3D11DeviceContext_GSSetShader(ID3D11DeviceContext* This,ID3D11GeometryShader *pShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
   7572     This->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances);
   7573 }
   7574 static inline void ID3D11DeviceContext_IASetPrimitiveTopology(ID3D11DeviceContext* This,D3D11_PRIMITIVE_TOPOLOGY Topology) {
   7575     This->lpVtbl->IASetPrimitiveTopology(This,Topology);
   7576 }
   7577 static inline void ID3D11DeviceContext_VSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
   7578     This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7579 }
   7580 static inline void ID3D11DeviceContext_VSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
   7581     This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7582 }
   7583 static inline void ID3D11DeviceContext_Begin(ID3D11DeviceContext* This,ID3D11Asynchronous *pAsync) {
   7584     This->lpVtbl->Begin(This,pAsync);
   7585 }
   7586 static inline void ID3D11DeviceContext_End(ID3D11DeviceContext* This,ID3D11Asynchronous *pAsync) {
   7587     This->lpVtbl->End(This,pAsync);
   7588 }
   7589 static inline HRESULT ID3D11DeviceContext_GetData(ID3D11DeviceContext* This,ID3D11Asynchronous *pAsync,void *pData,UINT DataSize,UINT GetDataFlags) {
   7590     return This->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags);
   7591 }
   7592 static inline void ID3D11DeviceContext_SetPredication(ID3D11DeviceContext* This,ID3D11Predicate *pPredicate,WINBOOL PredicateValue) {
   7593     This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
   7594 }
   7595 static inline void ID3D11DeviceContext_GSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
   7596     This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7597 }
   7598 static inline void ID3D11DeviceContext_GSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
   7599     This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7600 }
   7601 static inline void ID3D11DeviceContext_OMSetRenderTargets(ID3D11DeviceContext* This,UINT NumViews,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView) {
   7602     This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
   7603 }
   7604 static inline void ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext* This,UINT NumRTVs,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
   7605     This->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
   7606 }
   7607 static inline void ID3D11DeviceContext_OMSetBlendState(ID3D11DeviceContext* This,ID3D11BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
   7608     This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
   7609 }
   7610 static inline void ID3D11DeviceContext_OMSetDepthStencilState(ID3D11DeviceContext* This,ID3D11DepthStencilState *pDepthStencilState,UINT StencilRef) {
   7611     This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
   7612 }
   7613 static inline void ID3D11DeviceContext_SOSetTargets(ID3D11DeviceContext* This,UINT NumBuffers,ID3D11Buffer *const *ppSOTargets,const UINT *pOffsets) {
   7614     This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
   7615 }
   7616 static inline void ID3D11DeviceContext_DrawAuto(ID3D11DeviceContext* This) {
   7617     This->lpVtbl->DrawAuto(This);
   7618 }
   7619 static inline void ID3D11DeviceContext_DrawIndexedInstancedIndirect(ID3D11DeviceContext* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
   7620     This->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
   7621 }
   7622 static inline void ID3D11DeviceContext_DrawInstancedIndirect(ID3D11DeviceContext* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
   7623     This->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
   7624 }
   7625 static inline void ID3D11DeviceContext_Dispatch(ID3D11DeviceContext* This,UINT ThreadGroupCountX,UINT ThreadGroupCountY,UINT ThreadGroupCountZ) {
   7626     This->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ);
   7627 }
   7628 static inline void ID3D11DeviceContext_DispatchIndirect(ID3D11DeviceContext* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
   7629     This->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
   7630 }
   7631 static inline void ID3D11DeviceContext_RSSetState(ID3D11DeviceContext* This,ID3D11RasterizerState *pRasterizerState) {
   7632     This->lpVtbl->RSSetState(This,pRasterizerState);
   7633 }
   7634 static inline void ID3D11DeviceContext_RSSetViewports(ID3D11DeviceContext* This,UINT NumViewports,const D3D11_VIEWPORT *pViewports) {
   7635     This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
   7636 }
   7637 static inline void ID3D11DeviceContext_RSSetScissorRects(ID3D11DeviceContext* This,UINT NumRects,const D3D11_RECT *pRects) {
   7638     This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
   7639 }
   7640 static inline void ID3D11DeviceContext_CopySubresourceRegion(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox) {
   7641     This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
   7642 }
   7643 static inline void ID3D11DeviceContext_CopyResource(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,ID3D11Resource *pSrcResource) {
   7644     This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
   7645 }
   7646 static inline void ID3D11DeviceContext_UpdateSubresource(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
   7647     This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
   7648 }
   7649 static inline void ID3D11DeviceContext_CopyStructureCount(ID3D11DeviceContext* This,ID3D11Buffer *pDstBuffer,UINT DstAlignedByteOffset,ID3D11UnorderedAccessView *pSrcView) {
   7650     This->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView);
   7651 }
   7652 static inline void ID3D11DeviceContext_ClearRenderTargetView(ID3D11DeviceContext* This,ID3D11RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
   7653     This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
   7654 }
   7655 static inline void ID3D11DeviceContext_ClearUnorderedAccessViewUint(ID3D11DeviceContext* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const UINT Values[4]) {
   7656     This->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values);
   7657 }
   7658 static inline void ID3D11DeviceContext_ClearUnorderedAccessViewFloat(ID3D11DeviceContext* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const FLOAT Values[4]) {
   7659     This->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values);
   7660 }
   7661 static inline void ID3D11DeviceContext_ClearDepthStencilView(ID3D11DeviceContext* This,ID3D11DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
   7662     This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
   7663 }
   7664 static inline void ID3D11DeviceContext_GenerateMips(ID3D11DeviceContext* This,ID3D11ShaderResourceView *pShaderResourceView) {
   7665     This->lpVtbl->GenerateMips(This,pShaderResourceView);
   7666 }
   7667 static inline void ID3D11DeviceContext_SetResourceMinLOD(ID3D11DeviceContext* This,ID3D11Resource *pResource,FLOAT MinLOD) {
   7668     This->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD);
   7669 }
   7670 static inline FLOAT ID3D11DeviceContext_GetResourceMinLOD(ID3D11DeviceContext* This,ID3D11Resource *pResource) {
   7671     return This->lpVtbl->GetResourceMinLOD(This,pResource);
   7672 }
   7673 static inline void ID3D11DeviceContext_ResolveSubresource(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,UINT DstSubresource,ID3D11Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
   7674     This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
   7675 }
   7676 static inline void ID3D11DeviceContext_ExecuteCommandList(ID3D11DeviceContext* This,ID3D11CommandList *pCommandList,WINBOOL RestoreContextState) {
   7677     This->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState);
   7678 }
   7679 static inline void ID3D11DeviceContext_HSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
   7680     This->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7681 }
   7682 static inline void ID3D11DeviceContext_HSSetShader(ID3D11DeviceContext* This,ID3D11HullShader *pHullShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
   7683     This->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances);
   7684 }
   7685 static inline void ID3D11DeviceContext_HSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
   7686     This->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7687 }
   7688 static inline void ID3D11DeviceContext_HSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
   7689     This->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7690 }
   7691 static inline void ID3D11DeviceContext_DSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
   7692     This->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7693 }
   7694 static inline void ID3D11DeviceContext_DSSetShader(ID3D11DeviceContext* This,ID3D11DomainShader *pDomainShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
   7695     This->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances);
   7696 }
   7697 static inline void ID3D11DeviceContext_DSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
   7698     This->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7699 }
   7700 static inline void ID3D11DeviceContext_DSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
   7701     This->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7702 }
   7703 static inline void ID3D11DeviceContext_CSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
   7704     This->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7705 }
   7706 static inline void ID3D11DeviceContext_CSSetUnorderedAccessViews(ID3D11DeviceContext* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
   7707     This->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
   7708 }
   7709 static inline void ID3D11DeviceContext_CSSetShader(ID3D11DeviceContext* This,ID3D11ComputeShader *pComputeShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
   7710     This->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances);
   7711 }
   7712 static inline void ID3D11DeviceContext_CSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
   7713     This->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7714 }
   7715 static inline void ID3D11DeviceContext_CSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
   7716     This->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7717 }
   7718 static inline void ID3D11DeviceContext_VSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
   7719     This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7720 }
   7721 static inline void ID3D11DeviceContext_PSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
   7722     This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7723 }
   7724 static inline void ID3D11DeviceContext_PSGetShader(ID3D11DeviceContext* This,ID3D11PixelShader **ppPixelShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
   7725     This->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances);
   7726 }
   7727 static inline void ID3D11DeviceContext_PSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
   7728     This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7729 }
   7730 static inline void ID3D11DeviceContext_VSGetShader(ID3D11DeviceContext* This,ID3D11VertexShader **ppVertexShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
   7731     This->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances);
   7732 }
   7733 static inline void ID3D11DeviceContext_PSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
   7734     This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7735 }
   7736 static inline void ID3D11DeviceContext_IAGetInputLayout(ID3D11DeviceContext* This,ID3D11InputLayout **ppInputLayout) {
   7737     This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
   7738 }
   7739 static inline void ID3D11DeviceContext_IAGetVertexBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
   7740     This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
   7741 }
   7742 static inline void ID3D11DeviceContext_IAGetIndexBuffer(ID3D11DeviceContext* This,ID3D11Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
   7743     This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
   7744 }
   7745 static inline void ID3D11DeviceContext_GSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
   7746     This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7747 }
   7748 static inline void ID3D11DeviceContext_GSGetShader(ID3D11DeviceContext* This,ID3D11GeometryShader **ppGeometryShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
   7749     This->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances);
   7750 }
   7751 static inline void ID3D11DeviceContext_IAGetPrimitiveTopology(ID3D11DeviceContext* This,D3D11_PRIMITIVE_TOPOLOGY *pTopology) {
   7752     This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
   7753 }
   7754 static inline void ID3D11DeviceContext_VSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
   7755     This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7756 }
   7757 static inline void ID3D11DeviceContext_VSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
   7758     This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7759 }
   7760 static inline void ID3D11DeviceContext_GetPredication(ID3D11DeviceContext* This,ID3D11Predicate **ppPredicate,WINBOOL *pPredicateValue) {
   7761     This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
   7762 }
   7763 static inline void ID3D11DeviceContext_GSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
   7764     This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7765 }
   7766 static inline void ID3D11DeviceContext_GSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
   7767     This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7768 }
   7769 static inline void ID3D11DeviceContext_OMGetRenderTargets(ID3D11DeviceContext* This,UINT NumViews,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView) {
   7770     This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
   7771 }
   7772 static inline void ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext* This,UINT NumRTVs,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
   7773     This->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews);
   7774 }
   7775 static inline void ID3D11DeviceContext_OMGetBlendState(ID3D11DeviceContext* This,ID3D11BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
   7776     This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
   7777 }
   7778 static inline void ID3D11DeviceContext_OMGetDepthStencilState(ID3D11DeviceContext* This,ID3D11DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
   7779     This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
   7780 }
   7781 static inline void ID3D11DeviceContext_SOGetTargets(ID3D11DeviceContext* This,UINT NumBuffers,ID3D11Buffer **ppSOTargets) {
   7782     This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets);
   7783 }
   7784 static inline void ID3D11DeviceContext_RSGetState(ID3D11DeviceContext* This,ID3D11RasterizerState **ppRasterizerState) {
   7785     This->lpVtbl->RSGetState(This,ppRasterizerState);
   7786 }
   7787 static inline void ID3D11DeviceContext_RSGetViewports(ID3D11DeviceContext* This,UINT *pNumViewports,D3D11_VIEWPORT *pViewports) {
   7788     This->lpVtbl->RSGetViewports(This,pNumViewports,pViewports);
   7789 }
   7790 static inline void ID3D11DeviceContext_RSGetScissorRects(ID3D11DeviceContext* This,UINT *pNumRects,D3D11_RECT *pRects) {
   7791     This->lpVtbl->RSGetScissorRects(This,pNumRects,pRects);
   7792 }
   7793 static inline void ID3D11DeviceContext_HSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
   7794     This->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7795 }
   7796 static inline void ID3D11DeviceContext_HSGetShader(ID3D11DeviceContext* This,ID3D11HullShader **ppHullShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
   7797     This->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances);
   7798 }
   7799 static inline void ID3D11DeviceContext_HSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
   7800     This->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7801 }
   7802 static inline void ID3D11DeviceContext_HSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
   7803     This->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7804 }
   7805 static inline void ID3D11DeviceContext_DSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
   7806     This->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7807 }
   7808 static inline void ID3D11DeviceContext_DSGetShader(ID3D11DeviceContext* This,ID3D11DomainShader **ppDomainShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
   7809     This->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances);
   7810 }
   7811 static inline void ID3D11DeviceContext_DSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
   7812     This->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7813 }
   7814 static inline void ID3D11DeviceContext_DSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
   7815     This->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7816 }
   7817 static inline void ID3D11DeviceContext_CSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
   7818     This->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
   7819 }
   7820 static inline void ID3D11DeviceContext_CSGetUnorderedAccessViews(ID3D11DeviceContext* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
   7821     This->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews);
   7822 }
   7823 static inline void ID3D11DeviceContext_CSGetShader(ID3D11DeviceContext* This,ID3D11ComputeShader **ppComputeShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
   7824     This->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances);
   7825 }
   7826 static inline void ID3D11DeviceContext_CSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
   7827     This->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
   7828 }
   7829 static inline void ID3D11DeviceContext_CSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
   7830     This->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
   7831 }
   7832 static inline void ID3D11DeviceContext_ClearState(ID3D11DeviceContext* This) {
   7833     This->lpVtbl->ClearState(This);
   7834 }
   7835 static inline void ID3D11DeviceContext_Flush(ID3D11DeviceContext* This) {
   7836     This->lpVtbl->Flush(This);
   7837 }
   7838 static inline D3D11_DEVICE_CONTEXT_TYPE ID3D11DeviceContext_GetType(ID3D11DeviceContext* This) {
   7839     return This->lpVtbl->GetType(This);
   7840 }
   7841 static inline UINT ID3D11DeviceContext_GetContextFlags(ID3D11DeviceContext* This) {
   7842     return This->lpVtbl->GetContextFlags(This);
   7843 }
   7844 static inline HRESULT ID3D11DeviceContext_FinishCommandList(ID3D11DeviceContext* This,WINBOOL RestoreDeferredContextState,ID3D11CommandList **ppCommandList) {
   7845     return This->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList);
   7846 }
   7847 #endif
   7848 #endif
   7849 
   7850 #endif
   7851 
   7852 
   7853 #endif  /* __ID3D11DeviceContext_INTERFACE_DEFINED__ */
   7854 
   7855 /*****************************************************************************
   7856  * ID3D11AuthenticatedChannel interface
   7857  */
   7858 #ifndef __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__
   7859 #define __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__
   7860 
   7861 DEFINE_GUID(IID_ID3D11AuthenticatedChannel, 0x3015a308, 0xdcbd, 0x47aa, 0xa7,0x47, 0x19,0x24,0x86,0xd1,0x4d,0x4a);
   7862 #if defined(__cplusplus) && !defined(CINTERFACE)
   7863 MIDL_INTERFACE("3015a308-dcbd-47aa-a747-192486d14d4a")
   7864 ID3D11AuthenticatedChannel : public ID3D11DeviceChild
   7865 {
   7866     virtual HRESULT STDMETHODCALLTYPE GetCertificateSize(
   7867         UINT *pCertificateSize) = 0;
   7868 
   7869     virtual HRESULT STDMETHODCALLTYPE GetCertificate(
   7870         UINT CertificateSize,
   7871         BYTE *pCertificate) = 0;
   7872 
   7873     virtual void STDMETHODCALLTYPE GetChannelHandle(
   7874         HANDLE *pChannelHandle) = 0;
   7875 
   7876 };
   7877 #ifdef __CRT_UUID_DECL
   7878 __CRT_UUID_DECL(ID3D11AuthenticatedChannel, 0x3015a308, 0xdcbd, 0x47aa, 0xa7,0x47, 0x19,0x24,0x86,0xd1,0x4d,0x4a)
   7879 #endif
   7880 #else
   7881 typedef struct ID3D11AuthenticatedChannelVtbl {
   7882     BEGIN_INTERFACE
   7883 
   7884     /*** IUnknown methods ***/
   7885     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7886         ID3D11AuthenticatedChannel *This,
   7887         REFIID riid,
   7888         void **ppvObject);
   7889 
   7890     ULONG (STDMETHODCALLTYPE *AddRef)(
   7891         ID3D11AuthenticatedChannel *This);
   7892 
   7893     ULONG (STDMETHODCALLTYPE *Release)(
   7894         ID3D11AuthenticatedChannel *This);
   7895 
   7896     /*** ID3D11DeviceChild methods ***/
   7897     void (STDMETHODCALLTYPE *GetDevice)(
   7898         ID3D11AuthenticatedChannel *This,
   7899         ID3D11Device **ppDevice);
   7900 
   7901     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   7902         ID3D11AuthenticatedChannel *This,
   7903         REFGUID guid,
   7904         UINT *pDataSize,
   7905         void *pData);
   7906 
   7907     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   7908         ID3D11AuthenticatedChannel *This,
   7909         REFGUID guid,
   7910         UINT DataSize,
   7911         const void *pData);
   7912 
   7913     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   7914         ID3D11AuthenticatedChannel *This,
   7915         REFGUID guid,
   7916         const IUnknown *pData);
   7917 
   7918     /*** ID3D11AuthenticatedChannel methods ***/
   7919     HRESULT (STDMETHODCALLTYPE *GetCertificateSize)(
   7920         ID3D11AuthenticatedChannel *This,
   7921         UINT *pCertificateSize);
   7922 
   7923     HRESULT (STDMETHODCALLTYPE *GetCertificate)(
   7924         ID3D11AuthenticatedChannel *This,
   7925         UINT CertificateSize,
   7926         BYTE *pCertificate);
   7927 
   7928     void (STDMETHODCALLTYPE *GetChannelHandle)(
   7929         ID3D11AuthenticatedChannel *This,
   7930         HANDLE *pChannelHandle);
   7931 
   7932     END_INTERFACE
   7933 } ID3D11AuthenticatedChannelVtbl;
   7934 
   7935 interface ID3D11AuthenticatedChannel {
   7936     CONST_VTBL ID3D11AuthenticatedChannelVtbl* lpVtbl;
   7937 };
   7938 
   7939 #ifdef COBJMACROS
   7940 #ifndef WIDL_C_INLINE_WRAPPERS
   7941 /*** IUnknown methods ***/
   7942 #define ID3D11AuthenticatedChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7943 #define ID3D11AuthenticatedChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
   7944 #define ID3D11AuthenticatedChannel_Release(This) (This)->lpVtbl->Release(This)
   7945 /*** ID3D11DeviceChild methods ***/
   7946 #define ID3D11AuthenticatedChannel_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   7947 #define ID3D11AuthenticatedChannel_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   7948 #define ID3D11AuthenticatedChannel_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   7949 #define ID3D11AuthenticatedChannel_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   7950 /*** ID3D11AuthenticatedChannel methods ***/
   7951 #define ID3D11AuthenticatedChannel_GetCertificateSize(This,pCertificateSize) (This)->lpVtbl->GetCertificateSize(This,pCertificateSize)
   7952 #define ID3D11AuthenticatedChannel_GetCertificate(This,CertificateSize,pCertificate) (This)->lpVtbl->GetCertificate(This,CertificateSize,pCertificate)
   7953 #define ID3D11AuthenticatedChannel_GetChannelHandle(This,pChannelHandle) (This)->lpVtbl->GetChannelHandle(This,pChannelHandle)
   7954 #else
   7955 /*** IUnknown methods ***/
   7956 static inline HRESULT ID3D11AuthenticatedChannel_QueryInterface(ID3D11AuthenticatedChannel* This,REFIID riid,void **ppvObject) {
   7957     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7958 }
   7959 static inline ULONG ID3D11AuthenticatedChannel_AddRef(ID3D11AuthenticatedChannel* This) {
   7960     return This->lpVtbl->AddRef(This);
   7961 }
   7962 static inline ULONG ID3D11AuthenticatedChannel_Release(ID3D11AuthenticatedChannel* This) {
   7963     return This->lpVtbl->Release(This);
   7964 }
   7965 /*** ID3D11DeviceChild methods ***/
   7966 static inline void ID3D11AuthenticatedChannel_GetDevice(ID3D11AuthenticatedChannel* This,ID3D11Device **ppDevice) {
   7967     This->lpVtbl->GetDevice(This,ppDevice);
   7968 }
   7969 static inline HRESULT ID3D11AuthenticatedChannel_GetPrivateData(ID3D11AuthenticatedChannel* This,REFGUID guid,UINT *pDataSize,void *pData) {
   7970     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   7971 }
   7972 static inline HRESULT ID3D11AuthenticatedChannel_SetPrivateData(ID3D11AuthenticatedChannel* This,REFGUID guid,UINT DataSize,const void *pData) {
   7973     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   7974 }
   7975 static inline HRESULT ID3D11AuthenticatedChannel_SetPrivateDataInterface(ID3D11AuthenticatedChannel* This,REFGUID guid,const IUnknown *pData) {
   7976     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   7977 }
   7978 /*** ID3D11AuthenticatedChannel methods ***/
   7979 static inline HRESULT ID3D11AuthenticatedChannel_GetCertificateSize(ID3D11AuthenticatedChannel* This,UINT *pCertificateSize) {
   7980     return This->lpVtbl->GetCertificateSize(This,pCertificateSize);
   7981 }
   7982 static inline HRESULT ID3D11AuthenticatedChannel_GetCertificate(ID3D11AuthenticatedChannel* This,UINT CertificateSize,BYTE *pCertificate) {
   7983     return This->lpVtbl->GetCertificate(This,CertificateSize,pCertificate);
   7984 }
   7985 static inline void ID3D11AuthenticatedChannel_GetChannelHandle(ID3D11AuthenticatedChannel* This,HANDLE *pChannelHandle) {
   7986     This->lpVtbl->GetChannelHandle(This,pChannelHandle);
   7987 }
   7988 #endif
   7989 #endif
   7990 
   7991 #endif
   7992 
   7993 
   7994 #endif  /* __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__ */
   7995 
   7996 /*****************************************************************************
   7997  * ID3D11CryptoSession interface
   7998  */
   7999 #ifndef __ID3D11CryptoSession_INTERFACE_DEFINED__
   8000 #define __ID3D11CryptoSession_INTERFACE_DEFINED__
   8001 
   8002 DEFINE_GUID(IID_ID3D11CryptoSession, 0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3,0x9d, 0xd5,0xc8,0x65,0x84,0x57,0x20);
   8003 #if defined(__cplusplus) && !defined(CINTERFACE)
   8004 MIDL_INTERFACE("9b32f9ad-bdcc-40a6-a39d-d5c865845720")
   8005 ID3D11CryptoSession : public ID3D11DeviceChild
   8006 {
   8007     virtual void STDMETHODCALLTYPE GetCryptoType(
   8008         GUID *pCryptoType) = 0;
   8009 
   8010     virtual void STDMETHODCALLTYPE GetDecoderProfile(
   8011         GUID *pDecoderProfile) = 0;
   8012 
   8013     virtual HRESULT STDMETHODCALLTYPE GetCertificateSize(
   8014         UINT *pCertificateSize) = 0;
   8015 
   8016     virtual HRESULT STDMETHODCALLTYPE GetCertificate(
   8017         UINT CertificateSize,
   8018         BYTE *pCertificate) = 0;
   8019 
   8020     virtual void STDMETHODCALLTYPE GetCryptoSessionHandle(
   8021         HANDLE *pCryptoSessionHandle) = 0;
   8022 
   8023 };
   8024 #ifdef __CRT_UUID_DECL
   8025 __CRT_UUID_DECL(ID3D11CryptoSession, 0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3,0x9d, 0xd5,0xc8,0x65,0x84,0x57,0x20)
   8026 #endif
   8027 #else
   8028 typedef struct ID3D11CryptoSessionVtbl {
   8029     BEGIN_INTERFACE
   8030 
   8031     /*** IUnknown methods ***/
   8032     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8033         ID3D11CryptoSession *This,
   8034         REFIID riid,
   8035         void **ppvObject);
   8036 
   8037     ULONG (STDMETHODCALLTYPE *AddRef)(
   8038         ID3D11CryptoSession *This);
   8039 
   8040     ULONG (STDMETHODCALLTYPE *Release)(
   8041         ID3D11CryptoSession *This);
   8042 
   8043     /*** ID3D11DeviceChild methods ***/
   8044     void (STDMETHODCALLTYPE *GetDevice)(
   8045         ID3D11CryptoSession *This,
   8046         ID3D11Device **ppDevice);
   8047 
   8048     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8049         ID3D11CryptoSession *This,
   8050         REFGUID guid,
   8051         UINT *pDataSize,
   8052         void *pData);
   8053 
   8054     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8055         ID3D11CryptoSession *This,
   8056         REFGUID guid,
   8057         UINT DataSize,
   8058         const void *pData);
   8059 
   8060     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8061         ID3D11CryptoSession *This,
   8062         REFGUID guid,
   8063         const IUnknown *pData);
   8064 
   8065     /*** ID3D11CryptoSession methods ***/
   8066     void (STDMETHODCALLTYPE *GetCryptoType)(
   8067         ID3D11CryptoSession *This,
   8068         GUID *pCryptoType);
   8069 
   8070     void (STDMETHODCALLTYPE *GetDecoderProfile)(
   8071         ID3D11CryptoSession *This,
   8072         GUID *pDecoderProfile);
   8073 
   8074     HRESULT (STDMETHODCALLTYPE *GetCertificateSize)(
   8075         ID3D11CryptoSession *This,
   8076         UINT *pCertificateSize);
   8077 
   8078     HRESULT (STDMETHODCALLTYPE *GetCertificate)(
   8079         ID3D11CryptoSession *This,
   8080         UINT CertificateSize,
   8081         BYTE *pCertificate);
   8082 
   8083     void (STDMETHODCALLTYPE *GetCryptoSessionHandle)(
   8084         ID3D11CryptoSession *This,
   8085         HANDLE *pCryptoSessionHandle);
   8086 
   8087     END_INTERFACE
   8088 } ID3D11CryptoSessionVtbl;
   8089 
   8090 interface ID3D11CryptoSession {
   8091     CONST_VTBL ID3D11CryptoSessionVtbl* lpVtbl;
   8092 };
   8093 
   8094 #ifdef COBJMACROS
   8095 #ifndef WIDL_C_INLINE_WRAPPERS
   8096 /*** IUnknown methods ***/
   8097 #define ID3D11CryptoSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8098 #define ID3D11CryptoSession_AddRef(This) (This)->lpVtbl->AddRef(This)
   8099 #define ID3D11CryptoSession_Release(This) (This)->lpVtbl->Release(This)
   8100 /*** ID3D11DeviceChild methods ***/
   8101 #define ID3D11CryptoSession_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8102 #define ID3D11CryptoSession_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8103 #define ID3D11CryptoSession_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8104 #define ID3D11CryptoSession_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8105 /*** ID3D11CryptoSession methods ***/
   8106 #define ID3D11CryptoSession_GetCryptoType(This,pCryptoType) (This)->lpVtbl->GetCryptoType(This,pCryptoType)
   8107 #define ID3D11CryptoSession_GetDecoderProfile(This,pDecoderProfile) (This)->lpVtbl->GetDecoderProfile(This,pDecoderProfile)
   8108 #define ID3D11CryptoSession_GetCertificateSize(This,pCertificateSize) (This)->lpVtbl->GetCertificateSize(This,pCertificateSize)
   8109 #define ID3D11CryptoSession_GetCertificate(This,CertificateSize,pCertificate) (This)->lpVtbl->GetCertificate(This,CertificateSize,pCertificate)
   8110 #define ID3D11CryptoSession_GetCryptoSessionHandle(This,pCryptoSessionHandle) (This)->lpVtbl->GetCryptoSessionHandle(This,pCryptoSessionHandle)
   8111 #else
   8112 /*** IUnknown methods ***/
   8113 static inline HRESULT ID3D11CryptoSession_QueryInterface(ID3D11CryptoSession* This,REFIID riid,void **ppvObject) {
   8114     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8115 }
   8116 static inline ULONG ID3D11CryptoSession_AddRef(ID3D11CryptoSession* This) {
   8117     return This->lpVtbl->AddRef(This);
   8118 }
   8119 static inline ULONG ID3D11CryptoSession_Release(ID3D11CryptoSession* This) {
   8120     return This->lpVtbl->Release(This);
   8121 }
   8122 /*** ID3D11DeviceChild methods ***/
   8123 static inline void ID3D11CryptoSession_GetDevice(ID3D11CryptoSession* This,ID3D11Device **ppDevice) {
   8124     This->lpVtbl->GetDevice(This,ppDevice);
   8125 }
   8126 static inline HRESULT ID3D11CryptoSession_GetPrivateData(ID3D11CryptoSession* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8127     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8128 }
   8129 static inline HRESULT ID3D11CryptoSession_SetPrivateData(ID3D11CryptoSession* This,REFGUID guid,UINT DataSize,const void *pData) {
   8130     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8131 }
   8132 static inline HRESULT ID3D11CryptoSession_SetPrivateDataInterface(ID3D11CryptoSession* This,REFGUID guid,const IUnknown *pData) {
   8133     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8134 }
   8135 /*** ID3D11CryptoSession methods ***/
   8136 static inline void ID3D11CryptoSession_GetCryptoType(ID3D11CryptoSession* This,GUID *pCryptoType) {
   8137     This->lpVtbl->GetCryptoType(This,pCryptoType);
   8138 }
   8139 static inline void ID3D11CryptoSession_GetDecoderProfile(ID3D11CryptoSession* This,GUID *pDecoderProfile) {
   8140     This->lpVtbl->GetDecoderProfile(This,pDecoderProfile);
   8141 }
   8142 static inline HRESULT ID3D11CryptoSession_GetCertificateSize(ID3D11CryptoSession* This,UINT *pCertificateSize) {
   8143     return This->lpVtbl->GetCertificateSize(This,pCertificateSize);
   8144 }
   8145 static inline HRESULT ID3D11CryptoSession_GetCertificate(ID3D11CryptoSession* This,UINT CertificateSize,BYTE *pCertificate) {
   8146     return This->lpVtbl->GetCertificate(This,CertificateSize,pCertificate);
   8147 }
   8148 static inline void ID3D11CryptoSession_GetCryptoSessionHandle(ID3D11CryptoSession* This,HANDLE *pCryptoSessionHandle) {
   8149     This->lpVtbl->GetCryptoSessionHandle(This,pCryptoSessionHandle);
   8150 }
   8151 #endif
   8152 #endif
   8153 
   8154 #endif
   8155 
   8156 
   8157 #endif  /* __ID3D11CryptoSession_INTERFACE_DEFINED__ */
   8158 
   8159 /*****************************************************************************
   8160  * ID3D11VideoDecoder interface
   8161  */
   8162 #ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__
   8163 #define __ID3D11VideoDecoder_INTERFACE_DEFINED__
   8164 
   8165 DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c);
   8166 #if defined(__cplusplus) && !defined(CINTERFACE)
   8167 MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c")
   8168 ID3D11VideoDecoder : public ID3D11DeviceChild
   8169 {
   8170     virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
   8171         D3D11_VIDEO_DECODER_DESC *pVideoDesc,
   8172         D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0;
   8173 
   8174     virtual HRESULT STDMETHODCALLTYPE GetDriverHandle(
   8175         HANDLE *pDriverHandle) = 0;
   8176 
   8177 };
   8178 #ifdef __CRT_UUID_DECL
   8179 __CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c)
   8180 #endif
   8181 #else
   8182 typedef struct ID3D11VideoDecoderVtbl {
   8183     BEGIN_INTERFACE
   8184 
   8185     /*** IUnknown methods ***/
   8186     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8187         ID3D11VideoDecoder *This,
   8188         REFIID riid,
   8189         void **ppvObject);
   8190 
   8191     ULONG (STDMETHODCALLTYPE *AddRef)(
   8192         ID3D11VideoDecoder *This);
   8193 
   8194     ULONG (STDMETHODCALLTYPE *Release)(
   8195         ID3D11VideoDecoder *This);
   8196 
   8197     /*** ID3D11DeviceChild methods ***/
   8198     void (STDMETHODCALLTYPE *GetDevice)(
   8199         ID3D11VideoDecoder *This,
   8200         ID3D11Device **ppDevice);
   8201 
   8202     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8203         ID3D11VideoDecoder *This,
   8204         REFGUID guid,
   8205         UINT *pDataSize,
   8206         void *pData);
   8207 
   8208     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8209         ID3D11VideoDecoder *This,
   8210         REFGUID guid,
   8211         UINT DataSize,
   8212         const void *pData);
   8213 
   8214     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8215         ID3D11VideoDecoder *This,
   8216         REFGUID guid,
   8217         const IUnknown *pData);
   8218 
   8219     /*** ID3D11VideoDecoder methods ***/
   8220     HRESULT (STDMETHODCALLTYPE *GetCreationParameters)(
   8221         ID3D11VideoDecoder *This,
   8222         D3D11_VIDEO_DECODER_DESC *pVideoDesc,
   8223         D3D11_VIDEO_DECODER_CONFIG *pConfig);
   8224 
   8225     HRESULT (STDMETHODCALLTYPE *GetDriverHandle)(
   8226         ID3D11VideoDecoder *This,
   8227         HANDLE *pDriverHandle);
   8228 
   8229     END_INTERFACE
   8230 } ID3D11VideoDecoderVtbl;
   8231 
   8232 interface ID3D11VideoDecoder {
   8233     CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl;
   8234 };
   8235 
   8236 #ifdef COBJMACROS
   8237 #ifndef WIDL_C_INLINE_WRAPPERS
   8238 /*** IUnknown methods ***/
   8239 #define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8240 #define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
   8241 #define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This)
   8242 /*** ID3D11DeviceChild methods ***/
   8243 #define ID3D11VideoDecoder_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8244 #define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8245 #define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8246 #define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8247 /*** ID3D11VideoDecoder methods ***/
   8248 #define ID3D11VideoDecoder_GetCreationParameters(This,pVideoDesc,pConfig) (This)->lpVtbl->GetCreationParameters(This,pVideoDesc,pConfig)
   8249 #define ID3D11VideoDecoder_GetDriverHandle(This,pDriverHandle) (This)->lpVtbl->GetDriverHandle(This,pDriverHandle)
   8250 #else
   8251 /*** IUnknown methods ***/
   8252 static inline HRESULT ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void **ppvObject) {
   8253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8254 }
   8255 static inline ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) {
   8256     return This->lpVtbl->AddRef(This);
   8257 }
   8258 static inline ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* This) {
   8259     return This->lpVtbl->Release(This);
   8260 }
   8261 /*** ID3D11DeviceChild methods ***/
   8262 static inline void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* This,ID3D11Device **ppDevice) {
   8263     This->lpVtbl->GetDevice(This,ppDevice);
   8264 }
   8265 static inline HRESULT ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8266     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8267 }
   8268 static inline HRESULT ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT DataSize,const void *pData) {
   8269     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8270 }
   8271 static inline HRESULT ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID guid,const IUnknown *pData) {
   8272     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8273 }
   8274 /*** ID3D11VideoDecoder methods ***/
   8275 static inline HRESULT ID3D11VideoDecoder_GetCreationParameters(ID3D11VideoDecoder* This,D3D11_VIDEO_DECODER_DESC *pVideoDesc,D3D11_VIDEO_DECODER_CONFIG *pConfig) {
   8276     return This->lpVtbl->GetCreationParameters(This,pVideoDesc,pConfig);
   8277 }
   8278 static inline HRESULT ID3D11VideoDecoder_GetDriverHandle(ID3D11VideoDecoder* This,HANDLE *pDriverHandle) {
   8279     return This->lpVtbl->GetDriverHandle(This,pDriverHandle);
   8280 }
   8281 #endif
   8282 #endif
   8283 
   8284 #endif
   8285 
   8286 
   8287 #endif  /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */
   8288 
   8289 /*****************************************************************************
   8290  * ID3D11VideoProcessorEnumerator interface
   8291  */
   8292 #ifndef __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__
   8293 #define __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__
   8294 
   8295 DEFINE_GUID(IID_ID3D11VideoProcessorEnumerator, 0x31627037, 0x53ab, 0x4200, 0x90,0x61, 0x05,0xfa,0xa9,0xab,0x45,0xf9);
   8296 #if defined(__cplusplus) && !defined(CINTERFACE)
   8297 MIDL_INTERFACE("31627037-53ab-4200-9061-05faa9ab45f9")
   8298 ID3D11VideoProcessorEnumerator : public ID3D11DeviceChild
   8299 {
   8300     virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorContentDesc(
   8301         D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) = 0;
   8302 
   8303     virtual HRESULT STDMETHODCALLTYPE CheckVideoProcessorFormat(
   8304         DXGI_FORMAT Format,
   8305         UINT *pFlags) = 0;
   8306 
   8307     virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
   8308         D3D11_VIDEO_PROCESSOR_CAPS *pCaps) = 0;
   8309 
   8310     virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorRateConversionCaps(
   8311         UINT TypeIndex,
   8312         D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0;
   8313 
   8314     virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRate(
   8315         UINT TypeIndex,
   8316         UINT CustomRateIndex,
   8317         D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) = 0;
   8318 
   8319     virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
   8320         D3D11_VIDEO_PROCESSOR_FILTER Filter,
   8321         D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) = 0;
   8322 
   8323 };
   8324 #ifdef __CRT_UUID_DECL
   8325 __CRT_UUID_DECL(ID3D11VideoProcessorEnumerator, 0x31627037, 0x53ab, 0x4200, 0x90,0x61, 0x05,0xfa,0xa9,0xab,0x45,0xf9)
   8326 #endif
   8327 #else
   8328 typedef struct ID3D11VideoProcessorEnumeratorVtbl {
   8329     BEGIN_INTERFACE
   8330 
   8331     /*** IUnknown methods ***/
   8332     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8333         ID3D11VideoProcessorEnumerator *This,
   8334         REFIID riid,
   8335         void **ppvObject);
   8336 
   8337     ULONG (STDMETHODCALLTYPE *AddRef)(
   8338         ID3D11VideoProcessorEnumerator *This);
   8339 
   8340     ULONG (STDMETHODCALLTYPE *Release)(
   8341         ID3D11VideoProcessorEnumerator *This);
   8342 
   8343     /*** ID3D11DeviceChild methods ***/
   8344     void (STDMETHODCALLTYPE *GetDevice)(
   8345         ID3D11VideoProcessorEnumerator *This,
   8346         ID3D11Device **ppDevice);
   8347 
   8348     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8349         ID3D11VideoProcessorEnumerator *This,
   8350         REFGUID guid,
   8351         UINT *pDataSize,
   8352         void *pData);
   8353 
   8354     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8355         ID3D11VideoProcessorEnumerator *This,
   8356         REFGUID guid,
   8357         UINT DataSize,
   8358         const void *pData);
   8359 
   8360     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8361         ID3D11VideoProcessorEnumerator *This,
   8362         REFGUID guid,
   8363         const IUnknown *pData);
   8364 
   8365     /*** ID3D11VideoProcessorEnumerator methods ***/
   8366     HRESULT (STDMETHODCALLTYPE *GetVideoProcessorContentDesc)(
   8367         ID3D11VideoProcessorEnumerator *This,
   8368         D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
   8369 
   8370     HRESULT (STDMETHODCALLTYPE *CheckVideoProcessorFormat)(
   8371         ID3D11VideoProcessorEnumerator *This,
   8372         DXGI_FORMAT Format,
   8373         UINT *pFlags);
   8374 
   8375     HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
   8376         ID3D11VideoProcessorEnumerator *This,
   8377         D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
   8378 
   8379     HRESULT (STDMETHODCALLTYPE *GetVideoProcessorRateConversionCaps)(
   8380         ID3D11VideoProcessorEnumerator *This,
   8381         UINT TypeIndex,
   8382         D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
   8383 
   8384     HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRate)(
   8385         ID3D11VideoProcessorEnumerator *This,
   8386         UINT TypeIndex,
   8387         UINT CustomRateIndex,
   8388         D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
   8389 
   8390     HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
   8391         ID3D11VideoProcessorEnumerator *This,
   8392         D3D11_VIDEO_PROCESSOR_FILTER Filter,
   8393         D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
   8394 
   8395     END_INTERFACE
   8396 } ID3D11VideoProcessorEnumeratorVtbl;
   8397 
   8398 interface ID3D11VideoProcessorEnumerator {
   8399     CONST_VTBL ID3D11VideoProcessorEnumeratorVtbl* lpVtbl;
   8400 };
   8401 
   8402 #ifdef COBJMACROS
   8403 #ifndef WIDL_C_INLINE_WRAPPERS
   8404 /*** IUnknown methods ***/
   8405 #define ID3D11VideoProcessorEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8406 #define ID3D11VideoProcessorEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
   8407 #define ID3D11VideoProcessorEnumerator_Release(This) (This)->lpVtbl->Release(This)
   8408 /*** ID3D11DeviceChild methods ***/
   8409 #define ID3D11VideoProcessorEnumerator_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8410 #define ID3D11VideoProcessorEnumerator_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8411 #define ID3D11VideoProcessorEnumerator_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8412 #define ID3D11VideoProcessorEnumerator_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8413 /*** ID3D11VideoProcessorEnumerator methods ***/
   8414 #define ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc(This,pContentDesc) (This)->lpVtbl->GetVideoProcessorContentDesc(This,pContentDesc)
   8415 #define ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(This,Format,pFlags) (This)->lpVtbl->CheckVideoProcessorFormat(This,Format,pFlags)
   8416 #define ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,pCaps)
   8417 #define ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) (This)->lpVtbl->GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps)
   8418 #define ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) (This)->lpVtbl->GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate)
   8419 #define ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
   8420 #else
   8421 /*** IUnknown methods ***/
   8422 static inline HRESULT ID3D11VideoProcessorEnumerator_QueryInterface(ID3D11VideoProcessorEnumerator* This,REFIID riid,void **ppvObject) {
   8423     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8424 }
   8425 static inline ULONG ID3D11VideoProcessorEnumerator_AddRef(ID3D11VideoProcessorEnumerator* This) {
   8426     return This->lpVtbl->AddRef(This);
   8427 }
   8428 static inline ULONG ID3D11VideoProcessorEnumerator_Release(ID3D11VideoProcessorEnumerator* This) {
   8429     return This->lpVtbl->Release(This);
   8430 }
   8431 /*** ID3D11DeviceChild methods ***/
   8432 static inline void ID3D11VideoProcessorEnumerator_GetDevice(ID3D11VideoProcessorEnumerator* This,ID3D11Device **ppDevice) {
   8433     This->lpVtbl->GetDevice(This,ppDevice);
   8434 }
   8435 static inline HRESULT ID3D11VideoProcessorEnumerator_GetPrivateData(ID3D11VideoProcessorEnumerator* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8436     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8437 }
   8438 static inline HRESULT ID3D11VideoProcessorEnumerator_SetPrivateData(ID3D11VideoProcessorEnumerator* This,REFGUID guid,UINT DataSize,const void *pData) {
   8439     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8440 }
   8441 static inline HRESULT ID3D11VideoProcessorEnumerator_SetPrivateDataInterface(ID3D11VideoProcessorEnumerator* This,REFGUID guid,const IUnknown *pData) {
   8442     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8443 }
   8444 /*** ID3D11VideoProcessorEnumerator methods ***/
   8445 static inline HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc(ID3D11VideoProcessorEnumerator* This,D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) {
   8446     return This->lpVtbl->GetVideoProcessorContentDesc(This,pContentDesc);
   8447 }
   8448 static inline HRESULT ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(ID3D11VideoProcessorEnumerator* This,DXGI_FORMAT Format,UINT *pFlags) {
   8449     return This->lpVtbl->CheckVideoProcessorFormat(This,Format,pFlags);
   8450 }
   8451 static inline HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(ID3D11VideoProcessorEnumerator* This,D3D11_VIDEO_PROCESSOR_CAPS *pCaps) {
   8452     return This->lpVtbl->GetVideoProcessorCaps(This,pCaps);
   8453 }
   8454 static inline HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(ID3D11VideoProcessorEnumerator* This,UINT TypeIndex,D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) {
   8455     return This->lpVtbl->GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps);
   8456 }
   8457 static inline HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate(ID3D11VideoProcessorEnumerator* This,UINT TypeIndex,UINT CustomRateIndex,D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) {
   8458     return This->lpVtbl->GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate);
   8459 }
   8460 static inline HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(ID3D11VideoProcessorEnumerator* This,D3D11_VIDEO_PROCESSOR_FILTER Filter,D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) {
   8461     return This->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange);
   8462 }
   8463 #endif
   8464 #endif
   8465 
   8466 #endif
   8467 
   8468 
   8469 #endif  /* __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__ */
   8470 
   8471 /*****************************************************************************
   8472  * ID3D11VideoProcessor interface
   8473  */
   8474 #ifndef __ID3D11VideoProcessor_INTERFACE_DEFINED__
   8475 #define __ID3D11VideoProcessor_INTERFACE_DEFINED__
   8476 
   8477 DEFINE_GUID(IID_ID3D11VideoProcessor, 0x1d7b0652, 0x185f, 0x41c6, 0x85,0xce, 0x0c,0x5b,0xe3,0xd4,0xae,0x6c);
   8478 #if defined(__cplusplus) && !defined(CINTERFACE)
   8479 MIDL_INTERFACE("1d7b0652-185f-41c6-85ce-0c5be3d4ae6c")
   8480 ID3D11VideoProcessor : public ID3D11DeviceChild
   8481 {
   8482     virtual void STDMETHODCALLTYPE GetContentDesc(
   8483         D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc) = 0;
   8484 
   8485     virtual void STDMETHODCALLTYPE GetRateConversionCaps(
   8486         D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0;
   8487 
   8488 };
   8489 #ifdef __CRT_UUID_DECL
   8490 __CRT_UUID_DECL(ID3D11VideoProcessor, 0x1d7b0652, 0x185f, 0x41c6, 0x85,0xce, 0x0c,0x5b,0xe3,0xd4,0xae,0x6c)
   8491 #endif
   8492 #else
   8493 typedef struct ID3D11VideoProcessorVtbl {
   8494     BEGIN_INTERFACE
   8495 
   8496     /*** IUnknown methods ***/
   8497     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8498         ID3D11VideoProcessor *This,
   8499         REFIID riid,
   8500         void **ppvObject);
   8501 
   8502     ULONG (STDMETHODCALLTYPE *AddRef)(
   8503         ID3D11VideoProcessor *This);
   8504 
   8505     ULONG (STDMETHODCALLTYPE *Release)(
   8506         ID3D11VideoProcessor *This);
   8507 
   8508     /*** ID3D11DeviceChild methods ***/
   8509     void (STDMETHODCALLTYPE *GetDevice)(
   8510         ID3D11VideoProcessor *This,
   8511         ID3D11Device **ppDevice);
   8512 
   8513     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8514         ID3D11VideoProcessor *This,
   8515         REFGUID guid,
   8516         UINT *pDataSize,
   8517         void *pData);
   8518 
   8519     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8520         ID3D11VideoProcessor *This,
   8521         REFGUID guid,
   8522         UINT DataSize,
   8523         const void *pData);
   8524 
   8525     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8526         ID3D11VideoProcessor *This,
   8527         REFGUID guid,
   8528         const IUnknown *pData);
   8529 
   8530     /*** ID3D11VideoProcessor methods ***/
   8531     void (STDMETHODCALLTYPE *GetContentDesc)(
   8532         ID3D11VideoProcessor *This,
   8533         D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc);
   8534 
   8535     void (STDMETHODCALLTYPE *GetRateConversionCaps)(
   8536         ID3D11VideoProcessor *This,
   8537         D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
   8538 
   8539     END_INTERFACE
   8540 } ID3D11VideoProcessorVtbl;
   8541 
   8542 interface ID3D11VideoProcessor {
   8543     CONST_VTBL ID3D11VideoProcessorVtbl* lpVtbl;
   8544 };
   8545 
   8546 #ifdef COBJMACROS
   8547 #ifndef WIDL_C_INLINE_WRAPPERS
   8548 /*** IUnknown methods ***/
   8549 #define ID3D11VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8550 #define ID3D11VideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
   8551 #define ID3D11VideoProcessor_Release(This) (This)->lpVtbl->Release(This)
   8552 /*** ID3D11DeviceChild methods ***/
   8553 #define ID3D11VideoProcessor_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8554 #define ID3D11VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8555 #define ID3D11VideoProcessor_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8556 #define ID3D11VideoProcessor_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8557 /*** ID3D11VideoProcessor methods ***/
   8558 #define ID3D11VideoProcessor_GetContentDesc(This,pDesc) (This)->lpVtbl->GetContentDesc(This,pDesc)
   8559 #define ID3D11VideoProcessor_GetRateConversionCaps(This,pCaps) (This)->lpVtbl->GetRateConversionCaps(This,pCaps)
   8560 #else
   8561 /*** IUnknown methods ***/
   8562 static inline HRESULT ID3D11VideoProcessor_QueryInterface(ID3D11VideoProcessor* This,REFIID riid,void **ppvObject) {
   8563     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8564 }
   8565 static inline ULONG ID3D11VideoProcessor_AddRef(ID3D11VideoProcessor* This) {
   8566     return This->lpVtbl->AddRef(This);
   8567 }
   8568 static inline ULONG ID3D11VideoProcessor_Release(ID3D11VideoProcessor* This) {
   8569     return This->lpVtbl->Release(This);
   8570 }
   8571 /*** ID3D11DeviceChild methods ***/
   8572 static inline void ID3D11VideoProcessor_GetDevice(ID3D11VideoProcessor* This,ID3D11Device **ppDevice) {
   8573     This->lpVtbl->GetDevice(This,ppDevice);
   8574 }
   8575 static inline HRESULT ID3D11VideoProcessor_GetPrivateData(ID3D11VideoProcessor* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8576     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8577 }
   8578 static inline HRESULT ID3D11VideoProcessor_SetPrivateData(ID3D11VideoProcessor* This,REFGUID guid,UINT DataSize,const void *pData) {
   8579     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8580 }
   8581 static inline HRESULT ID3D11VideoProcessor_SetPrivateDataInterface(ID3D11VideoProcessor* This,REFGUID guid,const IUnknown *pData) {
   8582     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8583 }
   8584 /*** ID3D11VideoProcessor methods ***/
   8585 static inline void ID3D11VideoProcessor_GetContentDesc(ID3D11VideoProcessor* This,D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc) {
   8586     This->lpVtbl->GetContentDesc(This,pDesc);
   8587 }
   8588 static inline void ID3D11VideoProcessor_GetRateConversionCaps(ID3D11VideoProcessor* This,D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) {
   8589     This->lpVtbl->GetRateConversionCaps(This,pCaps);
   8590 }
   8591 #endif
   8592 #endif
   8593 
   8594 #endif
   8595 
   8596 
   8597 #endif  /* __ID3D11VideoProcessor_INTERFACE_DEFINED__ */
   8598 
   8599 /*****************************************************************************
   8600  * ID3D11VideoDecoderOutputView interface
   8601  */
   8602 #ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__
   8603 #define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__
   8604 
   8605 DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18);
   8606 #if defined(__cplusplus) && !defined(CINTERFACE)
   8607 MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18")
   8608 ID3D11VideoDecoderOutputView : public ID3D11View
   8609 {
   8610     virtual void STDMETHODCALLTYPE GetDesc(
   8611         D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0;
   8612 
   8613 };
   8614 #ifdef __CRT_UUID_DECL
   8615 __CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18)
   8616 #endif
   8617 #else
   8618 typedef struct ID3D11VideoDecoderOutputViewVtbl {
   8619     BEGIN_INTERFACE
   8620 
   8621     /*** IUnknown methods ***/
   8622     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8623         ID3D11VideoDecoderOutputView *This,
   8624         REFIID riid,
   8625         void **ppvObject);
   8626 
   8627     ULONG (STDMETHODCALLTYPE *AddRef)(
   8628         ID3D11VideoDecoderOutputView *This);
   8629 
   8630     ULONG (STDMETHODCALLTYPE *Release)(
   8631         ID3D11VideoDecoderOutputView *This);
   8632 
   8633     /*** ID3D11DeviceChild methods ***/
   8634     void (STDMETHODCALLTYPE *GetDevice)(
   8635         ID3D11VideoDecoderOutputView *This,
   8636         ID3D11Device **ppDevice);
   8637 
   8638     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8639         ID3D11VideoDecoderOutputView *This,
   8640         REFGUID guid,
   8641         UINT *pDataSize,
   8642         void *pData);
   8643 
   8644     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8645         ID3D11VideoDecoderOutputView *This,
   8646         REFGUID guid,
   8647         UINT DataSize,
   8648         const void *pData);
   8649 
   8650     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8651         ID3D11VideoDecoderOutputView *This,
   8652         REFGUID guid,
   8653         const IUnknown *pData);
   8654 
   8655     /*** ID3D11View methods ***/
   8656     void (STDMETHODCALLTYPE *GetResource)(
   8657         ID3D11VideoDecoderOutputView *This,
   8658         ID3D11Resource **ppResource);
   8659 
   8660     /*** ID3D11VideoDecoderOutputView methods ***/
   8661     void (STDMETHODCALLTYPE *GetDesc)(
   8662         ID3D11VideoDecoderOutputView *This,
   8663         D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc);
   8664 
   8665     END_INTERFACE
   8666 } ID3D11VideoDecoderOutputViewVtbl;
   8667 
   8668 interface ID3D11VideoDecoderOutputView {
   8669     CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl;
   8670 };
   8671 
   8672 #ifdef COBJMACROS
   8673 #ifndef WIDL_C_INLINE_WRAPPERS
   8674 /*** IUnknown methods ***/
   8675 #define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8676 #define ID3D11VideoDecoderOutputView_AddRef(This) (This)->lpVtbl->AddRef(This)
   8677 #define ID3D11VideoDecoderOutputView_Release(This) (This)->lpVtbl->Release(This)
   8678 /*** ID3D11DeviceChild methods ***/
   8679 #define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8680 #define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8681 #define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8682 #define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8683 /*** ID3D11View methods ***/
   8684 #define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   8685 /*** ID3D11VideoDecoderOutputView methods ***/
   8686 #define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   8687 #else
   8688 /*** IUnknown methods ***/
   8689 static inline HRESULT ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* This,REFIID riid,void **ppvObject) {
   8690     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8691 }
   8692 static inline ULONG ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) {
   8693     return This->lpVtbl->AddRef(This);
   8694 }
   8695 static inline ULONG ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) {
   8696     return This->lpVtbl->Release(This);
   8697 }
   8698 /*** ID3D11DeviceChild methods ***/
   8699 static inline void ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* This,ID3D11Device **ppDevice) {
   8700     This->lpVtbl->GetDevice(This,ppDevice);
   8701 }
   8702 static inline HRESULT ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8703     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8704 }
   8705 static inline HRESULT ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT DataSize,const void *pData) {
   8706     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8707 }
   8708 static inline HRESULT ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* This,REFGUID guid,const IUnknown *pData) {
   8709     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8710 }
   8711 /*** ID3D11View methods ***/
   8712 static inline void ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* This,ID3D11Resource **ppResource) {
   8713     This->lpVtbl->GetResource(This,ppResource);
   8714 }
   8715 /*** ID3D11VideoDecoderOutputView methods ***/
   8716 static inline void ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) {
   8717     This->lpVtbl->GetDesc(This,pDesc);
   8718 }
   8719 #endif
   8720 #endif
   8721 
   8722 #endif
   8723 
   8724 
   8725 #endif  /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */
   8726 
   8727 /*****************************************************************************
   8728  * ID3D11VideoProcessorInputView interface
   8729  */
   8730 #ifndef __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__
   8731 #define __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__
   8732 
   8733 DEFINE_GUID(IID_ID3D11VideoProcessorInputView, 0x11ec5a5f, 0x51dc, 0x4945, 0xab,0x34, 0x6e,0x8c,0x21,0x30,0x0e,0xa5);
   8734 #if defined(__cplusplus) && !defined(CINTERFACE)
   8735 MIDL_INTERFACE("11ec5a5f-51dc-4945-ab34-6e8c21300ea5")
   8736 ID3D11VideoProcessorInputView : public ID3D11View
   8737 {
   8738     virtual void STDMETHODCALLTYPE GetDesc(
   8739         D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc) = 0;
   8740 
   8741 };
   8742 #ifdef __CRT_UUID_DECL
   8743 __CRT_UUID_DECL(ID3D11VideoProcessorInputView, 0x11ec5a5f, 0x51dc, 0x4945, 0xab,0x34, 0x6e,0x8c,0x21,0x30,0x0e,0xa5)
   8744 #endif
   8745 #else
   8746 typedef struct ID3D11VideoProcessorInputViewVtbl {
   8747     BEGIN_INTERFACE
   8748 
   8749     /*** IUnknown methods ***/
   8750     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8751         ID3D11VideoProcessorInputView *This,
   8752         REFIID riid,
   8753         void **ppvObject);
   8754 
   8755     ULONG (STDMETHODCALLTYPE *AddRef)(
   8756         ID3D11VideoProcessorInputView *This);
   8757 
   8758     ULONG (STDMETHODCALLTYPE *Release)(
   8759         ID3D11VideoProcessorInputView *This);
   8760 
   8761     /*** ID3D11DeviceChild methods ***/
   8762     void (STDMETHODCALLTYPE *GetDevice)(
   8763         ID3D11VideoProcessorInputView *This,
   8764         ID3D11Device **ppDevice);
   8765 
   8766     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8767         ID3D11VideoProcessorInputView *This,
   8768         REFGUID guid,
   8769         UINT *pDataSize,
   8770         void *pData);
   8771 
   8772     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8773         ID3D11VideoProcessorInputView *This,
   8774         REFGUID guid,
   8775         UINT DataSize,
   8776         const void *pData);
   8777 
   8778     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8779         ID3D11VideoProcessorInputView *This,
   8780         REFGUID guid,
   8781         const IUnknown *pData);
   8782 
   8783     /*** ID3D11View methods ***/
   8784     void (STDMETHODCALLTYPE *GetResource)(
   8785         ID3D11VideoProcessorInputView *This,
   8786         ID3D11Resource **ppResource);
   8787 
   8788     /*** ID3D11VideoProcessorInputView methods ***/
   8789     void (STDMETHODCALLTYPE *GetDesc)(
   8790         ID3D11VideoProcessorInputView *This,
   8791         D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc);
   8792 
   8793     END_INTERFACE
   8794 } ID3D11VideoProcessorInputViewVtbl;
   8795 
   8796 interface ID3D11VideoProcessorInputView {
   8797     CONST_VTBL ID3D11VideoProcessorInputViewVtbl* lpVtbl;
   8798 };
   8799 
   8800 #ifdef COBJMACROS
   8801 #ifndef WIDL_C_INLINE_WRAPPERS
   8802 /*** IUnknown methods ***/
   8803 #define ID3D11VideoProcessorInputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8804 #define ID3D11VideoProcessorInputView_AddRef(This) (This)->lpVtbl->AddRef(This)
   8805 #define ID3D11VideoProcessorInputView_Release(This) (This)->lpVtbl->Release(This)
   8806 /*** ID3D11DeviceChild methods ***/
   8807 #define ID3D11VideoProcessorInputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8808 #define ID3D11VideoProcessorInputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8809 #define ID3D11VideoProcessorInputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8810 #define ID3D11VideoProcessorInputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8811 /*** ID3D11View methods ***/
   8812 #define ID3D11VideoProcessorInputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   8813 /*** ID3D11VideoProcessorInputView methods ***/
   8814 #define ID3D11VideoProcessorInputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   8815 #else
   8816 /*** IUnknown methods ***/
   8817 static inline HRESULT ID3D11VideoProcessorInputView_QueryInterface(ID3D11VideoProcessorInputView* This,REFIID riid,void **ppvObject) {
   8818     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8819 }
   8820 static inline ULONG ID3D11VideoProcessorInputView_AddRef(ID3D11VideoProcessorInputView* This) {
   8821     return This->lpVtbl->AddRef(This);
   8822 }
   8823 static inline ULONG ID3D11VideoProcessorInputView_Release(ID3D11VideoProcessorInputView* This) {
   8824     return This->lpVtbl->Release(This);
   8825 }
   8826 /*** ID3D11DeviceChild methods ***/
   8827 static inline void ID3D11VideoProcessorInputView_GetDevice(ID3D11VideoProcessorInputView* This,ID3D11Device **ppDevice) {
   8828     This->lpVtbl->GetDevice(This,ppDevice);
   8829 }
   8830 static inline HRESULT ID3D11VideoProcessorInputView_GetPrivateData(ID3D11VideoProcessorInputView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8831     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8832 }
   8833 static inline HRESULT ID3D11VideoProcessorInputView_SetPrivateData(ID3D11VideoProcessorInputView* This,REFGUID guid,UINT DataSize,const void *pData) {
   8834     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8835 }
   8836 static inline HRESULT ID3D11VideoProcessorInputView_SetPrivateDataInterface(ID3D11VideoProcessorInputView* This,REFGUID guid,const IUnknown *pData) {
   8837     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8838 }
   8839 /*** ID3D11View methods ***/
   8840 static inline void ID3D11VideoProcessorInputView_GetResource(ID3D11VideoProcessorInputView* This,ID3D11Resource **ppResource) {
   8841     This->lpVtbl->GetResource(This,ppResource);
   8842 }
   8843 /*** ID3D11VideoProcessorInputView methods ***/
   8844 static inline void ID3D11VideoProcessorInputView_GetDesc(ID3D11VideoProcessorInputView* This,D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc) {
   8845     This->lpVtbl->GetDesc(This,pDesc);
   8846 }
   8847 #endif
   8848 #endif
   8849 
   8850 #endif
   8851 
   8852 
   8853 #endif  /* __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__ */
   8854 
   8855 /*****************************************************************************
   8856  * ID3D11VideoProcessorOutputView interface
   8857  */
   8858 #ifndef __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__
   8859 #define __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__
   8860 
   8861 DEFINE_GUID(IID_ID3D11VideoProcessorOutputView, 0xa048285e, 0x25a9, 0x4527, 0xbd,0x93, 0xd6,0x8b,0x68,0xc4,0x42,0x54);
   8862 #if defined(__cplusplus) && !defined(CINTERFACE)
   8863 MIDL_INTERFACE("a048285e-25a9-4527-bd93-d68b68c44254")
   8864 ID3D11VideoProcessorOutputView : public ID3D11View
   8865 {
   8866     virtual void STDMETHODCALLTYPE GetDesc(
   8867         D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc) = 0;
   8868 
   8869 };
   8870 #ifdef __CRT_UUID_DECL
   8871 __CRT_UUID_DECL(ID3D11VideoProcessorOutputView, 0xa048285e, 0x25a9, 0x4527, 0xbd,0x93, 0xd6,0x8b,0x68,0xc4,0x42,0x54)
   8872 #endif
   8873 #else
   8874 typedef struct ID3D11VideoProcessorOutputViewVtbl {
   8875     BEGIN_INTERFACE
   8876 
   8877     /*** IUnknown methods ***/
   8878     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8879         ID3D11VideoProcessorOutputView *This,
   8880         REFIID riid,
   8881         void **ppvObject);
   8882 
   8883     ULONG (STDMETHODCALLTYPE *AddRef)(
   8884         ID3D11VideoProcessorOutputView *This);
   8885 
   8886     ULONG (STDMETHODCALLTYPE *Release)(
   8887         ID3D11VideoProcessorOutputView *This);
   8888 
   8889     /*** ID3D11DeviceChild methods ***/
   8890     void (STDMETHODCALLTYPE *GetDevice)(
   8891         ID3D11VideoProcessorOutputView *This,
   8892         ID3D11Device **ppDevice);
   8893 
   8894     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   8895         ID3D11VideoProcessorOutputView *This,
   8896         REFGUID guid,
   8897         UINT *pDataSize,
   8898         void *pData);
   8899 
   8900     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   8901         ID3D11VideoProcessorOutputView *This,
   8902         REFGUID guid,
   8903         UINT DataSize,
   8904         const void *pData);
   8905 
   8906     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   8907         ID3D11VideoProcessorOutputView *This,
   8908         REFGUID guid,
   8909         const IUnknown *pData);
   8910 
   8911     /*** ID3D11View methods ***/
   8912     void (STDMETHODCALLTYPE *GetResource)(
   8913         ID3D11VideoProcessorOutputView *This,
   8914         ID3D11Resource **ppResource);
   8915 
   8916     /*** ID3D11VideoProcessorOutputView methods ***/
   8917     void (STDMETHODCALLTYPE *GetDesc)(
   8918         ID3D11VideoProcessorOutputView *This,
   8919         D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc);
   8920 
   8921     END_INTERFACE
   8922 } ID3D11VideoProcessorOutputViewVtbl;
   8923 
   8924 interface ID3D11VideoProcessorOutputView {
   8925     CONST_VTBL ID3D11VideoProcessorOutputViewVtbl* lpVtbl;
   8926 };
   8927 
   8928 #ifdef COBJMACROS
   8929 #ifndef WIDL_C_INLINE_WRAPPERS
   8930 /*** IUnknown methods ***/
   8931 #define ID3D11VideoProcessorOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8932 #define ID3D11VideoProcessorOutputView_AddRef(This) (This)->lpVtbl->AddRef(This)
   8933 #define ID3D11VideoProcessorOutputView_Release(This) (This)->lpVtbl->Release(This)
   8934 /*** ID3D11DeviceChild methods ***/
   8935 #define ID3D11VideoProcessorOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   8936 #define ID3D11VideoProcessorOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   8937 #define ID3D11VideoProcessorOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   8938 #define ID3D11VideoProcessorOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   8939 /*** ID3D11View methods ***/
   8940 #define ID3D11VideoProcessorOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
   8941 /*** ID3D11VideoProcessorOutputView methods ***/
   8942 #define ID3D11VideoProcessorOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
   8943 #else
   8944 /*** IUnknown methods ***/
   8945 static inline HRESULT ID3D11VideoProcessorOutputView_QueryInterface(ID3D11VideoProcessorOutputView* This,REFIID riid,void **ppvObject) {
   8946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8947 }
   8948 static inline ULONG ID3D11VideoProcessorOutputView_AddRef(ID3D11VideoProcessorOutputView* This) {
   8949     return This->lpVtbl->AddRef(This);
   8950 }
   8951 static inline ULONG ID3D11VideoProcessorOutputView_Release(ID3D11VideoProcessorOutputView* This) {
   8952     return This->lpVtbl->Release(This);
   8953 }
   8954 /*** ID3D11DeviceChild methods ***/
   8955 static inline void ID3D11VideoProcessorOutputView_GetDevice(ID3D11VideoProcessorOutputView* This,ID3D11Device **ppDevice) {
   8956     This->lpVtbl->GetDevice(This,ppDevice);
   8957 }
   8958 static inline HRESULT ID3D11VideoProcessorOutputView_GetPrivateData(ID3D11VideoProcessorOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) {
   8959     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   8960 }
   8961 static inline HRESULT ID3D11VideoProcessorOutputView_SetPrivateData(ID3D11VideoProcessorOutputView* This,REFGUID guid,UINT DataSize,const void *pData) {
   8962     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   8963 }
   8964 static inline HRESULT ID3D11VideoProcessorOutputView_SetPrivateDataInterface(ID3D11VideoProcessorOutputView* This,REFGUID guid,const IUnknown *pData) {
   8965     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   8966 }
   8967 /*** ID3D11View methods ***/
   8968 static inline void ID3D11VideoProcessorOutputView_GetResource(ID3D11VideoProcessorOutputView* This,ID3D11Resource **ppResource) {
   8969     This->lpVtbl->GetResource(This,ppResource);
   8970 }
   8971 /*** ID3D11VideoProcessorOutputView methods ***/
   8972 static inline void ID3D11VideoProcessorOutputView_GetDesc(ID3D11VideoProcessorOutputView* This,D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc) {
   8973     This->lpVtbl->GetDesc(This,pDesc);
   8974 }
   8975 #endif
   8976 #endif
   8977 
   8978 #endif
   8979 
   8980 
   8981 #endif  /* __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__ */
   8982 
   8983 /*****************************************************************************
   8984  * ID3D11VideoDevice interface
   8985  */
   8986 #ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__
   8987 #define __ID3D11VideoDevice_INTERFACE_DEFINED__
   8988 
   8989 DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33);
   8990 #if defined(__cplusplus) && !defined(CINTERFACE)
   8991 MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333")
   8992 ID3D11VideoDevice : public IUnknown
   8993 {
   8994     virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
   8995         const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
   8996         const D3D11_VIDEO_DECODER_CONFIG *pConfig,
   8997         ID3D11VideoDecoder **ppDecoder) = 0;
   8998 
   8999     virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
   9000         ID3D11VideoProcessorEnumerator *pEnum,
   9001         UINT RateConversionIndex,
   9002         ID3D11VideoProcessor **ppVideoProcessor) = 0;
   9003 
   9004     virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel(
   9005         D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
   9006         ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0;
   9007 
   9008     virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession(
   9009         const GUID *pCryptoType,
   9010         const GUID *pDecoderProfile,
   9011         const GUID *pKeyExchangeType,
   9012         ID3D11CryptoSession **ppCryptoSession) = 0;
   9013 
   9014     virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView(
   9015         ID3D11Resource *pResource,
   9016         const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
   9017         ID3D11VideoDecoderOutputView **ppVDOVView) = 0;
   9018 
   9019     virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView(
   9020         ID3D11Resource *pResource,
   9021         ID3D11VideoProcessorEnumerator *pEnum,
   9022         const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
   9023         ID3D11VideoProcessorInputView **ppVPIView) = 0;
   9024 
   9025     virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView(
   9026         ID3D11Resource *pResource,
   9027         ID3D11VideoProcessorEnumerator *pEnum,
   9028         const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
   9029         ID3D11VideoProcessorOutputView **ppVPOView) = 0;
   9030 
   9031     virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator(
   9032         const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
   9033         ID3D11VideoProcessorEnumerator **ppEnum) = 0;
   9034 
   9035     virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount(
   9036         ) = 0;
   9037 
   9038     virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile(
   9039         UINT Index,
   9040         GUID *pDecoderProfile) = 0;
   9041 
   9042     virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat(
   9043         const GUID *pDecoderProfile,
   9044         DXGI_FORMAT Format,
   9045         WINBOOL *pSupported) = 0;
   9046 
   9047     virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount(
   9048         const D3D11_VIDEO_DECODER_DESC *pDesc,
   9049         UINT *pCount) = 0;
   9050 
   9051     virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig(
   9052         const D3D11_VIDEO_DECODER_DESC *pDesc,
   9053         UINT Index,
   9054         D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0;
   9055 
   9056     virtual HRESULT STDMETHODCALLTYPE GetContentProtectionCaps(
   9057         const GUID *pCryptoType,
   9058         const GUID *pDecoderProfile,
   9059         D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) = 0;
   9060 
   9061     virtual HRESULT STDMETHODCALLTYPE CheckCryptoKeyExchange(
   9062         const GUID *pCryptoType,
   9063         const GUID *pDecoderProfile,
   9064         UINT Index,
   9065         GUID *pKeyExchangeType) = 0;
   9066 
   9067     virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
   9068         REFGUID guid,
   9069         UINT DataSize,
   9070         const void *pData) = 0;
   9071 
   9072     virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
   9073         REFGUID guid,
   9074         const IUnknown *pData) = 0;
   9075 
   9076 };
   9077 #ifdef __CRT_UUID_DECL
   9078 __CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33)
   9079 #endif
   9080 #else
   9081 typedef struct ID3D11VideoDeviceVtbl {
   9082     BEGIN_INTERFACE
   9083 
   9084     /*** IUnknown methods ***/
   9085     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9086         ID3D11VideoDevice *This,
   9087         REFIID riid,
   9088         void **ppvObject);
   9089 
   9090     ULONG (STDMETHODCALLTYPE *AddRef)(
   9091         ID3D11VideoDevice *This);
   9092 
   9093     ULONG (STDMETHODCALLTYPE *Release)(
   9094         ID3D11VideoDevice *This);
   9095 
   9096     /*** ID3D11VideoDevice methods ***/
   9097     HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)(
   9098         ID3D11VideoDevice *This,
   9099         const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
   9100         const D3D11_VIDEO_DECODER_CONFIG *pConfig,
   9101         ID3D11VideoDecoder **ppDecoder);
   9102 
   9103     HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
   9104         ID3D11VideoDevice *This,
   9105         ID3D11VideoProcessorEnumerator *pEnum,
   9106         UINT RateConversionIndex,
   9107         ID3D11VideoProcessor **ppVideoProcessor);
   9108 
   9109     HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)(
   9110         ID3D11VideoDevice *This,
   9111         D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
   9112         ID3D11AuthenticatedChannel **ppAuthenticatedChannel);
   9113 
   9114     HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)(
   9115         ID3D11VideoDevice *This,
   9116         const GUID *pCryptoType,
   9117         const GUID *pDecoderProfile,
   9118         const GUID *pKeyExchangeType,
   9119         ID3D11CryptoSession **ppCryptoSession);
   9120 
   9121     HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)(
   9122         ID3D11VideoDevice *This,
   9123         ID3D11Resource *pResource,
   9124         const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
   9125         ID3D11VideoDecoderOutputView **ppVDOVView);
   9126 
   9127     HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)(
   9128         ID3D11VideoDevice *This,
   9129         ID3D11Resource *pResource,
   9130         ID3D11VideoProcessorEnumerator *pEnum,
   9131         const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
   9132         ID3D11VideoProcessorInputView **ppVPIView);
   9133 
   9134     HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)(
   9135         ID3D11VideoDevice *This,
   9136         ID3D11Resource *pResource,
   9137         ID3D11VideoProcessorEnumerator *pEnum,
   9138         const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
   9139         ID3D11VideoProcessorOutputView **ppVPOView);
   9140 
   9141     HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)(
   9142         ID3D11VideoDevice *This,
   9143         const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
   9144         ID3D11VideoProcessorEnumerator **ppEnum);
   9145 
   9146     UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)(
   9147         ID3D11VideoDevice *This);
   9148 
   9149     HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)(
   9150         ID3D11VideoDevice *This,
   9151         UINT Index,
   9152         GUID *pDecoderProfile);
   9153 
   9154     HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)(
   9155         ID3D11VideoDevice *This,
   9156         const GUID *pDecoderProfile,
   9157         DXGI_FORMAT Format,
   9158         WINBOOL *pSupported);
   9159 
   9160     HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)(
   9161         ID3D11VideoDevice *This,
   9162         const D3D11_VIDEO_DECODER_DESC *pDesc,
   9163         UINT *pCount);
   9164 
   9165     HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)(
   9166         ID3D11VideoDevice *This,
   9167         const D3D11_VIDEO_DECODER_DESC *pDesc,
   9168         UINT Index,
   9169         D3D11_VIDEO_DECODER_CONFIG *pConfig);
   9170 
   9171     HRESULT (STDMETHODCALLTYPE *GetContentProtectionCaps)(
   9172         ID3D11VideoDevice *This,
   9173         const GUID *pCryptoType,
   9174         const GUID *pDecoderProfile,
   9175         D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
   9176 
   9177     HRESULT (STDMETHODCALLTYPE *CheckCryptoKeyExchange)(
   9178         ID3D11VideoDevice *This,
   9179         const GUID *pCryptoType,
   9180         const GUID *pDecoderProfile,
   9181         UINT Index,
   9182         GUID *pKeyExchangeType);
   9183 
   9184     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   9185         ID3D11VideoDevice *This,
   9186         REFGUID guid,
   9187         UINT DataSize,
   9188         const void *pData);
   9189 
   9190     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   9191         ID3D11VideoDevice *This,
   9192         REFGUID guid,
   9193         const IUnknown *pData);
   9194 
   9195     END_INTERFACE
   9196 } ID3D11VideoDeviceVtbl;
   9197 
   9198 interface ID3D11VideoDevice {
   9199     CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl;
   9200 };
   9201 
   9202 #ifdef COBJMACROS
   9203 #ifndef WIDL_C_INLINE_WRAPPERS
   9204 /*** IUnknown methods ***/
   9205 #define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9206 #define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
   9207 #define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This)
   9208 /*** ID3D11VideoDevice methods ***/
   9209 #define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder)
   9210 #define ID3D11VideoDevice_CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor)
   9211 #define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel)
   9212 #define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession)
   9213 #define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView)
   9214 #define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView)
   9215 #define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView)
   9216 #define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum)
   9217 #define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This)
   9218 #define ID3D11VideoDevice_GetVideoDecoderProfile(This,Index,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile)
   9219 #define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported)
   9220 #define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount)
   9221 #define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,Index,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig)
   9222 #define ID3D11VideoDevice_GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) (This)->lpVtbl->GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps)
   9223 #define ID3D11VideoDevice_CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) (This)->lpVtbl->CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType)
   9224 #define ID3D11VideoDevice_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   9225 #define ID3D11VideoDevice_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   9226 #else
   9227 /*** IUnknown methods ***/
   9228 static inline HRESULT ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void **ppvObject) {
   9229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9230 }
   9231 static inline ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) {
   9232     return This->lpVtbl->AddRef(This);
   9233 }
   9234 static inline ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) {
   9235     return This->lpVtbl->Release(This);
   9236 }
   9237 /*** ID3D11VideoDevice methods ***/
   9238 static inline HRESULT ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppDecoder) {
   9239     return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder);
   9240 }
   9241 static inline HRESULT ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,ID3D11VideoProcessorEnumerator *pEnum,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) {
   9242     return This->lpVtbl->CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor);
   9243 }
   9244 static inline HRESULT ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) {
   9245     return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel);
   9246 }
   9247 static inline HRESULT ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) {
   9248     return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession);
   9249 }
   9250 static inline HRESULT ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVDOVView) {
   9251     return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView);
   9252 }
   9253 static inline HRESULT ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnum,const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,ID3D11VideoProcessorInputView **ppVPIView) {
   9254     return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView);
   9255 }
   9256 static inline HRESULT ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnum,const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoProcessorOutputView **ppVPOView) {
   9257     return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView);
   9258 }
   9259 static inline HRESULT ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* This,const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,ID3D11VideoProcessorEnumerator **ppEnum) {
   9260     return This->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum);
   9261 }
   9262 static inline UINT ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) {
   9263     return This->lpVtbl->GetVideoDecoderProfileCount(This);
   9264 }
   9265 static inline HRESULT ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT Index,GUID *pDecoderProfile) {
   9266     return This->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile);
   9267 }
   9268 static inline HRESULT ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) {
   9269     return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported);
   9270 }
   9271 static inline HRESULT ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) {
   9272     return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount);
   9273 }
   9274 static inline HRESULT ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT Index,D3D11_VIDEO_DECODER_CONFIG *pConfig) {
   9275     return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig);
   9276 }
   9277 static inline HRESULT ID3D11VideoDevice_GetContentProtectionCaps(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) {
   9278     return This->lpVtbl->GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps);
   9279 }
   9280 static inline HRESULT ID3D11VideoDevice_CheckCryptoKeyExchange(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,UINT Index,GUID *pKeyExchangeType) {
   9281     return This->lpVtbl->CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType);
   9282 }
   9283 static inline HRESULT ID3D11VideoDevice_SetPrivateData(ID3D11VideoDevice* This,REFGUID guid,UINT DataSize,const void *pData) {
   9284     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   9285 }
   9286 static inline HRESULT ID3D11VideoDevice_SetPrivateDataInterface(ID3D11VideoDevice* This,REFGUID guid,const IUnknown *pData) {
   9287     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   9288 }
   9289 #endif
   9290 #endif
   9291 
   9292 #endif
   9293 
   9294 
   9295 #endif  /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */
   9296 
   9297 /*****************************************************************************
   9298  * ID3D11VideoContext interface
   9299  */
   9300 #ifndef __ID3D11VideoContext_INTERFACE_DEFINED__
   9301 #define __ID3D11VideoContext_INTERFACE_DEFINED__
   9302 
   9303 DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4);
   9304 #if defined(__cplusplus) && !defined(CINTERFACE)
   9305 MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4")
   9306 ID3D11VideoContext : public ID3D11DeviceChild
   9307 {
   9308     virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer(
   9309         ID3D11VideoDecoder *decoder,
   9310         D3D11_VIDEO_DECODER_BUFFER_TYPE type,
   9311         UINT *buffer_size,
   9312         void **buffer) = 0;
   9313 
   9314     virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer(
   9315         ID3D11VideoDecoder *decoder,
   9316         D3D11_VIDEO_DECODER_BUFFER_TYPE type) = 0;
   9317 
   9318     virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame(
   9319         ID3D11VideoDecoder *decoder,
   9320         ID3D11VideoDecoderOutputView *view,
   9321         UINT key_size,
   9322         const void *key) = 0;
   9323 
   9324     virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame(
   9325         ID3D11VideoDecoder *decoder) = 0;
   9326 
   9327     virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers(
   9328         ID3D11VideoDecoder *decoder,
   9329         UINT buffers_count,
   9330         const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) = 0;
   9331 
   9332     virtual HRESULT STDMETHODCALLTYPE DecoderExtension(
   9333         ID3D11VideoDecoder *decoder,
   9334         const D3D11_VIDEO_DECODER_EXTENSION *extension) = 0;
   9335 
   9336     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputTargetRect(
   9337         ID3D11VideoProcessor *processor,
   9338         WINBOOL enable,
   9339         const RECT *rect) = 0;
   9340 
   9341     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputBackgroundColor(
   9342         ID3D11VideoProcessor *processor,
   9343         WINBOOL y_cb_cr,
   9344         const D3D11_VIDEO_COLOR *color) = 0;
   9345 
   9346     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputColorSpace(
   9347         ID3D11VideoProcessor *processor,
   9348         const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
   9349 
   9350     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputAlphaFillMode(
   9351         ID3D11VideoProcessor *processor,
   9352         D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
   9353         UINT stream_idx) = 0;
   9354 
   9355     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputConstriction(
   9356         ID3D11VideoProcessor *processor,
   9357         WINBOOL enable,
   9358         SIZE size) = 0;
   9359 
   9360     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputStereoMode(
   9361         ID3D11VideoProcessor *processor,
   9362         WINBOOL enable) = 0;
   9363 
   9364     virtual HRESULT STDMETHODCALLTYPE VideoProcessorSetOutputExtension(
   9365         ID3D11VideoProcessor *processor,
   9366         const GUID *guid,
   9367         UINT data_size,
   9368         void *data) = 0;
   9369 
   9370     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputTargetRect(
   9371         ID3D11VideoProcessor *processor,
   9372         WINBOOL *enabled,
   9373         RECT *rect) = 0;
   9374 
   9375     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputBackgroundColor(
   9376         ID3D11VideoProcessor *processor,
   9377         WINBOOL *y_cb_cr,
   9378         D3D11_VIDEO_COLOR *color) = 0;
   9379 
   9380     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputColorSpace(
   9381         ID3D11VideoProcessor *processor,
   9382         D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
   9383 
   9384     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputAlphaFillMode(
   9385         ID3D11VideoProcessor *processor,
   9386         D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
   9387         UINT *stream_idx) = 0;
   9388 
   9389     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputConstriction(
   9390         ID3D11VideoProcessor *processor,
   9391         WINBOOL *enabled,
   9392         SIZE *size) = 0;
   9393 
   9394     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputStereoMode(
   9395         ID3D11VideoProcessor *processor,
   9396         WINBOOL *enabled) = 0;
   9397 
   9398     virtual HRESULT STDMETHODCALLTYPE VideoProcessorGetOutputExtension(
   9399         ID3D11VideoProcessor *processor,
   9400         const GUID *guid,
   9401         UINT data_size,
   9402         void *data) = 0;
   9403 
   9404     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamFrameFormat(
   9405         ID3D11VideoProcessor *processor,
   9406         UINT stream_idx,
   9407         D3D11_VIDEO_FRAME_FORMAT format) = 0;
   9408 
   9409     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamColorSpace(
   9410         ID3D11VideoProcessor *processor,
   9411         UINT stream_idx,
   9412         const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
   9413 
   9414     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamOutputRate(
   9415         ID3D11VideoProcessor *processor,
   9416         UINT stream_idx,
   9417         D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
   9418         WINBOOL repeat,
   9419         const DXGI_RATIONAL *custom_rate) = 0;
   9420 
   9421     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamSourceRect(
   9422         ID3D11VideoProcessor *processor,
   9423         UINT stream_idx,
   9424         WINBOOL enable,
   9425         const RECT *rect) = 0;
   9426 
   9427     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamDestRect(
   9428         ID3D11VideoProcessor *processor,
   9429         UINT stream_idx,
   9430         WINBOOL enable,
   9431         const RECT *rect) = 0;
   9432 
   9433     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamAlpha(
   9434         ID3D11VideoProcessor *processor,
   9435         UINT stream_idx,
   9436         WINBOOL enable,
   9437         float alpha) = 0;
   9438 
   9439     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamPalette(
   9440         ID3D11VideoProcessor *processor,
   9441         UINT stream_idx,
   9442         UINT entry_count,
   9443         const UINT *entries) = 0;
   9444 
   9445     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamPixelAspectRatio(
   9446         ID3D11VideoProcessor *processor,
   9447         UINT stream_idx,
   9448         WINBOOL enable,
   9449         const DXGI_RATIONAL *src_aspect_ratio,
   9450         const DXGI_RATIONAL *dst_aspect_ratio) = 0;
   9451 
   9452     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamLumaKey(
   9453         ID3D11VideoProcessor *processor,
   9454         UINT stream_idx,
   9455         WINBOOL enable,
   9456         float lower,
   9457         float upper) = 0;
   9458 
   9459     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamStereoFormat(
   9460         ID3D11VideoProcessor *processor,
   9461         UINT stream_idx,
   9462         WINBOOL enable,
   9463         D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
   9464         WINBOOL left_view_frame0,
   9465         WINBOOL base_view_frame0,
   9466         D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
   9467         int mono_offset) = 0;
   9468 
   9469     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamAutoProcessingMode(
   9470         ID3D11VideoProcessor *processor,
   9471         UINT stream_idx,
   9472         WINBOOL enable) = 0;
   9473 
   9474     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamFilter(
   9475         ID3D11VideoProcessor *processor,
   9476         UINT stream_idx,
   9477         D3D11_VIDEO_PROCESSOR_FILTER filter,
   9478         WINBOOL enable,
   9479         int level) = 0;
   9480 
   9481     virtual HRESULT STDMETHODCALLTYPE VideoProcessorSetStreamExtension(
   9482         ID3D11VideoProcessor *processor,
   9483         UINT stream_idx,
   9484         const GUID *guid,
   9485         UINT data_size,
   9486         void *data) = 0;
   9487 
   9488     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamFrameFormat(
   9489         ID3D11VideoProcessor *processor,
   9490         UINT stream_idx,
   9491         D3D11_VIDEO_FRAME_FORMAT *format) = 0;
   9492 
   9493     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamColorSpace(
   9494         ID3D11VideoProcessor *processor,
   9495         UINT stream_idx,
   9496         D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
   9497 
   9498     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamOutputRate(
   9499         ID3D11VideoProcessor *processor,
   9500         UINT stream_idx,
   9501         D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
   9502         WINBOOL *repeat,
   9503         DXGI_RATIONAL *custom_rate) = 0;
   9504 
   9505     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamSourceRect(
   9506         ID3D11VideoProcessor *processor,
   9507         UINT stream_idx,
   9508         WINBOOL *enabled,
   9509         RECT *rect) = 0;
   9510 
   9511     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamDestRect(
   9512         ID3D11VideoProcessor *processor,
   9513         UINT stream_idx,
   9514         WINBOOL *enabled,
   9515         RECT *rect) = 0;
   9516 
   9517     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamAlpha(
   9518         ID3D11VideoProcessor *processor,
   9519         UINT stream_idx,
   9520         WINBOOL *enabled,
   9521         float *alpha) = 0;
   9522 
   9523     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamPalette(
   9524         ID3D11VideoProcessor *processor,
   9525         UINT stream_idx,
   9526         UINT entry_count,
   9527         UINT *entries) = 0;
   9528 
   9529     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamPixelAspectRatio(
   9530         ID3D11VideoProcessor *processor,
   9531         UINT stream_idx,
   9532         WINBOOL *enabled,
   9533         DXGI_RATIONAL *src_aspect_ratio,
   9534         DXGI_RATIONAL *dst_aspect_ratio) = 0;
   9535 
   9536     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamLumaKey(
   9537         ID3D11VideoProcessor *processor,
   9538         UINT stream_idx,
   9539         WINBOOL *enabled,
   9540         float *lower,
   9541         float *upper) = 0;
   9542 
   9543     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamStereoFormat(
   9544         ID3D11VideoProcessor *processor,
   9545         UINT stream_idx,
   9546         WINBOOL *enabled,
   9547         D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
   9548         WINBOOL *left_view_frame0,
   9549         WINBOOL *base_view_frame0,
   9550         D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
   9551         int *mono_offset) = 0;
   9552 
   9553     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamAutoProcessingMode(
   9554         ID3D11VideoProcessor *processor,
   9555         UINT stream_idx,
   9556         WINBOOL *enabled) = 0;
   9557 
   9558     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamFilter(
   9559         ID3D11VideoProcessor *processor,
   9560         UINT stream_idx,
   9561         D3D11_VIDEO_PROCESSOR_FILTER filter,
   9562         WINBOOL *enabled,
   9563         int *level) = 0;
   9564 
   9565     virtual HRESULT STDMETHODCALLTYPE VideoProcessorGetStreamExtension(
   9566         ID3D11VideoProcessor *processor,
   9567         UINT stream_idx,
   9568         const GUID *guid,
   9569         UINT data_size,
   9570         void *data) = 0;
   9571 
   9572     virtual HRESULT STDMETHODCALLTYPE VideoProcessorBlt(
   9573         ID3D11VideoProcessor *processor,
   9574         ID3D11VideoProcessorOutputView *view,
   9575         UINT frame_idx,
   9576         UINT stream_count,
   9577         const D3D11_VIDEO_PROCESSOR_STREAM *streams) = 0;
   9578 
   9579     virtual HRESULT STDMETHODCALLTYPE NegotiateCryptoSessionKeyExchange(
   9580         ID3D11CryptoSession *session,
   9581         UINT data_size,
   9582         void *data) = 0;
   9583 
   9584     virtual void STDMETHODCALLTYPE EncryptionBlt(
   9585         ID3D11CryptoSession *session,
   9586         ID3D11Texture2D *src_surface,
   9587         ID3D11Texture2D *dst_surface,
   9588         UINT iv_size,
   9589         void *iv) = 0;
   9590 
   9591     virtual void STDMETHODCALLTYPE DecryptionBlt(
   9592         ID3D11CryptoSession *session,
   9593         ID3D11Texture2D *src_surface,
   9594         ID3D11Texture2D *dst_surface,
   9595         D3D11_ENCRYPTED_BLOCK_INFO *block_info,
   9596         UINT key_size,
   9597         const void *key,
   9598         UINT iv_size,
   9599         void *iv) = 0;
   9600 
   9601     virtual void STDMETHODCALLTYPE StartSessionKeyRefresh(
   9602         ID3D11CryptoSession *session,
   9603         UINT random_number_size,
   9604         void *random_number) = 0;
   9605 
   9606     virtual void STDMETHODCALLTYPE FinishSessionKeyRefresh(
   9607         ID3D11CryptoSession *session) = 0;
   9608 
   9609     virtual HRESULT STDMETHODCALLTYPE GetEncryptionBltKey(
   9610         ID3D11CryptoSession *session,
   9611         UINT key_size,
   9612         void *key) = 0;
   9613 
   9614     virtual HRESULT STDMETHODCALLTYPE NegotiateAuthenticatedChannelKeyExchange(
   9615         ID3D11AuthenticatedChannel *channel,
   9616         UINT data_size,
   9617         void *data) = 0;
   9618 
   9619     virtual HRESULT STDMETHODCALLTYPE QueryAuthenticatedChannel(
   9620         ID3D11AuthenticatedChannel *channel,
   9621         UINT input_size,
   9622         const void *input,
   9623         UINT output_size,
   9624         void *output) = 0;
   9625 
   9626     virtual HRESULT STDMETHODCALLTYPE ConfigureAuthenticatedChannel(
   9627         ID3D11AuthenticatedChannel *channel,
   9628         UINT input_size,
   9629         const void *input,
   9630         D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) = 0;
   9631 
   9632     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamRotation(
   9633         ID3D11VideoProcessor *processor,
   9634         UINT stream_idx,
   9635         WINBOOL enable,
   9636         D3D11_VIDEO_PROCESSOR_ROTATION rotation) = 0;
   9637 
   9638     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamRotation(
   9639         ID3D11VideoProcessor *processor,
   9640         UINT stream_idx,
   9641         WINBOOL *enable,
   9642         D3D11_VIDEO_PROCESSOR_ROTATION *rotation) = 0;
   9643 
   9644 };
   9645 #ifdef __CRT_UUID_DECL
   9646 __CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4)
   9647 #endif
   9648 #else
   9649 typedef struct ID3D11VideoContextVtbl {
   9650     BEGIN_INTERFACE
   9651 
   9652     /*** IUnknown methods ***/
   9653     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9654         ID3D11VideoContext *This,
   9655         REFIID riid,
   9656         void **ppvObject);
   9657 
   9658     ULONG (STDMETHODCALLTYPE *AddRef)(
   9659         ID3D11VideoContext *This);
   9660 
   9661     ULONG (STDMETHODCALLTYPE *Release)(
   9662         ID3D11VideoContext *This);
   9663 
   9664     /*** ID3D11DeviceChild methods ***/
   9665     void (STDMETHODCALLTYPE *GetDevice)(
   9666         ID3D11VideoContext *This,
   9667         ID3D11Device **ppDevice);
   9668 
   9669     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   9670         ID3D11VideoContext *This,
   9671         REFGUID guid,
   9672         UINT *pDataSize,
   9673         void *pData);
   9674 
   9675     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   9676         ID3D11VideoContext *This,
   9677         REFGUID guid,
   9678         UINT DataSize,
   9679         const void *pData);
   9680 
   9681     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   9682         ID3D11VideoContext *This,
   9683         REFGUID guid,
   9684         const IUnknown *pData);
   9685 
   9686     /*** ID3D11VideoContext methods ***/
   9687     HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)(
   9688         ID3D11VideoContext *This,
   9689         ID3D11VideoDecoder *decoder,
   9690         D3D11_VIDEO_DECODER_BUFFER_TYPE type,
   9691         UINT *buffer_size,
   9692         void **buffer);
   9693 
   9694     HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)(
   9695         ID3D11VideoContext *This,
   9696         ID3D11VideoDecoder *decoder,
   9697         D3D11_VIDEO_DECODER_BUFFER_TYPE type);
   9698 
   9699     HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)(
   9700         ID3D11VideoContext *This,
   9701         ID3D11VideoDecoder *decoder,
   9702         ID3D11VideoDecoderOutputView *view,
   9703         UINT key_size,
   9704         const void *key);
   9705 
   9706     HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)(
   9707         ID3D11VideoContext *This,
   9708         ID3D11VideoDecoder *decoder);
   9709 
   9710     HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)(
   9711         ID3D11VideoContext *This,
   9712         ID3D11VideoDecoder *decoder,
   9713         UINT buffers_count,
   9714         const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc);
   9715 
   9716     HRESULT (STDMETHODCALLTYPE *DecoderExtension)(
   9717         ID3D11VideoContext *This,
   9718         ID3D11VideoDecoder *decoder,
   9719         const D3D11_VIDEO_DECODER_EXTENSION *extension);
   9720 
   9721     void (STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect)(
   9722         ID3D11VideoContext *This,
   9723         ID3D11VideoProcessor *processor,
   9724         WINBOOL enable,
   9725         const RECT *rect);
   9726 
   9727     void (STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor)(
   9728         ID3D11VideoContext *This,
   9729         ID3D11VideoProcessor *processor,
   9730         WINBOOL y_cb_cr,
   9731         const D3D11_VIDEO_COLOR *color);
   9732 
   9733     void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace)(
   9734         ID3D11VideoContext *This,
   9735         ID3D11VideoProcessor *processor,
   9736         const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   9737 
   9738     void (STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode)(
   9739         ID3D11VideoContext *This,
   9740         ID3D11VideoProcessor *processor,
   9741         D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
   9742         UINT stream_idx);
   9743 
   9744     void (STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction)(
   9745         ID3D11VideoContext *This,
   9746         ID3D11VideoProcessor *processor,
   9747         WINBOOL enable,
   9748         SIZE size);
   9749 
   9750     void (STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode)(
   9751         ID3D11VideoContext *This,
   9752         ID3D11VideoProcessor *processor,
   9753         WINBOOL enable);
   9754 
   9755     HRESULT (STDMETHODCALLTYPE *VideoProcessorSetOutputExtension)(
   9756         ID3D11VideoContext *This,
   9757         ID3D11VideoProcessor *processor,
   9758         const GUID *guid,
   9759         UINT data_size,
   9760         void *data);
   9761 
   9762     void (STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect)(
   9763         ID3D11VideoContext *This,
   9764         ID3D11VideoProcessor *processor,
   9765         WINBOOL *enabled,
   9766         RECT *rect);
   9767 
   9768     void (STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor)(
   9769         ID3D11VideoContext *This,
   9770         ID3D11VideoProcessor *processor,
   9771         WINBOOL *y_cb_cr,
   9772         D3D11_VIDEO_COLOR *color);
   9773 
   9774     void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace)(
   9775         ID3D11VideoContext *This,
   9776         ID3D11VideoProcessor *processor,
   9777         D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   9778 
   9779     void (STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode)(
   9780         ID3D11VideoContext *This,
   9781         ID3D11VideoProcessor *processor,
   9782         D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
   9783         UINT *stream_idx);
   9784 
   9785     void (STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction)(
   9786         ID3D11VideoContext *This,
   9787         ID3D11VideoProcessor *processor,
   9788         WINBOOL *enabled,
   9789         SIZE *size);
   9790 
   9791     void (STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode)(
   9792         ID3D11VideoContext *This,
   9793         ID3D11VideoProcessor *processor,
   9794         WINBOOL *enabled);
   9795 
   9796     HRESULT (STDMETHODCALLTYPE *VideoProcessorGetOutputExtension)(
   9797         ID3D11VideoContext *This,
   9798         ID3D11VideoProcessor *processor,
   9799         const GUID *guid,
   9800         UINT data_size,
   9801         void *data);
   9802 
   9803     void (STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat)(
   9804         ID3D11VideoContext *This,
   9805         ID3D11VideoProcessor *processor,
   9806         UINT stream_idx,
   9807         D3D11_VIDEO_FRAME_FORMAT format);
   9808 
   9809     void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace)(
   9810         ID3D11VideoContext *This,
   9811         ID3D11VideoProcessor *processor,
   9812         UINT stream_idx,
   9813         const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   9814 
   9815     void (STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate)(
   9816         ID3D11VideoContext *This,
   9817         ID3D11VideoProcessor *processor,
   9818         UINT stream_idx,
   9819         D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
   9820         WINBOOL repeat,
   9821         const DXGI_RATIONAL *custom_rate);
   9822 
   9823     void (STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect)(
   9824         ID3D11VideoContext *This,
   9825         ID3D11VideoProcessor *processor,
   9826         UINT stream_idx,
   9827         WINBOOL enable,
   9828         const RECT *rect);
   9829 
   9830     void (STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect)(
   9831         ID3D11VideoContext *This,
   9832         ID3D11VideoProcessor *processor,
   9833         UINT stream_idx,
   9834         WINBOOL enable,
   9835         const RECT *rect);
   9836 
   9837     void (STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha)(
   9838         ID3D11VideoContext *This,
   9839         ID3D11VideoProcessor *processor,
   9840         UINT stream_idx,
   9841         WINBOOL enable,
   9842         float alpha);
   9843 
   9844     void (STDMETHODCALLTYPE *VideoProcessorSetStreamPalette)(
   9845         ID3D11VideoContext *This,
   9846         ID3D11VideoProcessor *processor,
   9847         UINT stream_idx,
   9848         UINT entry_count,
   9849         const UINT *entries);
   9850 
   9851     void (STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio)(
   9852         ID3D11VideoContext *This,
   9853         ID3D11VideoProcessor *processor,
   9854         UINT stream_idx,
   9855         WINBOOL enable,
   9856         const DXGI_RATIONAL *src_aspect_ratio,
   9857         const DXGI_RATIONAL *dst_aspect_ratio);
   9858 
   9859     void (STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey)(
   9860         ID3D11VideoContext *This,
   9861         ID3D11VideoProcessor *processor,
   9862         UINT stream_idx,
   9863         WINBOOL enable,
   9864         float lower,
   9865         float upper);
   9866 
   9867     void (STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat)(
   9868         ID3D11VideoContext *This,
   9869         ID3D11VideoProcessor *processor,
   9870         UINT stream_idx,
   9871         WINBOOL enable,
   9872         D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
   9873         WINBOOL left_view_frame0,
   9874         WINBOOL base_view_frame0,
   9875         D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
   9876         int mono_offset);
   9877 
   9878     void (STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode)(
   9879         ID3D11VideoContext *This,
   9880         ID3D11VideoProcessor *processor,
   9881         UINT stream_idx,
   9882         WINBOOL enable);
   9883 
   9884     void (STDMETHODCALLTYPE *VideoProcessorSetStreamFilter)(
   9885         ID3D11VideoContext *This,
   9886         ID3D11VideoProcessor *processor,
   9887         UINT stream_idx,
   9888         D3D11_VIDEO_PROCESSOR_FILTER filter,
   9889         WINBOOL enable,
   9890         int level);
   9891 
   9892     HRESULT (STDMETHODCALLTYPE *VideoProcessorSetStreamExtension)(
   9893         ID3D11VideoContext *This,
   9894         ID3D11VideoProcessor *processor,
   9895         UINT stream_idx,
   9896         const GUID *guid,
   9897         UINT data_size,
   9898         void *data);
   9899 
   9900     void (STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat)(
   9901         ID3D11VideoContext *This,
   9902         ID3D11VideoProcessor *processor,
   9903         UINT stream_idx,
   9904         D3D11_VIDEO_FRAME_FORMAT *format);
   9905 
   9906     void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace)(
   9907         ID3D11VideoContext *This,
   9908         ID3D11VideoProcessor *processor,
   9909         UINT stream_idx,
   9910         D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   9911 
   9912     void (STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate)(
   9913         ID3D11VideoContext *This,
   9914         ID3D11VideoProcessor *processor,
   9915         UINT stream_idx,
   9916         D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
   9917         WINBOOL *repeat,
   9918         DXGI_RATIONAL *custom_rate);
   9919 
   9920     void (STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect)(
   9921         ID3D11VideoContext *This,
   9922         ID3D11VideoProcessor *processor,
   9923         UINT stream_idx,
   9924         WINBOOL *enabled,
   9925         RECT *rect);
   9926 
   9927     void (STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect)(
   9928         ID3D11VideoContext *This,
   9929         ID3D11VideoProcessor *processor,
   9930         UINT stream_idx,
   9931         WINBOOL *enabled,
   9932         RECT *rect);
   9933 
   9934     void (STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha)(
   9935         ID3D11VideoContext *This,
   9936         ID3D11VideoProcessor *processor,
   9937         UINT stream_idx,
   9938         WINBOOL *enabled,
   9939         float *alpha);
   9940 
   9941     void (STDMETHODCALLTYPE *VideoProcessorGetStreamPalette)(
   9942         ID3D11VideoContext *This,
   9943         ID3D11VideoProcessor *processor,
   9944         UINT stream_idx,
   9945         UINT entry_count,
   9946         UINT *entries);
   9947 
   9948     void (STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio)(
   9949         ID3D11VideoContext *This,
   9950         ID3D11VideoProcessor *processor,
   9951         UINT stream_idx,
   9952         WINBOOL *enabled,
   9953         DXGI_RATIONAL *src_aspect_ratio,
   9954         DXGI_RATIONAL *dst_aspect_ratio);
   9955 
   9956     void (STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey)(
   9957         ID3D11VideoContext *This,
   9958         ID3D11VideoProcessor *processor,
   9959         UINT stream_idx,
   9960         WINBOOL *enabled,
   9961         float *lower,
   9962         float *upper);
   9963 
   9964     void (STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat)(
   9965         ID3D11VideoContext *This,
   9966         ID3D11VideoProcessor *processor,
   9967         UINT stream_idx,
   9968         WINBOOL *enabled,
   9969         D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
   9970         WINBOOL *left_view_frame0,
   9971         WINBOOL *base_view_frame0,
   9972         D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
   9973         int *mono_offset);
   9974 
   9975     void (STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode)(
   9976         ID3D11VideoContext *This,
   9977         ID3D11VideoProcessor *processor,
   9978         UINT stream_idx,
   9979         WINBOOL *enabled);
   9980 
   9981     void (STDMETHODCALLTYPE *VideoProcessorGetStreamFilter)(
   9982         ID3D11VideoContext *This,
   9983         ID3D11VideoProcessor *processor,
   9984         UINT stream_idx,
   9985         D3D11_VIDEO_PROCESSOR_FILTER filter,
   9986         WINBOOL *enabled,
   9987         int *level);
   9988 
   9989     HRESULT (STDMETHODCALLTYPE *VideoProcessorGetStreamExtension)(
   9990         ID3D11VideoContext *This,
   9991         ID3D11VideoProcessor *processor,
   9992         UINT stream_idx,
   9993         const GUID *guid,
   9994         UINT data_size,
   9995         void *data);
   9996 
   9997     HRESULT (STDMETHODCALLTYPE *VideoProcessorBlt)(
   9998         ID3D11VideoContext *This,
   9999         ID3D11VideoProcessor *processor,
  10000         ID3D11VideoProcessorOutputView *view,
  10001         UINT frame_idx,
  10002         UINT stream_count,
  10003         const D3D11_VIDEO_PROCESSOR_STREAM *streams);
  10004 
  10005     HRESULT (STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange)(
  10006         ID3D11VideoContext *This,
  10007         ID3D11CryptoSession *session,
  10008         UINT data_size,
  10009         void *data);
  10010 
  10011     void (STDMETHODCALLTYPE *EncryptionBlt)(
  10012         ID3D11VideoContext *This,
  10013         ID3D11CryptoSession *session,
  10014         ID3D11Texture2D *src_surface,
  10015         ID3D11Texture2D *dst_surface,
  10016         UINT iv_size,
  10017         void *iv);
  10018 
  10019     void (STDMETHODCALLTYPE *DecryptionBlt)(
  10020         ID3D11VideoContext *This,
  10021         ID3D11CryptoSession *session,
  10022         ID3D11Texture2D *src_surface,
  10023         ID3D11Texture2D *dst_surface,
  10024         D3D11_ENCRYPTED_BLOCK_INFO *block_info,
  10025         UINT key_size,
  10026         const void *key,
  10027         UINT iv_size,
  10028         void *iv);
  10029 
  10030     void (STDMETHODCALLTYPE *StartSessionKeyRefresh)(
  10031         ID3D11VideoContext *This,
  10032         ID3D11CryptoSession *session,
  10033         UINT random_number_size,
  10034         void *random_number);
  10035 
  10036     void (STDMETHODCALLTYPE *FinishSessionKeyRefresh)(
  10037         ID3D11VideoContext *This,
  10038         ID3D11CryptoSession *session);
  10039 
  10040     HRESULT (STDMETHODCALLTYPE *GetEncryptionBltKey)(
  10041         ID3D11VideoContext *This,
  10042         ID3D11CryptoSession *session,
  10043         UINT key_size,
  10044         void *key);
  10045 
  10046     HRESULT (STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange)(
  10047         ID3D11VideoContext *This,
  10048         ID3D11AuthenticatedChannel *channel,
  10049         UINT data_size,
  10050         void *data);
  10051 
  10052     HRESULT (STDMETHODCALLTYPE *QueryAuthenticatedChannel)(
  10053         ID3D11VideoContext *This,
  10054         ID3D11AuthenticatedChannel *channel,
  10055         UINT input_size,
  10056         const void *input,
  10057         UINT output_size,
  10058         void *output);
  10059 
  10060     HRESULT (STDMETHODCALLTYPE *ConfigureAuthenticatedChannel)(
  10061         ID3D11VideoContext *This,
  10062         ID3D11AuthenticatedChannel *channel,
  10063         UINT input_size,
  10064         const void *input,
  10065         D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output);
  10066 
  10067     void (STDMETHODCALLTYPE *VideoProcessorSetStreamRotation)(
  10068         ID3D11VideoContext *This,
  10069         ID3D11VideoProcessor *processor,
  10070         UINT stream_idx,
  10071         WINBOOL enable,
  10072         D3D11_VIDEO_PROCESSOR_ROTATION rotation);
  10073 
  10074     void (STDMETHODCALLTYPE *VideoProcessorGetStreamRotation)(
  10075         ID3D11VideoContext *This,
  10076         ID3D11VideoProcessor *processor,
  10077         UINT stream_idx,
  10078         WINBOOL *enable,
  10079         D3D11_VIDEO_PROCESSOR_ROTATION *rotation);
  10080 
  10081     END_INTERFACE
  10082 } ID3D11VideoContextVtbl;
  10083 
  10084 interface ID3D11VideoContext {
  10085     CONST_VTBL ID3D11VideoContextVtbl* lpVtbl;
  10086 };
  10087 
  10088 #ifdef COBJMACROS
  10089 #ifndef WIDL_C_INLINE_WRAPPERS
  10090 /*** IUnknown methods ***/
  10091 #define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10092 #define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
  10093 #define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This)
  10094 /*** ID3D11DeviceChild methods ***/
  10095 #define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
  10096 #define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
  10097 #define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
  10098 #define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
  10099 /*** ID3D11VideoContext methods ***/
  10100 #define ID3D11VideoContext_GetDecoderBuffer(This,decoder,type,buffer_size,buffer) (This)->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer)
  10101 #define ID3D11VideoContext_ReleaseDecoderBuffer(This,decoder,type) (This)->lpVtbl->ReleaseDecoderBuffer(This,decoder,type)
  10102 #define ID3D11VideoContext_DecoderBeginFrame(This,decoder,view,key_size,key) (This)->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key)
  10103 #define ID3D11VideoContext_DecoderEndFrame(This,decoder) (This)->lpVtbl->DecoderEndFrame(This,decoder)
  10104 #define ID3D11VideoContext_SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc)
  10105 #define ID3D11VideoContext_DecoderExtension(This,decoder,extension) (This)->lpVtbl->DecoderExtension(This,decoder,extension)
  10106 #define ID3D11VideoContext_VideoProcessorSetOutputTargetRect(This,processor,enable,rect) (This)->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect)
  10107 #define ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color)
  10108 #define ID3D11VideoContext_VideoProcessorSetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space)
  10109 #define ID3D11VideoContext_VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
  10110 #define ID3D11VideoContext_VideoProcessorSetOutputConstriction(This,processor,enable,size) (This)->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size)
  10111 #define ID3D11VideoContext_VideoProcessorSetOutputStereoMode(This,processor,enable) (This)->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable)
  10112 #define ID3D11VideoContext_VideoProcessorSetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data)
  10113 #define ID3D11VideoContext_VideoProcessorGetOutputTargetRect(This,processor,enabled,rect) (This)->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect)
  10114 #define ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color)
  10115 #define ID3D11VideoContext_VideoProcessorGetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space)
  10116 #define ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
  10117 #define ID3D11VideoContext_VideoProcessorGetOutputConstriction(This,processor,enabled,size) (This)->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size)
  10118 #define ID3D11VideoContext_VideoProcessorGetOutputStereoMode(This,processor,enabled) (This)->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled)
  10119 #define ID3D11VideoContext_VideoProcessorGetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data)
  10120 #define ID3D11VideoContext_VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format)
  10121 #define ID3D11VideoContext_VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space)
  10122 #define ID3D11VideoContext_VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
  10123 #define ID3D11VideoContext_VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect)
  10124 #define ID3D11VideoContext_VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect)
  10125 #define ID3D11VideoContext_VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha) (This)->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha)
  10126 #define ID3D11VideoContext_VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries)
  10127 #define ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio)
  10128 #define ID3D11VideoContext_VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper) (This)->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper)
  10129 #define ID3D11VideoContext_VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
  10130 #define ID3D11VideoContext_VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable) (This)->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable)
  10131 #define ID3D11VideoContext_VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level) (This)->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level)
  10132 #define ID3D11VideoContext_VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data)
  10133 #define ID3D11VideoContext_VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format)
  10134 #define ID3D11VideoContext_VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space)
  10135 #define ID3D11VideoContext_VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
  10136 #define ID3D11VideoContext_VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect)
  10137 #define ID3D11VideoContext_VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect)
  10138 #define ID3D11VideoContext_VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha) (This)->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha)
  10139 #define ID3D11VideoContext_VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries)
  10140 #define ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio)
  10141 #define ID3D11VideoContext_VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper) (This)->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper)
  10142 #define ID3D11VideoContext_VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
  10143 #define ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled) (This)->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled)
  10144 #define ID3D11VideoContext_VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level) (This)->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level)
  10145 #define ID3D11VideoContext_VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data)
  10146 #define ID3D11VideoContext_VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams) (This)->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams)
  10147 #define ID3D11VideoContext_NegotiateCryptoSessionKeyExchange(This,session,data_size,data) (This)->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data)
  10148 #define ID3D11VideoContext_EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv) (This)->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv)
  10149 #define ID3D11VideoContext_DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv) (This)->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv)
  10150 #define ID3D11VideoContext_StartSessionKeyRefresh(This,session,random_number_size,random_number) (This)->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number)
  10151 #define ID3D11VideoContext_FinishSessionKeyRefresh(This,session) (This)->lpVtbl->FinishSessionKeyRefresh(This,session)
  10152 #define ID3D11VideoContext_GetEncryptionBltKey(This,session,key_size,key) (This)->lpVtbl->GetEncryptionBltKey(This,session,key_size,key)
  10153 #define ID3D11VideoContext_NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data) (This)->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data)
  10154 #define ID3D11VideoContext_QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output) (This)->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output)
  10155 #define ID3D11VideoContext_ConfigureAuthenticatedChannel(This,channel,input_size,input,output) (This)->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output)
  10156 #define ID3D11VideoContext_VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation)
  10157 #define ID3D11VideoContext_VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation)
  10158 #else
  10159 /*** IUnknown methods ***/
  10160 static inline HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) {
  10161     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10162 }
  10163 static inline ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) {
  10164     return This->lpVtbl->AddRef(This);
  10165 }
  10166 static inline ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) {
  10167     return This->lpVtbl->Release(This);
  10168 }
  10169 /*** ID3D11DeviceChild methods ***/
  10170 static inline void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) {
  10171     This->lpVtbl->GetDevice(This,ppDevice);
  10172 }
  10173 static inline HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) {
  10174     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
  10175 }
  10176 static inline HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) {
  10177     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
  10178 }
  10179 static inline HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) {
  10180     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
  10181 }
  10182 /*** ID3D11VideoContext methods ***/
  10183 static inline HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type,UINT *buffer_size,void **buffer) {
  10184     return This->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer);
  10185 }
  10186 static inline HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type) {
  10187     return This->lpVtbl->ReleaseDecoderBuffer(This,decoder,type);
  10188 }
  10189 static inline HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,ID3D11VideoDecoderOutputView *view,UINT key_size,const void *key) {
  10190     return This->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key);
  10191 }
  10192 static inline HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder) {
  10193     return This->lpVtbl->DecoderEndFrame(This,decoder);
  10194 }
  10195 static inline HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,UINT buffers_count,const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) {
  10196     return This->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc);
  10197 }
  10198 static inline HRESULT ID3D11VideoContext_DecoderExtension(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_DECODER_EXTENSION *extension) {
  10199     return This->lpVtbl->DecoderExtension(This,decoder,extension);
  10200 }
  10201 static inline void ID3D11VideoContext_VideoProcessorSetOutputTargetRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL enable,const RECT *rect) {
  10202     This->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect);
  10203 }
  10204 static inline void ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL y_cb_cr,const D3D11_VIDEO_COLOR *color) {
  10205     This->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color);
  10206 }
  10207 static inline void ID3D11VideoContext_VideoProcessorSetOutputColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
  10208     This->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space);
  10209 }
  10210 static inline void ID3D11VideoContext_VideoProcessorSetOutputAlphaFillMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,UINT stream_idx) {
  10211     This->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
  10212 }
  10213 static inline void ID3D11VideoContext_VideoProcessorSetOutputConstriction(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL enable,SIZE size) {
  10214     This->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size);
  10215 }
  10216 static inline void ID3D11VideoContext_VideoProcessorSetOutputStereoMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL enable) {
  10217     This->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable);
  10218 }
  10219 static inline HRESULT ID3D11VideoContext_VideoProcessorSetOutputExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
  10220     return This->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data);
  10221 }
  10222 static inline void ID3D11VideoContext_VideoProcessorGetOutputTargetRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,RECT *rect) {
  10223     This->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect);
  10224 }
  10225 static inline void ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *y_cb_cr,D3D11_VIDEO_COLOR *color) {
  10226     This->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color);
  10227 }
  10228 static inline void ID3D11VideoContext_VideoProcessorGetOutputColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
  10229     This->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space);
  10230 }
  10231 static inline void ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,UINT *stream_idx) {
  10232     This->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
  10233 }
  10234 static inline void ID3D11VideoContext_VideoProcessorGetOutputConstriction(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,SIZE *size) {
  10235     This->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size);
  10236 }
  10237 static inline void ID3D11VideoContext_VideoProcessorGetOutputStereoMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *enabled) {
  10238     This->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled);
  10239 }
  10240 static inline HRESULT ID3D11VideoContext_VideoProcessorGetOutputExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
  10241     return This->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data);
  10242 }
  10243 static inline void ID3D11VideoContext_VideoProcessorSetStreamFrameFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT format) {
  10244     This->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format);
  10245 }
  10246 static inline void ID3D11VideoContext_VideoProcessorSetStreamColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
  10247     This->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space);
  10248 }
  10249 static inline void ID3D11VideoContext_VideoProcessorSetStreamOutputRate(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,WINBOOL repeat,const DXGI_RATIONAL *custom_rate) {
  10250     This->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
  10251 }
  10252 static inline void ID3D11VideoContext_VideoProcessorSetStreamSourceRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
  10253     This->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect);
  10254 }
  10255 static inline void ID3D11VideoContext_VideoProcessorSetStreamDestRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
  10256     This->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect);
  10257 }
  10258 static inline void ID3D11VideoContext_VideoProcessorSetStreamAlpha(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float alpha) {
  10259     This->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha);
  10260 }
  10261 static inline void ID3D11VideoContext_VideoProcessorSetStreamPalette(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,const UINT *entries) {
  10262     This->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries);
  10263 }
  10264 static inline void ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const DXGI_RATIONAL *src_aspect_ratio,const DXGI_RATIONAL *dst_aspect_ratio) {
  10265     This->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio);
  10266 }
  10267 static inline void ID3D11VideoContext_VideoProcessorSetStreamLumaKey(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float lower,float upper) {
  10268     This->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper);
  10269 }
  10270 static inline void ID3D11VideoContext_VideoProcessorSetStreamStereoFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,WINBOOL left_view_frame0,WINBOOL base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,int mono_offset) {
  10271     This->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
  10272 }
  10273 static inline void ID3D11VideoContext_VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable) {
  10274     This->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable);
  10275 }
  10276 static inline void ID3D11VideoContext_VideoProcessorSetStreamFilter(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL enable,int level) {
  10277     This->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level);
  10278 }
  10279 static inline HRESULT ID3D11VideoContext_VideoProcessorSetStreamExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
  10280     return This->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data);
  10281 }
  10282 static inline void ID3D11VideoContext_VideoProcessorGetStreamFrameFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT *format) {
  10283     This->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format);
  10284 }
  10285 static inline void ID3D11VideoContext_VideoProcessorGetStreamColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
  10286     This->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space);
  10287 }
  10288 static inline void ID3D11VideoContext_VideoProcessorGetStreamOutputRate(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,WINBOOL *repeat,DXGI_RATIONAL *custom_rate) {
  10289     This->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
  10290 }
  10291 static inline void ID3D11VideoContext_VideoProcessorGetStreamSourceRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
  10292     This->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect);
  10293 }
  10294 static inline void ID3D11VideoContext_VideoProcessorGetStreamDestRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
  10295     This->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect);
  10296 }
  10297 static inline void ID3D11VideoContext_VideoProcessorGetStreamAlpha(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *alpha) {
  10298     This->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha);
  10299 }
  10300 static inline void ID3D11VideoContext_VideoProcessorGetStreamPalette(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,UINT *entries) {
  10301     This->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries);
  10302 }
  10303 static inline void ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,DXGI_RATIONAL *src_aspect_ratio,DXGI_RATIONAL *dst_aspect_ratio) {
  10304     This->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio);
  10305 }
  10306 static inline void ID3D11VideoContext_VideoProcessorGetStreamLumaKey(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *lower,float *upper) {
  10307     This->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper);
  10308 }
  10309 static inline void ID3D11VideoContext_VideoProcessorGetStreamStereoFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,WINBOOL *left_view_frame0,WINBOOL *base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,int *mono_offset) {
  10310     This->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
  10311 }
  10312 static inline void ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled) {
  10313     This->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled);
  10314 }
  10315 static inline void ID3D11VideoContext_VideoProcessorGetStreamFilter(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL *enabled,int *level) {
  10316     This->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level);
  10317 }
  10318 static inline HRESULT ID3D11VideoContext_VideoProcessorGetStreamExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
  10319     return This->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data);
  10320 }
  10321 static inline HRESULT ID3D11VideoContext_VideoProcessorBlt(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,ID3D11VideoProcessorOutputView *view,UINT frame_idx,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM *streams) {
  10322     return This->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams);
  10323 }
  10324 static inline HRESULT ID3D11VideoContext_NegotiateCryptoSessionKeyExchange(ID3D11VideoContext* This,ID3D11CryptoSession *session,UINT data_size,void *data) {
  10325     return This->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data);
  10326 }
  10327 static inline void ID3D11VideoContext_EncryptionBlt(ID3D11VideoContext* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,UINT iv_size,void *iv) {
  10328     This->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv);
  10329 }
  10330 static inline void ID3D11VideoContext_DecryptionBlt(ID3D11VideoContext* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,D3D11_ENCRYPTED_BLOCK_INFO *block_info,UINT key_size,const void *key,UINT iv_size,void *iv) {
  10331     This->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv);
  10332 }
  10333 static inline void ID3D11VideoContext_StartSessionKeyRefresh(ID3D11VideoContext* This,ID3D11CryptoSession *session,UINT random_number_size,void *random_number) {
  10334     This->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number);
  10335 }
  10336 static inline void ID3D11VideoContext_FinishSessionKeyRefresh(ID3D11VideoContext* This,ID3D11CryptoSession *session) {
  10337     This->lpVtbl->FinishSessionKeyRefresh(This,session);
  10338 }
  10339 static inline HRESULT ID3D11VideoContext_GetEncryptionBltKey(ID3D11VideoContext* This,ID3D11CryptoSession *session,UINT key_size,void *key) {
  10340     return This->lpVtbl->GetEncryptionBltKey(This,session,key_size,key);
  10341 }
  10342 static inline HRESULT ID3D11VideoContext_NegotiateAuthenticatedChannelKeyExchange(ID3D11VideoContext* This,ID3D11AuthenticatedChannel *channel,UINT data_size,void *data) {
  10343     return This->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data);
  10344 }
  10345 static inline HRESULT ID3D11VideoContext_QueryAuthenticatedChannel(ID3D11VideoContext* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,UINT output_size,void *output) {
  10346     return This->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output);
  10347 }
  10348 static inline HRESULT ID3D11VideoContext_ConfigureAuthenticatedChannel(ID3D11VideoContext* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) {
  10349     return This->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output);
  10350 }
  10351 static inline void ID3D11VideoContext_VideoProcessorSetStreamRotation(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_ROTATION rotation) {
  10352     This->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation);
  10353 }
  10354 static inline void ID3D11VideoContext_VideoProcessorGetStreamRotation(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enable,D3D11_VIDEO_PROCESSOR_ROTATION *rotation) {
  10355     This->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation);
  10356 }
  10357 #endif
  10358 #endif
  10359 
  10360 #endif
  10361 
  10362 
  10363 #endif  /* __ID3D11VideoContext_INTERFACE_DEFINED__ */
  10364 
  10365 /*****************************************************************************
  10366  * ID3D11Device interface
  10367  */
  10368 #ifndef __ID3D11Device_INTERFACE_DEFINED__
  10369 #define __ID3D11Device_INTERFACE_DEFINED__
  10370 
  10371 DEFINE_GUID(IID_ID3D11Device, 0xdb6f6ddb, 0xac77, 0x4e88, 0x82,0x53, 0x81,0x9d,0xf9,0xbb,0xf1,0x40);
  10372 #if defined(__cplusplus) && !defined(CINTERFACE)
  10373 MIDL_INTERFACE("db6f6ddb-ac77-4e88-8253-819df9bbf140")
  10374 ID3D11Device : public IUnknown
  10375 {
  10376     virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
  10377         const D3D11_BUFFER_DESC *pDesc,
  10378         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10379         ID3D11Buffer **ppBuffer) = 0;
  10380 
  10381     virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
  10382         const D3D11_TEXTURE1D_DESC *pDesc,
  10383         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10384         ID3D11Texture1D **ppTexture1D) = 0;
  10385 
  10386     virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
  10387         const D3D11_TEXTURE2D_DESC *pDesc,
  10388         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10389         ID3D11Texture2D **ppTexture2D) = 0;
  10390 
  10391     virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
  10392         const D3D11_TEXTURE3D_DESC *pDesc,
  10393         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10394         ID3D11Texture3D **ppTexture3D) = 0;
  10395 
  10396     virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
  10397         ID3D11Resource *pResource,
  10398         const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
  10399         ID3D11ShaderResourceView **ppSRView) = 0;
  10400 
  10401     virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView(
  10402         ID3D11Resource *pResource,
  10403         const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  10404         ID3D11UnorderedAccessView **ppUAView) = 0;
  10405 
  10406     virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
  10407         ID3D11Resource *pResource,
  10408         const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
  10409         ID3D11RenderTargetView **ppRTView) = 0;
  10410 
  10411     virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
  10412         ID3D11Resource *pResource,
  10413         const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
  10414         ID3D11DepthStencilView **ppDepthStencilView) = 0;
  10415 
  10416     virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
  10417         const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
  10418         UINT NumElements,
  10419         const void *pShaderBytecodeWithInputSignature,
  10420         SIZE_T BytecodeLength,
  10421         ID3D11InputLayout **ppInputLayout) = 0;
  10422 
  10423     virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
  10424         const void *pShaderBytecode,
  10425         SIZE_T BytecodeLength,
  10426         ID3D11ClassLinkage *pClassLinkage,
  10427         ID3D11VertexShader **ppVertexShader) = 0;
  10428 
  10429     virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
  10430         const void *pShaderBytecode,
  10431         SIZE_T BytecodeLength,
  10432         ID3D11ClassLinkage *pClassLinkage,
  10433         ID3D11GeometryShader **ppGeometryShader) = 0;
  10434 
  10435     virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
  10436         const void *pShaderBytecode,
  10437         SIZE_T BytecodeLength,
  10438         const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
  10439         UINT NumEntries,
  10440         const UINT *pBufferStrides,
  10441         UINT NumStrides,
  10442         UINT RasterizedStream,
  10443         ID3D11ClassLinkage *pClassLinkage,
  10444         ID3D11GeometryShader **ppGeometryShader) = 0;
  10445 
  10446     virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
  10447         const void *pShaderBytecode,
  10448         SIZE_T BytecodeLength,
  10449         ID3D11ClassLinkage *pClassLinkage,
  10450         ID3D11PixelShader **ppPixelShader) = 0;
  10451 
  10452     virtual HRESULT STDMETHODCALLTYPE CreateHullShader(
  10453         const void *pShaderBytecode,
  10454         SIZE_T BytecodeLength,
  10455         ID3D11ClassLinkage *pClassLinkage,
  10456         ID3D11HullShader **ppHullShader) = 0;
  10457 
  10458     virtual HRESULT STDMETHODCALLTYPE CreateDomainShader(
  10459         const void *pShaderBytecode,
  10460         SIZE_T BytecodeLength,
  10461         ID3D11ClassLinkage *pClassLinkage,
  10462         ID3D11DomainShader **ppDomainShader) = 0;
  10463 
  10464     virtual HRESULT STDMETHODCALLTYPE CreateComputeShader(
  10465         const void *pShaderBytecode,
  10466         SIZE_T BytecodeLength,
  10467         ID3D11ClassLinkage *pClassLinkage,
  10468         ID3D11ComputeShader **ppComputeShader) = 0;
  10469 
  10470     virtual HRESULT STDMETHODCALLTYPE CreateClassLinkage(
  10471         ID3D11ClassLinkage **ppLinkage) = 0;
  10472 
  10473     virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
  10474         const D3D11_BLEND_DESC *pBlendStateDesc,
  10475         ID3D11BlendState **ppBlendState) = 0;
  10476 
  10477     virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
  10478         const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
  10479         ID3D11DepthStencilState **ppDepthStencilState) = 0;
  10480 
  10481     virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
  10482         const D3D11_RASTERIZER_DESC *pRasterizerDesc,
  10483         ID3D11RasterizerState **ppRasterizerState) = 0;
  10484 
  10485     virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
  10486         const D3D11_SAMPLER_DESC *pSamplerDesc,
  10487         ID3D11SamplerState **ppSamplerState) = 0;
  10488 
  10489     virtual HRESULT STDMETHODCALLTYPE CreateQuery(
  10490         const D3D11_QUERY_DESC *pQueryDesc,
  10491         ID3D11Query **ppQuery) = 0;
  10492 
  10493     virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
  10494         const D3D11_QUERY_DESC *pPredicateDesc,
  10495         ID3D11Predicate **ppPredicate) = 0;
  10496 
  10497     virtual HRESULT STDMETHODCALLTYPE CreateCounter(
  10498         const D3D11_COUNTER_DESC *pCounterDesc,
  10499         ID3D11Counter **ppCounter) = 0;
  10500 
  10501     virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext(
  10502         UINT ContextFlags,
  10503         ID3D11DeviceContext **ppDeferredContext) = 0;
  10504 
  10505     virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
  10506         HANDLE hResource,
  10507         REFIID ReturnedInterface,
  10508         void **ppResource) = 0;
  10509 
  10510     virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
  10511         DXGI_FORMAT Format,
  10512         UINT *pFormatSupport) = 0;
  10513 
  10514     virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
  10515         DXGI_FORMAT Format,
  10516         UINT SampleCount,
  10517         UINT *pNumQualityLevels) = 0;
  10518 
  10519     virtual void STDMETHODCALLTYPE CheckCounterInfo(
  10520         D3D11_COUNTER_INFO *pCounterInfo) = 0;
  10521 
  10522     virtual HRESULT STDMETHODCALLTYPE CheckCounter(
  10523         const D3D11_COUNTER_DESC *pDesc,
  10524         D3D11_COUNTER_TYPE *pType,
  10525         UINT *pActiveCounters,
  10526         LPSTR szName,
  10527         UINT *pNameLength,
  10528         LPSTR szUnits,
  10529         UINT *pUnitsLength,
  10530         LPSTR szDescription,
  10531         UINT *pDescriptionLength) = 0;
  10532 
  10533     virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
  10534         D3D11_FEATURE Feature,
  10535         void *pFeatureSupportData,
  10536         UINT FeatureSupportDataSize) = 0;
  10537 
  10538     virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
  10539         REFGUID guid,
  10540         UINT *pDataSize,
  10541         void *pData) = 0;
  10542 
  10543     virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
  10544         REFGUID guid,
  10545         UINT DataSize,
  10546         const void *pData) = 0;
  10547 
  10548     virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
  10549         REFGUID guid,
  10550         const IUnknown *pData) = 0;
  10551 
  10552     virtual D3D_FEATURE_LEVEL STDMETHODCALLTYPE GetFeatureLevel(
  10553         ) = 0;
  10554 
  10555     virtual UINT STDMETHODCALLTYPE GetCreationFlags(
  10556         ) = 0;
  10557 
  10558     virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
  10559         ) = 0;
  10560 
  10561     virtual void STDMETHODCALLTYPE GetImmediateContext(
  10562         ID3D11DeviceContext **ppImmediateContext) = 0;
  10563 
  10564     virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
  10565         UINT RaiseFlags) = 0;
  10566 
  10567     virtual UINT STDMETHODCALLTYPE GetExceptionMode(
  10568         ) = 0;
  10569 
  10570 };
  10571 #ifdef __CRT_UUID_DECL
  10572 __CRT_UUID_DECL(ID3D11Device, 0xdb6f6ddb, 0xac77, 0x4e88, 0x82,0x53, 0x81,0x9d,0xf9,0xbb,0xf1,0x40)
  10573 #endif
  10574 #else
  10575 typedef struct ID3D11DeviceVtbl {
  10576     BEGIN_INTERFACE
  10577 
  10578     /*** IUnknown methods ***/
  10579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10580         ID3D11Device *This,
  10581         REFIID riid,
  10582         void **ppvObject);
  10583 
  10584     ULONG (STDMETHODCALLTYPE *AddRef)(
  10585         ID3D11Device *This);
  10586 
  10587     ULONG (STDMETHODCALLTYPE *Release)(
  10588         ID3D11Device *This);
  10589 
  10590     /*** ID3D11Device methods ***/
  10591     HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
  10592         ID3D11Device *This,
  10593         const D3D11_BUFFER_DESC *pDesc,
  10594         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10595         ID3D11Buffer **ppBuffer);
  10596 
  10597     HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
  10598         ID3D11Device *This,
  10599         const D3D11_TEXTURE1D_DESC *pDesc,
  10600         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10601         ID3D11Texture1D **ppTexture1D);
  10602 
  10603     HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
  10604         ID3D11Device *This,
  10605         const D3D11_TEXTURE2D_DESC *pDesc,
  10606         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10607         ID3D11Texture2D **ppTexture2D);
  10608 
  10609     HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
  10610         ID3D11Device *This,
  10611         const D3D11_TEXTURE3D_DESC *pDesc,
  10612         const D3D11_SUBRESOURCE_DATA *pInitialData,
  10613         ID3D11Texture3D **ppTexture3D);
  10614 
  10615     HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
  10616         ID3D11Device *This,
  10617         ID3D11Resource *pResource,
  10618         const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
  10619         ID3D11ShaderResourceView **ppSRView);
  10620 
  10621     HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
  10622         ID3D11Device *This,
  10623         ID3D11Resource *pResource,
  10624         const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
  10625         ID3D11UnorderedAccessView **ppUAView);
  10626 
  10627     HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
  10628         ID3D11Device *This,
  10629         ID3D11Resource *pResource,
  10630         const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
  10631         ID3D11RenderTargetView **ppRTView);
  10632 
  10633     HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
  10634         ID3D11Device *This,
  10635         ID3D11Resource *pResource,
  10636         const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
  10637         ID3D11DepthStencilView **ppDepthStencilView);
  10638 
  10639     HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
  10640         ID3D11Device *This,
  10641         const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
  10642         UINT NumElements,
  10643         const void *pShaderBytecodeWithInputSignature,
  10644         SIZE_T BytecodeLength,
  10645         ID3D11InputLayout **ppInputLayout);
  10646 
  10647     HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
  10648         ID3D11Device *This,
  10649         const void *pShaderBytecode,
  10650         SIZE_T BytecodeLength,
  10651         ID3D11ClassLinkage *pClassLinkage,
  10652         ID3D11VertexShader **ppVertexShader);
  10653 
  10654     HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
  10655         ID3D11Device *This,
  10656         const void *pShaderBytecode,
  10657         SIZE_T BytecodeLength,
  10658         ID3D11ClassLinkage *pClassLinkage,
  10659         ID3D11GeometryShader **ppGeometryShader);
  10660 
  10661     HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
  10662         ID3D11Device *This,
  10663         const void *pShaderBytecode,
  10664         SIZE_T BytecodeLength,
  10665         const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
  10666         UINT NumEntries,
  10667         const UINT *pBufferStrides,
  10668         UINT NumStrides,
  10669         UINT RasterizedStream,
  10670         ID3D11ClassLinkage *pClassLinkage,
  10671         ID3D11GeometryShader **ppGeometryShader);
  10672 
  10673     HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
  10674         ID3D11Device *This,
  10675         const void *pShaderBytecode,
  10676         SIZE_T BytecodeLength,
  10677         ID3D11ClassLinkage *pClassLinkage,
  10678         ID3D11PixelShader **ppPixelShader);
  10679 
  10680     HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
  10681         ID3D11Device *This,
  10682         const void *pShaderBytecode,
  10683         SIZE_T BytecodeLength,
  10684         ID3D11ClassLinkage *pClassLinkage,
  10685         ID3D11HullShader **ppHullShader);
  10686 
  10687     HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
  10688         ID3D11Device *This,
  10689         const void *pShaderBytecode,
  10690         SIZE_T BytecodeLength,
  10691         ID3D11ClassLinkage *pClassLinkage,
  10692         ID3D11DomainShader **ppDomainShader);
  10693 
  10694     HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
  10695         ID3D11Device *This,
  10696         const void *pShaderBytecode,
  10697         SIZE_T BytecodeLength,
  10698         ID3D11ClassLinkage *pClassLinkage,
  10699         ID3D11ComputeShader **ppComputeShader);
  10700 
  10701     HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
  10702         ID3D11Device *This,
  10703         ID3D11ClassLinkage **ppLinkage);
  10704 
  10705     HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
  10706         ID3D11Device *This,
  10707         const D3D11_BLEND_DESC *pBlendStateDesc,
  10708         ID3D11BlendState **ppBlendState);
  10709 
  10710     HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
  10711         ID3D11Device *This,
  10712         const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
  10713         ID3D11DepthStencilState **ppDepthStencilState);
  10714 
  10715     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
  10716         ID3D11Device *This,
  10717         const D3D11_RASTERIZER_DESC *pRasterizerDesc,
  10718         ID3D11RasterizerState **ppRasterizerState);
  10719 
  10720     HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
  10721         ID3D11Device *This,
  10722         const D3D11_SAMPLER_DESC *pSamplerDesc,
  10723         ID3D11SamplerState **ppSamplerState);
  10724 
  10725     HRESULT (STDMETHODCALLTYPE *CreateQuery)(
  10726         ID3D11Device *This,
  10727         const D3D11_QUERY_DESC *pQueryDesc,
  10728         ID3D11Query **ppQuery);
  10729 
  10730     HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
  10731         ID3D11Device *This,
  10732         const D3D11_QUERY_DESC *pPredicateDesc,
  10733         ID3D11Predicate **ppPredicate);
  10734 
  10735     HRESULT (STDMETHODCALLTYPE *CreateCounter)(
  10736         ID3D11Device *This,
  10737         const D3D11_COUNTER_DESC *pCounterDesc,
  10738         ID3D11Counter **ppCounter);
  10739 
  10740     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
  10741         ID3D11Device *This,
  10742         UINT ContextFlags,
  10743         ID3D11DeviceContext **ppDeferredContext);
  10744 
  10745     HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
  10746         ID3D11Device *This,
  10747         HANDLE hResource,
  10748         REFIID ReturnedInterface,
  10749         void **ppResource);
  10750 
  10751     HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
  10752         ID3D11Device *This,
  10753         DXGI_FORMAT Format,
  10754         UINT *pFormatSupport);
  10755 
  10756     HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
  10757         ID3D11Device *This,
  10758         DXGI_FORMAT Format,
  10759         UINT SampleCount,
  10760         UINT *pNumQualityLevels);
  10761 
  10762     void (STDMETHODCALLTYPE *CheckCounterInfo)(
  10763         ID3D11Device *This,
  10764         D3D11_COUNTER_INFO *pCounterInfo);
  10765 
  10766     HRESULT (STDMETHODCALLTYPE *CheckCounter)(
  10767         ID3D11Device *This,
  10768         const D3D11_COUNTER_DESC *pDesc,
  10769         D3D11_COUNTER_TYPE *pType,
  10770         UINT *pActiveCounters,
  10771         LPSTR szName,
  10772         UINT *pNameLength,
  10773         LPSTR szUnits,
  10774         UINT *pUnitsLength,
  10775         LPSTR szDescription,
  10776         UINT *pDescriptionLength);
  10777 
  10778     HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
  10779         ID3D11Device *This,
  10780         D3D11_FEATURE Feature,
  10781         void *pFeatureSupportData,
  10782         UINT FeatureSupportDataSize);
  10783 
  10784     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
  10785         ID3D11Device *This,
  10786         REFGUID guid,
  10787         UINT *pDataSize,
  10788         void *pData);
  10789 
  10790     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
  10791         ID3D11Device *This,
  10792         REFGUID guid,
  10793         UINT DataSize,
  10794         const void *pData);
  10795 
  10796     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
  10797         ID3D11Device *This,
  10798         REFGUID guid,
  10799         const IUnknown *pData);
  10800 
  10801     D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
  10802         ID3D11Device *This);
  10803 
  10804     UINT (STDMETHODCALLTYPE *GetCreationFlags)(
  10805         ID3D11Device *This);
  10806 
  10807     HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
  10808         ID3D11Device *This);
  10809 
  10810     void (STDMETHODCALLTYPE *GetImmediateContext)(
  10811         ID3D11Device *This,
  10812         ID3D11DeviceContext **ppImmediateContext);
  10813 
  10814     HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
  10815         ID3D11Device *This,
  10816         UINT RaiseFlags);
  10817 
  10818     UINT (STDMETHODCALLTYPE *GetExceptionMode)(
  10819         ID3D11Device *This);
  10820 
  10821     END_INTERFACE
  10822 } ID3D11DeviceVtbl;
  10823 
  10824 interface ID3D11Device {
  10825     CONST_VTBL ID3D11DeviceVtbl* lpVtbl;
  10826 };
  10827 
  10828 #ifdef COBJMACROS
  10829 #ifndef WIDL_C_INLINE_WRAPPERS
  10830 /*** IUnknown methods ***/
  10831 #define ID3D11Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10832 #define ID3D11Device_AddRef(This) (This)->lpVtbl->AddRef(This)
  10833 #define ID3D11Device_Release(This) (This)->lpVtbl->Release(This)
  10834 /*** ID3D11Device methods ***/
  10835 #define ID3D11Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
  10836 #define ID3D11Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
  10837 #define ID3D11Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
  10838 #define ID3D11Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
  10839 #define ID3D11Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
  10840 #define ID3D11Device_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
  10841 #define ID3D11Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
  10842 #define ID3D11Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
  10843 #define ID3D11Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
  10844 #define ID3D11Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
  10845 #define ID3D11Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
  10846 #define ID3D11Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
  10847 #define ID3D11Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
  10848 #define ID3D11Device_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
  10849 #define ID3D11Device_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
  10850 #define ID3D11Device_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
  10851 #define ID3D11Device_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
  10852 #define ID3D11Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
  10853 #define ID3D11Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
  10854 #define ID3D11Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
  10855 #define ID3D11Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
  10856 #define ID3D11Device_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
  10857 #define ID3D11Device_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
  10858 #define ID3D11Device_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
  10859 #define ID3D11Device_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
  10860 #define ID3D11Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
  10861 #define ID3D11Device_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
  10862 #define ID3D11Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
  10863 #define ID3D11Device_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
  10864 #define ID3D11Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
  10865 #define ID3D11Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
  10866 #define ID3D11Device_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
  10867 #define ID3D11Device_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
  10868 #define ID3D11Device_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
  10869 #define ID3D11Device_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
  10870 #define ID3D11Device_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
  10871 #define ID3D11Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
  10872 #define ID3D11Device_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
  10873 #define ID3D11Device_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
  10874 #define ID3D11Device_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
  10875 #else
  10876 /*** IUnknown methods ***/
  10877 static inline HRESULT ID3D11Device_QueryInterface(ID3D11Device* This,REFIID riid,void **ppvObject) {
  10878     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10879 }
  10880 static inline ULONG ID3D11Device_AddRef(ID3D11Device* This) {
  10881     return This->lpVtbl->AddRef(This);
  10882 }
  10883 static inline ULONG ID3D11Device_Release(ID3D11Device* This) {
  10884     return This->lpVtbl->Release(This);
  10885 }
  10886 /*** ID3D11Device methods ***/
  10887 static inline HRESULT ID3D11Device_CreateBuffer(ID3D11Device* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
  10888     return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
  10889 }
  10890 static inline HRESULT ID3D11Device_CreateTexture1D(ID3D11Device* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
  10891     return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
  10892 }
  10893 static inline HRESULT ID3D11Device_CreateTexture2D(ID3D11Device* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
  10894     return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
  10895 }
  10896 static inline HRESULT ID3D11Device_CreateTexture3D(ID3D11Device* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
  10897     return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
  10898 }
  10899 static inline HRESULT ID3D11Device_CreateShaderResourceView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
  10900     return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
  10901 }
  10902 static inline HRESULT ID3D11Device_CreateUnorderedAccessView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
  10903     return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
  10904 }
  10905 static inline HRESULT ID3D11Device_CreateRenderTargetView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
  10906     return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
  10907 }
  10908 static inline HRESULT ID3D11Device_CreateDepthStencilView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
  10909     return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
  10910 }
  10911 static inline HRESULT ID3D11Device_CreateInputLayout(ID3D11Device* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
  10912     return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
  10913 }
  10914 static inline HRESULT ID3D11Device_CreateVertexShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
  10915     return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
  10916 }
  10917 static inline HRESULT ID3D11Device_CreateGeometryShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
  10918     return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
  10919 }
  10920 static inline HRESULT ID3D11Device_CreateGeometryShaderWithStreamOutput(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
  10921     return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
  10922 }
  10923 static inline HRESULT ID3D11Device_CreatePixelShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
  10924     return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
  10925 }
  10926 static inline HRESULT ID3D11Device_CreateHullShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
  10927     return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
  10928 }
  10929 static inline HRESULT ID3D11Device_CreateDomainShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
  10930     return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
  10931 }
  10932 static inline HRESULT ID3D11Device_CreateComputeShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
  10933     return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
  10934 }
  10935 static inline HRESULT ID3D11Device_CreateClassLinkage(ID3D11Device* This,ID3D11ClassLinkage **ppLinkage) {
  10936     return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
  10937 }
  10938 static inline HRESULT ID3D11Device_CreateBlendState(ID3D11Device* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
  10939     return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
  10940 }
  10941 static inline HRESULT ID3D11Device_CreateDepthStencilState(ID3D11Device* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
  10942     return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
  10943 }
  10944 static inline HRESULT ID3D11Device_CreateRasterizerState(ID3D11Device* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
  10945     return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
  10946 }
  10947 static inline HRESULT ID3D11Device_CreateSamplerState(ID3D11Device* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
  10948     return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
  10949 }
  10950 static inline HRESULT ID3D11Device_CreateQuery(ID3D11Device* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
  10951     return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
  10952 }
  10953 static inline HRESULT ID3D11Device_CreatePredicate(ID3D11Device* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
  10954     return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
  10955 }
  10956 static inline HRESULT ID3D11Device_CreateCounter(ID3D11Device* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
  10957     return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
  10958 }
  10959 static inline HRESULT ID3D11Device_CreateDeferredContext(ID3D11Device* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
  10960     return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
  10961 }
  10962 static inline HRESULT ID3D11Device_OpenSharedResource(ID3D11Device* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
  10963     return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
  10964 }
  10965 static inline HRESULT ID3D11Device_CheckFormatSupport(ID3D11Device* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
  10966     return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
  10967 }
  10968 static inline HRESULT ID3D11Device_CheckMultisampleQualityLevels(ID3D11Device* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
  10969     return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
  10970 }
  10971 static inline void ID3D11Device_CheckCounterInfo(ID3D11Device* This,D3D11_COUNTER_INFO *pCounterInfo) {
  10972     This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
  10973 }
  10974 static inline HRESULT ID3D11Device_CheckCounter(ID3D11Device* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
  10975     return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
  10976 }
  10977 static inline HRESULT ID3D11Device_CheckFeatureSupport(ID3D11Device* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
  10978     return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
  10979 }
  10980 static inline HRESULT ID3D11Device_GetPrivateData(ID3D11Device* This,REFGUID guid,UINT *pDataSize,void *pData) {
  10981     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
  10982 }
  10983 static inline HRESULT ID3D11Device_SetPrivateData(ID3D11Device* This,REFGUID guid,UINT DataSize,const void *pData) {
  10984     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
  10985 }
  10986 static inline HRESULT ID3D11Device_SetPrivateDataInterface(ID3D11Device* This,REFGUID guid,const IUnknown *pData) {
  10987     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
  10988 }
  10989 static inline D3D_FEATURE_LEVEL ID3D11Device_GetFeatureLevel(ID3D11Device* This) {
  10990     return This->lpVtbl->GetFeatureLevel(This);
  10991 }
  10992 static inline UINT ID3D11Device_GetCreationFlags(ID3D11Device* This) {
  10993     return This->lpVtbl->GetCreationFlags(This);
  10994 }
  10995 static inline HRESULT ID3D11Device_GetDeviceRemovedReason(ID3D11Device* This) {
  10996     return This->lpVtbl->GetDeviceRemovedReason(This);
  10997 }
  10998 static inline void ID3D11Device_GetImmediateContext(ID3D11Device* This,ID3D11DeviceContext **ppImmediateContext) {
  10999     This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
  11000 }
  11001 static inline HRESULT ID3D11Device_SetExceptionMode(ID3D11Device* This,UINT RaiseFlags) {
  11002     return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
  11003 }
  11004 static inline UINT ID3D11Device_GetExceptionMode(ID3D11Device* This) {
  11005     return This->lpVtbl->GetExceptionMode(This);
  11006 }
  11007 #endif
  11008 #endif
  11009 
  11010 #endif
  11011 
  11012 
  11013 #endif  /* __ID3D11Device_INTERFACE_DEFINED__ */
  11014 
  11015 typedef enum D3D11_CREATE_DEVICE_FLAG {
  11016     D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1,
  11017     D3D11_CREATE_DEVICE_DEBUG = 0x2,
  11018     D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
  11019     D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
  11020     D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
  11021     D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40,
  11022     D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
  11023     D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100,
  11024     D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800
  11025 } D3D11_CREATE_DEVICE_FLAG;
  11026 typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT {
  11027     D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x1,
  11028     D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x2
  11029 } D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT;
  11030 #define D3D11_SDK_VERSION (7)
  11031 
  11032 #include <d3d10_1.h>
  11033 #ifndef D3D11_IGNORE_SDK_LAYERS
  11034 # include <d3d11sdklayers.h>
  11035 #endif
  11036 #include <d3d10misc.h>
  11037 #include <d3d10shader.h>
  11038 #include <d3d10effect.h>
  11039 #include <d3d10_1shader.h>
  11040 #define _FACD3D11 (0x87c)
  11041 
  11042 #define MAKE_D3D11_HRESULT(code) MAKE_HRESULT(SEVERITY_ERROR, _FACD3D11, code)
  11043 typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,
  11044     const D3D_FEATURE_LEVEL*,UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);
  11045 HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,const D3D_FEATURE_LEVEL*,
  11046     UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);
  11047 typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,
  11048     const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,
  11049     D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);
  11050 HRESULT __stdcall  D3D11CreateDeviceAndSwapChain(IDXGIAdapter *adapter,D3D_DRIVER_TYPE driver_type,HMODULE swrast,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT levels,UINT sdk_version,const DXGI_SWAP_CHAIN_DESC *swapchain_desc,IDXGISwapChain **swapchain,ID3D11Device **device,D3D_FEATURE_LEVEL *obtained_feature_level,ID3D11DeviceContext **immediate_context);
  11051 
  11052 /* Begin additional prototypes for all interfaces */
  11053 
  11054 
  11055 /* End additional prototypes */
  11056 
  11057 #ifdef __cplusplus
  11058 }
  11059 #endif
  11060 
  11061 #endif /* __d3d11_h__ */