//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1998 - 1999 // // File: directxstruct.idl // //-------------------------------------------------------------------------- // Direct.idl : IDL source for Direct.dll // +++++++++++++++++++++++++++++++++++++ // This file will be processed by the MIDL tool to // produce the type library (Direct.tlb) and marshalling code. // //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ /////////////////////////////////////////////////////////// // General Types #ifdef C_ONLY #define DXDRIVERINFO DxDriverInfo #define DXDRIVERINFOEX DxDriverInfoEx #define RECT Rect #define DXGUID DxGuid #define DPAPPLICATIONDESC2 DpApplicationDesc2 #define DIRECTXREGISTERAPP DirectXRegisterApp #define PALETTEENTRY PaletteEntry #define D3DRECT D3dRect #define D3DROTATION D3dRotation #define D3DVECTOR D3dVector #define D3DCOLORVALUE D3dColorValue #define D3DHVERTEX D3dHVertex #define D3DTLVERTEX D3dTLVertex #define D3DLVERTEX D3dLVertex #define D3DVERTEX D3dVertex #define DXVERTEX DxVertex #define D3DCLIPSTATUS D3dClipStatus #define D3DVIEWPORT D3dViewport #define D3DVIEWPORT2 D3dViewport2 #define D3DVIEWPORT7 D3dViewport7 #define D3DLIGHTINGCAPS D3dLightingCaps #define D3DPRIMCAPS D3dPrimCaps #define D3DDEVICEDESC D3dDeviceDesc //#define D3DFINDDEVICERESULT D3dFindDeviceResult //#define D3DFINDDEVICERESULT2 D3dFindDeviceResult2 #define D3DMATERIAL D3dMaterial #define D3DMATERIAL7 D3dMaterial7 #define D3DLIGHT2 D3dLight2 #define D3DLIGHT7 D3dLight7 #define D3DMATRIX D3dMatrix #define D3DRMRAY D3dRMRay #define D3DSTATUS D3dStatus #define D3DDEVINFO_TEXTUREMANAGER D3dDevInfo_TextureManager #define D3DSTATS D3dStats #define D3DTRANSFORMDATA D3dTransFormData #define D3DLIGHTDATA D3dLightData #define D3DRMQUATERNION D3dRMQuaternion #define D3DRMVECTOR4D D3dRMVector4d #define D3DRMBOX D3dRMBox #define D3DRMPICKDESC D3dRMPickDesc #define D3DRMPICKDESC2 D3dRMPickDesc2 #define D3DRMIMAGE D3dRMImage #define D3DRMVERTEX D3dRMVertex #define D3DVERTEXBUFFERDESC D3dVertexBufferDesc #define D3DRMMATERIALOVERRIDE D3dMaterialOverride #define DDCOLORKEY DDColorKey #define DDSCAPS DDSCaps #define DDPIXELFORMAT DDPixelFormat #define DDSURFACEDESC2 DDSurfaceDesc2 #define DDCAPS DDCaps #define DDCAPS2 DDCaps2 #define DDSCAPS2 DDSCaps2 #define DDBLTFX DDBltFx #define DDVIDEOPORTINFO DDVideoPortInfo #define DDCOLORCONTROL DDColorControl #define DDGAMMARAMP DDGammaRamp #define DDVIDEOPORTBANDWIDTH DDVideoPortBandWidth #define DDVIDEOPORTCAPS DDVideoPortCaps #define DDVIDEOPORTDESC DDVideoPortDesc #define DDVIDEOPORTINFO DDVideoPortInfo #define DDVIDEOPORTCONNECT DDVideoPortConnect #define DSBCAPS DSBCaps #define DSCAPS DSCaps #define WAVEFORMATEX WaveFormatex #define DSBUFFERDESC DSBufferDesc #define DSCURSORS DSCursors #define DSRESOURCEDESC DSResourceDesc #define DS3DBUFFER DS3dBuffer #define DS3DLISTENER DS3dListener #define DSCBCAPS DSCBCaps #define DSCCAPS DSCCaps #define DSCBUFFERDESC DSCBufferDesc #define DSBPOSITIONNOTIFY DSBPositionNotify #define DPCHAT DPChat #define DPCOMPOUNDADDRESSELEMENT DPCompoundAddressElement #define DPCREDENTIALS DPCredentials #define DPSECURITYDESC DPSecurityDesc #define DPSESSIONDESC2 DPSessionDesc2 #define DPLAPPINFO DPLAppInfo #define DPPLAYERIDS DPPlayerIds #define DPCAPS DPCaps #define DPPLAYERINFO DPPlayerInfo #define DPSERVICEPROVIDERINFO DPServiceProviderInfo #define DPCONNECTION DPConnection #define DPSERVICEPROVIDER DPServiceProvider #define DIDEVCAPS DIDevCaps #define DIDEVICEOBJECTDATA DIDeviceObjectData #define DIDEVICEINSTANCE DIDeviceInstance #define DIDEVICEOBJECTINSTANCE DIDeviceObjectInstance //#define DICONDITION DICondition #define DIPROPERTY DIProperty #define DIENVELOPE DIEvelope #define DICUSTOMFORCE DICustomForce #define DIPERIODIC DIPeriodic #define DICONSTANCEFORCE DIConstantForce #define DIRAMPFORCE DIRampForce #define DIEFFECT DIEffect #define DIEFFESCAPE DIEffEscape #define DIEFFECTINFO DIEffectInfo #define DIOBJECTDATAFORMAT DIObjectDataFormat #define DIDATAFORMAT DIDataFormat #define DIMOUSESTATE DIMouseState #define DIKEYBOARDSTATE DIKeyboardState #define DIJOYSTATE DIJoyState #define DIJOYSTATE2 DIJoyState2 #define D3DDEVICEDESC7 D3dDeviceDesc7 //#define D3DFINDDEVICERESULT7 D3dFindDeviceResult7 #define d3dLightCapsFlags long #define d3dLightingModelFlags long #define d3dCapsMisc long #define d3dCapsRaster long #define d3dCapsCmp long #define d3dCapsBlend long #define d3dCapsTexture long #define d3dCapsShade long #define d3dCapsTextureFilter long //#define d3dCapsTextureBlend long #define d3dCapsTextureAddress long #define d3dDeviceDescFlags long #define d3dColorModel long #define d3dDeviceDescCaps long #define d3dTransformCaps long #define d3dStencilCapsFlags long #define d3dFVFCapsFlags long #define d3dTexOpCapsFlags long #define d3dLightFlags long #define d3dSetStatusFlags long #define d3dClipFlags long #define d3dClipStatusFlags long //#define d3dFindDeviceSearchFlags long #define ddSurfaceCapsFlags long #define ddSurfaceCaps2Flags long #define ddPixelFormatFlags long #define ddSurfaceDescFlags long #define ddSurfaceCapsFlags long #define ddCaps1Flags long #define ddCaps2Flags long #define ddCKeyCapsFlags long #define ddFXCapsFlags long #define ddFXAlphaCapsFlags long #define ddPCapsFlags long #define ddStereoCapsFlags long #define ddBltFXFlags long #define ddColorFlags long #define d3dVBCapsFlags long #define d3dFVFFlags long #define dsbCapsFlags long #define dsCapsFlags long #define ds3dModeFlags long #define dscbCapsFlags long #define dscCapsFlags long #define WaveFormatFlags long #define dpSessionFlags long #define dpCapsFlags long #define dpPlayerTypeFlags long #define diDevCapsFlags long #define diDeviceType long #define diDFTFlags long #define diDeviceObjInstanceFlags long #define d3drmPMeshStatusFlags long #define d3drmMaterialOverrideFlags long #define dBoolFlags long #define diCommonDataFormats long #define diDataFormatFlags long #define ddOverFxFlags long #define diConditionFlags long #define CONST_DMUS_PC_CLASS long #define CONST_DMUS_PC_FLAGS long #define CONST_DMUS_PORT_TYPE long #define CONST_DMUS_PORTPARAMS_FLAGS long #endif // New types #ifdef C_ONLY typedef struct DXDRIVERINFO { BSTR strGuid; BSTR strDescription; BSTR strName; } DXDRIVERINFO; typedef struct DXDRIVERINFOEX { BSTR strGuid; BSTR strDescription; BSTR strName; long hMonitor; } DXDRIVERINFOEX; typedef struct RECT { long left; long top; long right; long bottom; } RECT; #else [helpcontext(400100)] typedef struct RECT { long Left; long Top; long Right; long Bottom; } RECT; #endif [hidden] typedef struct DXGUID { long data1; short data2; short data3; Byte data4[8]; } DXGUID; [helpcontext(400200)] typedef struct DPAPPLICATIONDESC2 { long lFlags; BSTR strApplicationName; BSTR strGuid; BSTR strFilename; BSTR strCommandLine; BSTR strPath; BSTR strCurrentDirectory; BSTR strDescription; BSTR strAppLauncherName; } DPAPPLICATIONDESC2; [helpcontext(400300)] typedef struct DIRECTXREGISTERAPP { long lFlags; BSTR strApplicationName; BSTR strGuid; BSTR strFilename; BSTR strCommandLine; BSTR strPath; BSTR strCurrentDirectory; } DIRECTXREGISTERAPP; [helpcontext(400400)] typedef struct PALETTEENTRY { Byte red; Byte green; Byte blue; Byte flags; } PALETTEENTRY; // // D3D Types // [helpcontext(400500)] typedef struct D3DRECT { long x1; long y1; long x2; long y2; } D3DRECT; // not needed according to shanee // typedef struct D3DROTATION { // float x; // float y; // float z; // float t; // } D3DROTATION; [helpcontext(400600)] typedef struct D3DVECTOR { float x; float y; float z; } D3DVECTOR; [helpcontext(400700)] typedef struct D3DCOLORVALUE { float r; float g; float b; float a; } D3DCOLORVALUE; [helpcontext(400800)] typedef struct D3DLINEPATTERN { long repeatFactor; long linePatern; } D3DLINEPATTERN; [helpcontext(400900)] typedef struct D3DTLVERTEX { float sx; /* Screen coordinates */ float sy; float sz; float rhw; /* Reciprocal of homogeneous w */ long color; /* Vertex color */ long specular; /* Specular component of vertex */ float tu; /* Texture coordinates */ float tv; } D3DTLVERTEX; [helpcontext(401000)] typedef struct D3DLVERTEX { float x; /* Homogeneous coordinates */ float y; float z; [hidden] long reserved; long color; /* Vertex color */ long specular; /* Specular component of vertex */ float tu; /* Texture coordinates */ float tv; } D3DLVERTEX; [helpcontext(401100)] typedef struct D3DVERTEX { float x; /* Homogeneous coordinates */ float y; float z; float nx; /* Normal */ float ny; float nz; float tu; /* Texture coordinates */ float tv; } D3DVERTEX; [helpcontext(401200)] typedef struct D3DCLIPSTATUS { d3dClipStatusFlags lFlags; d3dClipFlags lStatus; float minx, maxx; float miny, maxy; float minz, maxz; } D3DCLIPSTATUS ; [helpcontext(401300)] typedef struct D3DVIEWPORT7 { long lX; long lY; long lWidth; long lHeight; float minZ; float maxZ; } D3DVIEWPORT7; [helpcontext(401400)] typedef struct D3DLIGHTINGCAPS { [hidden] long lSize; d3dLightCapsFlags lCaps; d3dLightingModelFlags lLightingModel; long lNumLights; } D3DLIGHTINGCAPS; [helpcontext(401500)] typedef struct D3DPRIMCAPS { [hidden] long lSize; // size of structure d3dCapsMisc lMiscCaps; // miscellaneous caps d3dCapsRaster lRasterCaps; // raster caps d3dCapsCmp lZCmpCaps; // z-comparison caps d3dCapsBlend lSrcBlendCaps; // source blending caps d3dCapsBlend lDestBlendCaps; // destination blending caps d3dCapsCmp lAlphaCmpCaps; // alpha-test comparison caps d3dCapsShade lShadeCaps; // shading caps d3dCapsTexture lTextureCaps; // texture caps d3dCapsTextureFilter lTextureFilterCaps; // texture filtering caps //d3dCapsTextureBlend lTextureBlendCaps; // texture blending caps long lReserved1; d3dCapsTextureAddress lTextureAddressCaps; // texture addressing caps long lStippleWidth; // stipple width long lStippleHeight; // stipple height } D3DPRIMCAPS; #ifndef JAVA_ONLY [helpcontext(401600)] typedef struct D3DDEVICEDESC7 { d3dDeviceDescCaps lDevCaps; D3DPRIMCAPS dpcLineCaps; D3DPRIMCAPS dpcTriCaps; long lDeviceRenderBitDepth; long lDeviceZBufferBitDepth; long lMinTextureWidth,lMinTextureHeight; long lMaxTextureWidth,lMaxTextureHeight; long lMaxTextureRepeat; long lMaxTextureAspectRatio; long lMaxAnisotropy; float dvGuardBandLeft; float dvGuardBandTop; float dvGuardBandRight; float dvGuardBandBottom; float dvExtentsAdjust; d3dStencilCapsFlags lStencilCaps; d3dFVFCapsFlags lFVFCaps; d3dTexOpCapsFlags lTextureOpCaps; short nMaxTextureBlendStages; short nMaxSimultaneousTextures; long lMaxActiveLights; float dvMaxVertexW; [hidden] DXGUID deviceGuid; short nMaxUserClipPlanes; short nMaxVertexBlendMatrices; d3dVTXPCapsFlags lVertexProcessingCaps; [hidden] long lReserved1; [hidden] long lReserved2; [hidden] long lReserved3; [hidden] long lReserved4; } D3DDEVICEDESC7; #else typedef struct D3DDEVICEDESC7 { long lDevCaps; [hidden] long dpcLineCaps_lSize; // size of structure long dpcLineCaps_lMiscCaps; // miscellaneous caps long dpcLineCaps_lRasterCaps; // raster caps long dpcLineCaps_lZCmpCaps; // z-comparison caps long dpcLineCaps_lSrcBlendCaps; // source blending caps long dpcLineCaps_lDestBlendCaps; // destination blending caps long dpcLineCaps_lAlphaCmpCaps; // alpha-test comparison caps long dpcLineCaps_lShadeCaps; // shading caps long dpcLineCaps_lTextureCaps; // texture caps long dpcLineCaps_lTextureFilterCaps; // texture filtering caps long dpcLineCaps_lTextureBlendCaps; // texture blending caps long dpcLineCaps_lTextureAddressCaps; // texture addressing caps long dpcLineCaps_lStippleWidth; // stipple width long dpcLineCaps_lStippleHeight; // stipple height [hidden] long dpcTriCaps_lSize; // size of structure long dpcTriCaps_lMiscCaps; // miscellaneous caps long dpcTriCaps_lRasterCaps; // raster caps long dpcTriCaps_lZCmpCaps; // z-comparison caps long dpcTriCaps_lSrcBlendCaps; // source blending caps long dpcTriCaps_lDestBlendCaps; // destination blending caps long dpcTriCaps_lAlphaCmpCaps; // alpha-test comparison caps long dpcTriCaps_lShadeCaps; // shading caps long dpcTriCaps_lTextureCaps; // texture caps long dpcTriCaps_lTextureFilterCaps; // texture filtering caps long dpcTriCaps_lTextureBlendCaps; // texture blending caps long dpcTriCaps_lTextureAddressCaps; // texture addressing caps long dpcTriCaps_lStippleWidth; // stipple width long dpcTriCaps_lStippleHeight; // stipple height long lDeviceRenderBitDepth; long lDeviceZBufferBitDepth; long lMinTextureWidth,lMinTextureHeight; long lMaxTextureWidth,lMaxTextureHeight; long lMaxTextureRepeat; long lMaxTextureAspectRatio; long lMaxAnisotropy; float dvGuardBandLeft; float dvGuardBandTop; float dvGuardBandRight; float dvGuardBandBottom; float dvExtentsAdjust; d3dStencilCapsFlags lStencilCaps; d3dFVFCapsFlags lFVFCaps; d3dTexOpCapsFlags lTextureOpCaps; short nMaxTextureBlendStages; short nMaxSimultaneousTextures; long lMaxActiveLights; float dvMaxVertexW; [hidden] DXGUID deviceGuid; short nMaxUserClipPlanes; short nMaxVertexBlendMatrices; d3dVTXCapsFlags lVertexProcessingCaps; [hidden] long lReserved1; [hidden] long lReserved2; [hidden] long lReserved3; [hidden] long lReserved4; } D3DDEVICEDESC7; #endif #ifndef JAVA_ONLY [helpcontext(401700)] typedef struct D3DMATERIAL7 { D3DCOLORVALUE diffuse; D3DCOLORVALUE ambient; D3DCOLORVALUE specular; D3DCOLORVALUE emissive; float power; } D3DMATERIAL7; #else typedef struct D3DMATERIAL7 { float diffuse_r; //d3dColorValue float diffuse_g; float diffuse_b; float diffuse_a; float ambient_r; //D3DCOLORVALUE float ambient_g; float ambient_b; float ambient_a; float specular_r; //D3DCOLORVALUE float specular_g; float specular_b; float specular_a; float emissive_r; //D3DCOLORVALUE float emissive_g; float emissive_b; float emissive_a; float power; } D3DMATERIAL7; #endif #ifndef JAVA_ONLY [helpcontext(401800)] typedef struct D3DLIGHT7 { d3dLightType dltType; D3DCOLORVALUE diffuse; D3DCOLORVALUE specular; D3DCOLORVALUE ambient; D3DVECTOR position; D3DVECTOR direction; float range; float falloff; float attenuation0; float attenuation1; float attenuation2; float theta; float phi; } D3DLIGHT7 ; #else typedef struct D3DLIGHT7 { d3dLightType dltType; float diffuse_r; //D3DCOLORVALUE float diffuse_g; //D3DCOLORVALUE float diffuse_b; //D3DCOLORVALUE float diffuse_a; //D3DCOLORVALUE float specular_r; //D3DCOLORVALUE float specular_g; //D3DCOLORVALUE float specular_b; //D3DCOLORVALUE float specular_a; //D3DCOLORVALUE float ambient_r; //D3DCOLORVALUE float ambient_g; //D3DCOLORVALUE float ambient_b; //D3DCOLORVALUE float ambient_a; //D3DCOLORVALUE float position_x; //D3DVECTOR float position_y; float position_z; float direction_x; //D3DVECTOR float direction_y; float direction_z; float range; float falloff; float attenuation0; float attenuation1; float attenuation2; float theta; float phi; d3dLightFlags lFlags; } D3DLIGHT7 ; #endif [helpcontext(401900)] typedef struct D3DMATRIX { float rc11; float rc12; float rc13; float rc14; float rc21; float rc22; float rc23; float rc24; float rc31; float rc32; float rc33; float rc34; float rc41; float rc42; float rc43; float rc44; } D3DMATRIX; #ifndef JAVA_ONLY [helpcontext(402000)] typedef struct D3DRMRAY { D3DVECTOR dir; D3DVECTOR pos; } D3DRMRAY; #else typedef struct D3DRMRAY { float dir_x; float dir_y; float dir_z; float pos_x; float pos_y; float pos_z; } D3DRMRAY; #endif //////////////////////////////////////////////////////////////////// // Direct 3D Retain Mode types #ifndef JAVA_ONLY [helpcontext(402100)] typedef struct D3DRMQUATERNION { float s; D3DVECTOR v; } D3DRMQUATERNION; #else typedef struct D3DRMQUATERNION { float s; float v_x; float v_y; float v_z; } D3DRMQUATERNION; #endif [helpcontext(402200)] typedef struct D3DRMVECTOR4D { float x; float y; float z; float w; } D3DRMVECTOR4D; #ifndef JAVA_ONLY [helpcontext(402300)] typedef struct D3DRMBOX { D3DVECTOR min; D3DVECTOR max; } D3DRMBOX; #else typedef struct D3DRMBOX { float min_x; // replaces min - cant concat structures float min_y; float min_z; float max_x; // replaces max - cant concat structures float max_y; float max_z; } D3DRMBOX; #endif #ifndef JAVA_ONLY [helpcontext(402400)] typedef struct D3DRMPICKDESC { long lFaceIdx; long lGroupIdx; D3DVECTOR vPosition; } D3DRMPICKDESC; #else typedef struct D3DRMPICKDESC { long lFaceIdx; long lGroupIdx; float vPosition_x; // replaces vPosition - cant concat structures float vPosition_y; float vPosition_z; } D3DRMPICKDESC; #endif #ifndef JAVA_ONLY [helpcontext(402500)] typedef struct D3DRMPICKDESC2 { long lFaceIdx; long lGroupIdx; D3DVECTOR vPostion; float tu; float tv; D3DVECTOR vNormal; long color; } D3DRMPICKDESC2; #else typedef struct D3DRMPICKDESC2 { long lFaceIdx; long lGroupIdx; float vPostion_x; float vPostion_y; float vPostion_z; float tu; float tv; float vNormal_x; float vNormal_y; float vNormal_z; long color; } D3DRMPICKDESC2; #endif #ifndef JAVA_ONLY [helpcontext(402600)] typedef struct D3DRMVERTEX { D3DVECTOR position; D3DVECTOR normal; float tu; float tv; long color; } D3DRMVERTEX; #else typedef struct D3DRMVERTEX { float position_x; //x position float position_y; //y float position_z; //z float normal_x; //x normal float normal_y; //y float normal_z; //z float tu; float tv; long color; } D3DRMVERTEX; #endif /////////////////////////////////////////////////////////////// // // Direct Draw Types // /////////////////////////////////////////////////////////////// [helpcontext(402700)] typedef struct DDCOLORKEY { long low; long high; } DDCOLORKEY; [helpcontext(402800)] typedef struct DDSCAPS2 { ddSurfaceCapsFlags lCaps; ddSurfaceCaps2Flags lCaps2; long lCaps3; long lCaps4; } DDSCAPS2; [helpcontext(402900)] typedef struct DDPIXELFORMAT { [hidden]long lSize; //private ddPixelFormatFlags lFlags; long lFourCC; [hidden] long internalVal1; // union { DWORD dwRGBBitCount; // DWORD dwYUVBitCount; // DWORD dwZBufferBitDepth; // DWORD dwAlphaBitDepth; // DWORD dwLuminanceBitCount; // new for DirectX 6.0 // DWORD dwBumpBitCount; // new for DirectX 6.0} [hidden] long internalVal2; // union DWORD dwRBitMask; //DWORD dwYBitMask; //DWORD dwStencilBitDepth; // new for DirectX 6.0 //DWORD dwLuminanceBitMask; // new for DirectX 6.0 //DWORD dwBumpDuBitMask; // new for DirectX 6.0 //} DUMMYUNIONNAMEN(2); [hidden] long internalVal3; //union { DWORD dwGBitMask; // DWORD dwUBitMask; // DWORD dwZBitMask; // new for DirectX 6.0 // DWORD dwBumpDvBitMask; // new for DirectX 6.0 //} DUMMYUNIONNAMEN(3); [hidden] long internalVal4; // union { DWORD dwBBitMask; // DWORD dwVBitMask; // DWORD dwStencilBitMask; // new for DirectX 6.0 // DWORD dwBumpLuminanceBitMask; // new for DirectX 6.0 // } DUMMYUNIONNAMEN(4); [hidden] long internalVal5; //union { DWORD dwRGBAlphaBitMask; // DWORD dwYUVAlphaBitMask; // DWORD dwLuminanceAlphaBitMask; // new for DirectX 6.0 // DWORD dwRGBZBitMask; // DWORD dwYUVZBitMask; //} DUMMYUNIONNAMEN(5); //union for internalVal1 long lRGBBitCount; long lYUVBitCount; long lZBufferBitDepth; long lAlphaBitDepth; long lLuminanceBitCount; long lBumpBitCount; // union for internalVal2 long lRBitMask; long lYBitMask; long lStencilBitDepth; long lLuminanceBitMask; long lBumpDuBitMask; // union for internalVal3 long lGBitMask; long lUBitMask; long lZBitMask; long lBumpDvBitMask; // union for internalVal4 long lBBitMask; long lVBitMask; long lStencilBitMask; long lBumpLuminanceBitMask; // union for internalVal5 long lRGBAlphaBitMask; long lYUVAlphaBitMask; long lLuminanceAlphaBitMask; // new for DirectX 6.0 long lRGBZBitMask; long lYUVZBitMask; } DDPIXELFORMAT; #ifndef JAVA_ONLY [helpcontext(403000)] typedef struct DDSURFACEDESC2 { [hidden] long lSize; ddSurfaceDescFlags lFlags; long lHeight; long lWidth; long lPitch; //union with lLinearSize long lBackBufferCount; long lZBufferBitDepth; //union with lMipMapCount and lRefreshRate long lAlphaBitDepth; [hidden]long lReserved; [hidden]long lpSurface; DDCOLORKEY ddckCKDestOverlay; DDCOLORKEY ddckCKDestBlt; DDCOLORKEY ddckCKSrcOverlay; DDCOLORKEY ddckCKSrcBlt; DDPIXELFORMAT ddpfPixelFormat; DDSCAPS2 ddsCaps; long lTextureStage; long lLinearSize; long lMipMapCount; long lRefreshRate; } DDSURFACEDESC2; #else typedef struct DDSURFACEDESC2 { [hidden] long lSize; ddSurfaceDescFlags lFlags; long lHeight; long lWidth; long lPitch; //union with lLinearSize long lBackBufferCount; long lZBufferBitDepth; //union with lMipMapCount and lRefreshRate long lAlphaBitDepth; long lReserved; [hidden] long lpSurface; long ddckCKDestOverlay_low; long ddckCKDestOverlay_high; long ddckCKDestBlt_low; long ddckCKDestBlt_high; long ddckCKSrcOverlay_low; long ddckCKSrcOverlay_high; long ddckCKSrcBlt_low; long ddckCKSrcBlt_high; [hidden]long ddpfPixelFormat_lSize; //private long ddpfPixelFormat_lFlags; long ddpfPixelFormat_lFourCC; long ddpfPixelFormat_internalVal1; long ddpfPixelFormat_internalVal2; long ddpfPixelFormat_internalVal3; long ddpfPixelFormat_internalVal4; long ddpfPixelFormat_internalVal5; //union for internalVal1 long ddpfPixelFormat_lRGBBitCount; long ddpfPixelFormat_lYUVBitCount; long ddpfPixelFormat_lZBufferBitDepth; long ddpfPixelFormat_lAlphaBitDepth; long ddpfPixelFormat_lLuminanceBitCount; long ddpfPixelFormat_lBumpBitCount; // union for internalVal2 long ddpfPixelFormat_lRBitMask; long ddpfPixelFormat_lYBitMask; long ddpfPixelFormat_lStencilBitDepth; long ddpfPixelFormat_lLuminanceBitMask; long ddpfPixelFormat_lBumpDiBitMask; // union for internalVal3 long ddpfPixelFormat_lGBitMask; long ddpfPixelFormat_lUBitMask; long ddpfPixelFormat_lZBitMask; long ddpfPixelFormat_lBumpDvBitMask; // union for internalVal4 long ddpfPixelFormat_lBBitMask; long ddpfPixelFormat_lVBitMask; long ddpfPixelFormat_lStencilBitMask; long ddpfPixelFormat_lBumpLuminanceBitMask; // union for internalVal5 long ddpfPixelFormat_lRGBAlphaBitMask; long ddpfPixelFormat_lYUVAlphaBitMask; long ddpfPixelFormat_lLuminanceAlphaBitMask; // new for DirectX 6.0 long ddpfPixelFormat_lRGBZBitMask; long ddpfPixelFormat_lYUVZBitMask; ddSurfaceCapsFlags ddsCaps_lCaps; ddSurfaceCaps2Flags ddsCaps_lCaps2; long ddsCaps_lCaps3; long ddsCaps_lCaps4; long lTextureStage; //unions long lLinearSize; long lMipMapCount; long lRefreshRate; } DDSURFACEDESC2; #endif [helpcontext(403100)] typedef struct DDCAPS { [hidden]long lSize; //private ddCaps1Flags lCaps; ddCaps2Flags lCaps2; ddCKeyCapsFlags lCKeyCaps; ddFXCapsFlags lFXCaps; [hidden] long lFXAlphaCaps; ddPCapsFlags lPalCaps; ddStereoCapsFlags lSVCaps; long lAlphaBltConstBitDepths; long lAlphaBltPixelBitDepths; long lAlphaBltSurfaceBitDepths; long lAlphaOverlayConstBitDepths; long lAlphaOverlayPixelBitDepths; long lAlphaOverlaySurfaceBitDepths; long lZBufferBitDepths; long lVidMemTotal; long lVidMemFree; long lMaxVisibleOverlays; long lCurrVisibleOverlays; long lNumFourCCCodes; long lAlignBoundarySrc; long lAlignSizeSrc; long lAlignBoundaryDest; long lAlignSizeDest; long lAlignStrideAlign; #ifndef JAVA_ONLY long lRops[8]; #else long lRops_0; long lRops_1; long lRops_2; long lRops_3; long lRops_4; long lRops_5; long lRops_6; long lRops_7; #endif long lReservedCaps; long lMinOverlayStretch; long lMaxOverlayStretch; long lMinLiveVideoStretch; long lMaxLiveVideoStretch; long lMinHwCodecStretch; long lMaxHwCodecStretch; long lReserved1; long lReserved2; long lReserved3; ddCaps1Flags lSVBCaps; ddCKeyCapsFlags lSVBCKeyCaps; ddFXCapsFlags lSVBFXCaps; // . #ifndef JAVA_ONLY long lSVBRops[8]; #else long lSVBRops_0; long lSVBRops_1; long lSVBRops_2; long lSVBRops_3; long lSVBRops_4; long lSVBRops_5; long lSVBRops_6; long lSVBRops_7; #endif ddCaps1Flags lVSBCaps; ddCKeyCapsFlags lVSBCKeyCaps; ddFXCapsFlags lVSBFXCaps; // . #ifndef JAVA_ONLY long lVSRops[8]; #else long lVSBRops_0; long lVSBRops_1; long lVSBRops_2; long lVSBRops_3; long lVSBRops_4; long lVSBRops_5; long lVSBRops_6; long lVSBRops_7; #endif ddCaps1Flags lSSBCaps; ddCKeyCapsFlags lSSBCKeyCaps; ddFXCapsFlags lSSBFXCaps; // . #ifndef JAVA_ONLY long lSSBRops[8]; #else long lSSBRops_0; long lSSBRops_1; long lSSBRops_2; long lSSBRops_3; long lSSBRops_4; long lSSBRops_5; long lSSBRops_6; long lSSBRops_7; #endif long lMaxVideoPorts; // maximum number of live video ports long lCurrVideoPorts; // current number of live video ports ddCaps2Flags lSVBCaps2; // additional system-to-video blit caps ddCaps1Flags lNLVBCaps; // nonlocal-to-local video memory blit caps ddCaps2Flags lNLVBCaps2; // . ddCKeyCapsFlags lNLVBCKeyCaps; // . ddFXCapsFlags lNLVBFXCaps; // . #ifndef JAVA_ONLY long lNLVBRops[8]; #else long lNLVBRops_0; long lNLVBRops_1; long lNLVBRops_2; long lNLVBRops_3; long lNLVBRops_4; long lNLVBRops_5; long lNLVBRops_6; long lNLVBRops_7; #endif DDSCAPS2 ddsCaps; } DDCAPS; [helpcontext(403200)] typedef struct DDBLTFX { [hidden] long lSize; //private ddBltFXFlags lDDFX; long lROP; long lDDROP; long lRotationAngle; long lZBufferOpCode; long lZBufferLow; long lZBufferHigh; long lZBufferBaseDest; long lZDestConstBitDepth; long lZDestConst; //union with lpDDSZBufferDesc long lZSrcConstBitDepth; long lZSrcConst; //union with lpDDSZBufferSrc long lAlphaEdgeBlendBitDepth; long lAlphaEdgeBlend; long lReserved; //private long lAlphaDestConstBitDepth; long lAlphaDestConst; //union with lpDDSAlphaDest long lAlphaSrcConstBitDepth; long lAlphaSrcConst; //union with lpDDSAlphaSrc long lFill; //union with FillDepth and FillPixel long ddckDestColorKey_low; long ddckDestColorKey_high; long ddckSrcColorKey_low; long ddckSrcColorKey_high; } DDBLTFX; [helpcontext(403300)] typedef struct DDCOLORCONTROL { [hidden] long lSize; ddColorFlags lFlags; long lBrightness; long lContrast; long lHue; long lSaturation; long lSharpness; long lGamma; long lColorEnable; long lReserved1; } DDCOLORCONTROL; [helpcontext(403400)] typedef struct DDGAMMARAMP { short red[256]; short green[256]; short blue[256]; } DDGAMMARAMP; [helpcontext(403500)] typedef struct D3DVERTEXBUFFERDESC { [hidden] long lSize; d3dVBCapsFlags lCaps; d3dFVFFlags lFVF; long lNumVertices; } D3DVERTEXBUFFERDESC; ////////////////////////////////////////////////////////////////////// // Direct Sound types ////////////////////////////////////////////////////////////////////// [helpcontext(403600)] typedef struct DSBCAPS { [hidden] long lSize; dsbCapsFlags lFlags; long lBufferBytes; long lUnlockTransferRate; long lPlayCpuOverhead; } DSBCAPS; [helpcontext(403700)] typedef struct DSCAPS { [hidden] long lSize; dsCapsFlags lFlags; long lMinSecondarySampleRate; long lMaxSecondarySampleRate; long lPrimaryBuffers; long lMaxHwMixingAllBuffers; long lMaxHwMixingStaticBuffers; long lMaxHwMixingStreamingBuffers; long lFreeHwMixingAllBuffers; long lFreeHwMixingStaticBuffers; long lFreeHwMixingStreamingBuffers; long lMaxHw3DAllBuffers; long lMaxHw3DStaticBuffers; long lMaxHw3DStreamingBuffers; long lFreeHw3DAllBuffers; long lFreeHw3DStaticBuffers; long lFreeHw3DStreamingBuffers; long lTotalHwMemBytes; long lFreeHwMemBytes; long lMaxContigFreeHwMemBytes; long lUnlockTransferRateHwBuffers; long lPlayCpuOverheadSwBuffers; long lReserved1; long lReserved2; } DSCAPS; [helpcontext(403800)] typedef struct WAVEFORMATEX { short nFormatTag; /* format type */ short nChannels; /* number of channels (i.e. mono, stereo...) */ long lSamplesPerSec; /* sample rate */ long lAvgBytesPerSec; /* for buffer estimation */ short nBlockAlign; /* block size of data */ short nBitsPerSample; /* number of bits per sample of mono data */ short nSize; /* nbytes of the extra information */ long lExtra; // was byte* seen as an array - extra information (after cbSize) } WAVEFORMATEX; [helpcontext(403900)] typedef struct DSBUFFERDESC //docdoc: requires WaveFormatex { [hidden] long lSize; dsbCapsFlags lFlags; long lBufferBytes; [hidden] long lReserved; [hidden] long lpwfxFormat; // WaveFormatex *lpwfxFormat; } DSBUFFERDESC; [helpcontext(404000)] typedef struct DSCURSORS { long lPlay; // Play cursor long lWrite; // Write Cursor } DSCURSORS; // // 3D Sound // #ifndef JAVA_ONLY [helpcontext(404100)] typedef struct DS3DBUFFER { [hidden] long lSize; D3DVECTOR vPostion; D3DVECTOR vVelocity; long lInsideConeAngle; long lOutsideConeAngle; D3DVECTOR vConeOrientation; long lConeOutsideVolume; float minDistance; float maxDistance; ds3dModeFlags lMode; }DS3DBUFFER; #else [helpcontext(404200)] typedef struct DS3DBUFFER { [hidden] long lSize; float vPostion_x; float vPostion_y; float vPostion_z; float vVelocity_x; float vVelocity_y; float vVelocity_z; long lInsideConeAngle; long lOutsideConeAngle; float vConeOrientation_x; float vConeOrientation_y; float vConeOrientation_z; long lConeOutsideVolume; float minDistance; float maxDistance; ds3dModeFlags lMode; }DS3DBUFFER; #endif #ifndef JAVA_ONLY [helpcontext(404300)] typedef struct DS3DLISTENER { [hidden] long lSize; // will be private in java D3DVECTOR vPosition; D3DVECTOR vVelocity; D3DVECTOR vOrientFront; D3DVECTOR vOrientTop; float distanceFactor; float rolloffFactor; float dopplerFactor; } DS3DLISTENER; #else typedef struct DS3DLISTENER { [hidden] long lSize; // will be private in java float vPostion_x; float vPostion_y; float vPostion_z; float vVelocity_x; float vVelocity_y; float vVelocity_z; float vOrientFront_x; float vOrientFront_y; float vOrientFront_z; float vOrientTop_x; float vOrientTop_y; float vOrientTop_z; float distanceFactor; float rolloffFactor; float dopplerFactor; } DS3DLISTENER; #endif [helpcontext(404400)] typedef struct DSCBCAPS { [hidden] long lSize; dscbCapsFlags lFlags; long lBufferBytes; long lReserved; } DSCBCAPS; [helpcontext(404500)] typedef struct DSCCAPS { [hidden] long lSize; dscCapsFlags lFlags; WaveFormatFlags lFormats; long lChannels; } DSCCAPS; #ifndef JAVA_ONLY [helpcontext(404600)] typedef struct DSCBUFFERDESC { [hidden]long lSize; dscbCapsFlags lFlags; long lBufferBytes; [hidden] long lReserved; [hidden] long pFormat; WAVEFORMATEX fxFormat; } DSCBUFFERDESC; #else typedef struct DSCBUFFERDESC { [hidden]long lSize; dscbCapsFlags lFlags; long lBufferBytes; [hidden]long lReserved; [hidden]long pFormat; short fxFormat_nFormatTag; /* format type */ short fxFormat_nChannels; /* number of channels (i.e. mono, stereo...) */ long fxFormat_lSamplesPerSec; /* sample rate */ long fxFormat_lAvgBytesPerSec; /* for buffer estimation */ short fxFormat_nBlockAlign; /* block size of data */ short fxFormat_nBitsPerSample; /* number of bits per sample of mono data */ short fxFormat_nSize; /* nbytes of the extra information */ long fxFormat_lExtra; // was byte* seen as an array - extra information (after cbSize) } DSCBUFFERDESC; #endif [helpcontext(404700)] typedef struct DSBPOSITIONNOTIFY { long lOffset; long hEventNotify; } DSBPOSITIONNOTIFY; ////////////////////////////////////////////////////////////////////// // Direct Play Types [helpcontext(404800)] typedef struct DPCREDENTIALS{ long lFlags; //must be zero BSTR strUsername; BSTR strPassword; BSTR strDomain; } DPCREDENTIALS; [helpcontext(404900)] typedef struct DPSECURITYDESC { long lFlags; //must be zero BSTR strSSPIProvider; BSTR strCAPIProvider; long lCAPIProviderType; long lEncryptionAlgorithm; } DPSECURITYDESC; #ifdef C_ONLY //internal to our app typedef struct DPLAPPINFO{ BSTR strGuidApplication; BSTR strAppName; } DPLAPPINFO; typedef struct DPSESSIONDESC2{ dpSessionFlags lFlags; BSTR strGuidInstance; BSTR strGuidApplication; long lMaxPlayers; long lCurrentPlayers; BSTR strSessionName; BSTR strPassword; long lUser1; long lUser2; long lUser3; long lUser4; } DPSESSIONDESC2; #endif // DHF begin - _dxj_DirectPlay2, DirectPlayLobby [helpcontext(405000)] typedef struct DPCAPS { [hidden] long lSize; dpCapsFlags lFlags; long lMaxBufferSize; long lMaxQueueSize; long lMaxPlayers; long lHundredBaud; long lLatency; long lMaxLocalPlayers; long lHeaderLength; long lTimeout; } DPCAPS; #ifdef C_ONLY typedef struct DPCHAT { [hidden] long lSize; long lFlags; //mustbe zero [hidden] long lpszMessage; [hidden] long lpwzMessage; BSTR message; } DPCHAT; typedef struct DPPLAYERINFO { long lDPID; dpPlayerTypeFlags lPlayerType; BSTR strShortName; BSTR strLongName; long lFlags; //spead across DPENUMGROUPS and DPENUMPLAYERS } DPPLAYERINFO; typedef struct DPSERVICEPROVIDERINFO { BSTR strGuid; BSTR strName; long lMajorVersion; long lMinorVersion; long lFlags; //?? } DPSERVICEPROVIDERINFO; typedef struct DPCONNECTION { BSTR strGuid; BSTR strShortName; BSTR strLongName; long lFlags; //not used } DPCONNECTION; typedef struct DPSERVICEPROVIDER { BSTR strGuid; BSTR strName; long lMajorVersion; long lMinorVersion; } DPSERVICEPROVIDER; [hidden] //replaced by object typedef struct DIDEVICEINSTANCE { [hidden] long lSize; BSTR strGuidInstance; BSTR strGuidProduct; diDeviceType lDevType; BSTR strInstanceName; BSTR strProductName; BSTR strGuidFFDriver; short nUsagePage; short nUsage; } DIDEVICEINSTANCE; [hidden] //replaced by object typedef struct DIDEVICEOBJECTINSTANCE { [hidden] long lSize; BSTR strGuidType; long lOfs; diDFTFlags lType; diDeviceObjInstanceFlags lFlags; BSTR strName; long lFFMaxForce; long lFFForceResolution; short nCollectionNumber; short nDesignatorIndex; short nUsagePage; short nUsage; long lDimension; short nExponent; short nReserved; } DIDEVICEOBJECTINSTANCE; #endif // // DInput // [helpcontext(405100)] typedef struct DIDEVCAPS { [hidden] long lSize; diDevCapsFlags lFlags; diDeviceType lDevType; long lAxes; long lButtons; long lPOVs; long lFFSamplePeriod; long lFFMinTimeResolution; long lFirmwareRevision; long lHardwareRevision; long lDriverVersion; } DIDEVCAPS; [helpcontext(405200)] typedef struct DIDEVICEOBJECTDATA{ long lOfs; long lData; long lTimeStamp; long lSequence; } DIDEVICEOBJECTDATA; [helpcontext(405300)] typedef struct DIPROPRANGE { long lSize; [hidden]long lHeaderSize; long lObj; long lHow; long lMin; long lMax; } DIPROPRANGE; [helpcontext(405400)] typedef struct DIPROPLONG { long lSize; [hidden]long lHeaderSize; long lObj; long lHow; long lData; } DIPROPLONG; [helpcontext(405500)] typedef struct DIOBJECTDATAFORMAT { BSTR strGuid; long lOfs; diDFTFlags lType; diDeviceObjInstanceFlags lFlags; } DIOBJECTDATAFORMAT; [helpcontext(405600)] typedef struct DIDATAFORMAT { [hidden] long lSize; long lObjSize; diDataFormatFlags lFlags; long dataSize; long numObjs; [hidden] long pData; } DIDATAFORMAT; #ifndef JAVA_ONLY [helpcontext(405700)] typedef struct DIMOUSESTATE { long x; long y; long z; Byte buttons[4]; } DIMOUSESTATE; #else typedef struct DIMOUSESTATE { long x; long y; long z; Byte buttons_0; Byte buttons_1; Byte buttons_2; Byte buttons_3; } DIMOUSESTATE; #endif [helpcontext(405800)] typedef struct DIKEYBOARDSTATE { Byte key[256]; } DIKEYBOARDSTATE; #ifndef JAVA_ONLY [helpcontext(405900)] typedef struct DIJOYSTATE { long x; long y; long z; long rx; long ry; long rz; long slider[2]; long POV[4]; Byte buttons[32]; } DIJOYSTATE; #else typedef struct DIJOYSTATE { long x; long y; long z; long rx; long ry; long rz; long slider_0; long slider_1; long POV_0; long POV_1; long POV_2; long POV_3; Byte buttons_0; Byte buttons_1; Byte buttons_2; Byte buttons_3; Byte buttons_4; Byte buttons_5; Byte buttons_6; Byte buttons_7; Byte buttons_8; Byte buttons_9; Byte buttons_10; Byte buttons_11; Byte buttons_12; Byte buttons_13; Byte buttons_14; Byte buttons_15; Byte buttons_16; Byte buttons_17; Byte buttons_18; Byte buttons_19; Byte buttons_20; Byte buttons_21; Byte buttons_22; Byte buttons_23; Byte buttons_24; Byte buttons_25; Byte buttons_26; Byte buttons_27; Byte buttons_28; Byte buttons_29; Byte buttons_30; Byte buttons_31; } DIJOYSTATE; #endif [helpcontext(406000)] typedef struct DIJOYSTATE2 { long x; long y; long z; long rx; long ry; long rz; long slider[2]; long POV[4]; Byte buttons[128]; long vx; long vy; long vz; long vrx; long vry; long vrz; long vslider[2]; long ax; long ay; long az; long arx; long ary; long arz; long aslider[2]; long fx; long fy; long fz; long frx; long fry; long frz; long fslider[2]; } DIJOYSTATE2; [helpcontext(406100)] typedef struct D3DRMPMESHLOADSTATUS { [hidden] long lSize; long lPMeshSize; long lBaseMeshSize; long lBytesLoaded; long lVerticesLoaded; long lFacesLoaded; d3drmPMeshStatusFlags lFlags; } D3DRMPMESHLOADSTATUS; [helpcontext(406200)] typedef struct D3DRMANIMATIONKEY { [hidden] long lSize; long lKeyType; float dvTime; long lID; float dvX; float dvY; float dvZ; float dvS; } D3DRMANIMATIONKEY; [helpcontext(406300)] typedef struct D3DRMMATERIALOVERRIDE { [hidden] long lSize; d3drmMaterialOverrideFlags lFlags; D3DCOLORVALUE dcDiffuse; D3DCOLORVALUE dcAmbient; D3DCOLORVALUE dcEmissive; D3DCOLORVALUE dcSpecular; float dvPower; [hidden] LPUNKNOWN pTex; } D3DRMMATERIALOVERRIDE; // DMUSIC typedef enum CONST_DMUS_NOTIFICATION_TYPE { DMUS_NOTIFY_ON_CHORD =1, DMUS_NOTIFY_ON_COMMAND =2, DMUS_NOTIFY_ON_MEASUREANDBEAT =3, DMUS_NOTIFY_ON_PERFORMANCE=4, DMUS_NOTIFY_ON_SEGMENT=5, } CONST_DMUS_NOTIFICATION_TYPE; [helpcontext(406400)] typedef struct DMUS_TIMESIGNATURE { long mtTime; Byte beatsPerMeasure; Byte beat; short gridsPerBeat; } DMUS_TIMESIGNATURE; #define MUSIC_TIME long [helpcontext(406500)] typedef struct DMUS_NOTIFICATION_PMSG { [hidden] long lFlags; long ctTime; long mtTime; long lNotificationType; long lNotificationOption; long lField1; long lField2; } DMUS_NOTIFICATION_PMSG; [helpcontext(406600)] typedef struct DMUS_CURVE_PMSG { MUSIC_TIME mtDuration; MUSIC_TIME mtOriginalStart; MUSIC_TIME mtResetDuration; short startValue; short endValue; short resetValue; short measure; short offset; Byte beat; Byte grid; Byte type; Byte curveShape; Byte ccData; Byte flags; } DMUS_CURVE_PMSG; [helpcontext(406700)] typedef struct DMUS_NOTE_PMSG { MUSIC_TIME mtDuration; short musicValue; short measure; short offset; Byte beat; Byte grid; Byte velocity; Byte flags; Byte timeRange; Byte durRange; Byte velRange; Byte playModeFlags; Byte subChordLevel; Byte midiValue; short transpose; //becomes byte } DMUS_NOTE_PMSG; [helpcontext(406800)] typedef struct DMUS_PORTCAPS { [hidden] long dwSize; CONST_DMUS_PC_FLAGS lFlags; [hidden] DXGUID guidPort; CONST_DMUS_PC_CLASS lClass; CONST_DMUS_PORT_TYPE lType; long lMemorySize; long lMaxChannelGroups; long lMaxVoices; long lMaxAudioChannels; long lEffectFlags; [hidden] short wszDescription[128]; } DMUS_PORTCAPS; #ifdef DX61 [helpcontext(406900)] typedef struct D3DHVERTEX { long lFlags; /* Homogeneous clipping flags */ float hx; float hy; float hz; } D3DHVERTEX; #ifndef JAVA_ONLY [helpcontext(407000)] typedef struct D3DLIGHT2 { [hidden] long lSize; d3dLightType dltType; D3DCOLORVALUE color; D3DVECTOR position; D3DVECTOR direction; float range; float falloff; float attenuation0; float attenuation1; float attenuation2; float theta; float phi; d3dLightFlags lFlags; } D3DLIGHT2 ; #else typedef struct D3DLIGHT2 { long lSize; d3dLightType dltType; float color_r; //D3DCOLORVALUE float color_g; //D3DCOLORVALUE float color_b; //D3DCOLORVALUE float color_a; //D3DCOLORVALUE float position_x; //D3DVECTOR float position_y; float position_z; float direction_x; //D3DVECTOR float direction_y; float direction_z; float range; float falloff; float attenuation0; float attenuation1; float attenuation2; float theta; float phi; d3dLightFlags lFlags; } D3DLIGHT2 ; #endif [helpcontext(407100)] typedef struct D3DLIGHTDATA { long lSize; [hidden] long pIn; long lInSize; [hidden] long pOut; long lOutSize; } D3DLIGHTDATA; #ifndef JAVA_ONLY [helpcontext(407200)] typedef struct D3DMATERIAL { [hidden] long lSize; D3DCOLORVALUE diffuse; D3DCOLORVALUE ambient; D3DCOLORVALUE specular; D3DCOLORVALUE emmisive; float power; long hTexture; long lRampSize; //union with hTexture!!! } D3DMATERIAL; #else typedef struct D3DMATERIAL { long lSize; float diffuse_r; //d3dColorValue float diffuse_g; float diffuse_b; float diffuse_a; float ambient_r; //D3DCOLORVALUE float ambient_g; float ambient_b; float ambient_a; float specular_r; //D3DCOLORVALUE float specular_g; float specular_b; float specular_a; float emissive_r; //D3DCOLORVALUE float emissive_g; float emissive_b; float emissive_a; float power; long hTexture; long lRampSize; //union with hTexture } D3DMATERIAL; #endif [helpcontext(407300)] typedef struct D3DSTATS { [hidden] long lSize; long lTrianglesDrawn; long lLinesDrawn; long lPointsDrawn; long lSpansDrawn; long lVerticesProcessed; } D3DSTATS; #ifndef JAVA_ONLY [helpcontext(407400)] typedef struct D3DTRANSFORMDATA { [hidden]long lSize; [hidden]long pIn; [hidden]long lInSize; [hidden]long pOut; [hidden]long lOutSize; [hidden]long pHOut; d3dClipFlags lClip; d3dClipFlags lClipIntersection; d3dClipFlags lClipUnion; D3DRECT rExtent; } D3DTRANSFORMDATA; #else typedef struct D3DTRANSFORMDATA { long lSize; [hidden]long pIn; long lInSize; [hidden] long pOut; long lOutSize; [hidden]long pHOut; d3dClipFlags lClip; d3dClipFlags lClipIntersection; d3dClipFlags lClipUnion; long rExtent_x1; long rExtent_y1; long rExtent_x2; long rExtent_y2; } D3DTRANSFORMDATA; #endif [helpcontext(407500)] [hidden] typedef struct D3DVIEWPORT { [hidden] long lSize; long lX; long lY; long lWidth; long lHeight; float scaleX; float scaleY; float maxX; float maxY; float minZ; float maxZ; } D3DVIEWPORT ; [helpcontext(407600)] typedef struct D3DVIEWPORT2 { [hidden] long lSize; long lX; long lY; long lWidth; long lHeight; float clipX; float clipY; float clipWidth; float clipHeight; float minZ; float maxZ; } D3DVIEWPORT2; #endif [helpcontext(407700)] typedef struct DIENVELOPE { [hidden] long lSize; long lAttackLevel; long lAttackTime; long lFadeLevel; long lFadeTime; } DIENVELOPE; [helpcontext(407800)] typedef struct DIRAMPFORCE { long lRangeStart; //ramp force long lRangeEnd; //ramp force } DIRAMPFORCE; [helpcontext(407900)] typedef struct DIPERIODICFORCE { long lMagnitude; //periodic long lOffset; //periodic long lPhase; //periodic long lPeriod; //periodic } DIPERIODICFORCE; [helpcontext(408000)] typedef struct DICONDITION { long lOffset; //condition long lPositiveCoefficient; //condition long lNegativeCoefficient; //condition long lPositiveSaturation; //condition long lNegativeSaturation; //condition long lDeadBand; //condition //VARIANT_BOOL bDirectional; //condition } DICONDITION; [helpcontext(408100)] typedef struct DICONSTANTFORCE { long lMagnitude; } DICONSTANTFORCE; [hidden] typedef struct DIAXISOFFSETS{ long x; long y; } DIAXISOFFSETS; [helpcontext(408200)] typedef struct DIEFFECT { [hidden] long dwSize; long lFlags; //dwTriggerButton and rgdwAxes //use DIEFF_OBJECTIDS // DIEFF_OBJECTOFFSETS //rglDirection //depends DIEFF_CARTESIAN // DIEFF_POLAR // DIEFF_SPHERICAL long lDuration; //durration of the effect long lSamplePeriod; //period long lGain; //magnitude??? long lTriggerButton; //DIEFF_OBJECTIDS long lTriggerRepeatInterval; [hidden] long cAxes; //4 [hidden] long lprgdwAxes; //DIEFF_OBJECTIDS // [hidden] long lprglDirection; [hidden] long lpEnvelope; [hidden] long cbTypeSpecificParams; [hidden] long lpvTypeSpecificParams; long lStartDelay; long x; // x long y; // y DIRAMPFORCE rampForce; DIPERIODICFORCE periodicForce; DICONSTANTFORCE constantForce; DICONDITION conditionX; DICONDITION conditionY; diConditionFlags conditionFlags; BOOL bUseEnvelope; DIENVELOPE envelope; [hidden] DIAXISOFFSETS axisOffsets; } DIEFFECT; [helpcontext(408300)] typedef struct D3DDEVINFO_TEXTUREMANAGER { //cant be VARIANT_BOOL because that would only be 16 bit long bThrashing; /* indicates if thrashing */ long lNumEvicts; /* number of textures evicted */ long lNumVidCreates; /* number of textures created in video memory */ long lNumTexturesUsed; /* number of textures used */ long lNumUsedTexInVid; /* number of used textures present in video memory */ long lWorkingSet; /* number of textures in video memory */ long lWorkingSetBytes; /* number of bytes in video memory */ long lTotalManaged; /* total number of managed textures */ long lTotalBytes; /* total number of bytes of managed textures */ long lLastPri; /* priority of last texture evicted */ } D3DDEVINFO_TEXTUREMANAGER; //need to add to master help [helpcontext(408400)] typedef struct DDOVERLAYFX{ [hidden] long lSize; long lAlphaEdgeBlendBitDepth; long lAlphaEdgeBlend; [hidden] long lReserved; long lAlphaDestConstBitDepth; long lAlphaDestConst; //union LPDIRECTDRAWSURFACE lpDDSAlphaDest; long lAlphaSrcConstBitDepth; long lAlphaSrcConst; //union LPDIRECTDRAWSURFACE lpDDSAlphaSrc; DDCOLORKEY dckDestColorkey; DDCOLORKEY dckSrcColorkey; ddOverFxFlags lDDFX; long lFlags; } DDOVERLAYFX; [helpcontext(408500)] typedef struct D3DDEVINFO_TEXTURING { long lNumLoads; /* counts Load() API calls */ long lApproxBytesLoaded; /* Approximate number bytes loaded via Load() */ long lNumPreLoads; /* counts PreLoad() API calls */ long lNumSet; /* counts SetTexture() API calls */ long lNumCreates; /* counts texture creates */ long lNumDestroys; /* counts texture destroys */ long lNumSetPriorities; /* counts SetPriority() API calls */ long lNumSetLODs; /* counts SetLOD() API calls */ long lNumLocks; /* counts number of texture locks */ long lNumGetDCs; /* counts number of GetDCs to textures */ } D3DDEVINFO_TEXTURING;