Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2324 lines
55 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: directxstruct.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. // Direct.idl : IDL source for Direct.dll
  11. // +++++++++++++++++++++++++++++++++++++
  12. // This file will be processed by the MIDL tool to
  13. // produce the type library (Direct.tlb) and marshalling code.
  14. //
  15. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  16. ///////////////////////////////////////////////////////////
  17. // General Types
  18. #ifdef C_ONLY
  19. #define DXDRIVERINFO DxDriverInfo
  20. #define DXDRIVERINFOEX DxDriverInfoEx
  21. #define RECT Rect
  22. #define DXGUID DxGuid
  23. #define DPAPPLICATIONDESC2 DpApplicationDesc2
  24. #define DIRECTXREGISTERAPP DirectXRegisterApp
  25. #define PALETTEENTRY PaletteEntry
  26. #define D3DRECT D3dRect
  27. #define D3DROTATION D3dRotation
  28. #define D3DVECTOR D3dVector
  29. #define D3DCOLORVALUE D3dColorValue
  30. #define D3DHVERTEX D3dHVertex
  31. #define D3DTLVERTEX D3dTLVertex
  32. #define D3DLVERTEX D3dLVertex
  33. #define D3DVERTEX D3dVertex
  34. #define DXVERTEX DxVertex
  35. #define D3DCLIPSTATUS D3dClipStatus
  36. #define D3DVIEWPORT D3dViewport
  37. #define D3DVIEWPORT2 D3dViewport2
  38. #define D3DVIEWPORT7 D3dViewport7
  39. #define D3DLIGHTINGCAPS D3dLightingCaps
  40. #define D3DPRIMCAPS D3dPrimCaps
  41. #define D3DDEVICEDESC D3dDeviceDesc
  42. //#define D3DFINDDEVICERESULT D3dFindDeviceResult
  43. //#define D3DFINDDEVICERESULT2 D3dFindDeviceResult2
  44. #define D3DMATERIAL D3dMaterial
  45. #define D3DMATERIAL7 D3dMaterial7
  46. #define D3DLIGHT2 D3dLight2
  47. #define D3DLIGHT7 D3dLight7
  48. #define D3DMATRIX D3dMatrix
  49. #define D3DRMRAY D3dRMRay
  50. #define D3DSTATUS D3dStatus
  51. #define D3DDEVINFO_TEXTUREMANAGER D3dDevInfo_TextureManager
  52. #define D3DSTATS D3dStats
  53. #define D3DTRANSFORMDATA D3dTransFormData
  54. #define D3DLIGHTDATA D3dLightData
  55. #define D3DRMQUATERNION D3dRMQuaternion
  56. #define D3DRMVECTOR4D D3dRMVector4d
  57. #define D3DRMBOX D3dRMBox
  58. #define D3DRMPICKDESC D3dRMPickDesc
  59. #define D3DRMPICKDESC2 D3dRMPickDesc2
  60. #define D3DRMIMAGE D3dRMImage
  61. #define D3DRMVERTEX D3dRMVertex
  62. #define D3DVERTEXBUFFERDESC D3dVertexBufferDesc
  63. #define D3DRMMATERIALOVERRIDE D3dMaterialOverride
  64. #define DDCOLORKEY DDColorKey
  65. #define DDSCAPS DDSCaps
  66. #define DDPIXELFORMAT DDPixelFormat
  67. #define DDSURFACEDESC2 DDSurfaceDesc2
  68. #define DDCAPS DDCaps
  69. #define DDCAPS2 DDCaps2
  70. #define DDSCAPS2 DDSCaps2
  71. #define DDBLTFX DDBltFx
  72. #define DDVIDEOPORTINFO DDVideoPortInfo
  73. #define DDCOLORCONTROL DDColorControl
  74. #define DDGAMMARAMP DDGammaRamp
  75. #define DDVIDEOPORTBANDWIDTH DDVideoPortBandWidth
  76. #define DDVIDEOPORTCAPS DDVideoPortCaps
  77. #define DDVIDEOPORTDESC DDVideoPortDesc
  78. #define DDVIDEOPORTINFO DDVideoPortInfo
  79. #define DDVIDEOPORTCONNECT DDVideoPortConnect
  80. #define DSBCAPS DSBCaps
  81. #define DSCAPS DSCaps
  82. #define WAVEFORMATEX WaveFormatex
  83. #define DSBUFFERDESC DSBufferDesc
  84. #define DSCURSORS DSCursors
  85. #define DSRESOURCEDESC DSResourceDesc
  86. #define DS3DBUFFER DS3dBuffer
  87. #define DS3DLISTENER DS3dListener
  88. #define DSCBCAPS DSCBCaps
  89. #define DSCCAPS DSCCaps
  90. #define DSCBUFFERDESC DSCBufferDesc
  91. #define DSBPOSITIONNOTIFY DSBPositionNotify
  92. #define DPCHAT DPChat
  93. #define DPCOMPOUNDADDRESSELEMENT DPCompoundAddressElement
  94. #define DPCREDENTIALS DPCredentials
  95. #define DPSECURITYDESC DPSecurityDesc
  96. #define DPSESSIONDESC2 DPSessionDesc2
  97. #define DPLAPPINFO DPLAppInfo
  98. #define DPPLAYERIDS DPPlayerIds
  99. #define DPCAPS DPCaps
  100. #define DPPLAYERINFO DPPlayerInfo
  101. #define DPSERVICEPROVIDERINFO DPServiceProviderInfo
  102. #define DPCONNECTION DPConnection
  103. #define DPSERVICEPROVIDER DPServiceProvider
  104. #define DIDEVCAPS DIDevCaps
  105. #define DIDEVICEOBJECTDATA DIDeviceObjectData
  106. #define DIDEVICEINSTANCE DIDeviceInstance
  107. #define DIDEVICEOBJECTINSTANCE DIDeviceObjectInstance
  108. //#define DICONDITION DICondition
  109. #define DIPROPERTY DIProperty
  110. #define DIENVELOPE DIEvelope
  111. #define DICUSTOMFORCE DICustomForce
  112. #define DIPERIODIC DIPeriodic
  113. #define DICONSTANCEFORCE DIConstantForce
  114. #define DIRAMPFORCE DIRampForce
  115. #define DIEFFECT DIEffect
  116. #define DIEFFESCAPE DIEffEscape
  117. #define DIEFFECTINFO DIEffectInfo
  118. #define DIOBJECTDATAFORMAT DIObjectDataFormat
  119. #define DIDATAFORMAT DIDataFormat
  120. #define DIMOUSESTATE DIMouseState
  121. #define DIKEYBOARDSTATE DIKeyboardState
  122. #define DIJOYSTATE DIJoyState
  123. #define DIJOYSTATE2 DIJoyState2
  124. #define D3DDEVICEDESC7 D3dDeviceDesc7
  125. //#define D3DFINDDEVICERESULT7 D3dFindDeviceResult7
  126. #define d3dLightCapsFlags long
  127. #define d3dLightingModelFlags long
  128. #define d3dCapsMisc long
  129. #define d3dCapsRaster long
  130. #define d3dCapsCmp long
  131. #define d3dCapsBlend long
  132. #define d3dCapsTexture long
  133. #define d3dCapsShade long
  134. #define d3dCapsTextureFilter long
  135. //#define d3dCapsTextureBlend long
  136. #define d3dCapsTextureAddress long
  137. #define d3dDeviceDescFlags long
  138. #define d3dColorModel long
  139. #define d3dDeviceDescCaps long
  140. #define d3dTransformCaps long
  141. #define d3dStencilCapsFlags long
  142. #define d3dFVFCapsFlags long
  143. #define d3dTexOpCapsFlags long
  144. #define d3dLightFlags long
  145. #define d3dSetStatusFlags long
  146. #define d3dClipFlags long
  147. #define d3dClipStatusFlags long
  148. //#define d3dFindDeviceSearchFlags long
  149. #define ddSurfaceCapsFlags long
  150. #define ddSurfaceCaps2Flags long
  151. #define ddPixelFormatFlags long
  152. #define ddSurfaceDescFlags long
  153. #define ddSurfaceCapsFlags long
  154. #define ddCaps1Flags long
  155. #define ddCaps2Flags long
  156. #define ddCKeyCapsFlags long
  157. #define ddFXCapsFlags long
  158. #define ddFXAlphaCapsFlags long
  159. #define ddPCapsFlags long
  160. #define ddStereoCapsFlags long
  161. #define ddBltFXFlags long
  162. #define ddColorFlags long
  163. #define d3dVBCapsFlags long
  164. #define d3dFVFFlags long
  165. #define dsbCapsFlags long
  166. #define dsCapsFlags long
  167. #define ds3dModeFlags long
  168. #define dscbCapsFlags long
  169. #define dscCapsFlags long
  170. #define WaveFormatFlags long
  171. #define dpSessionFlags long
  172. #define dpCapsFlags long
  173. #define dpPlayerTypeFlags long
  174. #define diDevCapsFlags long
  175. #define diDeviceType long
  176. #define diDFTFlags long
  177. #define diDeviceObjInstanceFlags long
  178. #define d3drmPMeshStatusFlags long
  179. #define d3drmMaterialOverrideFlags long
  180. #define dBoolFlags long
  181. #define diCommonDataFormats long
  182. #define diDataFormatFlags long
  183. #define ddOverFxFlags long
  184. #define diConditionFlags long
  185. #define CONST_DMUS_PC_CLASS long
  186. #define CONST_DMUS_PC_FLAGS long
  187. #define CONST_DMUS_PORT_TYPE long
  188. #define CONST_DMUS_PORTPARAMS_FLAGS long
  189. #endif
  190. // New types
  191. #ifdef C_ONLY
  192. typedef struct DXDRIVERINFO
  193. {
  194. BSTR strGuid;
  195. BSTR strDescription;
  196. BSTR strName;
  197. } DXDRIVERINFO;
  198. typedef struct DXDRIVERINFOEX
  199. {
  200. BSTR strGuid;
  201. BSTR strDescription;
  202. BSTR strName;
  203. long hMonitor;
  204. } DXDRIVERINFOEX;
  205. typedef struct RECT
  206. {
  207. long left;
  208. long top;
  209. long right;
  210. long bottom;
  211. } RECT;
  212. #else
  213. [helpcontext(400100)]
  214. typedef struct RECT
  215. {
  216. long Left;
  217. long Top;
  218. long Right;
  219. long Bottom;
  220. } RECT;
  221. #endif
  222. [hidden]
  223. typedef struct DXGUID {
  224. long data1;
  225. short data2;
  226. short data3;
  227. Byte data4[8];
  228. } DXGUID;
  229. [helpcontext(400200)]
  230. typedef struct DPAPPLICATIONDESC2
  231. {
  232. long lFlags;
  233. BSTR strApplicationName;
  234. BSTR strGuid;
  235. BSTR strFilename;
  236. BSTR strCommandLine;
  237. BSTR strPath;
  238. BSTR strCurrentDirectory;
  239. BSTR strDescription;
  240. BSTR strAppLauncherName;
  241. } DPAPPLICATIONDESC2;
  242. [helpcontext(400300)]
  243. typedef struct DIRECTXREGISTERAPP
  244. {
  245. long lFlags;
  246. BSTR strApplicationName;
  247. BSTR strGuid;
  248. BSTR strFilename;
  249. BSTR strCommandLine;
  250. BSTR strPath;
  251. BSTR strCurrentDirectory;
  252. } DIRECTXREGISTERAPP;
  253. [helpcontext(400400)]
  254. typedef struct PALETTEENTRY
  255. {
  256. Byte red;
  257. Byte green;
  258. Byte blue;
  259. Byte flags;
  260. } PALETTEENTRY;
  261. //
  262. // D3D Types
  263. //
  264. [helpcontext(400500)]
  265. typedef struct D3DRECT {
  266. long x1;
  267. long y1;
  268. long x2;
  269. long y2;
  270. } D3DRECT;
  271. // not needed according to shanee
  272. // typedef struct D3DROTATION {
  273. // float x;
  274. // float y;
  275. // float z;
  276. // float t;
  277. // } D3DROTATION;
  278. [helpcontext(400600)]
  279. typedef struct D3DVECTOR {
  280. float x;
  281. float y;
  282. float z;
  283. } D3DVECTOR;
  284. [helpcontext(400700)]
  285. typedef struct D3DCOLORVALUE {
  286. float r;
  287. float g;
  288. float b;
  289. float a;
  290. } D3DCOLORVALUE;
  291. [helpcontext(400800)]
  292. typedef struct D3DLINEPATTERN {
  293. long repeatFactor;
  294. long linePatern;
  295. } D3DLINEPATTERN;
  296. [helpcontext(400900)]
  297. typedef struct D3DTLVERTEX {
  298. float sx; /* Screen coordinates */
  299. float sy;
  300. float sz;
  301. float rhw; /* Reciprocal of homogeneous w */
  302. long color; /* Vertex color */
  303. long specular; /* Specular component of vertex */
  304. float tu; /* Texture coordinates */
  305. float tv;
  306. } D3DTLVERTEX;
  307. [helpcontext(401000)]
  308. typedef struct D3DLVERTEX {
  309. float x; /* Homogeneous coordinates */
  310. float y;
  311. float z;
  312. [hidden] long reserved;
  313. long color; /* Vertex color */
  314. long specular; /* Specular component of vertex */
  315. float tu; /* Texture coordinates */
  316. float tv;
  317. } D3DLVERTEX;
  318. [helpcontext(401100)]
  319. typedef struct D3DVERTEX {
  320. float x; /* Homogeneous coordinates */
  321. float y;
  322. float z;
  323. float nx; /* Normal */
  324. float ny;
  325. float nz;
  326. float tu; /* Texture coordinates */
  327. float tv;
  328. } D3DVERTEX;
  329. [helpcontext(401200)]
  330. typedef struct D3DCLIPSTATUS {
  331. d3dClipStatusFlags lFlags;
  332. d3dClipFlags lStatus;
  333. float minx, maxx;
  334. float miny, maxy;
  335. float minz, maxz;
  336. } D3DCLIPSTATUS ;
  337. [helpcontext(401300)]
  338. typedef struct D3DVIEWPORT7 {
  339. long lX;
  340. long lY;
  341. long lWidth;
  342. long lHeight;
  343. float minZ;
  344. float maxZ;
  345. } D3DVIEWPORT7;
  346. [helpcontext(401400)]
  347. typedef struct D3DLIGHTINGCAPS {
  348. [hidden] long lSize;
  349. d3dLightCapsFlags lCaps;
  350. d3dLightingModelFlags lLightingModel;
  351. long lNumLights;
  352. } D3DLIGHTINGCAPS;
  353. [helpcontext(401500)]
  354. typedef struct D3DPRIMCAPS {
  355. [hidden] long lSize; // size of structure
  356. d3dCapsMisc lMiscCaps; // miscellaneous caps
  357. d3dCapsRaster lRasterCaps; // raster caps
  358. d3dCapsCmp lZCmpCaps; // z-comparison caps
  359. d3dCapsBlend lSrcBlendCaps; // source blending caps
  360. d3dCapsBlend lDestBlendCaps; // destination blending caps
  361. d3dCapsCmp lAlphaCmpCaps; // alpha-test comparison caps
  362. d3dCapsShade lShadeCaps; // shading caps
  363. d3dCapsTexture lTextureCaps; // texture caps
  364. d3dCapsTextureFilter lTextureFilterCaps; // texture filtering caps
  365. //d3dCapsTextureBlend lTextureBlendCaps; // texture blending caps
  366. long lReserved1;
  367. d3dCapsTextureAddress lTextureAddressCaps; // texture addressing caps
  368. long lStippleWidth; // stipple width
  369. long lStippleHeight; // stipple height
  370. } D3DPRIMCAPS;
  371. #ifndef JAVA_ONLY
  372. [helpcontext(401600)]
  373. typedef struct D3DDEVICEDESC7
  374. {
  375. d3dDeviceDescCaps lDevCaps;
  376. D3DPRIMCAPS dpcLineCaps;
  377. D3DPRIMCAPS dpcTriCaps;
  378. long lDeviceRenderBitDepth;
  379. long lDeviceZBufferBitDepth;
  380. long lMinTextureWidth,lMinTextureHeight;
  381. long lMaxTextureWidth,lMaxTextureHeight;
  382. long lMaxTextureRepeat;
  383. long lMaxTextureAspectRatio;
  384. long lMaxAnisotropy;
  385. float dvGuardBandLeft;
  386. float dvGuardBandTop;
  387. float dvGuardBandRight;
  388. float dvGuardBandBottom;
  389. float dvExtentsAdjust;
  390. d3dStencilCapsFlags lStencilCaps;
  391. d3dFVFCapsFlags lFVFCaps;
  392. d3dTexOpCapsFlags lTextureOpCaps;
  393. short nMaxTextureBlendStages;
  394. short nMaxSimultaneousTextures;
  395. long lMaxActiveLights;
  396. float dvMaxVertexW;
  397. [hidden] DXGUID deviceGuid;
  398. short nMaxUserClipPlanes;
  399. short nMaxVertexBlendMatrices;
  400. d3dVTXPCapsFlags lVertexProcessingCaps;
  401. [hidden] long lReserved1;
  402. [hidden] long lReserved2;
  403. [hidden] long lReserved3;
  404. [hidden] long lReserved4;
  405. } D3DDEVICEDESC7;
  406. #else
  407. typedef struct D3DDEVICEDESC7
  408. {
  409. long lDevCaps;
  410. [hidden] long dpcLineCaps_lSize; // size of structure
  411. long dpcLineCaps_lMiscCaps; // miscellaneous caps
  412. long dpcLineCaps_lRasterCaps; // raster caps
  413. long dpcLineCaps_lZCmpCaps; // z-comparison caps
  414. long dpcLineCaps_lSrcBlendCaps; // source blending caps
  415. long dpcLineCaps_lDestBlendCaps; // destination blending caps
  416. long dpcLineCaps_lAlphaCmpCaps; // alpha-test comparison caps
  417. long dpcLineCaps_lShadeCaps; // shading caps
  418. long dpcLineCaps_lTextureCaps; // texture caps
  419. long dpcLineCaps_lTextureFilterCaps; // texture filtering caps
  420. long dpcLineCaps_lTextureBlendCaps; // texture blending caps
  421. long dpcLineCaps_lTextureAddressCaps; // texture addressing caps
  422. long dpcLineCaps_lStippleWidth; // stipple width
  423. long dpcLineCaps_lStippleHeight; // stipple height
  424. [hidden] long dpcTriCaps_lSize; // size of structure
  425. long dpcTriCaps_lMiscCaps; // miscellaneous caps
  426. long dpcTriCaps_lRasterCaps; // raster caps
  427. long dpcTriCaps_lZCmpCaps; // z-comparison caps
  428. long dpcTriCaps_lSrcBlendCaps; // source blending caps
  429. long dpcTriCaps_lDestBlendCaps; // destination blending caps
  430. long dpcTriCaps_lAlphaCmpCaps; // alpha-test comparison caps
  431. long dpcTriCaps_lShadeCaps; // shading caps
  432. long dpcTriCaps_lTextureCaps; // texture caps
  433. long dpcTriCaps_lTextureFilterCaps; // texture filtering caps
  434. long dpcTriCaps_lTextureBlendCaps; // texture blending caps
  435. long dpcTriCaps_lTextureAddressCaps; // texture addressing caps
  436. long dpcTriCaps_lStippleWidth; // stipple width
  437. long dpcTriCaps_lStippleHeight; // stipple height
  438. long lDeviceRenderBitDepth;
  439. long lDeviceZBufferBitDepth;
  440. long lMinTextureWidth,lMinTextureHeight;
  441. long lMaxTextureWidth,lMaxTextureHeight;
  442. long lMaxTextureRepeat;
  443. long lMaxTextureAspectRatio;
  444. long lMaxAnisotropy;
  445. float dvGuardBandLeft;
  446. float dvGuardBandTop;
  447. float dvGuardBandRight;
  448. float dvGuardBandBottom;
  449. float dvExtentsAdjust;
  450. d3dStencilCapsFlags lStencilCaps;
  451. d3dFVFCapsFlags lFVFCaps;
  452. d3dTexOpCapsFlags lTextureOpCaps;
  453. short nMaxTextureBlendStages;
  454. short nMaxSimultaneousTextures;
  455. long lMaxActiveLights;
  456. float dvMaxVertexW;
  457. [hidden] DXGUID deviceGuid;
  458. short nMaxUserClipPlanes;
  459. short nMaxVertexBlendMatrices;
  460. d3dVTXCapsFlags lVertexProcessingCaps;
  461. [hidden] long lReserved1;
  462. [hidden] long lReserved2;
  463. [hidden] long lReserved3;
  464. [hidden] long lReserved4;
  465. } D3DDEVICEDESC7;
  466. #endif
  467. #ifndef JAVA_ONLY
  468. [helpcontext(401700)]
  469. typedef struct D3DMATERIAL7 {
  470. D3DCOLORVALUE diffuse;
  471. D3DCOLORVALUE ambient;
  472. D3DCOLORVALUE specular;
  473. D3DCOLORVALUE emissive;
  474. float power;
  475. } D3DMATERIAL7;
  476. #else
  477. typedef struct D3DMATERIAL7 {
  478. float diffuse_r; //d3dColorValue
  479. float diffuse_g;
  480. float diffuse_b;
  481. float diffuse_a;
  482. float ambient_r; //D3DCOLORVALUE
  483. float ambient_g;
  484. float ambient_b;
  485. float ambient_a;
  486. float specular_r; //D3DCOLORVALUE
  487. float specular_g;
  488. float specular_b;
  489. float specular_a;
  490. float emissive_r; //D3DCOLORVALUE
  491. float emissive_g;
  492. float emissive_b;
  493. float emissive_a;
  494. float power;
  495. } D3DMATERIAL7;
  496. #endif
  497. #ifndef JAVA_ONLY
  498. [helpcontext(401800)]
  499. typedef struct D3DLIGHT7 {
  500. d3dLightType dltType;
  501. D3DCOLORVALUE diffuse;
  502. D3DCOLORVALUE specular;
  503. D3DCOLORVALUE ambient;
  504. D3DVECTOR position;
  505. D3DVECTOR direction;
  506. float range;
  507. float falloff;
  508. float attenuation0;
  509. float attenuation1;
  510. float attenuation2;
  511. float theta;
  512. float phi;
  513. } D3DLIGHT7 ;
  514. #else
  515. typedef struct D3DLIGHT7 {
  516. d3dLightType dltType;
  517. float diffuse_r; //D3DCOLORVALUE
  518. float diffuse_g; //D3DCOLORVALUE
  519. float diffuse_b; //D3DCOLORVALUE
  520. float diffuse_a; //D3DCOLORVALUE
  521. float specular_r; //D3DCOLORVALUE
  522. float specular_g; //D3DCOLORVALUE
  523. float specular_b; //D3DCOLORVALUE
  524. float specular_a; //D3DCOLORVALUE
  525. float ambient_r; //D3DCOLORVALUE
  526. float ambient_g; //D3DCOLORVALUE
  527. float ambient_b; //D3DCOLORVALUE
  528. float ambient_a; //D3DCOLORVALUE
  529. float position_x; //D3DVECTOR
  530. float position_y;
  531. float position_z;
  532. float direction_x; //D3DVECTOR
  533. float direction_y;
  534. float direction_z;
  535. float range;
  536. float falloff;
  537. float attenuation0;
  538. float attenuation1;
  539. float attenuation2;
  540. float theta;
  541. float phi;
  542. d3dLightFlags lFlags;
  543. } D3DLIGHT7 ;
  544. #endif
  545. [helpcontext(401900)]
  546. typedef struct D3DMATRIX {
  547. float rc11;
  548. float rc12;
  549. float rc13;
  550. float rc14;
  551. float rc21;
  552. float rc22;
  553. float rc23;
  554. float rc24;
  555. float rc31;
  556. float rc32;
  557. float rc33;
  558. float rc34;
  559. float rc41;
  560. float rc42;
  561. float rc43;
  562. float rc44;
  563. } D3DMATRIX;
  564. #ifndef JAVA_ONLY
  565. [helpcontext(402000)]
  566. typedef struct D3DRMRAY
  567. { D3DVECTOR dir;
  568. D3DVECTOR pos;
  569. } D3DRMRAY;
  570. #else
  571. typedef struct D3DRMRAY
  572. { float dir_x;
  573. float dir_y;
  574. float dir_z;
  575. float pos_x;
  576. float pos_y;
  577. float pos_z;
  578. } D3DRMRAY;
  579. #endif
  580. ////////////////////////////////////////////////////////////////////
  581. // Direct 3D Retain Mode types
  582. #ifndef JAVA_ONLY
  583. [helpcontext(402100)]
  584. typedef struct D3DRMQUATERNION
  585. {
  586. float s;
  587. D3DVECTOR v;
  588. } D3DRMQUATERNION;
  589. #else
  590. typedef struct D3DRMQUATERNION
  591. {
  592. float s;
  593. float v_x;
  594. float v_y;
  595. float v_z;
  596. } D3DRMQUATERNION;
  597. #endif
  598. [helpcontext(402200)]
  599. typedef struct D3DRMVECTOR4D
  600. {
  601. float x;
  602. float y;
  603. float z;
  604. float w;
  605. } D3DRMVECTOR4D;
  606. #ifndef JAVA_ONLY
  607. [helpcontext(402300)]
  608. typedef struct D3DRMBOX
  609. {
  610. D3DVECTOR min;
  611. D3DVECTOR max;
  612. } D3DRMBOX;
  613. #else
  614. typedef struct D3DRMBOX
  615. {
  616. float min_x; // replaces min - cant concat structures
  617. float min_y;
  618. float min_z;
  619. float max_x; // replaces max - cant concat structures
  620. float max_y;
  621. float max_z;
  622. } D3DRMBOX;
  623. #endif
  624. #ifndef JAVA_ONLY
  625. [helpcontext(402400)]
  626. typedef struct D3DRMPICKDESC
  627. {
  628. long lFaceIdx;
  629. long lGroupIdx;
  630. D3DVECTOR vPosition;
  631. } D3DRMPICKDESC;
  632. #else
  633. typedef struct D3DRMPICKDESC
  634. {
  635. long lFaceIdx;
  636. long lGroupIdx;
  637. float vPosition_x; // replaces vPosition - cant concat structures
  638. float vPosition_y;
  639. float vPosition_z;
  640. } D3DRMPICKDESC;
  641. #endif
  642. #ifndef JAVA_ONLY
  643. [helpcontext(402500)]
  644. typedef struct D3DRMPICKDESC2
  645. {
  646. long lFaceIdx;
  647. long lGroupIdx;
  648. D3DVECTOR vPostion;
  649. float tu;
  650. float tv;
  651. D3DVECTOR vNormal;
  652. long color;
  653. } D3DRMPICKDESC2;
  654. #else
  655. typedef struct D3DRMPICKDESC2
  656. {
  657. long lFaceIdx;
  658. long lGroupIdx;
  659. float vPostion_x;
  660. float vPostion_y;
  661. float vPostion_z;
  662. float tu;
  663. float tv;
  664. float vNormal_x;
  665. float vNormal_y;
  666. float vNormal_z;
  667. long color;
  668. } D3DRMPICKDESC2;
  669. #endif
  670. #ifndef JAVA_ONLY
  671. [helpcontext(402600)]
  672. typedef struct D3DRMVERTEX
  673. {
  674. D3DVECTOR position;
  675. D3DVECTOR normal;
  676. float tu;
  677. float tv;
  678. long color;
  679. } D3DRMVERTEX;
  680. #else
  681. typedef struct D3DRMVERTEX
  682. {
  683. float position_x; //x position
  684. float position_y; //y
  685. float position_z; //z
  686. float normal_x; //x normal
  687. float normal_y; //y
  688. float normal_z; //z
  689. float tu;
  690. float tv;
  691. long color;
  692. } D3DRMVERTEX;
  693. #endif
  694. ///////////////////////////////////////////////////////////////
  695. //
  696. // Direct Draw Types
  697. //
  698. ///////////////////////////////////////////////////////////////
  699. [helpcontext(402700)]
  700. typedef struct DDCOLORKEY {
  701. long low;
  702. long high;
  703. } DDCOLORKEY;
  704. [helpcontext(402800)]
  705. typedef struct DDSCAPS2 {
  706. ddSurfaceCapsFlags lCaps;
  707. ddSurfaceCaps2Flags lCaps2;
  708. long lCaps3;
  709. long lCaps4;
  710. } DDSCAPS2;
  711. [helpcontext(402900)]
  712. typedef struct DDPIXELFORMAT
  713. {
  714. [hidden]long lSize; //private
  715. ddPixelFormatFlags lFlags;
  716. long lFourCC;
  717. [hidden] long internalVal1;
  718. // union { DWORD dwRGBBitCount;
  719. // DWORD dwYUVBitCount;
  720. // DWORD dwZBufferBitDepth;
  721. // DWORD dwAlphaBitDepth;
  722. // DWORD dwLuminanceBitCount; // new for DirectX 6.0
  723. // DWORD dwBumpBitCount; // new for DirectX 6.0}
  724. [hidden] long internalVal2;
  725. // union DWORD dwRBitMask;
  726. //DWORD dwYBitMask;
  727. //DWORD dwStencilBitDepth; // new for DirectX 6.0
  728. //DWORD dwLuminanceBitMask; // new for DirectX 6.0
  729. //DWORD dwBumpDuBitMask; // new for DirectX 6.0
  730. //} DUMMYUNIONNAMEN(2);
  731. [hidden] long internalVal3;
  732. //union { DWORD dwGBitMask;
  733. // DWORD dwUBitMask;
  734. // DWORD dwZBitMask; // new for DirectX 6.0
  735. // DWORD dwBumpDvBitMask; // new for DirectX 6.0
  736. //} DUMMYUNIONNAMEN(3);
  737. [hidden] long internalVal4;
  738. // union { DWORD dwBBitMask;
  739. // DWORD dwVBitMask;
  740. // DWORD dwStencilBitMask; // new for DirectX 6.0
  741. // DWORD dwBumpLuminanceBitMask; // new for DirectX 6.0
  742. // } DUMMYUNIONNAMEN(4);
  743. [hidden] long internalVal5;
  744. //union { DWORD dwRGBAlphaBitMask;
  745. // DWORD dwYUVAlphaBitMask;
  746. // DWORD dwLuminanceAlphaBitMask; // new for DirectX 6.0
  747. // DWORD dwRGBZBitMask;
  748. // DWORD dwYUVZBitMask;
  749. //} DUMMYUNIONNAMEN(5);
  750. //union for internalVal1
  751. long lRGBBitCount;
  752. long lYUVBitCount;
  753. long lZBufferBitDepth;
  754. long lAlphaBitDepth;
  755. long lLuminanceBitCount;
  756. long lBumpBitCount;
  757. // union for internalVal2
  758. long lRBitMask;
  759. long lYBitMask;
  760. long lStencilBitDepth;
  761. long lLuminanceBitMask;
  762. long lBumpDuBitMask;
  763. // union for internalVal3
  764. long lGBitMask;
  765. long lUBitMask;
  766. long lZBitMask;
  767. long lBumpDvBitMask;
  768. // union for internalVal4
  769. long lBBitMask;
  770. long lVBitMask;
  771. long lStencilBitMask;
  772. long lBumpLuminanceBitMask;
  773. // union for internalVal5
  774. long lRGBAlphaBitMask;
  775. long lYUVAlphaBitMask;
  776. long lLuminanceAlphaBitMask; // new for DirectX 6.0
  777. long lRGBZBitMask;
  778. long lYUVZBitMask;
  779. } DDPIXELFORMAT;
  780. #ifndef JAVA_ONLY
  781. [helpcontext(403000)]
  782. typedef struct DDSURFACEDESC2 {
  783. [hidden] long lSize;
  784. ddSurfaceDescFlags lFlags;
  785. long lHeight;
  786. long lWidth;
  787. long lPitch; //union with lLinearSize
  788. long lBackBufferCount;
  789. long lZBufferBitDepth; //union with lMipMapCount and lRefreshRate
  790. long lAlphaBitDepth;
  791. [hidden]long lReserved;
  792. [hidden]long lpSurface;
  793. DDCOLORKEY ddckCKDestOverlay;
  794. DDCOLORKEY ddckCKDestBlt;
  795. DDCOLORKEY ddckCKSrcOverlay;
  796. DDCOLORKEY ddckCKSrcBlt;
  797. DDPIXELFORMAT ddpfPixelFormat;
  798. DDSCAPS2 ddsCaps;
  799. long lTextureStage;
  800. long lLinearSize;
  801. long lMipMapCount;
  802. long lRefreshRate;
  803. } DDSURFACEDESC2;
  804. #else
  805. typedef struct DDSURFACEDESC2 {
  806. [hidden] long lSize;
  807. ddSurfaceDescFlags lFlags;
  808. long lHeight;
  809. long lWidth;
  810. long lPitch; //union with lLinearSize
  811. long lBackBufferCount;
  812. long lZBufferBitDepth; //union with lMipMapCount and lRefreshRate
  813. long lAlphaBitDepth;
  814. long lReserved;
  815. [hidden] long lpSurface;
  816. long ddckCKDestOverlay_low;
  817. long ddckCKDestOverlay_high;
  818. long ddckCKDestBlt_low;
  819. long ddckCKDestBlt_high;
  820. long ddckCKSrcOverlay_low;
  821. long ddckCKSrcOverlay_high;
  822. long ddckCKSrcBlt_low;
  823. long ddckCKSrcBlt_high;
  824. [hidden]long ddpfPixelFormat_lSize; //private
  825. long ddpfPixelFormat_lFlags;
  826. long ddpfPixelFormat_lFourCC;
  827. long ddpfPixelFormat_internalVal1;
  828. long ddpfPixelFormat_internalVal2;
  829. long ddpfPixelFormat_internalVal3;
  830. long ddpfPixelFormat_internalVal4;
  831. long ddpfPixelFormat_internalVal5;
  832. //union for internalVal1
  833. long ddpfPixelFormat_lRGBBitCount;
  834. long ddpfPixelFormat_lYUVBitCount;
  835. long ddpfPixelFormat_lZBufferBitDepth;
  836. long ddpfPixelFormat_lAlphaBitDepth;
  837. long ddpfPixelFormat_lLuminanceBitCount;
  838. long ddpfPixelFormat_lBumpBitCount;
  839. // union for internalVal2
  840. long ddpfPixelFormat_lRBitMask;
  841. long ddpfPixelFormat_lYBitMask;
  842. long ddpfPixelFormat_lStencilBitDepth;
  843. long ddpfPixelFormat_lLuminanceBitMask;
  844. long ddpfPixelFormat_lBumpDiBitMask;
  845. // union for internalVal3
  846. long ddpfPixelFormat_lGBitMask;
  847. long ddpfPixelFormat_lUBitMask;
  848. long ddpfPixelFormat_lZBitMask;
  849. long ddpfPixelFormat_lBumpDvBitMask;
  850. // union for internalVal4
  851. long ddpfPixelFormat_lBBitMask;
  852. long ddpfPixelFormat_lVBitMask;
  853. long ddpfPixelFormat_lStencilBitMask;
  854. long ddpfPixelFormat_lBumpLuminanceBitMask;
  855. // union for internalVal5
  856. long ddpfPixelFormat_lRGBAlphaBitMask;
  857. long ddpfPixelFormat_lYUVAlphaBitMask;
  858. long ddpfPixelFormat_lLuminanceAlphaBitMask; // new for DirectX 6.0
  859. long ddpfPixelFormat_lRGBZBitMask;
  860. long ddpfPixelFormat_lYUVZBitMask;
  861. ddSurfaceCapsFlags ddsCaps_lCaps;
  862. ddSurfaceCaps2Flags ddsCaps_lCaps2;
  863. long ddsCaps_lCaps3;
  864. long ddsCaps_lCaps4;
  865. long lTextureStage;
  866. //unions
  867. long lLinearSize;
  868. long lMipMapCount;
  869. long lRefreshRate;
  870. } DDSURFACEDESC2;
  871. #endif
  872. [helpcontext(403100)]
  873. typedef struct DDCAPS
  874. {
  875. [hidden]long lSize; //private
  876. ddCaps1Flags lCaps;
  877. ddCaps2Flags lCaps2;
  878. ddCKeyCapsFlags lCKeyCaps;
  879. ddFXCapsFlags lFXCaps;
  880. [hidden] long lFXAlphaCaps;
  881. ddPCapsFlags lPalCaps;
  882. ddStereoCapsFlags lSVCaps;
  883. long lAlphaBltConstBitDepths;
  884. long lAlphaBltPixelBitDepths;
  885. long lAlphaBltSurfaceBitDepths;
  886. long lAlphaOverlayConstBitDepths;
  887. long lAlphaOverlayPixelBitDepths;
  888. long lAlphaOverlaySurfaceBitDepths;
  889. long lZBufferBitDepths;
  890. long lVidMemTotal;
  891. long lVidMemFree;
  892. long lMaxVisibleOverlays;
  893. long lCurrVisibleOverlays;
  894. long lNumFourCCCodes;
  895. long lAlignBoundarySrc;
  896. long lAlignSizeSrc;
  897. long lAlignBoundaryDest;
  898. long lAlignSizeDest;
  899. long lAlignStrideAlign;
  900. #ifndef JAVA_ONLY
  901. long lRops[8];
  902. #else
  903. long lRops_0;
  904. long lRops_1;
  905. long lRops_2;
  906. long lRops_3;
  907. long lRops_4;
  908. long lRops_5;
  909. long lRops_6;
  910. long lRops_7;
  911. #endif
  912. long lReservedCaps;
  913. long lMinOverlayStretch;
  914. long lMaxOverlayStretch;
  915. long lMinLiveVideoStretch;
  916. long lMaxLiveVideoStretch;
  917. long lMinHwCodecStretch;
  918. long lMaxHwCodecStretch;
  919. long lReserved1;
  920. long lReserved2;
  921. long lReserved3;
  922. ddCaps1Flags lSVBCaps;
  923. ddCKeyCapsFlags lSVBCKeyCaps;
  924. ddFXCapsFlags lSVBFXCaps; // .
  925. #ifndef JAVA_ONLY
  926. long lSVBRops[8];
  927. #else
  928. long lSVBRops_0;
  929. long lSVBRops_1;
  930. long lSVBRops_2;
  931. long lSVBRops_3;
  932. long lSVBRops_4;
  933. long lSVBRops_5;
  934. long lSVBRops_6;
  935. long lSVBRops_7;
  936. #endif
  937. ddCaps1Flags lVSBCaps;
  938. ddCKeyCapsFlags lVSBCKeyCaps;
  939. ddFXCapsFlags lVSBFXCaps; // .
  940. #ifndef JAVA_ONLY
  941. long lVSRops[8];
  942. #else
  943. long lVSBRops_0;
  944. long lVSBRops_1;
  945. long lVSBRops_2;
  946. long lVSBRops_3;
  947. long lVSBRops_4;
  948. long lVSBRops_5;
  949. long lVSBRops_6;
  950. long lVSBRops_7;
  951. #endif
  952. ddCaps1Flags lSSBCaps;
  953. ddCKeyCapsFlags lSSBCKeyCaps;
  954. ddFXCapsFlags lSSBFXCaps; // .
  955. #ifndef JAVA_ONLY
  956. long lSSBRops[8];
  957. #else
  958. long lSSBRops_0;
  959. long lSSBRops_1;
  960. long lSSBRops_2;
  961. long lSSBRops_3;
  962. long lSSBRops_4;
  963. long lSSBRops_5;
  964. long lSSBRops_6;
  965. long lSSBRops_7;
  966. #endif
  967. long lMaxVideoPorts; // maximum number of live video ports
  968. long lCurrVideoPorts; // current number of live video ports
  969. ddCaps2Flags lSVBCaps2; // additional system-to-video blit caps
  970. ddCaps1Flags lNLVBCaps; // nonlocal-to-local video memory blit caps
  971. ddCaps2Flags lNLVBCaps2; // .
  972. ddCKeyCapsFlags lNLVBCKeyCaps; // .
  973. ddFXCapsFlags lNLVBFXCaps; // .
  974. #ifndef JAVA_ONLY
  975. long lNLVBRops[8];
  976. #else
  977. long lNLVBRops_0;
  978. long lNLVBRops_1;
  979. long lNLVBRops_2;
  980. long lNLVBRops_3;
  981. long lNLVBRops_4;
  982. long lNLVBRops_5;
  983. long lNLVBRops_6;
  984. long lNLVBRops_7;
  985. #endif
  986. DDSCAPS2 ddsCaps;
  987. } DDCAPS;
  988. [helpcontext(403200)]
  989. typedef struct DDBLTFX {
  990. [hidden] long lSize; //private
  991. ddBltFXFlags lDDFX;
  992. long lROP;
  993. long lDDROP;
  994. long lRotationAngle;
  995. long lZBufferOpCode;
  996. long lZBufferLow;
  997. long lZBufferHigh;
  998. long lZBufferBaseDest;
  999. long lZDestConstBitDepth;
  1000. long lZDestConst; //union with lpDDSZBufferDesc
  1001. long lZSrcConstBitDepth;
  1002. long lZSrcConst; //union with lpDDSZBufferSrc
  1003. long lAlphaEdgeBlendBitDepth;
  1004. long lAlphaEdgeBlend;
  1005. long lReserved; //private
  1006. long lAlphaDestConstBitDepth;
  1007. long lAlphaDestConst; //union with lpDDSAlphaDest
  1008. long lAlphaSrcConstBitDepth;
  1009. long lAlphaSrcConst; //union with lpDDSAlphaSrc
  1010. long lFill; //union with FillDepth and FillPixel
  1011. long ddckDestColorKey_low;
  1012. long ddckDestColorKey_high;
  1013. long ddckSrcColorKey_low;
  1014. long ddckSrcColorKey_high;
  1015. } DDBLTFX;
  1016. [helpcontext(403300)]
  1017. typedef struct DDCOLORCONTROL {
  1018. [hidden] long lSize;
  1019. ddColorFlags lFlags;
  1020. long lBrightness;
  1021. long lContrast;
  1022. long lHue;
  1023. long lSaturation;
  1024. long lSharpness;
  1025. long lGamma;
  1026. long lColorEnable;
  1027. long lReserved1;
  1028. } DDCOLORCONTROL;
  1029. [helpcontext(403400)]
  1030. typedef struct DDGAMMARAMP {
  1031. short red[256];
  1032. short green[256];
  1033. short blue[256];
  1034. } DDGAMMARAMP;
  1035. [helpcontext(403500)]
  1036. typedef struct D3DVERTEXBUFFERDESC {
  1037. [hidden] long lSize;
  1038. d3dVBCapsFlags lCaps;
  1039. d3dFVFFlags lFVF;
  1040. long lNumVertices;
  1041. } D3DVERTEXBUFFERDESC;
  1042. //////////////////////////////////////////////////////////////////////
  1043. // Direct Sound types
  1044. //////////////////////////////////////////////////////////////////////
  1045. [helpcontext(403600)]
  1046. typedef struct DSBCAPS
  1047. {
  1048. [hidden] long lSize;
  1049. dsbCapsFlags lFlags;
  1050. long lBufferBytes;
  1051. long lUnlockTransferRate;
  1052. long lPlayCpuOverhead;
  1053. } DSBCAPS;
  1054. [helpcontext(403700)]
  1055. typedef struct DSCAPS {
  1056. [hidden] long lSize;
  1057. dsCapsFlags lFlags;
  1058. long lMinSecondarySampleRate;
  1059. long lMaxSecondarySampleRate;
  1060. long lPrimaryBuffers;
  1061. long lMaxHwMixingAllBuffers;
  1062. long lMaxHwMixingStaticBuffers;
  1063. long lMaxHwMixingStreamingBuffers;
  1064. long lFreeHwMixingAllBuffers;
  1065. long lFreeHwMixingStaticBuffers;
  1066. long lFreeHwMixingStreamingBuffers;
  1067. long lMaxHw3DAllBuffers;
  1068. long lMaxHw3DStaticBuffers;
  1069. long lMaxHw3DStreamingBuffers;
  1070. long lFreeHw3DAllBuffers;
  1071. long lFreeHw3DStaticBuffers;
  1072. long lFreeHw3DStreamingBuffers;
  1073. long lTotalHwMemBytes;
  1074. long lFreeHwMemBytes;
  1075. long lMaxContigFreeHwMemBytes;
  1076. long lUnlockTransferRateHwBuffers;
  1077. long lPlayCpuOverheadSwBuffers;
  1078. long lReserved1;
  1079. long lReserved2;
  1080. } DSCAPS;
  1081. [helpcontext(403800)]
  1082. typedef struct WAVEFORMATEX
  1083. {
  1084. short nFormatTag; /* format type */
  1085. short nChannels; /* number of channels (i.e. mono, stereo...) */
  1086. long lSamplesPerSec; /* sample rate */
  1087. long lAvgBytesPerSec; /* for buffer estimation */
  1088. short nBlockAlign; /* block size of data */
  1089. short nBitsPerSample; /* number of bits per sample of mono data */
  1090. short nSize; /* nbytes of the extra information */
  1091. long lExtra; // was byte* seen as an array - extra information (after cbSize)
  1092. } WAVEFORMATEX;
  1093. [helpcontext(403900)]
  1094. typedef struct DSBUFFERDESC //docdoc: requires WaveFormatex
  1095. {
  1096. [hidden] long lSize;
  1097. dsbCapsFlags lFlags;
  1098. long lBufferBytes;
  1099. [hidden] long lReserved;
  1100. [hidden] long lpwfxFormat; // WaveFormatex *lpwfxFormat;
  1101. } DSBUFFERDESC;
  1102. [helpcontext(404000)]
  1103. typedef struct DSCURSORS
  1104. {
  1105. long lPlay; // Play cursor
  1106. long lWrite; // Write Cursor
  1107. } DSCURSORS;
  1108. //
  1109. // 3D Sound
  1110. //
  1111. #ifndef JAVA_ONLY
  1112. [helpcontext(404100)]
  1113. typedef struct DS3DBUFFER
  1114. {
  1115. [hidden] long lSize;
  1116. D3DVECTOR vPostion;
  1117. D3DVECTOR vVelocity;
  1118. long lInsideConeAngle;
  1119. long lOutsideConeAngle;
  1120. D3DVECTOR vConeOrientation;
  1121. long lConeOutsideVolume;
  1122. float minDistance;
  1123. float maxDistance;
  1124. ds3dModeFlags lMode;
  1125. }DS3DBUFFER;
  1126. #else
  1127. [helpcontext(404200)]
  1128. typedef struct DS3DBUFFER
  1129. {
  1130. [hidden] long lSize;
  1131. float vPostion_x;
  1132. float vPostion_y;
  1133. float vPostion_z;
  1134. float vVelocity_x;
  1135. float vVelocity_y;
  1136. float vVelocity_z;
  1137. long lInsideConeAngle;
  1138. long lOutsideConeAngle;
  1139. float vConeOrientation_x;
  1140. float vConeOrientation_y;
  1141. float vConeOrientation_z;
  1142. long lConeOutsideVolume;
  1143. float minDistance;
  1144. float maxDistance;
  1145. ds3dModeFlags lMode;
  1146. }DS3DBUFFER;
  1147. #endif
  1148. #ifndef JAVA_ONLY
  1149. [helpcontext(404300)]
  1150. typedef struct DS3DLISTENER
  1151. {
  1152. [hidden] long lSize; // will be private in java
  1153. D3DVECTOR vPosition;
  1154. D3DVECTOR vVelocity;
  1155. D3DVECTOR vOrientFront;
  1156. D3DVECTOR vOrientTop;
  1157. float distanceFactor;
  1158. float rolloffFactor;
  1159. float dopplerFactor;
  1160. } DS3DLISTENER;
  1161. #else
  1162. typedef struct DS3DLISTENER
  1163. {
  1164. [hidden] long lSize; // will be private in java
  1165. float vPostion_x;
  1166. float vPostion_y;
  1167. float vPostion_z;
  1168. float vVelocity_x;
  1169. float vVelocity_y;
  1170. float vVelocity_z;
  1171. float vOrientFront_x;
  1172. float vOrientFront_y;
  1173. float vOrientFront_z;
  1174. float vOrientTop_x;
  1175. float vOrientTop_y;
  1176. float vOrientTop_z;
  1177. float distanceFactor;
  1178. float rolloffFactor;
  1179. float dopplerFactor;
  1180. } DS3DLISTENER;
  1181. #endif
  1182. [helpcontext(404400)]
  1183. typedef struct DSCBCAPS
  1184. {
  1185. [hidden] long lSize;
  1186. dscbCapsFlags lFlags;
  1187. long lBufferBytes;
  1188. long lReserved;
  1189. } DSCBCAPS;
  1190. [helpcontext(404500)]
  1191. typedef struct DSCCAPS
  1192. {
  1193. [hidden] long lSize;
  1194. dscCapsFlags lFlags;
  1195. WaveFormatFlags lFormats;
  1196. long lChannels;
  1197. } DSCCAPS;
  1198. #ifndef JAVA_ONLY
  1199. [helpcontext(404600)]
  1200. typedef struct DSCBUFFERDESC
  1201. {
  1202. [hidden]long lSize;
  1203. dscbCapsFlags lFlags;
  1204. long lBufferBytes;
  1205. [hidden] long lReserved;
  1206. [hidden] long pFormat;
  1207. WAVEFORMATEX fxFormat;
  1208. } DSCBUFFERDESC;
  1209. #else
  1210. typedef struct DSCBUFFERDESC
  1211. {
  1212. [hidden]long lSize;
  1213. dscbCapsFlags lFlags;
  1214. long lBufferBytes;
  1215. [hidden]long lReserved;
  1216. [hidden]long pFormat;
  1217. short fxFormat_nFormatTag; /* format type */
  1218. short fxFormat_nChannels; /* number of channels (i.e. mono, stereo...) */
  1219. long fxFormat_lSamplesPerSec; /* sample rate */
  1220. long fxFormat_lAvgBytesPerSec; /* for buffer estimation */
  1221. short fxFormat_nBlockAlign; /* block size of data */
  1222. short fxFormat_nBitsPerSample; /* number of bits per sample of mono data */
  1223. short fxFormat_nSize; /* nbytes of the extra information */
  1224. long fxFormat_lExtra; // was byte* seen as an array - extra information (after cbSize)
  1225. } DSCBUFFERDESC;
  1226. #endif
  1227. [helpcontext(404700)]
  1228. typedef struct DSBPOSITIONNOTIFY {
  1229. long lOffset;
  1230. long hEventNotify;
  1231. } DSBPOSITIONNOTIFY;
  1232. //////////////////////////////////////////////////////////////////////
  1233. // Direct Play Types
  1234. [helpcontext(404800)]
  1235. typedef struct DPCREDENTIALS{
  1236. long lFlags; //must be zero
  1237. BSTR strUsername;
  1238. BSTR strPassword;
  1239. BSTR strDomain;
  1240. } DPCREDENTIALS;
  1241. [helpcontext(404900)]
  1242. typedef struct DPSECURITYDESC {
  1243. long lFlags; //must be zero
  1244. BSTR strSSPIProvider;
  1245. BSTR strCAPIProvider;
  1246. long lCAPIProviderType;
  1247. long lEncryptionAlgorithm;
  1248. } DPSECURITYDESC;
  1249. #ifdef C_ONLY
  1250. //internal to our app
  1251. typedef struct DPLAPPINFO{
  1252. BSTR strGuidApplication;
  1253. BSTR strAppName;
  1254. } DPLAPPINFO;
  1255. typedef struct DPSESSIONDESC2{
  1256. dpSessionFlags lFlags;
  1257. BSTR strGuidInstance;
  1258. BSTR strGuidApplication;
  1259. long lMaxPlayers;
  1260. long lCurrentPlayers;
  1261. BSTR strSessionName;
  1262. BSTR strPassword;
  1263. long lUser1;
  1264. long lUser2;
  1265. long lUser3;
  1266. long lUser4;
  1267. } DPSESSIONDESC2;
  1268. #endif
  1269. // DHF begin - _dxj_DirectPlay2, DirectPlayLobby
  1270. [helpcontext(405000)]
  1271. typedef struct DPCAPS {
  1272. [hidden] long lSize;
  1273. dpCapsFlags lFlags;
  1274. long lMaxBufferSize;
  1275. long lMaxQueueSize;
  1276. long lMaxPlayers;
  1277. long lHundredBaud;
  1278. long lLatency;
  1279. long lMaxLocalPlayers;
  1280. long lHeaderLength;
  1281. long lTimeout;
  1282. } DPCAPS;
  1283. #ifdef C_ONLY
  1284. typedef struct DPCHAT {
  1285. [hidden] long lSize;
  1286. long lFlags; //mustbe zero
  1287. [hidden] long lpszMessage;
  1288. [hidden] long lpwzMessage;
  1289. BSTR message;
  1290. } DPCHAT;
  1291. typedef struct DPPLAYERINFO {
  1292. long lDPID;
  1293. dpPlayerTypeFlags lPlayerType;
  1294. BSTR strShortName;
  1295. BSTR strLongName;
  1296. long lFlags; //spead across DPENUMGROUPS and DPENUMPLAYERS
  1297. } DPPLAYERINFO;
  1298. typedef struct DPSERVICEPROVIDERINFO {
  1299. BSTR strGuid;
  1300. BSTR strName;
  1301. long lMajorVersion;
  1302. long lMinorVersion;
  1303. long lFlags; //??
  1304. } DPSERVICEPROVIDERINFO;
  1305. typedef struct DPCONNECTION {
  1306. BSTR strGuid;
  1307. BSTR strShortName;
  1308. BSTR strLongName;
  1309. long lFlags; //not used
  1310. } DPCONNECTION;
  1311. typedef struct DPSERVICEPROVIDER
  1312. {
  1313. BSTR strGuid;
  1314. BSTR strName;
  1315. long lMajorVersion;
  1316. long lMinorVersion;
  1317. } DPSERVICEPROVIDER;
  1318. [hidden] //replaced by object
  1319. typedef struct DIDEVICEINSTANCE {
  1320. [hidden] long lSize;
  1321. BSTR strGuidInstance;
  1322. BSTR strGuidProduct;
  1323. diDeviceType lDevType;
  1324. BSTR strInstanceName;
  1325. BSTR strProductName;
  1326. BSTR strGuidFFDriver;
  1327. short nUsagePage;
  1328. short nUsage;
  1329. } DIDEVICEINSTANCE;
  1330. [hidden] //replaced by object
  1331. typedef struct DIDEVICEOBJECTINSTANCE {
  1332. [hidden] long lSize;
  1333. BSTR strGuidType;
  1334. long lOfs;
  1335. diDFTFlags lType;
  1336. diDeviceObjInstanceFlags lFlags;
  1337. BSTR strName;
  1338. long lFFMaxForce;
  1339. long lFFForceResolution;
  1340. short nCollectionNumber;
  1341. short nDesignatorIndex;
  1342. short nUsagePage;
  1343. short nUsage;
  1344. long lDimension;
  1345. short nExponent;
  1346. short nReserved;
  1347. } DIDEVICEOBJECTINSTANCE;
  1348. #endif
  1349. //
  1350. // DInput
  1351. //
  1352. [helpcontext(405100)]
  1353. typedef struct DIDEVCAPS {
  1354. [hidden] long lSize;
  1355. diDevCapsFlags lFlags;
  1356. diDeviceType lDevType;
  1357. long lAxes;
  1358. long lButtons;
  1359. long lPOVs;
  1360. long lFFSamplePeriod;
  1361. long lFFMinTimeResolution;
  1362. long lFirmwareRevision;
  1363. long lHardwareRevision;
  1364. long lDriverVersion;
  1365. } DIDEVCAPS;
  1366. [helpcontext(405200)]
  1367. typedef struct DIDEVICEOBJECTDATA{
  1368. long lOfs;
  1369. long lData;
  1370. long lTimeStamp;
  1371. long lSequence;
  1372. } DIDEVICEOBJECTDATA;
  1373. [helpcontext(405300)]
  1374. typedef struct DIPROPRANGE {
  1375. long lSize;
  1376. [hidden]long lHeaderSize;
  1377. long lObj;
  1378. long lHow;
  1379. long lMin;
  1380. long lMax;
  1381. } DIPROPRANGE;
  1382. [helpcontext(405400)]
  1383. typedef struct DIPROPLONG {
  1384. long lSize;
  1385. [hidden]long lHeaderSize;
  1386. long lObj;
  1387. long lHow;
  1388. long lData;
  1389. } DIPROPLONG;
  1390. [helpcontext(405500)]
  1391. typedef struct DIOBJECTDATAFORMAT {
  1392. BSTR strGuid;
  1393. long lOfs;
  1394. diDFTFlags lType;
  1395. diDeviceObjInstanceFlags lFlags;
  1396. } DIOBJECTDATAFORMAT;
  1397. [helpcontext(405600)]
  1398. typedef struct DIDATAFORMAT {
  1399. [hidden] long lSize;
  1400. long lObjSize;
  1401. diDataFormatFlags lFlags;
  1402. long dataSize;
  1403. long numObjs;
  1404. [hidden] long pData;
  1405. } DIDATAFORMAT;
  1406. #ifndef JAVA_ONLY
  1407. [helpcontext(405700)]
  1408. typedef struct DIMOUSESTATE {
  1409. long x;
  1410. long y;
  1411. long z;
  1412. Byte buttons[4];
  1413. } DIMOUSESTATE;
  1414. #else
  1415. typedef struct DIMOUSESTATE {
  1416. long x;
  1417. long y;
  1418. long z;
  1419. Byte buttons_0;
  1420. Byte buttons_1;
  1421. Byte buttons_2;
  1422. Byte buttons_3;
  1423. } DIMOUSESTATE;
  1424. #endif
  1425. [helpcontext(405800)]
  1426. typedef struct DIKEYBOARDSTATE {
  1427. Byte key[256];
  1428. } DIKEYBOARDSTATE;
  1429. #ifndef JAVA_ONLY
  1430. [helpcontext(405900)]
  1431. typedef struct DIJOYSTATE {
  1432. long x;
  1433. long y;
  1434. long z;
  1435. long rx;
  1436. long ry;
  1437. long rz;
  1438. long slider[2];
  1439. long POV[4];
  1440. Byte buttons[32];
  1441. } DIJOYSTATE;
  1442. #else
  1443. typedef struct DIJOYSTATE {
  1444. long x;
  1445. long y;
  1446. long z;
  1447. long rx;
  1448. long ry;
  1449. long rz;
  1450. long slider_0;
  1451. long slider_1;
  1452. long POV_0;
  1453. long POV_1;
  1454. long POV_2;
  1455. long POV_3;
  1456. Byte buttons_0;
  1457. Byte buttons_1;
  1458. Byte buttons_2;
  1459. Byte buttons_3;
  1460. Byte buttons_4;
  1461. Byte buttons_5;
  1462. Byte buttons_6;
  1463. Byte buttons_7;
  1464. Byte buttons_8;
  1465. Byte buttons_9;
  1466. Byte buttons_10;
  1467. Byte buttons_11;
  1468. Byte buttons_12;
  1469. Byte buttons_13;
  1470. Byte buttons_14;
  1471. Byte buttons_15;
  1472. Byte buttons_16;
  1473. Byte buttons_17;
  1474. Byte buttons_18;
  1475. Byte buttons_19;
  1476. Byte buttons_20;
  1477. Byte buttons_21;
  1478. Byte buttons_22;
  1479. Byte buttons_23;
  1480. Byte buttons_24;
  1481. Byte buttons_25;
  1482. Byte buttons_26;
  1483. Byte buttons_27;
  1484. Byte buttons_28;
  1485. Byte buttons_29;
  1486. Byte buttons_30;
  1487. Byte buttons_31;
  1488. } DIJOYSTATE;
  1489. #endif
  1490. [helpcontext(406000)]
  1491. typedef struct DIJOYSTATE2 {
  1492. long x;
  1493. long y;
  1494. long z;
  1495. long rx;
  1496. long ry;
  1497. long rz;
  1498. long slider[2];
  1499. long POV[4];
  1500. Byte buttons[128];
  1501. long vx;
  1502. long vy;
  1503. long vz;
  1504. long vrx;
  1505. long vry;
  1506. long vrz;
  1507. long vslider[2];
  1508. long ax;
  1509. long ay;
  1510. long az;
  1511. long arx;
  1512. long ary;
  1513. long arz;
  1514. long aslider[2];
  1515. long fx;
  1516. long fy;
  1517. long fz;
  1518. long frx;
  1519. long fry;
  1520. long frz;
  1521. long fslider[2];
  1522. } DIJOYSTATE2;
  1523. [helpcontext(406100)]
  1524. typedef struct D3DRMPMESHLOADSTATUS {
  1525. [hidden] long lSize;
  1526. long lPMeshSize;
  1527. long lBaseMeshSize;
  1528. long lBytesLoaded;
  1529. long lVerticesLoaded;
  1530. long lFacesLoaded;
  1531. d3drmPMeshStatusFlags lFlags;
  1532. } D3DRMPMESHLOADSTATUS;
  1533. [helpcontext(406200)]
  1534. typedef struct D3DRMANIMATIONKEY
  1535. {
  1536. [hidden] long lSize;
  1537. long lKeyType;
  1538. float dvTime;
  1539. long lID;
  1540. float dvX;
  1541. float dvY;
  1542. float dvZ;
  1543. float dvS;
  1544. } D3DRMANIMATIONKEY;
  1545. [helpcontext(406300)]
  1546. typedef struct D3DRMMATERIALOVERRIDE
  1547. {
  1548. [hidden] long lSize;
  1549. d3drmMaterialOverrideFlags lFlags;
  1550. D3DCOLORVALUE dcDiffuse;
  1551. D3DCOLORVALUE dcAmbient;
  1552. D3DCOLORVALUE dcEmissive;
  1553. D3DCOLORVALUE dcSpecular;
  1554. float dvPower;
  1555. [hidden] LPUNKNOWN pTex;
  1556. } D3DRMMATERIALOVERRIDE;
  1557. // DMUSIC
  1558. typedef enum CONST_DMUS_NOTIFICATION_TYPE
  1559. {
  1560. DMUS_NOTIFY_ON_CHORD =1,
  1561. DMUS_NOTIFY_ON_COMMAND =2,
  1562. DMUS_NOTIFY_ON_MEASUREANDBEAT =3,
  1563. DMUS_NOTIFY_ON_PERFORMANCE=4,
  1564. DMUS_NOTIFY_ON_SEGMENT=5,
  1565. } CONST_DMUS_NOTIFICATION_TYPE;
  1566. [helpcontext(406400)]
  1567. typedef struct DMUS_TIMESIGNATURE {
  1568. long mtTime;
  1569. Byte beatsPerMeasure;
  1570. Byte beat;
  1571. short gridsPerBeat;
  1572. } DMUS_TIMESIGNATURE;
  1573. #define MUSIC_TIME long
  1574. [helpcontext(406500)]
  1575. typedef struct DMUS_NOTIFICATION_PMSG
  1576. {
  1577. [hidden] long lFlags;
  1578. long ctTime;
  1579. long mtTime;
  1580. long lNotificationType;
  1581. long lNotificationOption;
  1582. long lField1;
  1583. long lField2;
  1584. } DMUS_NOTIFICATION_PMSG;
  1585. [helpcontext(406600)]
  1586. typedef struct DMUS_CURVE_PMSG {
  1587. MUSIC_TIME mtDuration;
  1588. MUSIC_TIME mtOriginalStart;
  1589. MUSIC_TIME mtResetDuration;
  1590. short startValue;
  1591. short endValue;
  1592. short resetValue;
  1593. short measure;
  1594. short offset;
  1595. Byte beat;
  1596. Byte grid;
  1597. Byte type;
  1598. Byte curveShape;
  1599. Byte ccData;
  1600. Byte flags;
  1601. } DMUS_CURVE_PMSG;
  1602. [helpcontext(406700)]
  1603. typedef struct DMUS_NOTE_PMSG {
  1604. MUSIC_TIME mtDuration;
  1605. short musicValue;
  1606. short measure;
  1607. short offset;
  1608. Byte beat;
  1609. Byte grid;
  1610. Byte velocity;
  1611. Byte flags;
  1612. Byte timeRange;
  1613. Byte durRange;
  1614. Byte velRange;
  1615. Byte playModeFlags;
  1616. Byte subChordLevel;
  1617. Byte midiValue;
  1618. short transpose; //becomes byte
  1619. } DMUS_NOTE_PMSG;
  1620. [helpcontext(406800)]
  1621. typedef struct DMUS_PORTCAPS {
  1622. [hidden] long dwSize;
  1623. CONST_DMUS_PC_FLAGS lFlags;
  1624. [hidden] DXGUID guidPort;
  1625. CONST_DMUS_PC_CLASS lClass;
  1626. CONST_DMUS_PORT_TYPE lType;
  1627. long lMemorySize;
  1628. long lMaxChannelGroups;
  1629. long lMaxVoices;
  1630. long lMaxAudioChannels;
  1631. long lEffectFlags;
  1632. [hidden] short wszDescription[128];
  1633. } DMUS_PORTCAPS;
  1634. #ifdef DX61
  1635. [helpcontext(406900)]
  1636. typedef struct D3DHVERTEX {
  1637. long lFlags; /* Homogeneous clipping flags */
  1638. float hx;
  1639. float hy;
  1640. float hz;
  1641. } D3DHVERTEX;
  1642. #ifndef JAVA_ONLY
  1643. [helpcontext(407000)]
  1644. typedef struct D3DLIGHT2 {
  1645. [hidden] long lSize;
  1646. d3dLightType dltType;
  1647. D3DCOLORVALUE color;
  1648. D3DVECTOR position;
  1649. D3DVECTOR direction;
  1650. float range;
  1651. float falloff;
  1652. float attenuation0;
  1653. float attenuation1;
  1654. float attenuation2;
  1655. float theta;
  1656. float phi;
  1657. d3dLightFlags lFlags;
  1658. } D3DLIGHT2 ;
  1659. #else
  1660. typedef struct D3DLIGHT2 {
  1661. long lSize;
  1662. d3dLightType dltType;
  1663. float color_r; //D3DCOLORVALUE
  1664. float color_g; //D3DCOLORVALUE
  1665. float color_b; //D3DCOLORVALUE
  1666. float color_a; //D3DCOLORVALUE
  1667. float position_x; //D3DVECTOR
  1668. float position_y;
  1669. float position_z;
  1670. float direction_x; //D3DVECTOR
  1671. float direction_y;
  1672. float direction_z;
  1673. float range;
  1674. float falloff;
  1675. float attenuation0;
  1676. float attenuation1;
  1677. float attenuation2;
  1678. float theta;
  1679. float phi;
  1680. d3dLightFlags lFlags;
  1681. } D3DLIGHT2 ;
  1682. #endif
  1683. [helpcontext(407100)]
  1684. typedef struct D3DLIGHTDATA
  1685. {
  1686. long lSize;
  1687. [hidden] long pIn;
  1688. long lInSize;
  1689. [hidden] long pOut;
  1690. long lOutSize;
  1691. } D3DLIGHTDATA;
  1692. #ifndef JAVA_ONLY
  1693. [helpcontext(407200)]
  1694. typedef struct D3DMATERIAL {
  1695. [hidden] long lSize;
  1696. D3DCOLORVALUE diffuse;
  1697. D3DCOLORVALUE ambient;
  1698. D3DCOLORVALUE specular;
  1699. D3DCOLORVALUE emmisive;
  1700. float power;
  1701. long hTexture;
  1702. long lRampSize; //union with hTexture!!!
  1703. } D3DMATERIAL;
  1704. #else
  1705. typedef struct D3DMATERIAL {
  1706. long lSize;
  1707. float diffuse_r; //d3dColorValue
  1708. float diffuse_g;
  1709. float diffuse_b;
  1710. float diffuse_a;
  1711. float ambient_r; //D3DCOLORVALUE
  1712. float ambient_g;
  1713. float ambient_b;
  1714. float ambient_a;
  1715. float specular_r; //D3DCOLORVALUE
  1716. float specular_g;
  1717. float specular_b;
  1718. float specular_a;
  1719. float emissive_r; //D3DCOLORVALUE
  1720. float emissive_g;
  1721. float emissive_b;
  1722. float emissive_a;
  1723. float power;
  1724. long hTexture;
  1725. long lRampSize; //union with hTexture
  1726. } D3DMATERIAL;
  1727. #endif
  1728. [helpcontext(407300)]
  1729. typedef struct D3DSTATS
  1730. {
  1731. [hidden] long lSize;
  1732. long lTrianglesDrawn;
  1733. long lLinesDrawn;
  1734. long lPointsDrawn;
  1735. long lSpansDrawn;
  1736. long lVerticesProcessed;
  1737. } D3DSTATS;
  1738. #ifndef JAVA_ONLY
  1739. [helpcontext(407400)]
  1740. typedef struct D3DTRANSFORMDATA
  1741. {
  1742. [hidden]long lSize;
  1743. [hidden]long pIn;
  1744. [hidden]long lInSize;
  1745. [hidden]long pOut;
  1746. [hidden]long lOutSize;
  1747. [hidden]long pHOut;
  1748. d3dClipFlags lClip;
  1749. d3dClipFlags lClipIntersection;
  1750. d3dClipFlags lClipUnion;
  1751. D3DRECT rExtent;
  1752. } D3DTRANSFORMDATA;
  1753. #else
  1754. typedef struct D3DTRANSFORMDATA
  1755. {
  1756. long lSize;
  1757. [hidden]long pIn;
  1758. long lInSize;
  1759. [hidden] long pOut;
  1760. long lOutSize;
  1761. [hidden]long pHOut;
  1762. d3dClipFlags lClip;
  1763. d3dClipFlags lClipIntersection;
  1764. d3dClipFlags lClipUnion;
  1765. long rExtent_x1;
  1766. long rExtent_y1;
  1767. long rExtent_x2;
  1768. long rExtent_y2;
  1769. } D3DTRANSFORMDATA;
  1770. #endif
  1771. [helpcontext(407500)]
  1772. [hidden] typedef struct D3DVIEWPORT {
  1773. [hidden] long lSize;
  1774. long lX;
  1775. long lY;
  1776. long lWidth;
  1777. long lHeight;
  1778. float scaleX;
  1779. float scaleY;
  1780. float maxX;
  1781. float maxY;
  1782. float minZ;
  1783. float maxZ;
  1784. } D3DVIEWPORT ;
  1785. [helpcontext(407600)]
  1786. typedef struct D3DVIEWPORT2 {
  1787. [hidden] long lSize;
  1788. long lX;
  1789. long lY;
  1790. long lWidth;
  1791. long lHeight;
  1792. float clipX;
  1793. float clipY;
  1794. float clipWidth;
  1795. float clipHeight;
  1796. float minZ;
  1797. float maxZ;
  1798. } D3DVIEWPORT2;
  1799. #endif
  1800. [helpcontext(407700)]
  1801. typedef struct DIENVELOPE {
  1802. [hidden] long lSize;
  1803. long lAttackLevel;
  1804. long lAttackTime;
  1805. long lFadeLevel;
  1806. long lFadeTime;
  1807. } DIENVELOPE;
  1808. [helpcontext(407800)]
  1809. typedef struct DIRAMPFORCE {
  1810. long lRangeStart; //ramp force
  1811. long lRangeEnd; //ramp force
  1812. } DIRAMPFORCE;
  1813. [helpcontext(407900)]
  1814. typedef struct DIPERIODICFORCE {
  1815. long lMagnitude; //periodic
  1816. long lOffset; //periodic
  1817. long lPhase; //periodic
  1818. long lPeriod; //periodic
  1819. } DIPERIODICFORCE;
  1820. [helpcontext(408000)]
  1821. typedef struct DICONDITION {
  1822. long lOffset; //condition
  1823. long lPositiveCoefficient; //condition
  1824. long lNegativeCoefficient; //condition
  1825. long lPositiveSaturation; //condition
  1826. long lNegativeSaturation; //condition
  1827. long lDeadBand; //condition
  1828. //VARIANT_BOOL bDirectional; //condition
  1829. } DICONDITION;
  1830. [helpcontext(408100)]
  1831. typedef struct DICONSTANTFORCE {
  1832. long lMagnitude;
  1833. } DICONSTANTFORCE;
  1834. [hidden]
  1835. typedef struct DIAXISOFFSETS{
  1836. long x;
  1837. long y;
  1838. } DIAXISOFFSETS;
  1839. [helpcontext(408200)]
  1840. typedef struct DIEFFECT {
  1841. [hidden] long dwSize;
  1842. long lFlags; //dwTriggerButton and rgdwAxes
  1843. //use DIEFF_OBJECTIDS
  1844. // DIEFF_OBJECTOFFSETS
  1845. //rglDirection
  1846. //depends DIEFF_CARTESIAN
  1847. // DIEFF_POLAR
  1848. // DIEFF_SPHERICAL
  1849. long lDuration; //durration of the effect
  1850. long lSamplePeriod; //period
  1851. long lGain; //magnitude???
  1852. long lTriggerButton; //DIEFF_OBJECTIDS
  1853. long lTriggerRepeatInterval;
  1854. [hidden] long cAxes; //4
  1855. [hidden] long lprgdwAxes; //DIEFF_OBJECTIDS
  1856. //
  1857. [hidden] long lprglDirection;
  1858. [hidden] long lpEnvelope;
  1859. [hidden] long cbTypeSpecificParams;
  1860. [hidden] long lpvTypeSpecificParams;
  1861. long lStartDelay;
  1862. long x; // x
  1863. long y; // y
  1864. DIRAMPFORCE rampForce;
  1865. DIPERIODICFORCE periodicForce;
  1866. DICONSTANTFORCE constantForce;
  1867. DICONDITION conditionX;
  1868. DICONDITION conditionY;
  1869. diConditionFlags conditionFlags;
  1870. BOOL bUseEnvelope;
  1871. DIENVELOPE envelope;
  1872. [hidden] DIAXISOFFSETS axisOffsets;
  1873. } DIEFFECT;
  1874. [helpcontext(408300)]
  1875. typedef struct D3DDEVINFO_TEXTUREMANAGER {
  1876. //cant be VARIANT_BOOL because that would only be 16 bit
  1877. long bThrashing; /* indicates if thrashing */
  1878. long lNumEvicts; /* number of textures evicted */
  1879. long lNumVidCreates; /* number of textures created in video memory */
  1880. long lNumTexturesUsed; /* number of textures used */
  1881. long lNumUsedTexInVid; /* number of used textures present in video memory */
  1882. long lWorkingSet; /* number of textures in video memory */
  1883. long lWorkingSetBytes; /* number of bytes in video memory */
  1884. long lTotalManaged; /* total number of managed textures */
  1885. long lTotalBytes; /* total number of bytes of managed textures */
  1886. long lLastPri; /* priority of last texture evicted */
  1887. } D3DDEVINFO_TEXTUREMANAGER;
  1888. //need to add to master help
  1889. [helpcontext(408400)]
  1890. typedef struct DDOVERLAYFX{
  1891. [hidden] long lSize;
  1892. long lAlphaEdgeBlendBitDepth;
  1893. long lAlphaEdgeBlend;
  1894. [hidden] long lReserved;
  1895. long lAlphaDestConstBitDepth;
  1896. long lAlphaDestConst; //union LPDIRECTDRAWSURFACE lpDDSAlphaDest;
  1897. long lAlphaSrcConstBitDepth;
  1898. long lAlphaSrcConst; //union LPDIRECTDRAWSURFACE lpDDSAlphaSrc;
  1899. DDCOLORKEY dckDestColorkey;
  1900. DDCOLORKEY dckSrcColorkey;
  1901. ddOverFxFlags lDDFX;
  1902. long lFlags;
  1903. } DDOVERLAYFX;
  1904. [helpcontext(408500)]
  1905. typedef struct D3DDEVINFO_TEXTURING {
  1906. long lNumLoads; /* counts Load() API calls */
  1907. long lApproxBytesLoaded; /* Approximate number bytes loaded via Load() */
  1908. long lNumPreLoads; /* counts PreLoad() API calls */
  1909. long lNumSet; /* counts SetTexture() API calls */
  1910. long lNumCreates; /* counts texture creates */
  1911. long lNumDestroys; /* counts texture destroys */
  1912. long lNumSetPriorities; /* counts SetPriority() API calls */
  1913. long lNumSetLODs; /* counts SetLOD() API calls */
  1914. long lNumLocks; /* counts number of texture locks */
  1915. long lNumGetDCs; /* counts number of GetDCs to textures */
  1916. } D3DDEVINFO_TEXTURING;