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