zig

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

blob 5cd3e793 (148398B) - Raw


      1 /*** Autogenerated by WIDL 8.21 from include/d3d11_4.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_4_h__
     17 #define __d3d11_4_h__
     18 
     19 #ifndef __WIDL_INLINE
     20 #if defined(__cplusplus) || defined(_MSC_VER)
     21 #define __WIDL_INLINE inline
     22 #elif defined(__GNUC__)
     23 #define __WIDL_INLINE __inline__
     24 #endif
     25 #endif
     26 
     27 /* Forward declarations */
     28 
     29 #ifndef __ID3D11Device4_FWD_DEFINED__
     30 #define __ID3D11Device4_FWD_DEFINED__
     31 typedef interface ID3D11Device4 ID3D11Device4;
     32 #ifdef __cplusplus
     33 interface ID3D11Device4;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __ID3D11Device5_FWD_DEFINED__
     38 #define __ID3D11Device5_FWD_DEFINED__
     39 typedef interface ID3D11Device5 ID3D11Device5;
     40 #ifdef __cplusplus
     41 interface ID3D11Device5;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __ID3D11Multithread_FWD_DEFINED__
     46 #define __ID3D11Multithread_FWD_DEFINED__
     47 typedef interface ID3D11Multithread ID3D11Multithread;
     48 #ifdef __cplusplus
     49 interface ID3D11Multithread;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __ID3D11VideoContext2_FWD_DEFINED__
     54 #define __ID3D11VideoContext2_FWD_DEFINED__
     55 typedef interface ID3D11VideoContext2 ID3D11VideoContext2;
     56 #ifdef __cplusplus
     57 interface ID3D11VideoContext2;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 /* Headers for imported files */
     62 
     63 #include <oaidl.h>
     64 #include <ocidl.h>
     65 #include <dxgi1_5.h>
     66 #include <d3dcommon.h>
     67 #include <d3d11_3.h>
     68 
     69 #ifdef __cplusplus
     70 extern "C" {
     71 #endif
     72 
     73 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4 {
     74     WINBOOL ExtendedNV12SharedTextureSupported;
     75 } D3D11_FEATURE_DATA_D3D11_OPTIONS4;
     76 /*****************************************************************************
     77  * ID3D11Device4 interface
     78  */
     79 #ifndef __ID3D11Device4_INTERFACE_DEFINED__
     80 #define __ID3D11Device4_INTERFACE_DEFINED__
     81 
     82 DEFINE_GUID(IID_ID3D11Device4, 0x8992ab71, 0x02e6, 0x4b8d, 0xba,0x48, 0xb0,0x56,0xdc,0xda,0x42,0xc4);
     83 #if defined(__cplusplus) && !defined(CINTERFACE)
     84 MIDL_INTERFACE("8992ab71-02e6-4b8d-ba48-b056dcda42c4")
     85 ID3D11Device4 : public ID3D11Device3
     86 {
     87     virtual HRESULT STDMETHODCALLTYPE RegisterDeviceRemovedEvent(
     88         HANDLE event,
     89         DWORD *cookie) = 0;
     90 
     91     virtual void STDMETHODCALLTYPE UnregisterDeviceRemoved(
     92         DWORD cookie) = 0;
     93 
     94 };
     95 #ifdef __CRT_UUID_DECL
     96 __CRT_UUID_DECL(ID3D11Device4, 0x8992ab71, 0x02e6, 0x4b8d, 0xba,0x48, 0xb0,0x56,0xdc,0xda,0x42,0xc4)
     97 #endif
     98 #else
     99 typedef struct ID3D11Device4Vtbl {
    100     BEGIN_INTERFACE
    101 
    102     /*** IUnknown methods ***/
    103     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    104         ID3D11Device4 *This,
    105         REFIID riid,
    106         void **ppvObject);
    107 
    108     ULONG (STDMETHODCALLTYPE *AddRef)(
    109         ID3D11Device4 *This);
    110 
    111     ULONG (STDMETHODCALLTYPE *Release)(
    112         ID3D11Device4 *This);
    113 
    114     /*** ID3D11Device methods ***/
    115     HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
    116         ID3D11Device4 *This,
    117         const D3D11_BUFFER_DESC *pDesc,
    118         const D3D11_SUBRESOURCE_DATA *pInitialData,
    119         ID3D11Buffer **ppBuffer);
    120 
    121     HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
    122         ID3D11Device4 *This,
    123         const D3D11_TEXTURE1D_DESC *pDesc,
    124         const D3D11_SUBRESOURCE_DATA *pInitialData,
    125         ID3D11Texture1D **ppTexture1D);
    126 
    127     HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
    128         ID3D11Device4 *This,
    129         const D3D11_TEXTURE2D_DESC *pDesc,
    130         const D3D11_SUBRESOURCE_DATA *pInitialData,
    131         ID3D11Texture2D **ppTexture2D);
    132 
    133     HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
    134         ID3D11Device4 *This,
    135         const D3D11_TEXTURE3D_DESC *pDesc,
    136         const D3D11_SUBRESOURCE_DATA *pInitialData,
    137         ID3D11Texture3D **ppTexture3D);
    138 
    139     HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
    140         ID3D11Device4 *This,
    141         ID3D11Resource *pResource,
    142         const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
    143         ID3D11ShaderResourceView **ppSRView);
    144 
    145     HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
    146         ID3D11Device4 *This,
    147         ID3D11Resource *pResource,
    148         const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
    149         ID3D11UnorderedAccessView **ppUAView);
    150 
    151     HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
    152         ID3D11Device4 *This,
    153         ID3D11Resource *pResource,
    154         const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
    155         ID3D11RenderTargetView **ppRTView);
    156 
    157     HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
    158         ID3D11Device4 *This,
    159         ID3D11Resource *pResource,
    160         const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
    161         ID3D11DepthStencilView **ppDepthStencilView);
    162 
    163     HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
    164         ID3D11Device4 *This,
    165         const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
    166         UINT NumElements,
    167         const void *pShaderBytecodeWithInputSignature,
    168         SIZE_T BytecodeLength,
    169         ID3D11InputLayout **ppInputLayout);
    170 
    171     HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
    172         ID3D11Device4 *This,
    173         const void *pShaderBytecode,
    174         SIZE_T BytecodeLength,
    175         ID3D11ClassLinkage *pClassLinkage,
    176         ID3D11VertexShader **ppVertexShader);
    177 
    178     HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
    179         ID3D11Device4 *This,
    180         const void *pShaderBytecode,
    181         SIZE_T BytecodeLength,
    182         ID3D11ClassLinkage *pClassLinkage,
    183         ID3D11GeometryShader **ppGeometryShader);
    184 
    185     HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
    186         ID3D11Device4 *This,
    187         const void *pShaderBytecode,
    188         SIZE_T BytecodeLength,
    189         const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
    190         UINT NumEntries,
    191         const UINT *pBufferStrides,
    192         UINT NumStrides,
    193         UINT RasterizedStream,
    194         ID3D11ClassLinkage *pClassLinkage,
    195         ID3D11GeometryShader **ppGeometryShader);
    196 
    197     HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
    198         ID3D11Device4 *This,
    199         const void *pShaderBytecode,
    200         SIZE_T BytecodeLength,
    201         ID3D11ClassLinkage *pClassLinkage,
    202         ID3D11PixelShader **ppPixelShader);
    203 
    204     HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
    205         ID3D11Device4 *This,
    206         const void *pShaderBytecode,
    207         SIZE_T BytecodeLength,
    208         ID3D11ClassLinkage *pClassLinkage,
    209         ID3D11HullShader **ppHullShader);
    210 
    211     HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
    212         ID3D11Device4 *This,
    213         const void *pShaderBytecode,
    214         SIZE_T BytecodeLength,
    215         ID3D11ClassLinkage *pClassLinkage,
    216         ID3D11DomainShader **ppDomainShader);
    217 
    218     HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
    219         ID3D11Device4 *This,
    220         const void *pShaderBytecode,
    221         SIZE_T BytecodeLength,
    222         ID3D11ClassLinkage *pClassLinkage,
    223         ID3D11ComputeShader **ppComputeShader);
    224 
    225     HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
    226         ID3D11Device4 *This,
    227         ID3D11ClassLinkage **ppLinkage);
    228 
    229     HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
    230         ID3D11Device4 *This,
    231         const D3D11_BLEND_DESC *pBlendStateDesc,
    232         ID3D11BlendState **ppBlendState);
    233 
    234     HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
    235         ID3D11Device4 *This,
    236         const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
    237         ID3D11DepthStencilState **ppDepthStencilState);
    238 
    239     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
    240         ID3D11Device4 *This,
    241         const D3D11_RASTERIZER_DESC *pRasterizerDesc,
    242         ID3D11RasterizerState **ppRasterizerState);
    243 
    244     HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
    245         ID3D11Device4 *This,
    246         const D3D11_SAMPLER_DESC *pSamplerDesc,
    247         ID3D11SamplerState **ppSamplerState);
    248 
    249     HRESULT (STDMETHODCALLTYPE *CreateQuery)(
    250         ID3D11Device4 *This,
    251         const D3D11_QUERY_DESC *pQueryDesc,
    252         ID3D11Query **ppQuery);
    253 
    254     HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
    255         ID3D11Device4 *This,
    256         const D3D11_QUERY_DESC *pPredicateDesc,
    257         ID3D11Predicate **ppPredicate);
    258 
    259     HRESULT (STDMETHODCALLTYPE *CreateCounter)(
    260         ID3D11Device4 *This,
    261         const D3D11_COUNTER_DESC *pCounterDesc,
    262         ID3D11Counter **ppCounter);
    263 
    264     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
    265         ID3D11Device4 *This,
    266         UINT ContextFlags,
    267         ID3D11DeviceContext **ppDeferredContext);
    268 
    269     HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
    270         ID3D11Device4 *This,
    271         HANDLE hResource,
    272         REFIID ReturnedInterface,
    273         void **ppResource);
    274 
    275     HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
    276         ID3D11Device4 *This,
    277         DXGI_FORMAT Format,
    278         UINT *pFormatSupport);
    279 
    280     HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
    281         ID3D11Device4 *This,
    282         DXGI_FORMAT Format,
    283         UINT SampleCount,
    284         UINT *pNumQualityLevels);
    285 
    286     void (STDMETHODCALLTYPE *CheckCounterInfo)(
    287         ID3D11Device4 *This,
    288         D3D11_COUNTER_INFO *pCounterInfo);
    289 
    290     HRESULT (STDMETHODCALLTYPE *CheckCounter)(
    291         ID3D11Device4 *This,
    292         const D3D11_COUNTER_DESC *pDesc,
    293         D3D11_COUNTER_TYPE *pType,
    294         UINT *pActiveCounters,
    295         LPSTR szName,
    296         UINT *pNameLength,
    297         LPSTR szUnits,
    298         UINT *pUnitsLength,
    299         LPSTR szDescription,
    300         UINT *pDescriptionLength);
    301 
    302     HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
    303         ID3D11Device4 *This,
    304         D3D11_FEATURE Feature,
    305         void *pFeatureSupportData,
    306         UINT FeatureSupportDataSize);
    307 
    308     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
    309         ID3D11Device4 *This,
    310         REFGUID guid,
    311         UINT *pDataSize,
    312         void *pData);
    313 
    314     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
    315         ID3D11Device4 *This,
    316         REFGUID guid,
    317         UINT DataSize,
    318         const void *pData);
    319 
    320     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
    321         ID3D11Device4 *This,
    322         REFGUID guid,
    323         const IUnknown *pData);
    324 
    325     D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
    326         ID3D11Device4 *This);
    327 
    328     UINT (STDMETHODCALLTYPE *GetCreationFlags)(
    329         ID3D11Device4 *This);
    330 
    331     HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
    332         ID3D11Device4 *This);
    333 
    334     void (STDMETHODCALLTYPE *GetImmediateContext)(
    335         ID3D11Device4 *This,
    336         ID3D11DeviceContext **ppImmediateContext);
    337 
    338     HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
    339         ID3D11Device4 *This,
    340         UINT RaiseFlags);
    341 
    342     UINT (STDMETHODCALLTYPE *GetExceptionMode)(
    343         ID3D11Device4 *This);
    344 
    345     /*** ID3D11Device1 methods ***/
    346     void (STDMETHODCALLTYPE *GetImmediateContext1)(
    347         ID3D11Device4 *This,
    348         ID3D11DeviceContext1 **ppImmediateContext);
    349 
    350     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
    351         ID3D11Device4 *This,
    352         UINT ContextFlags,
    353         ID3D11DeviceContext1 **ppDeferredContext);
    354 
    355     HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
    356         ID3D11Device4 *This,
    357         const D3D11_BLEND_DESC1 *pBlendStateDesc,
    358         ID3D11BlendState1 **ppBlendState);
    359 
    360     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
    361         ID3D11Device4 *This,
    362         const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
    363         ID3D11RasterizerState1 **ppRasterizerState);
    364 
    365     HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
    366         ID3D11Device4 *This,
    367         UINT Flags,
    368         const D3D_FEATURE_LEVEL *pFeatureLevels,
    369         UINT FeatureLevels,
    370         UINT SDKVersion,
    371         REFIID EmulatedInterface,
    372         D3D_FEATURE_LEVEL *pChosenFeatureLevel,
    373         ID3DDeviceContextState **ppContextState);
    374 
    375     HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
    376         ID3D11Device4 *This,
    377         HANDLE hResource,
    378         REFIID returnedInterface,
    379         void **ppResource);
    380 
    381     HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
    382         ID3D11Device4 *This,
    383         LPCWSTR lpName,
    384         DWORD dwDesiredAccess,
    385         REFIID returnedInterface,
    386         void **ppResource);
    387 
    388     /*** ID3D11Device2 methods ***/
    389     void (STDMETHODCALLTYPE *GetImmediateContext2)(
    390         ID3D11Device4 *This,
    391         ID3D11DeviceContext2 **context);
    392 
    393     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext2)(
    394         ID3D11Device4 *This,
    395         UINT flags,
    396         ID3D11DeviceContext2 **context);
    397 
    398     void (STDMETHODCALLTYPE *GetResourceTiling)(
    399         ID3D11Device4 *This,
    400         ID3D11Resource *resource,
    401         UINT *tile_count,
    402         D3D11_PACKED_MIP_DESC *mip_desc,
    403         D3D11_TILE_SHAPE *tile_shape,
    404         UINT *subresource_tiling_count,
    405         UINT first_subresource_tiling,
    406         D3D11_SUBRESOURCE_TILING *subresource_tiling);
    407 
    408     HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels1)(
    409         ID3D11Device4 *This,
    410         DXGI_FORMAT format,
    411         UINT sample_count,
    412         UINT flags,
    413         UINT *quality_level_count);
    414 
    415     /*** ID3D11Device3 methods ***/
    416     HRESULT (STDMETHODCALLTYPE *CreateTexture2D1)(
    417         ID3D11Device4 *This,
    418         const D3D11_TEXTURE2D_DESC1 *desc,
    419         const D3D11_SUBRESOURCE_DATA *initial_data,
    420         ID3D11Texture2D1 **texture);
    421 
    422     HRESULT (STDMETHODCALLTYPE *CreateTexture3D1)(
    423         ID3D11Device4 *This,
    424         const D3D11_TEXTURE3D_DESC1 *desc,
    425         const D3D11_SUBRESOURCE_DATA *initial_data,
    426         ID3D11Texture3D1 **texture);
    427 
    428     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState2)(
    429         ID3D11Device4 *This,
    430         const D3D11_RASTERIZER_DESC2 *desc,
    431         ID3D11RasterizerState2 **state);
    432 
    433     HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView1)(
    434         ID3D11Device4 *This,
    435         ID3D11Resource *resource,
    436         const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
    437         ID3D11ShaderResourceView1 **view);
    438 
    439     HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView1)(
    440         ID3D11Device4 *This,
    441         ID3D11Resource *resource,
    442         const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
    443         ID3D11UnorderedAccessView1 **view);
    444 
    445     HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView1)(
    446         ID3D11Device4 *This,
    447         ID3D11Resource *resource,
    448         const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
    449         ID3D11RenderTargetView1 **view);
    450 
    451     HRESULT (STDMETHODCALLTYPE *CreateQuery1)(
    452         ID3D11Device4 *This,
    453         const D3D11_QUERY_DESC1 *desc,
    454         ID3D11Query1 **query);
    455 
    456     void (STDMETHODCALLTYPE *GetImmediateContext3)(
    457         ID3D11Device4 *This,
    458         ID3D11DeviceContext3 **context);
    459 
    460     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext3)(
    461         ID3D11Device4 *This,
    462         UINT flags,
    463         ID3D11DeviceContext3 **context);
    464 
    465     void (STDMETHODCALLTYPE *WriteToSubresource)(
    466         ID3D11Device4 *This,
    467         ID3D11Resource *dst_resource,
    468         UINT dst_subresource,
    469         const D3D11_BOX *dst_box,
    470         const void *src_data,
    471         UINT src_row_pitch,
    472         UINT src_depth_pitch);
    473 
    474     void (STDMETHODCALLTYPE *ReadFromSubresource)(
    475         ID3D11Device4 *This,
    476         void *dst_data,
    477         UINT dst_row_pitch,
    478         UINT dst_depth_pitch,
    479         ID3D11Resource *src_resource,
    480         UINT src_subresource,
    481         const D3D11_BOX *src_box);
    482 
    483     /*** ID3D11Device4 methods ***/
    484     HRESULT (STDMETHODCALLTYPE *RegisterDeviceRemovedEvent)(
    485         ID3D11Device4 *This,
    486         HANDLE event,
    487         DWORD *cookie);
    488 
    489     void (STDMETHODCALLTYPE *UnregisterDeviceRemoved)(
    490         ID3D11Device4 *This,
    491         DWORD cookie);
    492 
    493     END_INTERFACE
    494 } ID3D11Device4Vtbl;
    495 
    496 interface ID3D11Device4 {
    497     CONST_VTBL ID3D11Device4Vtbl* lpVtbl;
    498 };
    499 
    500 #ifdef COBJMACROS
    501 #ifndef WIDL_C_INLINE_WRAPPERS
    502 /*** IUnknown methods ***/
    503 #define ID3D11Device4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    504 #define ID3D11Device4_AddRef(This) (This)->lpVtbl->AddRef(This)
    505 #define ID3D11Device4_Release(This) (This)->lpVtbl->Release(This)
    506 /*** ID3D11Device methods ***/
    507 #define ID3D11Device4_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
    508 #define ID3D11Device4_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
    509 #define ID3D11Device4_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
    510 #define ID3D11Device4_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
    511 #define ID3D11Device4_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
    512 #define ID3D11Device4_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
    513 #define ID3D11Device4_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
    514 #define ID3D11Device4_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
    515 #define ID3D11Device4_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
    516 #define ID3D11Device4_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
    517 #define ID3D11Device4_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
    518 #define ID3D11Device4_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
    519 #define ID3D11Device4_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
    520 #define ID3D11Device4_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
    521 #define ID3D11Device4_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
    522 #define ID3D11Device4_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
    523 #define ID3D11Device4_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
    524 #define ID3D11Device4_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
    525 #define ID3D11Device4_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
    526 #define ID3D11Device4_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
    527 #define ID3D11Device4_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
    528 #define ID3D11Device4_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
    529 #define ID3D11Device4_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
    530 #define ID3D11Device4_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
    531 #define ID3D11Device4_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
    532 #define ID3D11Device4_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
    533 #define ID3D11Device4_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
    534 #define ID3D11Device4_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
    535 #define ID3D11Device4_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
    536 #define ID3D11Device4_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
    537 #define ID3D11Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
    538 #define ID3D11Device4_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
    539 #define ID3D11Device4_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
    540 #define ID3D11Device4_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
    541 #define ID3D11Device4_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
    542 #define ID3D11Device4_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
    543 #define ID3D11Device4_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
    544 #define ID3D11Device4_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
    545 #define ID3D11Device4_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
    546 #define ID3D11Device4_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
    547 /*** ID3D11Device1 methods ***/
    548 #define ID3D11Device4_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
    549 #define ID3D11Device4_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
    550 #define ID3D11Device4_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
    551 #define ID3D11Device4_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
    552 #define ID3D11Device4_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
    553 #define ID3D11Device4_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
    554 #define ID3D11Device4_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
    555 /*** ID3D11Device2 methods ***/
    556 #define ID3D11Device4_GetImmediateContext2(This,context) (This)->lpVtbl->GetImmediateContext2(This,context)
    557 #define ID3D11Device4_CreateDeferredContext2(This,flags,context) (This)->lpVtbl->CreateDeferredContext2(This,flags,context)
    558 #define ID3D11Device4_GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling) (This)->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling)
    559 #define ID3D11Device4_CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count) (This)->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count)
    560 /*** ID3D11Device3 methods ***/
    561 #define ID3D11Device4_CreateTexture2D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture)
    562 #define ID3D11Device4_CreateTexture3D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture)
    563 #define ID3D11Device4_CreateRasterizerState2(This,desc,state) (This)->lpVtbl->CreateRasterizerState2(This,desc,state)
    564 #define ID3D11Device4_CreateShaderResourceView1(This,resource,desc,view) (This)->lpVtbl->CreateShaderResourceView1(This,resource,desc,view)
    565 #define ID3D11Device4_CreateUnorderedAccessView1(This,resource,desc,view) (This)->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view)
    566 #define ID3D11Device4_CreateRenderTargetView1(This,resource,desc,view) (This)->lpVtbl->CreateRenderTargetView1(This,resource,desc,view)
    567 #define ID3D11Device4_CreateQuery1(This,desc,query) (This)->lpVtbl->CreateQuery1(This,desc,query)
    568 #define ID3D11Device4_GetImmediateContext3(This,context) (This)->lpVtbl->GetImmediateContext3(This,context)
    569 #define ID3D11Device4_CreateDeferredContext3(This,flags,context) (This)->lpVtbl->CreateDeferredContext3(This,flags,context)
    570 #define ID3D11Device4_WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch)
    571 #define ID3D11Device4_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box)
    572 /*** ID3D11Device4 methods ***/
    573 #define ID3D11Device4_RegisterDeviceRemovedEvent(This,event,cookie) (This)->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie)
    574 #define ID3D11Device4_UnregisterDeviceRemoved(This,cookie) (This)->lpVtbl->UnregisterDeviceRemoved(This,cookie)
    575 #else
    576 /*** IUnknown methods ***/
    577 static __WIDL_INLINE HRESULT ID3D11Device4_QueryInterface(ID3D11Device4* This,REFIID riid,void **ppvObject) {
    578     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    579 }
    580 static __WIDL_INLINE ULONG ID3D11Device4_AddRef(ID3D11Device4* This) {
    581     return This->lpVtbl->AddRef(This);
    582 }
    583 static __WIDL_INLINE ULONG ID3D11Device4_Release(ID3D11Device4* This) {
    584     return This->lpVtbl->Release(This);
    585 }
    586 /*** ID3D11Device methods ***/
    587 static __WIDL_INLINE HRESULT ID3D11Device4_CreateBuffer(ID3D11Device4* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
    588     return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
    589 }
    590 static __WIDL_INLINE HRESULT ID3D11Device4_CreateTexture1D(ID3D11Device4* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
    591     return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
    592 }
    593 static __WIDL_INLINE HRESULT ID3D11Device4_CreateTexture2D(ID3D11Device4* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
    594     return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
    595 }
    596 static __WIDL_INLINE HRESULT ID3D11Device4_CreateTexture3D(ID3D11Device4* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
    597     return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
    598 }
    599 static __WIDL_INLINE HRESULT ID3D11Device4_CreateShaderResourceView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
    600     return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
    601 }
    602 static __WIDL_INLINE HRESULT ID3D11Device4_CreateUnorderedAccessView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
    603     return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
    604 }
    605 static __WIDL_INLINE HRESULT ID3D11Device4_CreateRenderTargetView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
    606     return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
    607 }
    608 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDepthStencilView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
    609     return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
    610 }
    611 static __WIDL_INLINE HRESULT ID3D11Device4_CreateInputLayout(ID3D11Device4* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
    612     return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
    613 }
    614 static __WIDL_INLINE HRESULT ID3D11Device4_CreateVertexShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
    615     return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
    616 }
    617 static __WIDL_INLINE HRESULT ID3D11Device4_CreateGeometryShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
    618     return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
    619 }
    620 static __WIDL_INLINE HRESULT ID3D11Device4_CreateGeometryShaderWithStreamOutput(ID3D11Device4* 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) {
    621     return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
    622 }
    623 static __WIDL_INLINE HRESULT ID3D11Device4_CreatePixelShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
    624     return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
    625 }
    626 static __WIDL_INLINE HRESULT ID3D11Device4_CreateHullShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
    627     return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
    628 }
    629 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDomainShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
    630     return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
    631 }
    632 static __WIDL_INLINE HRESULT ID3D11Device4_CreateComputeShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
    633     return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
    634 }
    635 static __WIDL_INLINE HRESULT ID3D11Device4_CreateClassLinkage(ID3D11Device4* This,ID3D11ClassLinkage **ppLinkage) {
    636     return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
    637 }
    638 static __WIDL_INLINE HRESULT ID3D11Device4_CreateBlendState(ID3D11Device4* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
    639     return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
    640 }
    641 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDepthStencilState(ID3D11Device4* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
    642     return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
    643 }
    644 static __WIDL_INLINE HRESULT ID3D11Device4_CreateRasterizerState(ID3D11Device4* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
    645     return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
    646 }
    647 static __WIDL_INLINE HRESULT ID3D11Device4_CreateSamplerState(ID3D11Device4* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
    648     return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
    649 }
    650 static __WIDL_INLINE HRESULT ID3D11Device4_CreateQuery(ID3D11Device4* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
    651     return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
    652 }
    653 static __WIDL_INLINE HRESULT ID3D11Device4_CreatePredicate(ID3D11Device4* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
    654     return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
    655 }
    656 static __WIDL_INLINE HRESULT ID3D11Device4_CreateCounter(ID3D11Device4* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
    657     return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
    658 }
    659 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDeferredContext(ID3D11Device4* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
    660     return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
    661 }
    662 static __WIDL_INLINE HRESULT ID3D11Device4_OpenSharedResource(ID3D11Device4* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
    663     return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
    664 }
    665 static __WIDL_INLINE HRESULT ID3D11Device4_CheckFormatSupport(ID3D11Device4* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
    666     return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
    667 }
    668 static __WIDL_INLINE HRESULT ID3D11Device4_CheckMultisampleQualityLevels(ID3D11Device4* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
    669     return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
    670 }
    671 static __WIDL_INLINE void ID3D11Device4_CheckCounterInfo(ID3D11Device4* This,D3D11_COUNTER_INFO *pCounterInfo) {
    672     This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
    673 }
    674 static __WIDL_INLINE HRESULT ID3D11Device4_CheckCounter(ID3D11Device4* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
    675     return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
    676 }
    677 static __WIDL_INLINE HRESULT ID3D11Device4_CheckFeatureSupport(ID3D11Device4* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
    678     return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
    679 }
    680 static __WIDL_INLINE HRESULT ID3D11Device4_GetPrivateData(ID3D11Device4* This,REFGUID guid,UINT *pDataSize,void *pData) {
    681     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
    682 }
    683 static __WIDL_INLINE HRESULT ID3D11Device4_SetPrivateData(ID3D11Device4* This,REFGUID guid,UINT DataSize,const void *pData) {
    684     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
    685 }
    686 static __WIDL_INLINE HRESULT ID3D11Device4_SetPrivateDataInterface(ID3D11Device4* This,REFGUID guid,const IUnknown *pData) {
    687     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
    688 }
    689 static __WIDL_INLINE D3D_FEATURE_LEVEL ID3D11Device4_GetFeatureLevel(ID3D11Device4* This) {
    690     return This->lpVtbl->GetFeatureLevel(This);
    691 }
    692 static __WIDL_INLINE UINT ID3D11Device4_GetCreationFlags(ID3D11Device4* This) {
    693     return This->lpVtbl->GetCreationFlags(This);
    694 }
    695 static __WIDL_INLINE HRESULT ID3D11Device4_GetDeviceRemovedReason(ID3D11Device4* This) {
    696     return This->lpVtbl->GetDeviceRemovedReason(This);
    697 }
    698 static __WIDL_INLINE void ID3D11Device4_GetImmediateContext(ID3D11Device4* This,ID3D11DeviceContext **ppImmediateContext) {
    699     This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
    700 }
    701 static __WIDL_INLINE HRESULT ID3D11Device4_SetExceptionMode(ID3D11Device4* This,UINT RaiseFlags) {
    702     return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
    703 }
    704 static __WIDL_INLINE UINT ID3D11Device4_GetExceptionMode(ID3D11Device4* This) {
    705     return This->lpVtbl->GetExceptionMode(This);
    706 }
    707 /*** ID3D11Device1 methods ***/
    708 static __WIDL_INLINE void ID3D11Device4_GetImmediateContext1(ID3D11Device4* This,ID3D11DeviceContext1 **ppImmediateContext) {
    709     This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
    710 }
    711 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDeferredContext1(ID3D11Device4* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
    712     return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
    713 }
    714 static __WIDL_INLINE HRESULT ID3D11Device4_CreateBlendState1(ID3D11Device4* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
    715     return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
    716 }
    717 static __WIDL_INLINE HRESULT ID3D11Device4_CreateRasterizerState1(ID3D11Device4* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
    718     return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
    719 }
    720 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDeviceContextState(ID3D11Device4* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
    721     return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
    722 }
    723 static __WIDL_INLINE HRESULT ID3D11Device4_OpenSharedResource1(ID3D11Device4* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
    724     return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
    725 }
    726 static __WIDL_INLINE HRESULT ID3D11Device4_OpenSharedResourceByName(ID3D11Device4* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
    727     return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
    728 }
    729 /*** ID3D11Device2 methods ***/
    730 static __WIDL_INLINE void ID3D11Device4_GetImmediateContext2(ID3D11Device4* This,ID3D11DeviceContext2 **context) {
    731     This->lpVtbl->GetImmediateContext2(This,context);
    732 }
    733 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDeferredContext2(ID3D11Device4* This,UINT flags,ID3D11DeviceContext2 **context) {
    734     return This->lpVtbl->CreateDeferredContext2(This,flags,context);
    735 }
    736 static __WIDL_INLINE void ID3D11Device4_GetResourceTiling(ID3D11Device4* This,ID3D11Resource *resource,UINT *tile_count,D3D11_PACKED_MIP_DESC *mip_desc,D3D11_TILE_SHAPE *tile_shape,UINT *subresource_tiling_count,UINT first_subresource_tiling,D3D11_SUBRESOURCE_TILING *subresource_tiling) {
    737     This->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling);
    738 }
    739 static __WIDL_INLINE HRESULT ID3D11Device4_CheckMultisampleQualityLevels1(ID3D11Device4* This,DXGI_FORMAT format,UINT sample_count,UINT flags,UINT *quality_level_count) {
    740     return This->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count);
    741 }
    742 /*** ID3D11Device3 methods ***/
    743 static __WIDL_INLINE HRESULT ID3D11Device4_CreateTexture2D1(ID3D11Device4* This,const D3D11_TEXTURE2D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture2D1 **texture) {
    744     return This->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture);
    745 }
    746 static __WIDL_INLINE HRESULT ID3D11Device4_CreateTexture3D1(ID3D11Device4* This,const D3D11_TEXTURE3D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture3D1 **texture) {
    747     return This->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture);
    748 }
    749 static __WIDL_INLINE HRESULT ID3D11Device4_CreateRasterizerState2(ID3D11Device4* This,const D3D11_RASTERIZER_DESC2 *desc,ID3D11RasterizerState2 **state) {
    750     return This->lpVtbl->CreateRasterizerState2(This,desc,state);
    751 }
    752 static __WIDL_INLINE HRESULT ID3D11Device4_CreateShaderResourceView1(ID3D11Device4* This,ID3D11Resource *resource,const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,ID3D11ShaderResourceView1 **view) {
    753     return This->lpVtbl->CreateShaderResourceView1(This,resource,desc,view);
    754 }
    755 static __WIDL_INLINE HRESULT ID3D11Device4_CreateUnorderedAccessView1(ID3D11Device4* This,ID3D11Resource *resource,const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,ID3D11UnorderedAccessView1 **view) {
    756     return This->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view);
    757 }
    758 static __WIDL_INLINE HRESULT ID3D11Device4_CreateRenderTargetView1(ID3D11Device4* This,ID3D11Resource *resource,const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,ID3D11RenderTargetView1 **view) {
    759     return This->lpVtbl->CreateRenderTargetView1(This,resource,desc,view);
    760 }
    761 static __WIDL_INLINE HRESULT ID3D11Device4_CreateQuery1(ID3D11Device4* This,const D3D11_QUERY_DESC1 *desc,ID3D11Query1 **query) {
    762     return This->lpVtbl->CreateQuery1(This,desc,query);
    763 }
    764 static __WIDL_INLINE void ID3D11Device4_GetImmediateContext3(ID3D11Device4* This,ID3D11DeviceContext3 **context) {
    765     This->lpVtbl->GetImmediateContext3(This,context);
    766 }
    767 static __WIDL_INLINE HRESULT ID3D11Device4_CreateDeferredContext3(ID3D11Device4* This,UINT flags,ID3D11DeviceContext3 **context) {
    768     return This->lpVtbl->CreateDeferredContext3(This,flags,context);
    769 }
    770 static __WIDL_INLINE void ID3D11Device4_WriteToSubresource(ID3D11Device4* This,ID3D11Resource *dst_resource,UINT dst_subresource,const D3D11_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_depth_pitch) {
    771     This->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch);
    772 }
    773 static __WIDL_INLINE void ID3D11Device4_ReadFromSubresource(ID3D11Device4* This,void *dst_data,UINT dst_row_pitch,UINT dst_depth_pitch,ID3D11Resource *src_resource,UINT src_subresource,const D3D11_BOX *src_box) {
    774     This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box);
    775 }
    776 /*** ID3D11Device4 methods ***/
    777 static __WIDL_INLINE HRESULT ID3D11Device4_RegisterDeviceRemovedEvent(ID3D11Device4* This,HANDLE event,DWORD *cookie) {
    778     return This->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie);
    779 }
    780 static __WIDL_INLINE void ID3D11Device4_UnregisterDeviceRemoved(ID3D11Device4* This,DWORD cookie) {
    781     This->lpVtbl->UnregisterDeviceRemoved(This,cookie);
    782 }
    783 #endif
    784 #endif
    785 
    786 #endif
    787 
    788 
    789 #endif  /* __ID3D11Device4_INTERFACE_DEFINED__ */
    790 
    791 /*****************************************************************************
    792  * ID3D11Device5 interface
    793  */
    794 #ifndef __ID3D11Device5_INTERFACE_DEFINED__
    795 #define __ID3D11Device5_INTERFACE_DEFINED__
    796 
    797 DEFINE_GUID(IID_ID3D11Device5, 0x8ffde202, 0xa0e7, 0x45df, 0x9e,0x01, 0xe8,0x37,0x80,0x1b,0x5e,0xa0);
    798 #if defined(__cplusplus) && !defined(CINTERFACE)
    799 MIDL_INTERFACE("8ffde202-a0e7-45df-9e01-e837801b5ea0")
    800 ID3D11Device5 : public ID3D11Device4
    801 {
    802     virtual HRESULT STDMETHODCALLTYPE OpenSharedFence(
    803         HANDLE handle,
    804         REFIID iid,
    805         void **fence) = 0;
    806 
    807     virtual HRESULT STDMETHODCALLTYPE CreateFence(
    808         UINT64 initial_value,
    809         D3D11_FENCE_FLAG flags,
    810         REFIID iid,
    811         void **fence) = 0;
    812 
    813 };
    814 #ifdef __CRT_UUID_DECL
    815 __CRT_UUID_DECL(ID3D11Device5, 0x8ffde202, 0xa0e7, 0x45df, 0x9e,0x01, 0xe8,0x37,0x80,0x1b,0x5e,0xa0)
    816 #endif
    817 #else
    818 typedef struct ID3D11Device5Vtbl {
    819     BEGIN_INTERFACE
    820 
    821     /*** IUnknown methods ***/
    822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    823         ID3D11Device5 *This,
    824         REFIID riid,
    825         void **ppvObject);
    826 
    827     ULONG (STDMETHODCALLTYPE *AddRef)(
    828         ID3D11Device5 *This);
    829 
    830     ULONG (STDMETHODCALLTYPE *Release)(
    831         ID3D11Device5 *This);
    832 
    833     /*** ID3D11Device methods ***/
    834     HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
    835         ID3D11Device5 *This,
    836         const D3D11_BUFFER_DESC *pDesc,
    837         const D3D11_SUBRESOURCE_DATA *pInitialData,
    838         ID3D11Buffer **ppBuffer);
    839 
    840     HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
    841         ID3D11Device5 *This,
    842         const D3D11_TEXTURE1D_DESC *pDesc,
    843         const D3D11_SUBRESOURCE_DATA *pInitialData,
    844         ID3D11Texture1D **ppTexture1D);
    845 
    846     HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
    847         ID3D11Device5 *This,
    848         const D3D11_TEXTURE2D_DESC *pDesc,
    849         const D3D11_SUBRESOURCE_DATA *pInitialData,
    850         ID3D11Texture2D **ppTexture2D);
    851 
    852     HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
    853         ID3D11Device5 *This,
    854         const D3D11_TEXTURE3D_DESC *pDesc,
    855         const D3D11_SUBRESOURCE_DATA *pInitialData,
    856         ID3D11Texture3D **ppTexture3D);
    857 
    858     HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
    859         ID3D11Device5 *This,
    860         ID3D11Resource *pResource,
    861         const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
    862         ID3D11ShaderResourceView **ppSRView);
    863 
    864     HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
    865         ID3D11Device5 *This,
    866         ID3D11Resource *pResource,
    867         const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
    868         ID3D11UnorderedAccessView **ppUAView);
    869 
    870     HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
    871         ID3D11Device5 *This,
    872         ID3D11Resource *pResource,
    873         const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
    874         ID3D11RenderTargetView **ppRTView);
    875 
    876     HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
    877         ID3D11Device5 *This,
    878         ID3D11Resource *pResource,
    879         const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
    880         ID3D11DepthStencilView **ppDepthStencilView);
    881 
    882     HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
    883         ID3D11Device5 *This,
    884         const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
    885         UINT NumElements,
    886         const void *pShaderBytecodeWithInputSignature,
    887         SIZE_T BytecodeLength,
    888         ID3D11InputLayout **ppInputLayout);
    889 
    890     HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
    891         ID3D11Device5 *This,
    892         const void *pShaderBytecode,
    893         SIZE_T BytecodeLength,
    894         ID3D11ClassLinkage *pClassLinkage,
    895         ID3D11VertexShader **ppVertexShader);
    896 
    897     HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
    898         ID3D11Device5 *This,
    899         const void *pShaderBytecode,
    900         SIZE_T BytecodeLength,
    901         ID3D11ClassLinkage *pClassLinkage,
    902         ID3D11GeometryShader **ppGeometryShader);
    903 
    904     HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
    905         ID3D11Device5 *This,
    906         const void *pShaderBytecode,
    907         SIZE_T BytecodeLength,
    908         const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
    909         UINT NumEntries,
    910         const UINT *pBufferStrides,
    911         UINT NumStrides,
    912         UINT RasterizedStream,
    913         ID3D11ClassLinkage *pClassLinkage,
    914         ID3D11GeometryShader **ppGeometryShader);
    915 
    916     HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
    917         ID3D11Device5 *This,
    918         const void *pShaderBytecode,
    919         SIZE_T BytecodeLength,
    920         ID3D11ClassLinkage *pClassLinkage,
    921         ID3D11PixelShader **ppPixelShader);
    922 
    923     HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
    924         ID3D11Device5 *This,
    925         const void *pShaderBytecode,
    926         SIZE_T BytecodeLength,
    927         ID3D11ClassLinkage *pClassLinkage,
    928         ID3D11HullShader **ppHullShader);
    929 
    930     HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
    931         ID3D11Device5 *This,
    932         const void *pShaderBytecode,
    933         SIZE_T BytecodeLength,
    934         ID3D11ClassLinkage *pClassLinkage,
    935         ID3D11DomainShader **ppDomainShader);
    936 
    937     HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
    938         ID3D11Device5 *This,
    939         const void *pShaderBytecode,
    940         SIZE_T BytecodeLength,
    941         ID3D11ClassLinkage *pClassLinkage,
    942         ID3D11ComputeShader **ppComputeShader);
    943 
    944     HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
    945         ID3D11Device5 *This,
    946         ID3D11ClassLinkage **ppLinkage);
    947 
    948     HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
    949         ID3D11Device5 *This,
    950         const D3D11_BLEND_DESC *pBlendStateDesc,
    951         ID3D11BlendState **ppBlendState);
    952 
    953     HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
    954         ID3D11Device5 *This,
    955         const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
    956         ID3D11DepthStencilState **ppDepthStencilState);
    957 
    958     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
    959         ID3D11Device5 *This,
    960         const D3D11_RASTERIZER_DESC *pRasterizerDesc,
    961         ID3D11RasterizerState **ppRasterizerState);
    962 
    963     HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
    964         ID3D11Device5 *This,
    965         const D3D11_SAMPLER_DESC *pSamplerDesc,
    966         ID3D11SamplerState **ppSamplerState);
    967 
    968     HRESULT (STDMETHODCALLTYPE *CreateQuery)(
    969         ID3D11Device5 *This,
    970         const D3D11_QUERY_DESC *pQueryDesc,
    971         ID3D11Query **ppQuery);
    972 
    973     HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
    974         ID3D11Device5 *This,
    975         const D3D11_QUERY_DESC *pPredicateDesc,
    976         ID3D11Predicate **ppPredicate);
    977 
    978     HRESULT (STDMETHODCALLTYPE *CreateCounter)(
    979         ID3D11Device5 *This,
    980         const D3D11_COUNTER_DESC *pCounterDesc,
    981         ID3D11Counter **ppCounter);
    982 
    983     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
    984         ID3D11Device5 *This,
    985         UINT ContextFlags,
    986         ID3D11DeviceContext **ppDeferredContext);
    987 
    988     HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
    989         ID3D11Device5 *This,
    990         HANDLE hResource,
    991         REFIID ReturnedInterface,
    992         void **ppResource);
    993 
    994     HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
    995         ID3D11Device5 *This,
    996         DXGI_FORMAT Format,
    997         UINT *pFormatSupport);
    998 
    999     HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
   1000         ID3D11Device5 *This,
   1001         DXGI_FORMAT Format,
   1002         UINT SampleCount,
   1003         UINT *pNumQualityLevels);
   1004 
   1005     void (STDMETHODCALLTYPE *CheckCounterInfo)(
   1006         ID3D11Device5 *This,
   1007         D3D11_COUNTER_INFO *pCounterInfo);
   1008 
   1009     HRESULT (STDMETHODCALLTYPE *CheckCounter)(
   1010         ID3D11Device5 *This,
   1011         const D3D11_COUNTER_DESC *pDesc,
   1012         D3D11_COUNTER_TYPE *pType,
   1013         UINT *pActiveCounters,
   1014         LPSTR szName,
   1015         UINT *pNameLength,
   1016         LPSTR szUnits,
   1017         UINT *pUnitsLength,
   1018         LPSTR szDescription,
   1019         UINT *pDescriptionLength);
   1020 
   1021     HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
   1022         ID3D11Device5 *This,
   1023         D3D11_FEATURE Feature,
   1024         void *pFeatureSupportData,
   1025         UINT FeatureSupportDataSize);
   1026 
   1027     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   1028         ID3D11Device5 *This,
   1029         REFGUID guid,
   1030         UINT *pDataSize,
   1031         void *pData);
   1032 
   1033     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   1034         ID3D11Device5 *This,
   1035         REFGUID guid,
   1036         UINT DataSize,
   1037         const void *pData);
   1038 
   1039     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   1040         ID3D11Device5 *This,
   1041         REFGUID guid,
   1042         const IUnknown *pData);
   1043 
   1044     D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
   1045         ID3D11Device5 *This);
   1046 
   1047     UINT (STDMETHODCALLTYPE *GetCreationFlags)(
   1048         ID3D11Device5 *This);
   1049 
   1050     HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
   1051         ID3D11Device5 *This);
   1052 
   1053     void (STDMETHODCALLTYPE *GetImmediateContext)(
   1054         ID3D11Device5 *This,
   1055         ID3D11DeviceContext **ppImmediateContext);
   1056 
   1057     HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
   1058         ID3D11Device5 *This,
   1059         UINT RaiseFlags);
   1060 
   1061     UINT (STDMETHODCALLTYPE *GetExceptionMode)(
   1062         ID3D11Device5 *This);
   1063 
   1064     /*** ID3D11Device1 methods ***/
   1065     void (STDMETHODCALLTYPE *GetImmediateContext1)(
   1066         ID3D11Device5 *This,
   1067         ID3D11DeviceContext1 **ppImmediateContext);
   1068 
   1069     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
   1070         ID3D11Device5 *This,
   1071         UINT ContextFlags,
   1072         ID3D11DeviceContext1 **ppDeferredContext);
   1073 
   1074     HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
   1075         ID3D11Device5 *This,
   1076         const D3D11_BLEND_DESC1 *pBlendStateDesc,
   1077         ID3D11BlendState1 **ppBlendState);
   1078 
   1079     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
   1080         ID3D11Device5 *This,
   1081         const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
   1082         ID3D11RasterizerState1 **ppRasterizerState);
   1083 
   1084     HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
   1085         ID3D11Device5 *This,
   1086         UINT Flags,
   1087         const D3D_FEATURE_LEVEL *pFeatureLevels,
   1088         UINT FeatureLevels,
   1089         UINT SDKVersion,
   1090         REFIID EmulatedInterface,
   1091         D3D_FEATURE_LEVEL *pChosenFeatureLevel,
   1092         ID3DDeviceContextState **ppContextState);
   1093 
   1094     HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
   1095         ID3D11Device5 *This,
   1096         HANDLE hResource,
   1097         REFIID returnedInterface,
   1098         void **ppResource);
   1099 
   1100     HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
   1101         ID3D11Device5 *This,
   1102         LPCWSTR lpName,
   1103         DWORD dwDesiredAccess,
   1104         REFIID returnedInterface,
   1105         void **ppResource);
   1106 
   1107     /*** ID3D11Device2 methods ***/
   1108     void (STDMETHODCALLTYPE *GetImmediateContext2)(
   1109         ID3D11Device5 *This,
   1110         ID3D11DeviceContext2 **context);
   1111 
   1112     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext2)(
   1113         ID3D11Device5 *This,
   1114         UINT flags,
   1115         ID3D11DeviceContext2 **context);
   1116 
   1117     void (STDMETHODCALLTYPE *GetResourceTiling)(
   1118         ID3D11Device5 *This,
   1119         ID3D11Resource *resource,
   1120         UINT *tile_count,
   1121         D3D11_PACKED_MIP_DESC *mip_desc,
   1122         D3D11_TILE_SHAPE *tile_shape,
   1123         UINT *subresource_tiling_count,
   1124         UINT first_subresource_tiling,
   1125         D3D11_SUBRESOURCE_TILING *subresource_tiling);
   1126 
   1127     HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels1)(
   1128         ID3D11Device5 *This,
   1129         DXGI_FORMAT format,
   1130         UINT sample_count,
   1131         UINT flags,
   1132         UINT *quality_level_count);
   1133 
   1134     /*** ID3D11Device3 methods ***/
   1135     HRESULT (STDMETHODCALLTYPE *CreateTexture2D1)(
   1136         ID3D11Device5 *This,
   1137         const D3D11_TEXTURE2D_DESC1 *desc,
   1138         const D3D11_SUBRESOURCE_DATA *initial_data,
   1139         ID3D11Texture2D1 **texture);
   1140 
   1141     HRESULT (STDMETHODCALLTYPE *CreateTexture3D1)(
   1142         ID3D11Device5 *This,
   1143         const D3D11_TEXTURE3D_DESC1 *desc,
   1144         const D3D11_SUBRESOURCE_DATA *initial_data,
   1145         ID3D11Texture3D1 **texture);
   1146 
   1147     HRESULT (STDMETHODCALLTYPE *CreateRasterizerState2)(
   1148         ID3D11Device5 *This,
   1149         const D3D11_RASTERIZER_DESC2 *desc,
   1150         ID3D11RasterizerState2 **state);
   1151 
   1152     HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView1)(
   1153         ID3D11Device5 *This,
   1154         ID3D11Resource *resource,
   1155         const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
   1156         ID3D11ShaderResourceView1 **view);
   1157 
   1158     HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView1)(
   1159         ID3D11Device5 *This,
   1160         ID3D11Resource *resource,
   1161         const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
   1162         ID3D11UnorderedAccessView1 **view);
   1163 
   1164     HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView1)(
   1165         ID3D11Device5 *This,
   1166         ID3D11Resource *resource,
   1167         const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
   1168         ID3D11RenderTargetView1 **view);
   1169 
   1170     HRESULT (STDMETHODCALLTYPE *CreateQuery1)(
   1171         ID3D11Device5 *This,
   1172         const D3D11_QUERY_DESC1 *desc,
   1173         ID3D11Query1 **query);
   1174 
   1175     void (STDMETHODCALLTYPE *GetImmediateContext3)(
   1176         ID3D11Device5 *This,
   1177         ID3D11DeviceContext3 **context);
   1178 
   1179     HRESULT (STDMETHODCALLTYPE *CreateDeferredContext3)(
   1180         ID3D11Device5 *This,
   1181         UINT flags,
   1182         ID3D11DeviceContext3 **context);
   1183 
   1184     void (STDMETHODCALLTYPE *WriteToSubresource)(
   1185         ID3D11Device5 *This,
   1186         ID3D11Resource *dst_resource,
   1187         UINT dst_subresource,
   1188         const D3D11_BOX *dst_box,
   1189         const void *src_data,
   1190         UINT src_row_pitch,
   1191         UINT src_depth_pitch);
   1192 
   1193     void (STDMETHODCALLTYPE *ReadFromSubresource)(
   1194         ID3D11Device5 *This,
   1195         void *dst_data,
   1196         UINT dst_row_pitch,
   1197         UINT dst_depth_pitch,
   1198         ID3D11Resource *src_resource,
   1199         UINT src_subresource,
   1200         const D3D11_BOX *src_box);
   1201 
   1202     /*** ID3D11Device4 methods ***/
   1203     HRESULT (STDMETHODCALLTYPE *RegisterDeviceRemovedEvent)(
   1204         ID3D11Device5 *This,
   1205         HANDLE event,
   1206         DWORD *cookie);
   1207 
   1208     void (STDMETHODCALLTYPE *UnregisterDeviceRemoved)(
   1209         ID3D11Device5 *This,
   1210         DWORD cookie);
   1211 
   1212     /*** ID3D11Device5 methods ***/
   1213     HRESULT (STDMETHODCALLTYPE *OpenSharedFence)(
   1214         ID3D11Device5 *This,
   1215         HANDLE handle,
   1216         REFIID iid,
   1217         void **fence);
   1218 
   1219     HRESULT (STDMETHODCALLTYPE *CreateFence)(
   1220         ID3D11Device5 *This,
   1221         UINT64 initial_value,
   1222         D3D11_FENCE_FLAG flags,
   1223         REFIID iid,
   1224         void **fence);
   1225 
   1226     END_INTERFACE
   1227 } ID3D11Device5Vtbl;
   1228 
   1229 interface ID3D11Device5 {
   1230     CONST_VTBL ID3D11Device5Vtbl* lpVtbl;
   1231 };
   1232 
   1233 #ifdef COBJMACROS
   1234 #ifndef WIDL_C_INLINE_WRAPPERS
   1235 /*** IUnknown methods ***/
   1236 #define ID3D11Device5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1237 #define ID3D11Device5_AddRef(This) (This)->lpVtbl->AddRef(This)
   1238 #define ID3D11Device5_Release(This) (This)->lpVtbl->Release(This)
   1239 /*** ID3D11Device methods ***/
   1240 #define ID3D11Device5_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
   1241 #define ID3D11Device5_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
   1242 #define ID3D11Device5_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
   1243 #define ID3D11Device5_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
   1244 #define ID3D11Device5_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
   1245 #define ID3D11Device5_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
   1246 #define ID3D11Device5_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
   1247 #define ID3D11Device5_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
   1248 #define ID3D11Device5_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
   1249 #define ID3D11Device5_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
   1250 #define ID3D11Device5_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
   1251 #define ID3D11Device5_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
   1252 #define ID3D11Device5_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
   1253 #define ID3D11Device5_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
   1254 #define ID3D11Device5_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
   1255 #define ID3D11Device5_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
   1256 #define ID3D11Device5_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
   1257 #define ID3D11Device5_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
   1258 #define ID3D11Device5_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
   1259 #define ID3D11Device5_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
   1260 #define ID3D11Device5_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
   1261 #define ID3D11Device5_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
   1262 #define ID3D11Device5_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
   1263 #define ID3D11Device5_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
   1264 #define ID3D11Device5_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
   1265 #define ID3D11Device5_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
   1266 #define ID3D11Device5_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
   1267 #define ID3D11Device5_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
   1268 #define ID3D11Device5_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
   1269 #define ID3D11Device5_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
   1270 #define ID3D11Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
   1271 #define ID3D11Device5_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   1272 #define ID3D11Device5_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   1273 #define ID3D11Device5_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   1274 #define ID3D11Device5_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
   1275 #define ID3D11Device5_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
   1276 #define ID3D11Device5_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
   1277 #define ID3D11Device5_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
   1278 #define ID3D11Device5_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
   1279 #define ID3D11Device5_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
   1280 /*** ID3D11Device1 methods ***/
   1281 #define ID3D11Device5_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
   1282 #define ID3D11Device5_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
   1283 #define ID3D11Device5_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
   1284 #define ID3D11Device5_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
   1285 #define ID3D11Device5_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
   1286 #define ID3D11Device5_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
   1287 #define ID3D11Device5_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
   1288 /*** ID3D11Device2 methods ***/
   1289 #define ID3D11Device5_GetImmediateContext2(This,context) (This)->lpVtbl->GetImmediateContext2(This,context)
   1290 #define ID3D11Device5_CreateDeferredContext2(This,flags,context) (This)->lpVtbl->CreateDeferredContext2(This,flags,context)
   1291 #define ID3D11Device5_GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling) (This)->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling)
   1292 #define ID3D11Device5_CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count) (This)->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count)
   1293 /*** ID3D11Device3 methods ***/
   1294 #define ID3D11Device5_CreateTexture2D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture)
   1295 #define ID3D11Device5_CreateTexture3D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture)
   1296 #define ID3D11Device5_CreateRasterizerState2(This,desc,state) (This)->lpVtbl->CreateRasterizerState2(This,desc,state)
   1297 #define ID3D11Device5_CreateShaderResourceView1(This,resource,desc,view) (This)->lpVtbl->CreateShaderResourceView1(This,resource,desc,view)
   1298 #define ID3D11Device5_CreateUnorderedAccessView1(This,resource,desc,view) (This)->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view)
   1299 #define ID3D11Device5_CreateRenderTargetView1(This,resource,desc,view) (This)->lpVtbl->CreateRenderTargetView1(This,resource,desc,view)
   1300 #define ID3D11Device5_CreateQuery1(This,desc,query) (This)->lpVtbl->CreateQuery1(This,desc,query)
   1301 #define ID3D11Device5_GetImmediateContext3(This,context) (This)->lpVtbl->GetImmediateContext3(This,context)
   1302 #define ID3D11Device5_CreateDeferredContext3(This,flags,context) (This)->lpVtbl->CreateDeferredContext3(This,flags,context)
   1303 #define ID3D11Device5_WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch)
   1304 #define ID3D11Device5_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box)
   1305 /*** ID3D11Device4 methods ***/
   1306 #define ID3D11Device5_RegisterDeviceRemovedEvent(This,event,cookie) (This)->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie)
   1307 #define ID3D11Device5_UnregisterDeviceRemoved(This,cookie) (This)->lpVtbl->UnregisterDeviceRemoved(This,cookie)
   1308 /*** ID3D11Device5 methods ***/
   1309 #define ID3D11Device5_OpenSharedFence(This,handle,iid,fence) (This)->lpVtbl->OpenSharedFence(This,handle,iid,fence)
   1310 #define ID3D11Device5_CreateFence(This,initial_value,flags,iid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,iid,fence)
   1311 #else
   1312 /*** IUnknown methods ***/
   1313 static __WIDL_INLINE HRESULT ID3D11Device5_QueryInterface(ID3D11Device5* This,REFIID riid,void **ppvObject) {
   1314     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1315 }
   1316 static __WIDL_INLINE ULONG ID3D11Device5_AddRef(ID3D11Device5* This) {
   1317     return This->lpVtbl->AddRef(This);
   1318 }
   1319 static __WIDL_INLINE ULONG ID3D11Device5_Release(ID3D11Device5* This) {
   1320     return This->lpVtbl->Release(This);
   1321 }
   1322 /*** ID3D11Device methods ***/
   1323 static __WIDL_INLINE HRESULT ID3D11Device5_CreateBuffer(ID3D11Device5* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
   1324     return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
   1325 }
   1326 static __WIDL_INLINE HRESULT ID3D11Device5_CreateTexture1D(ID3D11Device5* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
   1327     return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
   1328 }
   1329 static __WIDL_INLINE HRESULT ID3D11Device5_CreateTexture2D(ID3D11Device5* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
   1330     return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
   1331 }
   1332 static __WIDL_INLINE HRESULT ID3D11Device5_CreateTexture3D(ID3D11Device5* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
   1333     return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
   1334 }
   1335 static __WIDL_INLINE HRESULT ID3D11Device5_CreateShaderResourceView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
   1336     return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
   1337 }
   1338 static __WIDL_INLINE HRESULT ID3D11Device5_CreateUnorderedAccessView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
   1339     return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
   1340 }
   1341 static __WIDL_INLINE HRESULT ID3D11Device5_CreateRenderTargetView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
   1342     return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
   1343 }
   1344 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDepthStencilView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
   1345     return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
   1346 }
   1347 static __WIDL_INLINE HRESULT ID3D11Device5_CreateInputLayout(ID3D11Device5* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
   1348     return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
   1349 }
   1350 static __WIDL_INLINE HRESULT ID3D11Device5_CreateVertexShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
   1351     return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
   1352 }
   1353 static __WIDL_INLINE HRESULT ID3D11Device5_CreateGeometryShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
   1354     return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
   1355 }
   1356 static __WIDL_INLINE HRESULT ID3D11Device5_CreateGeometryShaderWithStreamOutput(ID3D11Device5* 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) {
   1357     return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
   1358 }
   1359 static __WIDL_INLINE HRESULT ID3D11Device5_CreatePixelShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
   1360     return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
   1361 }
   1362 static __WIDL_INLINE HRESULT ID3D11Device5_CreateHullShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
   1363     return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
   1364 }
   1365 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDomainShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
   1366     return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
   1367 }
   1368 static __WIDL_INLINE HRESULT ID3D11Device5_CreateComputeShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
   1369     return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
   1370 }
   1371 static __WIDL_INLINE HRESULT ID3D11Device5_CreateClassLinkage(ID3D11Device5* This,ID3D11ClassLinkage **ppLinkage) {
   1372     return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
   1373 }
   1374 static __WIDL_INLINE HRESULT ID3D11Device5_CreateBlendState(ID3D11Device5* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
   1375     return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
   1376 }
   1377 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDepthStencilState(ID3D11Device5* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
   1378     return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
   1379 }
   1380 static __WIDL_INLINE HRESULT ID3D11Device5_CreateRasterizerState(ID3D11Device5* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
   1381     return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
   1382 }
   1383 static __WIDL_INLINE HRESULT ID3D11Device5_CreateSamplerState(ID3D11Device5* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
   1384     return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
   1385 }
   1386 static __WIDL_INLINE HRESULT ID3D11Device5_CreateQuery(ID3D11Device5* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
   1387     return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
   1388 }
   1389 static __WIDL_INLINE HRESULT ID3D11Device5_CreatePredicate(ID3D11Device5* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
   1390     return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
   1391 }
   1392 static __WIDL_INLINE HRESULT ID3D11Device5_CreateCounter(ID3D11Device5* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
   1393     return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
   1394 }
   1395 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDeferredContext(ID3D11Device5* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
   1396     return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
   1397 }
   1398 static __WIDL_INLINE HRESULT ID3D11Device5_OpenSharedResource(ID3D11Device5* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
   1399     return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
   1400 }
   1401 static __WIDL_INLINE HRESULT ID3D11Device5_CheckFormatSupport(ID3D11Device5* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
   1402     return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
   1403 }
   1404 static __WIDL_INLINE HRESULT ID3D11Device5_CheckMultisampleQualityLevels(ID3D11Device5* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
   1405     return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
   1406 }
   1407 static __WIDL_INLINE void ID3D11Device5_CheckCounterInfo(ID3D11Device5* This,D3D11_COUNTER_INFO *pCounterInfo) {
   1408     This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
   1409 }
   1410 static __WIDL_INLINE HRESULT ID3D11Device5_CheckCounter(ID3D11Device5* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
   1411     return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
   1412 }
   1413 static __WIDL_INLINE HRESULT ID3D11Device5_CheckFeatureSupport(ID3D11Device5* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
   1414     return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
   1415 }
   1416 static __WIDL_INLINE HRESULT ID3D11Device5_GetPrivateData(ID3D11Device5* This,REFGUID guid,UINT *pDataSize,void *pData) {
   1417     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   1418 }
   1419 static __WIDL_INLINE HRESULT ID3D11Device5_SetPrivateData(ID3D11Device5* This,REFGUID guid,UINT DataSize,const void *pData) {
   1420     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   1421 }
   1422 static __WIDL_INLINE HRESULT ID3D11Device5_SetPrivateDataInterface(ID3D11Device5* This,REFGUID guid,const IUnknown *pData) {
   1423     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   1424 }
   1425 static __WIDL_INLINE D3D_FEATURE_LEVEL ID3D11Device5_GetFeatureLevel(ID3D11Device5* This) {
   1426     return This->lpVtbl->GetFeatureLevel(This);
   1427 }
   1428 static __WIDL_INLINE UINT ID3D11Device5_GetCreationFlags(ID3D11Device5* This) {
   1429     return This->lpVtbl->GetCreationFlags(This);
   1430 }
   1431 static __WIDL_INLINE HRESULT ID3D11Device5_GetDeviceRemovedReason(ID3D11Device5* This) {
   1432     return This->lpVtbl->GetDeviceRemovedReason(This);
   1433 }
   1434 static __WIDL_INLINE void ID3D11Device5_GetImmediateContext(ID3D11Device5* This,ID3D11DeviceContext **ppImmediateContext) {
   1435     This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
   1436 }
   1437 static __WIDL_INLINE HRESULT ID3D11Device5_SetExceptionMode(ID3D11Device5* This,UINT RaiseFlags) {
   1438     return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
   1439 }
   1440 static __WIDL_INLINE UINT ID3D11Device5_GetExceptionMode(ID3D11Device5* This) {
   1441     return This->lpVtbl->GetExceptionMode(This);
   1442 }
   1443 /*** ID3D11Device1 methods ***/
   1444 static __WIDL_INLINE void ID3D11Device5_GetImmediateContext1(ID3D11Device5* This,ID3D11DeviceContext1 **ppImmediateContext) {
   1445     This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
   1446 }
   1447 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDeferredContext1(ID3D11Device5* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
   1448     return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
   1449 }
   1450 static __WIDL_INLINE HRESULT ID3D11Device5_CreateBlendState1(ID3D11Device5* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
   1451     return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
   1452 }
   1453 static __WIDL_INLINE HRESULT ID3D11Device5_CreateRasterizerState1(ID3D11Device5* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
   1454     return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
   1455 }
   1456 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDeviceContextState(ID3D11Device5* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
   1457     return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
   1458 }
   1459 static __WIDL_INLINE HRESULT ID3D11Device5_OpenSharedResource1(ID3D11Device5* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
   1460     return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
   1461 }
   1462 static __WIDL_INLINE HRESULT ID3D11Device5_OpenSharedResourceByName(ID3D11Device5* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
   1463     return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
   1464 }
   1465 /*** ID3D11Device2 methods ***/
   1466 static __WIDL_INLINE void ID3D11Device5_GetImmediateContext2(ID3D11Device5* This,ID3D11DeviceContext2 **context) {
   1467     This->lpVtbl->GetImmediateContext2(This,context);
   1468 }
   1469 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDeferredContext2(ID3D11Device5* This,UINT flags,ID3D11DeviceContext2 **context) {
   1470     return This->lpVtbl->CreateDeferredContext2(This,flags,context);
   1471 }
   1472 static __WIDL_INLINE void ID3D11Device5_GetResourceTiling(ID3D11Device5* This,ID3D11Resource *resource,UINT *tile_count,D3D11_PACKED_MIP_DESC *mip_desc,D3D11_TILE_SHAPE *tile_shape,UINT *subresource_tiling_count,UINT first_subresource_tiling,D3D11_SUBRESOURCE_TILING *subresource_tiling) {
   1473     This->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling);
   1474 }
   1475 static __WIDL_INLINE HRESULT ID3D11Device5_CheckMultisampleQualityLevels1(ID3D11Device5* This,DXGI_FORMAT format,UINT sample_count,UINT flags,UINT *quality_level_count) {
   1476     return This->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count);
   1477 }
   1478 /*** ID3D11Device3 methods ***/
   1479 static __WIDL_INLINE HRESULT ID3D11Device5_CreateTexture2D1(ID3D11Device5* This,const D3D11_TEXTURE2D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture2D1 **texture) {
   1480     return This->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture);
   1481 }
   1482 static __WIDL_INLINE HRESULT ID3D11Device5_CreateTexture3D1(ID3D11Device5* This,const D3D11_TEXTURE3D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture3D1 **texture) {
   1483     return This->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture);
   1484 }
   1485 static __WIDL_INLINE HRESULT ID3D11Device5_CreateRasterizerState2(ID3D11Device5* This,const D3D11_RASTERIZER_DESC2 *desc,ID3D11RasterizerState2 **state) {
   1486     return This->lpVtbl->CreateRasterizerState2(This,desc,state);
   1487 }
   1488 static __WIDL_INLINE HRESULT ID3D11Device5_CreateShaderResourceView1(ID3D11Device5* This,ID3D11Resource *resource,const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,ID3D11ShaderResourceView1 **view) {
   1489     return This->lpVtbl->CreateShaderResourceView1(This,resource,desc,view);
   1490 }
   1491 static __WIDL_INLINE HRESULT ID3D11Device5_CreateUnorderedAccessView1(ID3D11Device5* This,ID3D11Resource *resource,const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,ID3D11UnorderedAccessView1 **view) {
   1492     return This->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view);
   1493 }
   1494 static __WIDL_INLINE HRESULT ID3D11Device5_CreateRenderTargetView1(ID3D11Device5* This,ID3D11Resource *resource,const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,ID3D11RenderTargetView1 **view) {
   1495     return This->lpVtbl->CreateRenderTargetView1(This,resource,desc,view);
   1496 }
   1497 static __WIDL_INLINE HRESULT ID3D11Device5_CreateQuery1(ID3D11Device5* This,const D3D11_QUERY_DESC1 *desc,ID3D11Query1 **query) {
   1498     return This->lpVtbl->CreateQuery1(This,desc,query);
   1499 }
   1500 static __WIDL_INLINE void ID3D11Device5_GetImmediateContext3(ID3D11Device5* This,ID3D11DeviceContext3 **context) {
   1501     This->lpVtbl->GetImmediateContext3(This,context);
   1502 }
   1503 static __WIDL_INLINE HRESULT ID3D11Device5_CreateDeferredContext3(ID3D11Device5* This,UINT flags,ID3D11DeviceContext3 **context) {
   1504     return This->lpVtbl->CreateDeferredContext3(This,flags,context);
   1505 }
   1506 static __WIDL_INLINE void ID3D11Device5_WriteToSubresource(ID3D11Device5* This,ID3D11Resource *dst_resource,UINT dst_subresource,const D3D11_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_depth_pitch) {
   1507     This->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch);
   1508 }
   1509 static __WIDL_INLINE void ID3D11Device5_ReadFromSubresource(ID3D11Device5* This,void *dst_data,UINT dst_row_pitch,UINT dst_depth_pitch,ID3D11Resource *src_resource,UINT src_subresource,const D3D11_BOX *src_box) {
   1510     This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box);
   1511 }
   1512 /*** ID3D11Device4 methods ***/
   1513 static __WIDL_INLINE HRESULT ID3D11Device5_RegisterDeviceRemovedEvent(ID3D11Device5* This,HANDLE event,DWORD *cookie) {
   1514     return This->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie);
   1515 }
   1516 static __WIDL_INLINE void ID3D11Device5_UnregisterDeviceRemoved(ID3D11Device5* This,DWORD cookie) {
   1517     This->lpVtbl->UnregisterDeviceRemoved(This,cookie);
   1518 }
   1519 /*** ID3D11Device5 methods ***/
   1520 static __WIDL_INLINE HRESULT ID3D11Device5_OpenSharedFence(ID3D11Device5* This,HANDLE handle,REFIID iid,void **fence) {
   1521     return This->lpVtbl->OpenSharedFence(This,handle,iid,fence);
   1522 }
   1523 static __WIDL_INLINE HRESULT ID3D11Device5_CreateFence(ID3D11Device5* This,UINT64 initial_value,D3D11_FENCE_FLAG flags,REFIID iid,void **fence) {
   1524     return This->lpVtbl->CreateFence(This,initial_value,flags,iid,fence);
   1525 }
   1526 #endif
   1527 #endif
   1528 
   1529 #endif
   1530 
   1531 
   1532 #endif  /* __ID3D11Device5_INTERFACE_DEFINED__ */
   1533 
   1534 /*****************************************************************************
   1535  * ID3D11Multithread interface
   1536  */
   1537 #ifndef __ID3D11Multithread_INTERFACE_DEFINED__
   1538 #define __ID3D11Multithread_INTERFACE_DEFINED__
   1539 
   1540 DEFINE_GUID(IID_ID3D11Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
   1541 #if defined(__cplusplus) && !defined(CINTERFACE)
   1542 MIDL_INTERFACE("9b7e4e00-342c-4106-a19f-4f2704f689f0")
   1543 ID3D11Multithread : public IUnknown
   1544 {
   1545     virtual void STDMETHODCALLTYPE Enter(
   1546         ) = 0;
   1547 
   1548     virtual void STDMETHODCALLTYPE Leave(
   1549         ) = 0;
   1550 
   1551     virtual WINBOOL STDMETHODCALLTYPE SetMultithreadProtected(
   1552         WINBOOL enable) = 0;
   1553 
   1554     virtual WINBOOL STDMETHODCALLTYPE GetMultithreadProtected(
   1555         ) = 0;
   1556 
   1557 };
   1558 #ifdef __CRT_UUID_DECL
   1559 __CRT_UUID_DECL(ID3D11Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
   1560 #endif
   1561 #else
   1562 typedef struct ID3D11MultithreadVtbl {
   1563     BEGIN_INTERFACE
   1564 
   1565     /*** IUnknown methods ***/
   1566     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1567         ID3D11Multithread *This,
   1568         REFIID riid,
   1569         void **ppvObject);
   1570 
   1571     ULONG (STDMETHODCALLTYPE *AddRef)(
   1572         ID3D11Multithread *This);
   1573 
   1574     ULONG (STDMETHODCALLTYPE *Release)(
   1575         ID3D11Multithread *This);
   1576 
   1577     /*** ID3D11Multithread methods ***/
   1578     void (STDMETHODCALLTYPE *Enter)(
   1579         ID3D11Multithread *This);
   1580 
   1581     void (STDMETHODCALLTYPE *Leave)(
   1582         ID3D11Multithread *This);
   1583 
   1584     WINBOOL (STDMETHODCALLTYPE *SetMultithreadProtected)(
   1585         ID3D11Multithread *This,
   1586         WINBOOL enable);
   1587 
   1588     WINBOOL (STDMETHODCALLTYPE *GetMultithreadProtected)(
   1589         ID3D11Multithread *This);
   1590 
   1591     END_INTERFACE
   1592 } ID3D11MultithreadVtbl;
   1593 
   1594 interface ID3D11Multithread {
   1595     CONST_VTBL ID3D11MultithreadVtbl* lpVtbl;
   1596 };
   1597 
   1598 #ifdef COBJMACROS
   1599 #ifndef WIDL_C_INLINE_WRAPPERS
   1600 /*** IUnknown methods ***/
   1601 #define ID3D11Multithread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1602 #define ID3D11Multithread_AddRef(This) (This)->lpVtbl->AddRef(This)
   1603 #define ID3D11Multithread_Release(This) (This)->lpVtbl->Release(This)
   1604 /*** ID3D11Multithread methods ***/
   1605 #define ID3D11Multithread_Enter(This) (This)->lpVtbl->Enter(This)
   1606 #define ID3D11Multithread_Leave(This) (This)->lpVtbl->Leave(This)
   1607 #define ID3D11Multithread_SetMultithreadProtected(This,enable) (This)->lpVtbl->SetMultithreadProtected(This,enable)
   1608 #define ID3D11Multithread_GetMultithreadProtected(This) (This)->lpVtbl->GetMultithreadProtected(This)
   1609 #else
   1610 /*** IUnknown methods ***/
   1611 static __WIDL_INLINE HRESULT ID3D11Multithread_QueryInterface(ID3D11Multithread* This,REFIID riid,void **ppvObject) {
   1612     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1613 }
   1614 static __WIDL_INLINE ULONG ID3D11Multithread_AddRef(ID3D11Multithread* This) {
   1615     return This->lpVtbl->AddRef(This);
   1616 }
   1617 static __WIDL_INLINE ULONG ID3D11Multithread_Release(ID3D11Multithread* This) {
   1618     return This->lpVtbl->Release(This);
   1619 }
   1620 /*** ID3D11Multithread methods ***/
   1621 static __WIDL_INLINE void ID3D11Multithread_Enter(ID3D11Multithread* This) {
   1622     This->lpVtbl->Enter(This);
   1623 }
   1624 static __WIDL_INLINE void ID3D11Multithread_Leave(ID3D11Multithread* This) {
   1625     This->lpVtbl->Leave(This);
   1626 }
   1627 static __WIDL_INLINE WINBOOL ID3D11Multithread_SetMultithreadProtected(ID3D11Multithread* This,WINBOOL enable) {
   1628     return This->lpVtbl->SetMultithreadProtected(This,enable);
   1629 }
   1630 static __WIDL_INLINE WINBOOL ID3D11Multithread_GetMultithreadProtected(ID3D11Multithread* This) {
   1631     return This->lpVtbl->GetMultithreadProtected(This);
   1632 }
   1633 #endif
   1634 #endif
   1635 
   1636 #endif
   1637 
   1638 
   1639 #endif  /* __ID3D11Multithread_INTERFACE_DEFINED__ */
   1640 
   1641 /*****************************************************************************
   1642  * ID3D11VideoContext2 interface
   1643  */
   1644 #ifndef __ID3D11VideoContext2_INTERFACE_DEFINED__
   1645 #define __ID3D11VideoContext2_INTERFACE_DEFINED__
   1646 
   1647 DEFINE_GUID(IID_ID3D11VideoContext2, 0xc4e7374c, 0x6243, 0x4d1b, 0xae,0x87, 0x52,0xb4,0xf7,0x40,0xe2,0x61);
   1648 #if defined(__cplusplus) && !defined(CINTERFACE)
   1649 MIDL_INTERFACE("c4e7374c-6243-4d1b-ae87-52b4f740e261")
   1650 ID3D11VideoContext2 : public ID3D11VideoContext1
   1651 {
   1652     virtual void STDMETHODCALLTYPE VideoProcessorSetOutputHDRMetaData(
   1653         ID3D11VideoProcessor *processor,
   1654         DXGI_HDR_METADATA_TYPE type,
   1655         UINT size,
   1656         const void *meta_data) = 0;
   1657 
   1658     virtual void STDMETHODCALLTYPE VideoProcessorGetOutputHDRMetaData(
   1659         ID3D11VideoProcessor *processor,
   1660         DXGI_HDR_METADATA_TYPE *type,
   1661         UINT size,
   1662         void *meta_data) = 0;
   1663 
   1664     virtual void STDMETHODCALLTYPE VideoProcessorSetStreamHDRMetaData(
   1665         ID3D11VideoProcessor *processor,
   1666         UINT stream_index,
   1667         DXGI_HDR_METADATA_TYPE type,
   1668         UINT size,
   1669         const void *meta_data) = 0;
   1670 
   1671     virtual void STDMETHODCALLTYPE VideoProcessorGetStreamHDRMetaData(
   1672         ID3D11VideoProcessor *processor,
   1673         UINT stream_index,
   1674         DXGI_HDR_METADATA_TYPE *type,
   1675         UINT size,
   1676         void *meta_data) = 0;
   1677 
   1678 };
   1679 #ifdef __CRT_UUID_DECL
   1680 __CRT_UUID_DECL(ID3D11VideoContext2, 0xc4e7374c, 0x6243, 0x4d1b, 0xae,0x87, 0x52,0xb4,0xf7,0x40,0xe2,0x61)
   1681 #endif
   1682 #else
   1683 typedef struct ID3D11VideoContext2Vtbl {
   1684     BEGIN_INTERFACE
   1685 
   1686     /*** IUnknown methods ***/
   1687     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1688         ID3D11VideoContext2 *This,
   1689         REFIID riid,
   1690         void **ppvObject);
   1691 
   1692     ULONG (STDMETHODCALLTYPE *AddRef)(
   1693         ID3D11VideoContext2 *This);
   1694 
   1695     ULONG (STDMETHODCALLTYPE *Release)(
   1696         ID3D11VideoContext2 *This);
   1697 
   1698     /*** ID3D11DeviceChild methods ***/
   1699     void (STDMETHODCALLTYPE *GetDevice)(
   1700         ID3D11VideoContext2 *This,
   1701         ID3D11Device **ppDevice);
   1702 
   1703     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
   1704         ID3D11VideoContext2 *This,
   1705         REFGUID guid,
   1706         UINT *pDataSize,
   1707         void *pData);
   1708 
   1709     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
   1710         ID3D11VideoContext2 *This,
   1711         REFGUID guid,
   1712         UINT DataSize,
   1713         const void *pData);
   1714 
   1715     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
   1716         ID3D11VideoContext2 *This,
   1717         REFGUID guid,
   1718         const IUnknown *pData);
   1719 
   1720     /*** ID3D11VideoContext methods ***/
   1721     HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)(
   1722         ID3D11VideoContext2 *This,
   1723         ID3D11VideoDecoder *decoder,
   1724         D3D11_VIDEO_DECODER_BUFFER_TYPE type,
   1725         UINT *buffer_size,
   1726         void **buffer);
   1727 
   1728     HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)(
   1729         ID3D11VideoContext2 *This,
   1730         ID3D11VideoDecoder *decoder,
   1731         D3D11_VIDEO_DECODER_BUFFER_TYPE type);
   1732 
   1733     HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)(
   1734         ID3D11VideoContext2 *This,
   1735         ID3D11VideoDecoder *decoder,
   1736         ID3D11VideoDecoderOutputView *view,
   1737         UINT key_size,
   1738         const void *key);
   1739 
   1740     HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)(
   1741         ID3D11VideoContext2 *This,
   1742         ID3D11VideoDecoder *decoder);
   1743 
   1744     HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)(
   1745         ID3D11VideoContext2 *This,
   1746         ID3D11VideoDecoder *decoder,
   1747         UINT buffers_count,
   1748         const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc);
   1749 
   1750     HRESULT (STDMETHODCALLTYPE *DecoderExtension)(
   1751         ID3D11VideoContext2 *This,
   1752         ID3D11VideoDecoder *decoder,
   1753         const D3D11_VIDEO_DECODER_EXTENSION *extension);
   1754 
   1755     void (STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect)(
   1756         ID3D11VideoContext2 *This,
   1757         ID3D11VideoProcessor *processor,
   1758         WINBOOL enable,
   1759         const RECT *rect);
   1760 
   1761     void (STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor)(
   1762         ID3D11VideoContext2 *This,
   1763         ID3D11VideoProcessor *processor,
   1764         WINBOOL y_cb_cr,
   1765         const D3D11_VIDEO_COLOR *color);
   1766 
   1767     void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace)(
   1768         ID3D11VideoContext2 *This,
   1769         ID3D11VideoProcessor *processor,
   1770         const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   1771 
   1772     void (STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode)(
   1773         ID3D11VideoContext2 *This,
   1774         ID3D11VideoProcessor *processor,
   1775         D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
   1776         UINT stream_idx);
   1777 
   1778     void (STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction)(
   1779         ID3D11VideoContext2 *This,
   1780         ID3D11VideoProcessor *processor,
   1781         WINBOOL enable,
   1782         SIZE size);
   1783 
   1784     void (STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode)(
   1785         ID3D11VideoContext2 *This,
   1786         ID3D11VideoProcessor *processor,
   1787         WINBOOL enable);
   1788 
   1789     HRESULT (STDMETHODCALLTYPE *VideoProcessorSetOutputExtension)(
   1790         ID3D11VideoContext2 *This,
   1791         ID3D11VideoProcessor *processor,
   1792         const GUID *guid,
   1793         UINT data_size,
   1794         void *data);
   1795 
   1796     void (STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect)(
   1797         ID3D11VideoContext2 *This,
   1798         ID3D11VideoProcessor *processor,
   1799         WINBOOL *enabled,
   1800         RECT *rect);
   1801 
   1802     void (STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor)(
   1803         ID3D11VideoContext2 *This,
   1804         ID3D11VideoProcessor *processor,
   1805         WINBOOL *y_cb_cr,
   1806         D3D11_VIDEO_COLOR *color);
   1807 
   1808     void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace)(
   1809         ID3D11VideoContext2 *This,
   1810         ID3D11VideoProcessor *processor,
   1811         D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   1812 
   1813     void (STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode)(
   1814         ID3D11VideoContext2 *This,
   1815         ID3D11VideoProcessor *processor,
   1816         D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
   1817         UINT *stream_idx);
   1818 
   1819     void (STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction)(
   1820         ID3D11VideoContext2 *This,
   1821         ID3D11VideoProcessor *processor,
   1822         WINBOOL *enabled,
   1823         SIZE *size);
   1824 
   1825     void (STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode)(
   1826         ID3D11VideoContext2 *This,
   1827         ID3D11VideoProcessor *processor,
   1828         WINBOOL *enabled);
   1829 
   1830     HRESULT (STDMETHODCALLTYPE *VideoProcessorGetOutputExtension)(
   1831         ID3D11VideoContext2 *This,
   1832         ID3D11VideoProcessor *processor,
   1833         const GUID *guid,
   1834         UINT data_size,
   1835         void *data);
   1836 
   1837     void (STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat)(
   1838         ID3D11VideoContext2 *This,
   1839         ID3D11VideoProcessor *processor,
   1840         UINT stream_idx,
   1841         D3D11_VIDEO_FRAME_FORMAT format);
   1842 
   1843     void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace)(
   1844         ID3D11VideoContext2 *This,
   1845         ID3D11VideoProcessor *processor,
   1846         UINT stream_idx,
   1847         const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   1848 
   1849     void (STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate)(
   1850         ID3D11VideoContext2 *This,
   1851         ID3D11VideoProcessor *processor,
   1852         UINT stream_idx,
   1853         D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
   1854         WINBOOL repeat,
   1855         const DXGI_RATIONAL *custom_rate);
   1856 
   1857     void (STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect)(
   1858         ID3D11VideoContext2 *This,
   1859         ID3D11VideoProcessor *processor,
   1860         UINT stream_idx,
   1861         WINBOOL enable,
   1862         const RECT *rect);
   1863 
   1864     void (STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect)(
   1865         ID3D11VideoContext2 *This,
   1866         ID3D11VideoProcessor *processor,
   1867         UINT stream_idx,
   1868         WINBOOL enable,
   1869         const RECT *rect);
   1870 
   1871     void (STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha)(
   1872         ID3D11VideoContext2 *This,
   1873         ID3D11VideoProcessor *processor,
   1874         UINT stream_idx,
   1875         WINBOOL enable,
   1876         float alpha);
   1877 
   1878     void (STDMETHODCALLTYPE *VideoProcessorSetStreamPalette)(
   1879         ID3D11VideoContext2 *This,
   1880         ID3D11VideoProcessor *processor,
   1881         UINT stream_idx,
   1882         UINT entry_count,
   1883         const UINT *entries);
   1884 
   1885     void (STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio)(
   1886         ID3D11VideoContext2 *This,
   1887         ID3D11VideoProcessor *processor,
   1888         UINT stream_idx,
   1889         WINBOOL enable,
   1890         const DXGI_RATIONAL *src_aspect_ratio,
   1891         const DXGI_RATIONAL *dst_aspect_ratio);
   1892 
   1893     void (STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey)(
   1894         ID3D11VideoContext2 *This,
   1895         ID3D11VideoProcessor *processor,
   1896         UINT stream_idx,
   1897         WINBOOL enable,
   1898         float lower,
   1899         float upper);
   1900 
   1901     void (STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat)(
   1902         ID3D11VideoContext2 *This,
   1903         ID3D11VideoProcessor *processor,
   1904         UINT stream_idx,
   1905         WINBOOL enable,
   1906         D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
   1907         WINBOOL left_view_frame0,
   1908         WINBOOL base_view_frame0,
   1909         D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
   1910         int mono_offset);
   1911 
   1912     void (STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode)(
   1913         ID3D11VideoContext2 *This,
   1914         ID3D11VideoProcessor *processor,
   1915         UINT stream_idx,
   1916         WINBOOL enable);
   1917 
   1918     void (STDMETHODCALLTYPE *VideoProcessorSetStreamFilter)(
   1919         ID3D11VideoContext2 *This,
   1920         ID3D11VideoProcessor *processor,
   1921         UINT stream_idx,
   1922         D3D11_VIDEO_PROCESSOR_FILTER filter,
   1923         WINBOOL enable,
   1924         int level);
   1925 
   1926     HRESULT (STDMETHODCALLTYPE *VideoProcessorSetStreamExtension)(
   1927         ID3D11VideoContext2 *This,
   1928         ID3D11VideoProcessor *processor,
   1929         UINT stream_idx,
   1930         const GUID *guid,
   1931         UINT data_size,
   1932         void *data);
   1933 
   1934     void (STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat)(
   1935         ID3D11VideoContext2 *This,
   1936         ID3D11VideoProcessor *processor,
   1937         UINT stream_idx,
   1938         D3D11_VIDEO_FRAME_FORMAT *format);
   1939 
   1940     void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace)(
   1941         ID3D11VideoContext2 *This,
   1942         ID3D11VideoProcessor *processor,
   1943         UINT stream_idx,
   1944         D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
   1945 
   1946     void (STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate)(
   1947         ID3D11VideoContext2 *This,
   1948         ID3D11VideoProcessor *processor,
   1949         UINT stream_idx,
   1950         D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
   1951         WINBOOL *repeat,
   1952         DXGI_RATIONAL *custom_rate);
   1953 
   1954     void (STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect)(
   1955         ID3D11VideoContext2 *This,
   1956         ID3D11VideoProcessor *processor,
   1957         UINT stream_idx,
   1958         WINBOOL *enabled,
   1959         RECT *rect);
   1960 
   1961     void (STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect)(
   1962         ID3D11VideoContext2 *This,
   1963         ID3D11VideoProcessor *processor,
   1964         UINT stream_idx,
   1965         WINBOOL *enabled,
   1966         RECT *rect);
   1967 
   1968     void (STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha)(
   1969         ID3D11VideoContext2 *This,
   1970         ID3D11VideoProcessor *processor,
   1971         UINT stream_idx,
   1972         WINBOOL *enabled,
   1973         float *alpha);
   1974 
   1975     void (STDMETHODCALLTYPE *VideoProcessorGetStreamPalette)(
   1976         ID3D11VideoContext2 *This,
   1977         ID3D11VideoProcessor *processor,
   1978         UINT stream_idx,
   1979         UINT entry_count,
   1980         UINT *entries);
   1981 
   1982     void (STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio)(
   1983         ID3D11VideoContext2 *This,
   1984         ID3D11VideoProcessor *processor,
   1985         UINT stream_idx,
   1986         WINBOOL *enabled,
   1987         DXGI_RATIONAL *src_aspect_ratio,
   1988         DXGI_RATIONAL *dst_aspect_ratio);
   1989 
   1990     void (STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey)(
   1991         ID3D11VideoContext2 *This,
   1992         ID3D11VideoProcessor *processor,
   1993         UINT stream_idx,
   1994         WINBOOL *enabled,
   1995         float *lower,
   1996         float *upper);
   1997 
   1998     void (STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat)(
   1999         ID3D11VideoContext2 *This,
   2000         ID3D11VideoProcessor *processor,
   2001         UINT stream_idx,
   2002         WINBOOL *enabled,
   2003         D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
   2004         WINBOOL *left_view_frame0,
   2005         WINBOOL *base_view_frame0,
   2006         D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
   2007         int *mono_offset);
   2008 
   2009     void (STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode)(
   2010         ID3D11VideoContext2 *This,
   2011         ID3D11VideoProcessor *processor,
   2012         UINT stream_idx,
   2013         WINBOOL *enabled);
   2014 
   2015     void (STDMETHODCALLTYPE *VideoProcessorGetStreamFilter)(
   2016         ID3D11VideoContext2 *This,
   2017         ID3D11VideoProcessor *processor,
   2018         UINT stream_idx,
   2019         D3D11_VIDEO_PROCESSOR_FILTER filter,
   2020         WINBOOL *enabled,
   2021         int *level);
   2022 
   2023     HRESULT (STDMETHODCALLTYPE *VideoProcessorGetStreamExtension)(
   2024         ID3D11VideoContext2 *This,
   2025         ID3D11VideoProcessor *processor,
   2026         UINT stream_idx,
   2027         const GUID *guid,
   2028         UINT data_size,
   2029         void *data);
   2030 
   2031     HRESULT (STDMETHODCALLTYPE *VideoProcessorBlt)(
   2032         ID3D11VideoContext2 *This,
   2033         ID3D11VideoProcessor *processor,
   2034         ID3D11VideoProcessorOutputView *view,
   2035         UINT frame_idx,
   2036         UINT stream_count,
   2037         const D3D11_VIDEO_PROCESSOR_STREAM *streams);
   2038 
   2039     HRESULT (STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange)(
   2040         ID3D11VideoContext2 *This,
   2041         ID3D11CryptoSession *session,
   2042         UINT data_size,
   2043         void *data);
   2044 
   2045     void (STDMETHODCALLTYPE *EncryptionBlt)(
   2046         ID3D11VideoContext2 *This,
   2047         ID3D11CryptoSession *session,
   2048         ID3D11Texture2D *src_surface,
   2049         ID3D11Texture2D *dst_surface,
   2050         UINT iv_size,
   2051         void *iv);
   2052 
   2053     void (STDMETHODCALLTYPE *DecryptionBlt)(
   2054         ID3D11VideoContext2 *This,
   2055         ID3D11CryptoSession *session,
   2056         ID3D11Texture2D *src_surface,
   2057         ID3D11Texture2D *dst_surface,
   2058         D3D11_ENCRYPTED_BLOCK_INFO *block_info,
   2059         UINT key_size,
   2060         const void *key,
   2061         UINT iv_size,
   2062         void *iv);
   2063 
   2064     void (STDMETHODCALLTYPE *StartSessionKeyRefresh)(
   2065         ID3D11VideoContext2 *This,
   2066         ID3D11CryptoSession *session,
   2067         UINT random_number_size,
   2068         void *random_number);
   2069 
   2070     void (STDMETHODCALLTYPE *FinishSessionKeyRefresh)(
   2071         ID3D11VideoContext2 *This,
   2072         ID3D11CryptoSession *session);
   2073 
   2074     HRESULT (STDMETHODCALLTYPE *GetEncryptionBltKey)(
   2075         ID3D11VideoContext2 *This,
   2076         ID3D11CryptoSession *session,
   2077         UINT key_size,
   2078         void *key);
   2079 
   2080     HRESULT (STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange)(
   2081         ID3D11VideoContext2 *This,
   2082         ID3D11AuthenticatedChannel *channel,
   2083         UINT data_size,
   2084         void *data);
   2085 
   2086     HRESULT (STDMETHODCALLTYPE *QueryAuthenticatedChannel)(
   2087         ID3D11VideoContext2 *This,
   2088         ID3D11AuthenticatedChannel *channel,
   2089         UINT input_size,
   2090         const void *input,
   2091         UINT output_size,
   2092         void *output);
   2093 
   2094     HRESULT (STDMETHODCALLTYPE *ConfigureAuthenticatedChannel)(
   2095         ID3D11VideoContext2 *This,
   2096         ID3D11AuthenticatedChannel *channel,
   2097         UINT input_size,
   2098         const void *input,
   2099         D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output);
   2100 
   2101     void (STDMETHODCALLTYPE *VideoProcessorSetStreamRotation)(
   2102         ID3D11VideoContext2 *This,
   2103         ID3D11VideoProcessor *processor,
   2104         UINT stream_idx,
   2105         WINBOOL enable,
   2106         D3D11_VIDEO_PROCESSOR_ROTATION rotation);
   2107 
   2108     void (STDMETHODCALLTYPE *VideoProcessorGetStreamRotation)(
   2109         ID3D11VideoContext2 *This,
   2110         ID3D11VideoProcessor *processor,
   2111         UINT stream_idx,
   2112         WINBOOL *enable,
   2113         D3D11_VIDEO_PROCESSOR_ROTATION *rotation);
   2114 
   2115     /*** ID3D11VideoContext1 methods ***/
   2116     HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers1)(
   2117         ID3D11VideoContext2 *This,
   2118         ID3D11VideoDecoder *decoder,
   2119         UINT buffer_count,
   2120         const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc);
   2121 
   2122     HRESULT (STDMETHODCALLTYPE *GetDataForNewHardwareKey)(
   2123         ID3D11VideoContext2 *This,
   2124         ID3D11CryptoSession *session,
   2125         UINT input_size,
   2126         const void *input_data,
   2127         UINT64 *output_data);
   2128 
   2129     HRESULT (STDMETHODCALLTYPE *CheckCryptoSessionStatus)(
   2130         ID3D11VideoContext2 *This,
   2131         ID3D11CryptoSession *session,
   2132         D3D11_CRYPTO_SESSION_STATUS *status);
   2133 
   2134     HRESULT (STDMETHODCALLTYPE *DecoderEnableDownsampling)(
   2135         ID3D11VideoContext2 *This,
   2136         ID3D11VideoDecoder *decoder,
   2137         DXGI_COLOR_SPACE_TYPE colour_space,
   2138         const D3D11_VIDEO_SAMPLE_DESC *output_desc,
   2139         UINT reference_frame_count);
   2140 
   2141     HRESULT (STDMETHODCALLTYPE *DecoderUpdateDownsampling)(
   2142         ID3D11VideoContext2 *This,
   2143         ID3D11VideoDecoder *decoder,
   2144         const D3D11_VIDEO_SAMPLE_DESC *output_desc);
   2145 
   2146     void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace1)(
   2147         ID3D11VideoContext2 *This,
   2148         ID3D11VideoProcessor *processor,
   2149         DXGI_COLOR_SPACE_TYPE colour_space);
   2150 
   2151     void (STDMETHODCALLTYPE *VideoProcessorSetOutputShaderUsage)(
   2152         ID3D11VideoContext2 *This,
   2153         ID3D11VideoProcessor *processor,
   2154         WINBOOL shader_usage);
   2155 
   2156     void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace1)(
   2157         ID3D11VideoContext2 *This,
   2158         ID3D11VideoProcessor *processor,
   2159         DXGI_COLOR_SPACE_TYPE *colour_space);
   2160 
   2161     void (STDMETHODCALLTYPE *VideoProcessorGetOutputShaderUsage)(
   2162         ID3D11VideoContext2 *This,
   2163         ID3D11VideoProcessor *processor,
   2164         WINBOOL *shader_usage);
   2165 
   2166     void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace1)(
   2167         ID3D11VideoContext2 *This,
   2168         ID3D11VideoProcessor *processor,
   2169         UINT stream_index,
   2170         DXGI_COLOR_SPACE_TYPE colour_space);
   2171 
   2172     void (STDMETHODCALLTYPE *VideoProcessorSetStreamMirror)(
   2173         ID3D11VideoContext2 *This,
   2174         ID3D11VideoProcessor *processor,
   2175         UINT stream_index,
   2176         WINBOOL enable,
   2177         WINBOOL flip_horizontal,
   2178         WINBOOL flip_vertical);
   2179 
   2180     void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace1)(
   2181         ID3D11VideoContext2 *This,
   2182         ID3D11VideoProcessor *processor,
   2183         UINT stream_index,
   2184         DXGI_COLOR_SPACE_TYPE *colour_space);
   2185 
   2186     void (STDMETHODCALLTYPE *VideoProcessorGetStreamMirror)(
   2187         ID3D11VideoContext2 *This,
   2188         ID3D11VideoProcessor *processor,
   2189         UINT stream_index,
   2190         WINBOOL *enable,
   2191         WINBOOL *flip_horizontal,
   2192         WINBOOL *flip_vertical);
   2193 
   2194     HRESULT (STDMETHODCALLTYPE *VideoProcessorGetBehaviorHints)(
   2195         ID3D11VideoContext2 *This,
   2196         ID3D11VideoProcessor *processor,
   2197         UINT output_width,
   2198         UINT output_height,
   2199         DXGI_FORMAT output_format,
   2200         UINT stream_count,
   2201         const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
   2202         UINT *behaviour_hints);
   2203 
   2204     /*** ID3D11VideoContext2 methods ***/
   2205     void (STDMETHODCALLTYPE *VideoProcessorSetOutputHDRMetaData)(
   2206         ID3D11VideoContext2 *This,
   2207         ID3D11VideoProcessor *processor,
   2208         DXGI_HDR_METADATA_TYPE type,
   2209         UINT size,
   2210         const void *meta_data);
   2211 
   2212     void (STDMETHODCALLTYPE *VideoProcessorGetOutputHDRMetaData)(
   2213         ID3D11VideoContext2 *This,
   2214         ID3D11VideoProcessor *processor,
   2215         DXGI_HDR_METADATA_TYPE *type,
   2216         UINT size,
   2217         void *meta_data);
   2218 
   2219     void (STDMETHODCALLTYPE *VideoProcessorSetStreamHDRMetaData)(
   2220         ID3D11VideoContext2 *This,
   2221         ID3D11VideoProcessor *processor,
   2222         UINT stream_index,
   2223         DXGI_HDR_METADATA_TYPE type,
   2224         UINT size,
   2225         const void *meta_data);
   2226 
   2227     void (STDMETHODCALLTYPE *VideoProcessorGetStreamHDRMetaData)(
   2228         ID3D11VideoContext2 *This,
   2229         ID3D11VideoProcessor *processor,
   2230         UINT stream_index,
   2231         DXGI_HDR_METADATA_TYPE *type,
   2232         UINT size,
   2233         void *meta_data);
   2234 
   2235     END_INTERFACE
   2236 } ID3D11VideoContext2Vtbl;
   2237 
   2238 interface ID3D11VideoContext2 {
   2239     CONST_VTBL ID3D11VideoContext2Vtbl* lpVtbl;
   2240 };
   2241 
   2242 #ifdef COBJMACROS
   2243 #ifndef WIDL_C_INLINE_WRAPPERS
   2244 /*** IUnknown methods ***/
   2245 #define ID3D11VideoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2246 #define ID3D11VideoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2247 #define ID3D11VideoContext2_Release(This) (This)->lpVtbl->Release(This)
   2248 /*** ID3D11DeviceChild methods ***/
   2249 #define ID3D11VideoContext2_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
   2250 #define ID3D11VideoContext2_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
   2251 #define ID3D11VideoContext2_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
   2252 #define ID3D11VideoContext2_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
   2253 /*** ID3D11VideoContext methods ***/
   2254 #define ID3D11VideoContext2_GetDecoderBuffer(This,decoder,type,buffer_size,buffer) (This)->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer)
   2255 #define ID3D11VideoContext2_ReleaseDecoderBuffer(This,decoder,type) (This)->lpVtbl->ReleaseDecoderBuffer(This,decoder,type)
   2256 #define ID3D11VideoContext2_DecoderBeginFrame(This,decoder,view,key_size,key) (This)->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key)
   2257 #define ID3D11VideoContext2_DecoderEndFrame(This,decoder) (This)->lpVtbl->DecoderEndFrame(This,decoder)
   2258 #define ID3D11VideoContext2_SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc)
   2259 #define ID3D11VideoContext2_DecoderExtension(This,decoder,extension) (This)->lpVtbl->DecoderExtension(This,decoder,extension)
   2260 #define ID3D11VideoContext2_VideoProcessorSetOutputTargetRect(This,processor,enable,rect) (This)->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect)
   2261 #define ID3D11VideoContext2_VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color)
   2262 #define ID3D11VideoContext2_VideoProcessorSetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space)
   2263 #define ID3D11VideoContext2_VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
   2264 #define ID3D11VideoContext2_VideoProcessorSetOutputConstriction(This,processor,enable,size) (This)->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size)
   2265 #define ID3D11VideoContext2_VideoProcessorSetOutputStereoMode(This,processor,enable) (This)->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable)
   2266 #define ID3D11VideoContext2_VideoProcessorSetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data)
   2267 #define ID3D11VideoContext2_VideoProcessorGetOutputTargetRect(This,processor,enabled,rect) (This)->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect)
   2268 #define ID3D11VideoContext2_VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color)
   2269 #define ID3D11VideoContext2_VideoProcessorGetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space)
   2270 #define ID3D11VideoContext2_VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
   2271 #define ID3D11VideoContext2_VideoProcessorGetOutputConstriction(This,processor,enabled,size) (This)->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size)
   2272 #define ID3D11VideoContext2_VideoProcessorGetOutputStereoMode(This,processor,enabled) (This)->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled)
   2273 #define ID3D11VideoContext2_VideoProcessorGetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data)
   2274 #define ID3D11VideoContext2_VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format)
   2275 #define ID3D11VideoContext2_VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space)
   2276 #define ID3D11VideoContext2_VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
   2277 #define ID3D11VideoContext2_VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect)
   2278 #define ID3D11VideoContext2_VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect)
   2279 #define ID3D11VideoContext2_VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha) (This)->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha)
   2280 #define ID3D11VideoContext2_VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries)
   2281 #define ID3D11VideoContext2_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)
   2282 #define ID3D11VideoContext2_VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper) (This)->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper)
   2283 #define ID3D11VideoContext2_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)
   2284 #define ID3D11VideoContext2_VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable) (This)->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable)
   2285 #define ID3D11VideoContext2_VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level) (This)->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level)
   2286 #define ID3D11VideoContext2_VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data)
   2287 #define ID3D11VideoContext2_VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format)
   2288 #define ID3D11VideoContext2_VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space)
   2289 #define ID3D11VideoContext2_VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
   2290 #define ID3D11VideoContext2_VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect)
   2291 #define ID3D11VideoContext2_VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect)
   2292 #define ID3D11VideoContext2_VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha) (This)->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha)
   2293 #define ID3D11VideoContext2_VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries)
   2294 #define ID3D11VideoContext2_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)
   2295 #define ID3D11VideoContext2_VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper) (This)->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper)
   2296 #define ID3D11VideoContext2_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)
   2297 #define ID3D11VideoContext2_VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled) (This)->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled)
   2298 #define ID3D11VideoContext2_VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level) (This)->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level)
   2299 #define ID3D11VideoContext2_VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data)
   2300 #define ID3D11VideoContext2_VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams) (This)->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams)
   2301 #define ID3D11VideoContext2_NegotiateCryptoSessionKeyExchange(This,session,data_size,data) (This)->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data)
   2302 #define ID3D11VideoContext2_EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv) (This)->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv)
   2303 #define ID3D11VideoContext2_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)
   2304 #define ID3D11VideoContext2_StartSessionKeyRefresh(This,session,random_number_size,random_number) (This)->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number)
   2305 #define ID3D11VideoContext2_FinishSessionKeyRefresh(This,session) (This)->lpVtbl->FinishSessionKeyRefresh(This,session)
   2306 #define ID3D11VideoContext2_GetEncryptionBltKey(This,session,key_size,key) (This)->lpVtbl->GetEncryptionBltKey(This,session,key_size,key)
   2307 #define ID3D11VideoContext2_NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data) (This)->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data)
   2308 #define ID3D11VideoContext2_QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output) (This)->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output)
   2309 #define ID3D11VideoContext2_ConfigureAuthenticatedChannel(This,channel,input_size,input,output) (This)->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output)
   2310 #define ID3D11VideoContext2_VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation)
   2311 #define ID3D11VideoContext2_VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation)
   2312 /*** ID3D11VideoContext1 methods ***/
   2313 #define ID3D11VideoContext2_SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc)
   2314 #define ID3D11VideoContext2_GetDataForNewHardwareKey(This,session,input_size,input_data,output_data) (This)->lpVtbl->GetDataForNewHardwareKey(This,session,input_size,input_data,output_data)
   2315 #define ID3D11VideoContext2_CheckCryptoSessionStatus(This,session,status) (This)->lpVtbl->CheckCryptoSessionStatus(This,session,status)
   2316 #define ID3D11VideoContext2_DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count) (This)->lpVtbl->DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count)
   2317 #define ID3D11VideoContext2_DecoderUpdateDownsampling(This,decoder,output_desc) (This)->lpVtbl->DecoderUpdateDownsampling(This,decoder,output_desc)
   2318 #define ID3D11VideoContext2_VideoProcessorSetOutputColorSpace1(This,processor,colour_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace1(This,processor,colour_space)
   2319 #define ID3D11VideoContext2_VideoProcessorSetOutputShaderUsage(This,processor,shader_usage) (This)->lpVtbl->VideoProcessorSetOutputShaderUsage(This,processor,shader_usage)
   2320 #define ID3D11VideoContext2_VideoProcessorGetOutputColorSpace1(This,processor,colour_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace1(This,processor,colour_space)
   2321 #define ID3D11VideoContext2_VideoProcessorGetOutputShaderUsage(This,processor,shader_usage) (This)->lpVtbl->VideoProcessorGetOutputShaderUsage(This,processor,shader_usage)
   2322 #define ID3D11VideoContext2_VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space)
   2323 #define ID3D11VideoContext2_VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical) (This)->lpVtbl->VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical)
   2324 #define ID3D11VideoContext2_VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space)
   2325 #define ID3D11VideoContext2_VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical) (This)->lpVtbl->VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical)
   2326 #define ID3D11VideoContext2_VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints) (This)->lpVtbl->VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints)
   2327 /*** ID3D11VideoContext2 methods ***/
   2328 #define ID3D11VideoContext2_VideoProcessorSetOutputHDRMetaData(This,processor,type,size,meta_data) (This)->lpVtbl->VideoProcessorSetOutputHDRMetaData(This,processor,type,size,meta_data)
   2329 #define ID3D11VideoContext2_VideoProcessorGetOutputHDRMetaData(This,processor,type,size,meta_data) (This)->lpVtbl->VideoProcessorGetOutputHDRMetaData(This,processor,type,size,meta_data)
   2330 #define ID3D11VideoContext2_VideoProcessorSetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data) (This)->lpVtbl->VideoProcessorSetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data)
   2331 #define ID3D11VideoContext2_VideoProcessorGetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data) (This)->lpVtbl->VideoProcessorGetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data)
   2332 #else
   2333 /*** IUnknown methods ***/
   2334 static __WIDL_INLINE HRESULT ID3D11VideoContext2_QueryInterface(ID3D11VideoContext2* This,REFIID riid,void **ppvObject) {
   2335     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2336 }
   2337 static __WIDL_INLINE ULONG ID3D11VideoContext2_AddRef(ID3D11VideoContext2* This) {
   2338     return This->lpVtbl->AddRef(This);
   2339 }
   2340 static __WIDL_INLINE ULONG ID3D11VideoContext2_Release(ID3D11VideoContext2* This) {
   2341     return This->lpVtbl->Release(This);
   2342 }
   2343 /*** ID3D11DeviceChild methods ***/
   2344 static __WIDL_INLINE void ID3D11VideoContext2_GetDevice(ID3D11VideoContext2* This,ID3D11Device **ppDevice) {
   2345     This->lpVtbl->GetDevice(This,ppDevice);
   2346 }
   2347 static __WIDL_INLINE HRESULT ID3D11VideoContext2_GetPrivateData(ID3D11VideoContext2* This,REFGUID guid,UINT *pDataSize,void *pData) {
   2348     return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
   2349 }
   2350 static __WIDL_INLINE HRESULT ID3D11VideoContext2_SetPrivateData(ID3D11VideoContext2* This,REFGUID guid,UINT DataSize,const void *pData) {
   2351     return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
   2352 }
   2353 static __WIDL_INLINE HRESULT ID3D11VideoContext2_SetPrivateDataInterface(ID3D11VideoContext2* This,REFGUID guid,const IUnknown *pData) {
   2354     return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
   2355 }
   2356 /*** ID3D11VideoContext methods ***/
   2357 static __WIDL_INLINE HRESULT ID3D11VideoContext2_GetDecoderBuffer(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type,UINT *buffer_size,void **buffer) {
   2358     return This->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer);
   2359 }
   2360 static __WIDL_INLINE HRESULT ID3D11VideoContext2_ReleaseDecoderBuffer(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type) {
   2361     return This->lpVtbl->ReleaseDecoderBuffer(This,decoder,type);
   2362 }
   2363 static __WIDL_INLINE HRESULT ID3D11VideoContext2_DecoderBeginFrame(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,ID3D11VideoDecoderOutputView *view,UINT key_size,const void *key) {
   2364     return This->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key);
   2365 }
   2366 static __WIDL_INLINE HRESULT ID3D11VideoContext2_DecoderEndFrame(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder) {
   2367     return This->lpVtbl->DecoderEndFrame(This,decoder);
   2368 }
   2369 static __WIDL_INLINE HRESULT ID3D11VideoContext2_SubmitDecoderBuffers(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,UINT buffers_count,const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) {
   2370     return This->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc);
   2371 }
   2372 static __WIDL_INLINE HRESULT ID3D11VideoContext2_DecoderExtension(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_DECODER_EXTENSION *extension) {
   2373     return This->lpVtbl->DecoderExtension(This,decoder,extension);
   2374 }
   2375 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputTargetRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL enable,const RECT *rect) {
   2376     This->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect);
   2377 }
   2378 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputBackgroundColor(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL y_cb_cr,const D3D11_VIDEO_COLOR *color) {
   2379     This->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color);
   2380 }
   2381 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
   2382     This->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space);
   2383 }
   2384 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputAlphaFillMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,UINT stream_idx) {
   2385     This->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
   2386 }
   2387 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputConstriction(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL enable,SIZE size) {
   2388     This->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size);
   2389 }
   2390 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputStereoMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL enable) {
   2391     This->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable);
   2392 }
   2393 static __WIDL_INLINE HRESULT ID3D11VideoContext2_VideoProcessorSetOutputExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
   2394     return This->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data);
   2395 }
   2396 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputTargetRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,RECT *rect) {
   2397     This->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect);
   2398 }
   2399 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputBackgroundColor(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *y_cb_cr,D3D11_VIDEO_COLOR *color) {
   2400     This->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color);
   2401 }
   2402 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
   2403     This->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space);
   2404 }
   2405 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputAlphaFillMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,UINT *stream_idx) {
   2406     This->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
   2407 }
   2408 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputConstriction(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,SIZE *size) {
   2409     This->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size);
   2410 }
   2411 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputStereoMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *enabled) {
   2412     This->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled);
   2413 }
   2414 static __WIDL_INLINE HRESULT ID3D11VideoContext2_VideoProcessorGetOutputExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
   2415     return This->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data);
   2416 }
   2417 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamFrameFormat(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT format) {
   2418     This->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format);
   2419 }
   2420 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
   2421     This->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space);
   2422 }
   2423 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamOutputRate(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,WINBOOL repeat,const DXGI_RATIONAL *custom_rate) {
   2424     This->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
   2425 }
   2426 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamSourceRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
   2427     This->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect);
   2428 }
   2429 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamDestRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
   2430     This->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect);
   2431 }
   2432 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamAlpha(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float alpha) {
   2433     This->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha);
   2434 }
   2435 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamPalette(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,const UINT *entries) {
   2436     This->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries);
   2437 }
   2438 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const DXGI_RATIONAL *src_aspect_ratio,const DXGI_RATIONAL *dst_aspect_ratio) {
   2439     This->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio);
   2440 }
   2441 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamLumaKey(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float lower,float upper) {
   2442     This->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper);
   2443 }
   2444 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamStereoFormat(ID3D11VideoContext2* 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) {
   2445     This->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
   2446 }
   2447 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable) {
   2448     This->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable);
   2449 }
   2450 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamFilter(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL enable,int level) {
   2451     This->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level);
   2452 }
   2453 static __WIDL_INLINE HRESULT ID3D11VideoContext2_VideoProcessorSetStreamExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
   2454     return This->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data);
   2455 }
   2456 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamFrameFormat(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT *format) {
   2457     This->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format);
   2458 }
   2459 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
   2460     This->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space);
   2461 }
   2462 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamOutputRate(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,WINBOOL *repeat,DXGI_RATIONAL *custom_rate) {
   2463     This->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
   2464 }
   2465 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamSourceRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
   2466     This->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect);
   2467 }
   2468 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamDestRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
   2469     This->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect);
   2470 }
   2471 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamAlpha(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *alpha) {
   2472     This->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha);
   2473 }
   2474 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamPalette(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,UINT *entries) {
   2475     This->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries);
   2476 }
   2477 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,DXGI_RATIONAL *src_aspect_ratio,DXGI_RATIONAL *dst_aspect_ratio) {
   2478     This->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio);
   2479 }
   2480 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamLumaKey(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *lower,float *upper) {
   2481     This->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper);
   2482 }
   2483 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamStereoFormat(ID3D11VideoContext2* 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) {
   2484     This->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
   2485 }
   2486 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled) {
   2487     This->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled);
   2488 }
   2489 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamFilter(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL *enabled,int *level) {
   2490     This->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level);
   2491 }
   2492 static __WIDL_INLINE HRESULT ID3D11VideoContext2_VideoProcessorGetStreamExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
   2493     return This->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data);
   2494 }
   2495 static __WIDL_INLINE HRESULT ID3D11VideoContext2_VideoProcessorBlt(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,ID3D11VideoProcessorOutputView *view,UINT frame_idx,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM *streams) {
   2496     return This->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams);
   2497 }
   2498 static __WIDL_INLINE HRESULT ID3D11VideoContext2_NegotiateCryptoSessionKeyExchange(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT data_size,void *data) {
   2499     return This->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data);
   2500 }
   2501 static __WIDL_INLINE void ID3D11VideoContext2_EncryptionBlt(ID3D11VideoContext2* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,UINT iv_size,void *iv) {
   2502     This->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv);
   2503 }
   2504 static __WIDL_INLINE void ID3D11VideoContext2_DecryptionBlt(ID3D11VideoContext2* 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) {
   2505     This->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv);
   2506 }
   2507 static __WIDL_INLINE void ID3D11VideoContext2_StartSessionKeyRefresh(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT random_number_size,void *random_number) {
   2508     This->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number);
   2509 }
   2510 static __WIDL_INLINE void ID3D11VideoContext2_FinishSessionKeyRefresh(ID3D11VideoContext2* This,ID3D11CryptoSession *session) {
   2511     This->lpVtbl->FinishSessionKeyRefresh(This,session);
   2512 }
   2513 static __WIDL_INLINE HRESULT ID3D11VideoContext2_GetEncryptionBltKey(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT key_size,void *key) {
   2514     return This->lpVtbl->GetEncryptionBltKey(This,session,key_size,key);
   2515 }
   2516 static __WIDL_INLINE HRESULT ID3D11VideoContext2_NegotiateAuthenticatedChannelKeyExchange(ID3D11VideoContext2* This,ID3D11AuthenticatedChannel *channel,UINT data_size,void *data) {
   2517     return This->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data);
   2518 }
   2519 static __WIDL_INLINE HRESULT ID3D11VideoContext2_QueryAuthenticatedChannel(ID3D11VideoContext2* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,UINT output_size,void *output) {
   2520     return This->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output);
   2521 }
   2522 static __WIDL_INLINE HRESULT ID3D11VideoContext2_ConfigureAuthenticatedChannel(ID3D11VideoContext2* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) {
   2523     return This->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output);
   2524 }
   2525 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamRotation(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_ROTATION rotation) {
   2526     This->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation);
   2527 }
   2528 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamRotation(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enable,D3D11_VIDEO_PROCESSOR_ROTATION *rotation) {
   2529     This->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation);
   2530 }
   2531 /*** ID3D11VideoContext1 methods ***/
   2532 static __WIDL_INLINE HRESULT ID3D11VideoContext2_SubmitDecoderBuffers1(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,UINT buffer_count,const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc) {
   2533     return This->lpVtbl->SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc);
   2534 }
   2535 static __WIDL_INLINE HRESULT ID3D11VideoContext2_GetDataForNewHardwareKey(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT input_size,const void *input_data,UINT64 *output_data) {
   2536     return This->lpVtbl->GetDataForNewHardwareKey(This,session,input_size,input_data,output_data);
   2537 }
   2538 static __WIDL_INLINE HRESULT ID3D11VideoContext2_CheckCryptoSessionStatus(ID3D11VideoContext2* This,ID3D11CryptoSession *session,D3D11_CRYPTO_SESSION_STATUS *status) {
   2539     return This->lpVtbl->CheckCryptoSessionStatus(This,session,status);
   2540 }
   2541 static __WIDL_INLINE HRESULT ID3D11VideoContext2_DecoderEnableDownsampling(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,DXGI_COLOR_SPACE_TYPE colour_space,const D3D11_VIDEO_SAMPLE_DESC *output_desc,UINT reference_frame_count) {
   2542     return This->lpVtbl->DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count);
   2543 }
   2544 static __WIDL_INLINE HRESULT ID3D11VideoContext2_DecoderUpdateDownsampling(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_SAMPLE_DESC *output_desc) {
   2545     return This->lpVtbl->DecoderUpdateDownsampling(This,decoder,output_desc);
   2546 }
   2547 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_COLOR_SPACE_TYPE colour_space) {
   2548     This->lpVtbl->VideoProcessorSetOutputColorSpace1(This,processor,colour_space);
   2549 }
   2550 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputShaderUsage(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL shader_usage) {
   2551     This->lpVtbl->VideoProcessorSetOutputShaderUsage(This,processor,shader_usage);
   2552 }
   2553 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_COLOR_SPACE_TYPE *colour_space) {
   2554     This->lpVtbl->VideoProcessorGetOutputColorSpace1(This,processor,colour_space);
   2555 }
   2556 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputShaderUsage(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *shader_usage) {
   2557     This->lpVtbl->VideoProcessorGetOutputShaderUsage(This,processor,shader_usage);
   2558 }
   2559 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_COLOR_SPACE_TYPE colour_space) {
   2560     This->lpVtbl->VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space);
   2561 }
   2562 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamMirror(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,WINBOOL enable,WINBOOL flip_horizontal,WINBOOL flip_vertical) {
   2563     This->lpVtbl->VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical);
   2564 }
   2565 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_COLOR_SPACE_TYPE *colour_space) {
   2566     This->lpVtbl->VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space);
   2567 }
   2568 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamMirror(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,WINBOOL *enable,WINBOOL *flip_horizontal,WINBOOL *flip_vertical) {
   2569     This->lpVtbl->VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical);
   2570 }
   2571 static __WIDL_INLINE HRESULT ID3D11VideoContext2_VideoProcessorGetBehaviorHints(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT output_width,UINT output_height,DXGI_FORMAT output_format,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,UINT *behaviour_hints) {
   2572     return This->lpVtbl->VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints);
   2573 }
   2574 /*** ID3D11VideoContext2 methods ***/
   2575 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetOutputHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_HDR_METADATA_TYPE type,UINT size,const void *meta_data) {
   2576     This->lpVtbl->VideoProcessorSetOutputHDRMetaData(This,processor,type,size,meta_data);
   2577 }
   2578 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetOutputHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_HDR_METADATA_TYPE *type,UINT size,void *meta_data) {
   2579     This->lpVtbl->VideoProcessorGetOutputHDRMetaData(This,processor,type,size,meta_data);
   2580 }
   2581 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorSetStreamHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_HDR_METADATA_TYPE type,UINT size,const void *meta_data) {
   2582     This->lpVtbl->VideoProcessorSetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data);
   2583 }
   2584 static __WIDL_INLINE void ID3D11VideoContext2_VideoProcessorGetStreamHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_HDR_METADATA_TYPE *type,UINT size,void *meta_data) {
   2585     This->lpVtbl->VideoProcessorGetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data);
   2586 }
   2587 #endif
   2588 #endif
   2589 
   2590 #endif
   2591 
   2592 
   2593 #endif  /* __ID3D11VideoContext2_INTERFACE_DEFINED__ */
   2594 
   2595 /* Begin additional prototypes for all interfaces */
   2596 
   2597 
   2598 /* End additional prototypes */
   2599 
   2600 #ifdef __cplusplus
   2601 }
   2602 #endif
   2603 
   2604 #endif /* __d3d11_4_h__ */