Subversion Repositories Games.Chess Giants

Rev

Blame | Last modification | View Log | Download | RSS feed

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