Direct X antology

Discuss any beta and abandonware applications.
Post Reply
ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Direct X antology

Post by ProMiNick »

set of interfaces from Dx1 to now:
DIRECTX1.INC:

Code: Select all

define _DIRECTX1_H

;==================================================================
; DirectDraw
;==================================================================
interface IDirectDraw extends IUnknown
  GUID                          6C14DB80-A733-11CE-A521-0020AF0BE560
  Compact                       stdmethod(THIS)
  CreateClipper                 stdmethod(THIS, DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter)
  CreatePalette                 stdmethod(THIS, DirectDrawPaletteCapsFlags dwFlags, LPPALETTEENTRY lpDDColorArray, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter)
  CreateSurface                 stdmethod(THIS, LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE *lplpDDSurface, IUnknown *pUnkOuter)
  DuplicateSurface              stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDSurface, LPDIRECTDRAWSURFACE *lplpDupDDSurface)
  EnumDisplayModes              stdmethod(THIS, DirectDrawEnumDisplayModesFlags dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback)
  EnumSurfaces                  stdmethod(THIS, DirectDrawEnumSurfacesFlags dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback)
  FlipToGDISurface              stdmethod(THIS)
  GetCaps                       stdmethod(THIS, LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps)
  GetDisplayMode                stdmethod(THIS, LPDDSURFACEDESC lpDDSurfaceDesc)
  GetFourCCCodes                stdmethod(THIS, LPDWORD lpNumCodes, LPDWORD lpCodes)
  GetGDISurface                 stdmethod(THIS, LPDIRECTDRAWSURFACE *lplpGDIDDSSurface)
  GetMonitorFrequency           stdmethod(THIS, LPDWORD lpdwFrequency)
  GetScanLine                   stdmethod(THIS, LPDWORD lpdwScanLine)
  GetVerticalBlankStatus        stdmethod(THIS, LPBOOL lpbIsInVB)
  Initialize                    stdmethod(THIS, GUID * lpGUID)
  RestoreDisplayMode            stdmethod(THIS)
  SetCooperativeLevel           stdmethod(THIS, HWND hWnd, DirectDrawSetCooperativeLevelFlags dwFlags)
  SetDisplayMode                stdmethod(THIS, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP)
  WaitForVerticalBlank          stdmethod(THIS, DirectDrawWaitForVerticalBlankFlags dwFlags, HANDLE hEvent)
endi

interface IDirectDrawSurface extends IUnknown
  GUID                          6C14DB81-A733-11CE-A521-0020AF0BE560
  AddAttachedSurface            stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDSAttachedSurface)
  AddOverlayDirtyRect           stdmethod(THIS, LPRECT lpRect)
  Blt                           stdmethod(THIS, LPRECT lpDestRect, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DirectDrawBltFlags dwFlags, LPDDBLTFX lpDDBltFx)
  BltBatch                      stdmethod(THIS, LPDDBLTBATCH lpDDBltBatch, DWORD dwCount, DWORD dwFlags)
  BltFast                       stdmethod(THIS, DWORD dwX, DWORD dwY, LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect, DWORD dwTrans)
  DeleteAttachedSurface         stdmethod(THIS, DWORD dwFlags, LPDIRECTDRAWSURFACE lpDDSurface)
  EnumAttachedSurfaces          stdmethod(THIS, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback)
  EnumOverlayZOrders            stdmethod(THIS, DirectDrawEnumOverlayZOrderFlags dwFlags, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpfnCallback)
  Flip                          stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDSurfaceTargetOverride, DirectDrawFlipFlags dwFlags)
  GetAttachedSurface            stdmethod(THIS, LPDDSCAPS lpDDSCaps, [out] LPDIRECTDRAWSURFACE *lplpDDAttachedSurface)
  GetBltStatus                  stdmethod(THIS, DirectDrawGetBltStatusFlags dwFlags)
  GetCaps                       stdmethod(THIS, LPDDSCAPS lpDDSCaps)
  GetClipper                    stdmethod(THIS, LPDIRECTDRAWCLIPPER *lplpDDClipper)
  GetColorKey                   stdmethod(THIS, DirectDrawSurfaceSetGetColorKeyFlags dwFlags, LPDDCOLORKEY lpDDColorKey)
  GetDC                         stdmethod(THIS, HDC *phDC)
  GetFlipStatus                 stdmethod(THIS, DWORD dwFlags)
  GetOverlayPosition            stdmethod(THIS, LPLONG lplX, LPLONG lplY)
  GetPalette                    stdmethod(THIS, LPDIRECTDRAWPALETTE * lplpDDPalette)
  GetPixelFormat                stdmethod(THIS, LPDDPIXELFORMAT lpDDPixelFormat)
  GetSurfaceDesc                stdmethod(THIS, LPDDSURFACEDESC lpDDSurfaceDesc)
  Initialize                    stdmethod(THIS, LPDIRECTDRAW lpDD, LPDDSURFACEDESC lpDDSurfaceDesc)
  IsLost                        stdmethod(THIS)
  Lock                          stdmethod(THIS, LPRECT lpDestRect,LPDDSURFACEDESC lpDDSurfaceDesc, DirectDrawSurfaceLockFlags dwFlags, HANDLE hEvent)
  ReleaseDC                     stdmethod(THIS, HDC hDC)
  \Restore                      stdmethod(THIS)
  SetClipper                    stdmethod(THIS, LPDIRECTDRAWCLIPPER lpDDClipper)
  SetColorKey                   stdmethod(THIS, DirectDrawSurfaceSetGetColorKeyFlags dwFlags, LPDDCOLORKEY lpDDColorKey)
  SetOverlayPosition            stdmethod(THIS, LONG lX, LONG lY)
  SetPalette                    stdmethod(THIS, LPDIRECTDRAWPALETTE lpDDPalette)
  Unlock                        stdmethod(THIS, LPVOID lp)
  UpdateOverlay                 stdmethod(THIS, LPRECT lpSrcRect, LPDIRECTDRAWSURFACE lpDDDestSurface, LPRECT lpDestRect, DirectDrawSurfaceOverlayFlags dwFlags, LPDDOVERLAYFX lpDDOverlayFx)
  UpdateOverlayDisplay          stdmethod(THIS, DWORD dwFlags)
  UpdateOverlayZOrder           stdmethod(THIS, DirectDrawUpdateOverlayZOrderFlags dwFlags, LPDIRECTDRAWSURFACE lpDDSReference)
endi

interface IDirectDrawPalette extends IUnknown
  GUID                          6C14DB84-A733-11CE-A521-0020AF0BE560
  GetCaps                       stdmethod(THIS, DirectDrawPaletteCapsFlags *lpdwCaps)
  GetEntries                    stdmethod(THIS, DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries)
  Initialize                    stdmethod(THIS, LPDIRECTDRAW lpDD, DWORD dwFlags, LPPALETTEENTRY lpDDColorTable)
  SetEntries                    stdmethod(THIS, DWORD dwFlags, DWORD dwStartingEntry, DWORD dwCount, LPPALETTEENTRY lpEntries)
endi

interface IDirectDrawClipper extends IUnknown
  GUID                          6C14DB85-A733-11CE-A521-0020AF0BE560
  GetClipList                   stdmethod(THIS, LPRECT lpRect, LPRGNDATA lpClipList, LPDWORD lpdwSize)
  GetHWnd                       stdmethod(THIS, HWND * hWnd)
  Initialize                    stdmethod(THIS, LPDIRECTDRAW lpDD, DWORD dwFlags)
  IsClipListChanged             stdmethod(THIS, BOOL * lpbChanged)
  SetClipList                   stdmethod(THIS, LPRGNDATA lpClipList, DWORD dwFlags)
  SetHWnd                       stdmethod(THIS, DWORD dwFlags, HWND hWnd)
endi

;==================================================================
; DirectPlay
;==================================================================
interface IDirectPlay extends IUnknown
  GUID                          5454E9A0-DB65-11CE-921C-00AA006C4972
  AddPlayerToGroup              stdmethod(THIS, DPID pidGroup, DPID pidPlayer)
  Close                         stdmethod(THIS)
  CreatePlayer                  stdmethod(THIS, LPDPID lppidID, LPSTR lpPlayerFriendlyName, LPSTR lpPlayerFormalName, LPHANDLE lpEvent)
  CreateGroup                   stdmethod(THIS, LPDPID lppidID, LPSTR lpGroupFriendlyName, LPSTR lpGroupFormalName)
  DeletePlayerFromGroup         stdmethod(THIS, DPID pidGroup, DPID pidPlayer)
  DestroyPlayer                 stdmethod(THIS, DPID pidID)
  DestroyGroup                  stdmethod(THIS, DPID pidID)
  EnableNewPlayers              stdmethod(THIS, BOOL bEnable)
  EnumGroupPlayers              stdmethod(THIS, DPID pidGroupPID, LPDPENUMPLAYERSCALLBACK lpEnumPlayersCallback, LPVOID lpContext, DWORD dwFlags)
  EnumGroups                    stdmethod(THIS, DWORD dwSessionID, LPDPENUMPLAYERSCALLBACK lpEnumPlayersCallback, LPVOID lpContext, DWORD dwFlags)
  EnumPlayers                   stdmethod(THIS, DWORD dwSessionID, LPDPENUMPLAYERSCALLBACK lpEnumPlayersCallback, LPVOID lpContext, DWORD dwFlags)
  EnumSessions                  stdmethod(THIS, LPDPSESSIONDESC lpSDesc, DWORD dwTimeout, LPDPENUMSESSIONSCALLBACK lpEnumSessionsCallback, LPVOID lpContext, DWORD dwFlags)
  GetCaps                       stdmethod(THIS, LPDPCAPS lpDPCaps)
  GetMessageCount               stdmethod(THIS, DPID pidID, LPDWORD lpdwCount)
  GetPlayerCaps                 stdmethod(THIS, DPID pidID, LPDPCAPS lpDPPlayerCaps)
  GetPlayerName                 stdmethod(THIS, DPID pidID, LPSTR lpPlayerFriendlyName, LPDWORD lpdwFriendlyNameLength, LPSTR lpPlayerFormalName, LPDWORD lpdwFormalNameLength)
  Open                          stdmethod(THIS, LPDPSESSIONDESC lpSDesc)
  Receive                       stdmethod(THIS, LPDPID lppidFrom, LPDPID lppidTo, DWORD dwFlags, LPVOID lpvBuffer, LPDWORD lpdwSize)
  SaveSession                   stdmethod(THIS)
  Send                          stdmethod(THIS, DPID pidFrom, DPID pidTo, DWORD dwFlags, LPVOID lpvBuffer, DWORD dwBuffSize)
  SetPlayerName                 stdmethod(THIS, DPID pidID, LPSTR lpPlayerFriendlyName, LPSTR lpPlayerFormalName)
endi

;==================================================================
; DirectSound
;==================================================================
interface IDirectSound extends IUnknown
  GUID                          279AFA83-4981-11CE-A521-0020AF0BE560
  CreateSoundBuffer             stdmethod(THIS, LPDSBUFFERDESC lpDSBufferDesc, LPLPDIRECTSOUNDBUFFER * lplpDirectSoundBuffer, IUnknown FAR * pUnkOuter)
  GetCaps                       stdmethod(THIS, LPDSCAPS lpDSCaps)
  DuplicateSoundBuffer          stdmethod(THIS, LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate)
  SetCooperativeLevel           stdmethod(THIS, HWND hwnd, DWORD dwLevel)
  Compact                       stdmethod(THIS)
  GetSpeakerConfig              stdmethod(THIS, LPDWORD lpdwSpeakerConfig)
  SetSpeakerConfig              stdmethod(THIS, DWORD dwSpeakerConfig)
  Initialize                    stdmethod(THIS, GUID FAR * lpGuid)
endi

interface IDirectSoundBuffer extends IUnknown
  GUID                          279AFA85-4981-11CE-A521-0020AF0BE560
  GetCaps                       stdmethod(THIS, LPDSBCAPS lpDSBufferCaps)
  GetCurrentPosition            stdmethod(THIS, LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor)
  GetFormat                     stdmethod(THIS, LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten)
  GetVolume                     stdmethod(THIS, LPLONG lplVolume)
  GetPan                        stdmethod(THIS, LPLONG lplPan)
  GetFrequency                  stdmethod(THIS, LPDWORD lpdwFrequency)
  GetStatus                     stdmethod(THIS, LPDWORD lpdwStatus)
  Initialize                    stdmethod(THIS, LPDIRECTSOUND lpDirectSound, LPDSBUFFERDESC lpDSBufferDesc)
 \Lock                          stdmethod(THIS, DWORD dwWriteCursor, DWORD dwWriteBytes, LPVOID lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags)
  Play                          stdmethod(THIS, DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags)
  SetCurrentPosition            stdmethod(THIS, DWORD dwNewPosition)
  SetFormat                     stdmethod(THIS, LPWAVEFORMATEX lpfxFormat)
  SetVolume                     stdmethod(THIS, LONG lVolume)
  SetPan                        stdmethod(THIS, LONG lPan)
  SetFrequency                  stdmethod(THIS, DWORD dwFrequency)
  Stop                          stdmethod(THIS)
  Unlock                        stdmethod(THIS, LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2
 \Restore                       stdmethod(THIS)
endi
DIRECTX2.INC:

Code: Select all

define _DIRECTX2_H
include 'directx1.inc'

;==================================================================
; DirectDraw
;==================================================================
interface IDirectDraw2 extends IDirectDraw
  GUID                          B3A6F3E0-2B43-11CF-A2DE-00AA00B93356
  GetAvailableVidMem            stdmethod(THIS, LPDDSCAPS lpDDSCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree)
endi

interface IDirectDrawSurface2 extends IDirectDrawSurface
  GUID                          57805885-6EEC-11CF-9441-A82303C10E27
  GetDDInterface                stdmethod(THIS, IUnknown* lplpDD)
  PageLock                      stdmethod(THIS, DWORD dwFlags)
  PageUnlock                    stdmethod(THIS, DWORD dwFlags)
endi

;==================================================================
; Direct3D immediate mode
;==================================================================
interface IDirect3D extends IUnknown
  GUID                          3BBA0080-2421-11CF-A31A-00AA00B93356
  Initialize                    stdmethod(THIS, REFIID refiid)
  EnumDevices                   stdmethod(THIS, LPD3DENUMDEVICESCALLBACK Callback, LPVOID Context)
  CreateLight                   stdmethod(THIS, LPDIRECT3DLIGHT *Light, IUnknown *pUnkOuter)
  CreateMaterial                stdmethod(THIS, LPDIRECT3DMATERIAL *Direct3DLight, IUnknown *pUnkOuter)
  CreateViewport                stdmethod(THIS, LPDIRECT3DVIEWPORT *Viewport, IUnknown *pUnkOuter)
  FindDevice                    stdmethod(THIS, LPD3DFINDDEVICESEARCH D3DDFS, LPD3DFINDDEVICERESULT D3DFDR)
endi

interface IDirect3DDevice extends IUnknown
  GUID                          64108800-957D-11D0-89AB-00A0C9054129
  Initialize                    stdmethod(THIS, LPDIRECT3D lpd3d, LPGUID lpGUID, LPD3DDEVICEDESC lpd3ddvdesc)
  GetCaps                       stdmethod(THIS, LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc)
  SwapTextureHandles            stdmethod(THIS, LPDIRECT3DTEXTURE lpD3DTex1, LPDIRECT3DTEXTURE lpD3DTex2)
  CreateExecuteBuffer           stdmethod(THIS, LPDIRECT3DEXECUTEBUFFERDESC lpDesc, LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer, IUnknown* pUnkOuter)
  GetStats                      stdmethod(THIS, LPD3DSTATS lpD3DStats)
  Execute                       stdmethod(THIS, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags)
  AddViewport                   stdmethod(THIS, LPDIRECT3DVIEWPORT lpDirect3DViewport)
  DeleteViewport                stdmethod(THIS, LPDIRECT3DVIEWPORT lpDirect3DViewport)
  NextViewport                  stdmethod(THIS, LPDIRECT3DVIEWPORT lpDirect3DViewport, LPDIRECT3DVIEWPORT* lplpDirect3DViewport, DWORD dwFlags)
  Pick                          stdmethod(THIS, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags, LPD3DRECT lpRect)
  GetPickRecords                stdmethod(THIS, LPDWORD lpCount, LPD3DPICKRECORD lpD3DPickRec)
  EnumTextureFormats            stdmethod(THIS, LPD3DENUMTEXTUREFORMATSCALLBACK lpd3dEnumTextureProc, LPVOID lpArg)
  CreateMatrix                  stdmethod(THIS, LPD3DMATRIXHANDLE lpD3DMatHandle)
  SetMatrix                     stdmethod(THIS, D3DMATRIXHANDLE d3dMatHandle, LPD3DMATRIX lpD3DMatrix)
  GetMatrix                     stdmethod(THIS, D3DMATRIXHANDLE lpD3DMatHandle, LPD3DMATRIX lpD3DMatrix)
  DeleteMatrix                  stdmethod(THIS, LPD3DMATRIXHANDLE D3DMatHandle)
  BeginScene                    stdmethod(THIS)
  EndScene                      stdmethod(THIS)
  GetDirect3D                   stdmethod(THIS, LPDIRECT3D* lpD3D)
endi

interface IDirect3DExecuteBuffer extends IUnknown
  GUID                          4417C145-33AD-11CF-816F-0000C020156E
  Initialize                    stdmethod(THIS, LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DEXECUTEBUFFERDESC lpDesc)
 \Lock                          stdmethod(THIS, LPD3DEXECUTEBUFFERDESC lpDesc)
  Unlock                        stdmethod(THIS)
  SetExecuteData                stdmethod(THIS, LPD3DEXECUTEDATA lpData)
  GetExecuteData                stdmethod(THIS, LPD3DEXECUTEDATA lpData)
  Validate                      stdmethod(THIS, LPDWORD lpdwOffset, LPD3DVALIDATECALLBACK lpFunc, LPVOID lpUserArg, DWORD dwReserved)
  Optimize                      stdmethod(THIS)
endi

interface IDirect3DLight extends IUnknown
  GUID                          4417C142-33AD-11CF-816F-0000C020156E
  Initialize                    stdmethod(THIS, LPDIRECT3D lpDirect3D)
  SetLight                      stdmethod(THIS, LPD3DLIGHT lpLight)
  GetLight                      stdmethod(THIS, LPD3DLIGHT lpLight)
endi

interface IDirect3DMaterial extends IUnknown
  GUID                          4417C144-33AD-11CF-816F-0000C020156E
  Initialize                    stdmethod(THIS, LPDIRECT3D lpDirect3D)
  SetMaterial                   stdmethod(THIS, LPD3DMATERIAL lpMat)
  GetMaterial                   stdmethod(THIS, LPD3DMATERIAL lpMat)
  GetHandle                     stdmethod(THIS, LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DMATERIALHANDLE lpHandle)
  Reserve                       stdmethod(THIS)
  Unreserve                     stdmethod(THIS)
endi

interface IDirect3DTexture extends IUnknown
  GUID                          2CDCD9E0-25A0-11CF-A31A-00AA00B93356
  Initialize                    stdmethod(THIS, LPDIRECT3D lpDirect3D, LPDIRECTDRAWSURFACE lpDDSurface)
  GetHandle                     stdmethod(THIS, LPDIRECT3DDEVICE lpDirect3DDevice, LPD3DTEXTUREHANDLE lpHandle)
  PaletteChanged                stdmethod(THIS, DWORD dwStart, DWORD dwCount)
  Load                          stdmethod(THIS, LPDIRECT3DTEXTURE lpD3DTexture)
  Unload                        stdmethod(THIS)
endi

interface IDirect3DViewport extends IUnknown
  GUID                          4417C146-33AD-11CF-816F-0000C020156E
  Initialize                    stdmethod(THIS, LPDIRECT3D lpDirect3D)
  GetViewport                   stdmethod(THIS, LPD3DVIEWPORT lpData)
  SetViewport                   stdmethod(THIS, LPD3DVIEWPORT lpData)
  TransformVertices             stdmethod(THIS, DWORD dwVertexCount, LPD3DTRANSFORMDATA lpData, DWORD dwFlags, LPDWORD lpOffscreen)
  LightElements                 stdmethod(THIS, DWORD dwElementCount, LPD3DLIGHTDATA lpData)
  SetBackground                 stdmethod(THIS, D3DMATERIALHANDLE hMat)
  GetBackground                 stdmethod(THIS, LPD3DMATERIALHANDLE lphMat, LPBOOL lpValid)
  SetBackgroundDepth            stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDSurface)
  GetBackgroundDepth            stdmethod(THIS, LPDIRECTDRAWSURFACE* lplpDDSurface, LPBOOL lpValid)
  Clear                         stdmethod(THIS, DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags)
  AddLight                      stdmethod(THIS, LPDIRECT3DLIGHT lpDirect3DLight)
  DeleteLight                   stdmethod(THIS, LPDIRECT3DLIGHT lpDirect3DLight)
  NextLight                     stdmethod(THIS, LPDIRECT3DLIGHT lpDirect3DLight, LPDIRECT3DLIGHT* lplpDirect3DLight, DWORD dwFlags)
endi

;==================================================================
; Direct3D retained mode
;==================================================================
CLSID_DirectDraw                equ D7B70EE0-4340-11CF-B063-0020AFC2CD35
CLSID_DirectDrawClipper         equ 593817A0-7DB3-11CF-A2DE-00AA00b93356
CLSID_DirectSound               equ 47D4D946-62E8-11CF-93BC-444553540000
CLSID_CDirect3DRMDevice         equ 4FA3568E-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMViewport       equ 4FA3568F-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMFrame          equ 4FA35690-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMMesh           equ 4FA35691-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMMeshBuilder    equ 4FA35692-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMFace           equ 4FA35693-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMLight          equ 4FA35694-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMTexture        equ 4FA35695-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMWrap           equ 4FA35696-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMMaterial       equ 4FA35697-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMAnimation      equ 4FA35698-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMAnimationSet   equ 4FA35699-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMUserVisual     equ 4FA3569A-623F-11CF-AC4A-0000C03825A1
CLSID_CDirect3DRMShadow         equ 4FA3569B-623F-11CF-AC4A-0000C03825A1

interface IDirect3DRM extends IUnknown
  GUID                          2BC49361-8327-11CF-AC4A-0000C03825A1
  CreateObject                  stdmethod(THIS, REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv)
  CreateFrame                   stdmethod(THIS, LPDIRECT3DRMFRAME lpD3DRMFrame, LPDIRECT3DRMFRAME* lplpD3DRMFrame)
  CreateMesh                    stdmethod(THIS, LPDIRECT3DRMMESH* lplpD3DRMMesh)
  CreateMeshBuilder             stdmethod(THIS, LPDIRECT3DRMMESHBUILDER* lplpD3DRMMeshBuilder)
  CreateFace                    stdmethod(THIS, LPDIRECT3DRMFACE * lplpd3drmFace)
  CreateAnimation               stdmethod(THIS, LPDIRECT3DRMANIMATION * lplpD3DRMAnimation)
  CreateAnimationSet            stdmethod(THIS, LPDIRECT3DRMANIMATIONSET * lplpD3DRMAnimationSet)
  CreateTexture                 stdmethod(THIS, LPD3DRMIMAGE lpImage, LPDIRECT3DRMTEXTURE* lplpD3DRMTexture)
  CreateLight                   stdmethod(THIS, D3DRMLIGHTTYPE d3drmltLightType, D3DCOLOR cColor, LPDIRECT3DRMLIGHT* lplpD3DRMLight)
  CreateLightRGB                stdmethod(THIS, D3DRMLIGHTTYPE ltLightType, D3DVALUE vRed, D3DVALUE vGreen, D3DVALUE vBlue, LPDIRECT3DRMLIGHT* lplpD3DRMLight)
  CreateMaterial                stdmethod(THIS, D3DVALUE vPower, LPDIRECT3DRMMATERIAL * lplpD3DRMMaterial)
  CreateDevice                  stdmethod(THIS, DWORD dwWidth, DWORD dwHeight, LPDIRECT3DRMDEVICE* lplpD3DRMDevice)
  CreateDeviceFromSurface       stdmethod(THIS, LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE * lplpD3DRMDevice)
  CreateDeviceFromD3D           stdmethod(THIS, LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev, LPDIRECT3DRMDEVICE * lplpD3DRMDevice)
  CreateDeviceFromClipper       stdmethod(THIS, LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height, LPDIRECT3DRMDEVICE * lplpD3DRMDevice)
  CreateTextureFromSurface      stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE * lplpD3DRMTexture)
  CreateShadow                  stdmethod(THIS, LPDIRECT3DRMVISUAL lpVisual, LPDIRECT3DRMLIGHT lpLight, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL * lplpShadow)
  CreateViewport                stdmethod(THIS, LPDIRECT3DRMDEVICE lpDev, LPDIRECT3DRMFRAME lpCamera, DWORD dwXPos, DWORD dwYPos, DWORD dwWidth, DWORD dwHeight, LPDIRECT3DRMVIEWPORT* lplpD3DRMViewport)
  CreateWrap                    stdmethod(THIS, D3DRMWRAPTYPE type, LPDIRECT3DRMFRAME lpRef, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP* lplpD3DRMWrap)
  CreateUserVisual              stdmethod(THIS, D3DRMUSERVISUALCALLBACK fn, LPVOID  lpArg, LPDIRECT3DRMUSERVISUAL * lplpD3DRMUV)
  LoadTexture                   stdmethod(THIS, const char * lpFileName, LPDIRECT3DRMTEXTURE* lplpD3DRMTexture)
  LoadTextureFromResource       stdmethod(THIS, HRSRC rs, LPDIRECT3DRMTEXTURE * lplpD3DRMTexture)
  SetSearchPath                 stdmethod(THIS, LPCSTR lpPath)
  AddSearchPath                 stdmethod(THIS, LPCSTR lpPath)
  GetSearchPath                 stdmethod(THIS, DWORD * lpdwSize, LPSTR lpszPath)
  SetDefaultTextureColors       stdmethod(THIS, DWORD dwColors)
  SetDefaultTextureShades       stdmethod(THIS, DWORD dwShades)
  GetDevices                    stdmethod(THIS, LPDIRECT3DRMDEVICEARRAY* lplpDevArray)
  GetNamedObject                stdmethod(THIS, const char * lpName, LPDIRECT3DRMOBJECT* lplpD3DRMObject)
  EnumerateObjects              stdmethod(THIS, D3DRMOBJECTCALLBACK func, LPVOID lpArg)
  Load                          stdmethod(THIS, LPVOID lpvObjSource, LPVOID lpvObjID, LPIID * lplpGUIDs, DWORD dwcGUIDs, D3DRMLOADOPTIONS d3drmLOFlags, D3DRMLOADCALLBACK d3drmLoadProc, LPVOID lpArgLP, D3DRMLOADTEXTURECALLBACK d3drmLoadTextureProc, LPVOID lpArgLTP, LPDIRECT3DRMFRAME lpParentFrame)
  Tick                          stdmethod(THIS, D3DVALUE d3dvalTick)
endi

interface IDirect3DRMObject extends IUnknown
  GUID                          EB16CB00-D271-11CE-AC48-0000C03825A1
  Clone                         stdmethod(THIS, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
  AddDestroyCallback            stdmethod(THIS, D3DRMOBJECTCALLBACK lpCallback, LPVOID lpArg)
  DeleteDestroyCallback         stdmethod(THIS, D3DRMOBJECTCALLBACK d3drmObjProc, LPVOID lpArg)
  SetAppData                    stdmethod(THIS, DWORD ulData)
  GetAppData                    stdmethod(THIS)
  SetName                       stdmethod(THIS, const char * lpName)
  GetName                       stdmethod(THIS, LPDWORD lpdwSize, LPSTR lpName)
  GetClassName                  stdmethod(THIS, LPDWORD lpdwSize, LPSTR lpName)
endi

interface IDirect3DRMDevice extends IDirect3DRMObject
  GUID                          E9E19280-6E05-11CF-AC4A-0000C03825A1
  Init                          stdmethod(THIS, ULONG width, ULONG height)
  InitFromD3D                   stdmethod(THIS, LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DIMDev)
  InitFromClipper               stdmethod(THIS, LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height)
  Update                        stdmethod(THIS)
  AddUpdateCallback             stdmethod(THIS, D3DRMUPDATECALLBACK d3drmUpdateProc, LPVOID arg)
  DeleteUpdateCallback          stdmethod(THIS, D3DRMUPDATECALLBACK d3drmUpdateProc, LPVOID arg)
  SetBufferCount                stdmethod(THIS, DWORD dwCount)
  GetBufferCount                stdmethod(THIS)
  SetDither                     stdmethod(THIS, BOOL bDither)
  SetShades                     stdmethod(THIS, DWORD ulShades)
  SetQuality                    stdmethod(THIS, D3DRMRENDERQUALITY rqQuality)
  SetTextureQuality             stdmethod(THIS, D3DRMTEXTUREQUALITY tqTextureQuality)
  GetViewports                  stdmethod(THIS, LPDIRECT3DRMVIEWPORTARRAY* lplpViewports)
  GetDither                     stdmethod(THIS)
  GetShades                     stdmethod(THIS)
  GetHeight                     stdmethod(THIS)
  GetWidth                      stdmethod(THIS)
  GetTrianglesDrawn             stdmethod(THIS)
  GetWireframeOptions           stdmethod(THIS)
  GetQuality                    stdmethod(THIS)
  GetColorModel                 stdmethod(THIS)
  GetTextureQuality             stdmethod(THIS)
  GetDirect3DDevice             stdmethod(THIS, LPDIRECT3DDEVICE * lplpD3DDevice)
endi

interface IDirect3DRMViewport extends IDirect3DRMObject
  GUID                          EB16CB02-D271-11CE-AC48-0000C03825A1
  Init                          stdmethod(THIS, LPDIRECT3DRMDEVICE lpD3DRMDevice, LPDIRECT3DRMFRAME lpD3DRMFrameCamera, DWORD xpos, DWORD ypos, DWORD width, DWORD height)
  Clear                         stdmethod(THIS)
  Render                        stdmethod(THIS, LPDIRECT3DRMFRAME lpD3DRMFrame)
  SetFront                      stdmethod(THIS, D3DVALUE rvFront)
  SetBack                       stdmethod(THIS, D3DVALUE rvBack)
  SetField                      stdmethod(THIS, D3DVALUE rvField)
  SetUniformScaling             stdmethod(THIS, BOOL bScale)
  SetCamera                     stdmethod(THIS, LPDIRECT3DRMFRAME lpCamera)
  SetProjection                 stdmethod(THIS, D3DRMPROJECTIONTYPE rptType)
  Transform                     stdmethod(THIS, D3DRMVECTOR4D * lprvDst, D3DVECTOR * lprvSrc)
  InverseTransform              stdmethod(THIS, D3DVECTOR * lprvDst, D3DRMVECTOR4D * lprvSrc)
  Configure                     stdmethod(THIS, LONG lX, LONG lY, DWORD dwWidth, DWORD dwHeight)
  ForceUpdate                   stdmethod(THIS, DWORD dwX1, DWORD dwY1, DWORD dwX2, DWORD dwY2)
  SetPlane                      stdmethod(THIS, D3DVALUE rvLeft, D3DVALUE rvRight, D3DVALUE rvBottom, D3DVALUE rvTop)
  GetCamera                     stdmethod(THIS, LPDIRECT3DRMFRAME *lpCamera)
  GetDevice                     stdmethod(THIS, LPDIRECT3DRMDEVICE *lpD3DRMDevice)
  GetPlane                      stdmethod(THIS, D3DVALUE *lpd3dvLeft, D3DVALUE *lpd3dvRight, D3DVALUE *lpd3dvBottom, D3DVALUE *lpd3dvTop)
  Pick                          stdmethod(THIS, LONG lX, LONG lY, LPDIRECT3DRMPICKEDARRAY* lplpVisuals)
  GetUniformScaling             stdmethod(THIS)
  GetX                          stdmethod(THIS)
  GetY                          stdmethod(THIS)
  GetWidth                      stdmethod(THIS)
  GetHeight                     stdmethod(THIS)
  GetField                      stdmethod(THIS)
  GetBack                       stdmethod(THIS)
  GetFront                      stdmethod(THIS)
  GetProjection                 stdmethod(THIS)
  GetDirect3DViewport           stdmethod(THIS, LPDIRECT3DVIEWPORT * lplpD3DViewport)
endi

interface IDirect3DRMVisual extends IDirect3DRMObject
  GUID                          EB16CB04-D271-11CE-AC48-0000C03825A1
endi

interface IDirect3DRMFrame extends IDirect3DRMVisual
  GUID                          EB16CB03-D271-11CE-AC48-0000C03825A1
  AddChild                      stdmethod(THIS, LPDIRECT3DRMFRAME lpD3DRMFrameChild)
  AddLight                      stdmethod(THIS, LPDIRECT3DRMLIGHT lpD3DRMLight)
  AddMoveCallback               stdmethod(THIS, D3DRMFRAMEMOVECALLBACK d3drmFMC, VOID * lpArg)
  AddTransform                  stdmethod(THIS, D3DRMCOMBINETYPE rctCombine, D3DRMMATRIX4D rmMatrix)
  AddTranslation                stdmethod(THIS, D3DRMCOMBINETYPE rctCombine, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ)
  AddScale                      stdmethod(THIS, D3DRMCOMBINETYPE rctCombine, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ)
  AddRotation                   stdmethod(THIS, D3DRMCOMBINETYPE rctCombine, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ, D3DVALUE rvTheta)
  AddVisual                     stdmethod(THIS, LPDIRECT3DRMVISUAL lpD3DRMVisual)
  GetChildren                   stdmethod(THIS, LPDIRECT3DRMFRAMEARRAY* lplpChildren)
  GetColor                      stdmethod(THIS)
  GetLights                     stdmethod(THIS, LPDIRECT3DRMLIGHTARRAY* lplpLights)
  GetMaterialMode               stdmethod(THIS)
  GetParent                     stdmethod(THIS, LPDIRECT3DRMFRAME* lplpParent)
  GetPosition                   stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, LPD3DVECTOR lprvPos)
  GetRotation                   stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, LPD3DVECTOR lprvAxis, LPD3DVALUE lprvTheta)
  GetScene                      stdmethod(THIS, LPDIRECT3DRMFRAME* lplpRoot)
  GetSortMode                   stdmethod(THIS)
  GetTexture                    stdmethod(THIS, LPDIRECT3DRMTEXTURE* lplpTexture)
  GetTransform                  stdmethod(THIS, D3DRMMATRIX4D rmMatrix)
  GetVelocity                   stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, LPD3DVECTOR lprvVel, BOOL fRotVel)
  GetOrientation                stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, LPD3DVECTOR lprvDir, LPD3DVECTOR lprvUp)
  GetVisuals                    stdmethod(THIS, LPDIRECT3DRMVISUALARRAY* lplpVisuals)
  GetTextureTopology            stdmethod(THIS, BOOL * lpbWrap_u, BOOL * lpbWrap_v)
  InverseTransform              stdmethod(THIS, D3DVECTOR *lprvDst, D3DVECTOR *lprvSrc)
  Load                          stdmethod(THIS, LPVOID lpvObjSource, LPVOID lpvObjID, D3DRMLOADOPTIONS d3drmLOFlags, D3DRMLOADTEXTURECALLBACK d3drmLoadTextureProc, LPVOID lpArgLTP)
  LookAt                        stdmethod(THIS, LPDIRECT3DRMFRAME lpTarget, LPDIRECT3DRMFRAME lpRef, D3DRMFRAMECONSTRAINT rfcConstraint)
  Move                          stdmethod(THIS, D3DVALUE delta)
  DeleteChild                   stdmethod(THIS, LPDIRECT3DRMFRAME lpChild)
  DeleteLight                   stdmethod(THIS, LPDIRECT3DRMLIGHT lpD3DRMLight)
  DeleteMoveCallback            stdmethod(THIS, D3DRMFRAMEMOVECALLBACK d3drmFMC, VOID * lpArg)
  DeleteVisual                  stdmethod(THIS, LPDIRECT3DRMVISUAL lpD3DRMVisual)
  GetSceneBackground            stdmethod(THIS)
  GetSceneBackgroundDepth       stdmethod(THIS, LPDIRECTDRAWSURFACE * lplpDDSurface)
  GetSceneFogColor              stdmethod(THIS)
  GetSceneFogEnable             stdmethod(THIS)
  GetSceneFogMode               stdmethod(THIS)
  GetSceneFogParams             stdmethod(THIS, D3DVALUE * lprvStart, D3DVALUE * lprvEnd, D3DVALUE * lprvDensity)
  SetSceneBackground            stdmethod(THIS, D3DCOLOR rcColor)
  SetSceneBackgroundRGB         stdmethod(THIS, D3DVALUE rvRed, D3DVALUE rvGreen, D3DVALUE rvBlue)
  SetSceneBackgroundDepth       stdmethod(THIS, LPDIRECTDRAWSURFACE lpImage)
  SetSceneBackgroundImage       stdmethod(THIS, LPDIRECT3DRMTEXTURE lpTexture)
  SetSceneFogEnable             stdmethod(THIS, BOOL bEnable)
  SetSceneFogColor              stdmethod(THIS, D3DCOLOR rcColor)
  SetSceneFogMode               stdmethod(THIS, D3DRMFOGMODE rfMode)
  SetSceneFogParams             stdmethod(THIS, D3DVALUE rvStart, D3DVALUE rvEnd, D3DVALUE rvDensity)
  SetColor                      stdmethod(THIS, D3DCOLOR rcColor)
  SetColorRGB                   stdmethod(THIS, D3DVALUE rvRed, D3DVALUE rvGreen, D3DVALUE rvBlue)
  GetZbufferMode                stdmethod(THIS)
  SetMaterialMode               stdmethod(THIS, D3DRMMATERIALMODE rmmMode)
  SetOrientation                stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, D3DVALUE rvDx, D3DVALUE rvDy, D3DVALUE rvDz, D3DVALUE rvUx, D3DVALUE rvUy, D3DVALUE rvUz)
  SetPosition                   stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ)
  SetRotation                   stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ, D3DVALUE rvTheta)
  SetSortMode                   stdmethod(THIS, D3DRMSORTMODE d3drmSM)
  SetTexture                    stdmethod(THIS, LPDIRECT3DRMTEXTURE lpD3DRMTexture)
  SetTextureTopology            stdmethod(THIS, BOOL bWrap_u, BOOL bWrap_v)
  SetVelocity                   stdmethod(THIS, LPDIRECT3DRMFRAME lpRef, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ, BOOL fRotVel)
  SetZbufferMode                stdmethod(THIS, D3DRMZBUFFERMODE d3drmZBM)
  Transform                     stdmethod(THIS, D3DVECTOR *lpd3dVDst, D3DVECTOR *lpd3dVSrc)
endi

interface IDirect3DRMMesh extends IDirect3DRMVisual
  GUID                          A3A80D01-6E12-11CF-AC4A-0000C03825A1
  Scale                         stdmethod(THIS, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
  Translate                     stdmethod(THIS, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
  GetBox                        stdmethod(THIS, D3DRMBOX * lpD3DRMBox)
  AddGroup                      stdmethod(THIS, unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData, D3DRMGROUPINDEX *returnId)
  SetVertices                   stdmethod(THIS, D3DRMGROUPINDEX id, unsigned index, unsigned count, D3DRMVERTEX *values)
  SetGroupColor                 stdmethod(THIS, D3DRMGROUPINDEX id, D3DCOLOR value)
  SetGroupColorRGB              stdmethod(THIS, D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
  SetGroupMapping               stdmethod(THIS, D3DRMGROUPINDEX id, D3DRMMAPPING value)
  SetGroupQuality               stdmethod(THIS, D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value)
  SetGroupMaterial              stdmethod(THIS, D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value)
  SetGroupTexture               stdmethod(THIS, D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value)
  GetGroupCount                 stdmethod(THIS)
  GetGroup                      stdmethod(THIS, D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace, DWORD *fDataSize, unsigned *fData)
  GetVertices                   stdmethod(THIS, D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr)
  GetGroupColor                 stdmethod(THIS, D3DRMGROUPINDEX id)
  GetGroupMapping               stdmethod(THIS, D3DRMGROUPINDEX id)
  GetGroupQuality               stdmethod(THIS, D3DRMGROUPINDEX id)
  GetGroupMaterial              stdmethod(THIS, D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr)
  GetGroupTexture               stdmethod(THIS, D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr)
endi

interface IDirect3DRMMeshBuilder extends IDirect3DRMVisual
  GUID                          A3A80D02-6E12-11CF-AC4A-0000C03825A1
  Load                          stdmethod(THIS, LPVOID lpvObjSource, LPVOID lpvObjID, D3DRMLOADOPTIONS d3drmLOFlags, D3DRMLOADTEXTURECALLBACK d3drmLoadTextureProc, LPVOID lpvArg)
  Save                          stdmethod(THIS, const char * lpFilename, D3DRMXOFFORMAT d3drmXOFFormat, D3DRMSAVEOPTIONS d3drmSOContents)
  Scale                         stdmethod(THIS, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
  Translate                     stdmethod(THIS, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
  SetColorSource                stdmethod(THIS, D3DRMCOLORSOURCE source)
  GetBox                        stdmethod(THIS, D3DRMBOX *lpD3DRMBox)
  GenerateNormals               stdmethod(THIS)
  GetColorSource                stdmethod(THIS)
  AddMesh                       stdmethod(THIS, LPDIRECT3DRMMESH lpD3DRMMesh)
  AddMeshBuilder                stdmethod(THIS, LPDIRECT3DRMMESHBUILDER lpD3DRMMeshBuild)
  AddFrame                      stdmethod(THIS, LPDIRECT3DRMFRAME lpD3DRMFrame)
  AddFace                       stdmethod(THIS, LPDIRECT3DRMFACE lpD3DRMFace)
  AddFaces                      stdmethod(THIS, DWORD dwVertexCount, D3DVECTOR * lpD3DVertices, DWORD normalCount, D3DVECTOR *lpNormals, DWORD *lpFaceData, LPDIRECT3DRMFACEARRAY* lplpD3DRMFaceArray)
  ReserveSpace                  stdmethod(THIS, DWORD vertexCount, DWORD normalCount, DWORD faceCount)
  SetColorRGB                   stdmethod(THIS, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
  SetColor                      stdmethod(THIS, D3DCOLOR color)
  SetTexture                    stdmethod(THIS, LPDIRECT3DRMTEXTURE lpD3DRMTexture)
  SetMaterial                   stdmethod(THIS, LPDIRECT3DRMMATERIAL lpIDirect3DRMmaterial)
  SetTextureTopology            stdmethod(THIS, BOOL cylU, BOOL cylV)
  SetQuality                    stdmethod(THIS, D3DRMRENDERQUALITY quality)
  SetPerspective                stdmethod(THIS, BOOL perspective)
  SetVertex                     stdmethod(THIS, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
  SetNormal                     stdmethod(THIS, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
  SetTextureCoordinates         stdmethod(THIS, DWORD index, D3DVALUE u, D3DVALUE v)
  SetVertexColor                stdmethod(THIS, DWORD index, D3DCOLOR color)
  SetVertexColorRGB             stdmethod(THIS, DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
  GetFaces                      stdmethod(THIS, LPDIRECT3DRMFACEARRAY* lplpD3DRMFaceArray)
  GetVertices                   stdmethod(THIS, DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data)
  GetTextureCoordinates         stdmethod(THIS, DWORD index, D3DVALUE *lpU, D3DVALUE *lpV)
  AddVertex                     stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z)
  AddNormal                     stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z)
  CreateFace                    stdmethod(THIS, LPDIRECT3DRMFACE* lplpD3DRMFace)
  GetQuality                    stdmethod(THIS)
  GetPerspective                stdmethod(THIS)
  GetFaceCount                  stdmethod(THIS)
  GetVertexCount                stdmethod(THIS)
  GetVertexColor                stdmethod(THIS, DWORD index)
  CreateMesh                    stdmethod(THIS, LPDIRECT3DRMMESH* lplpD3DRMMesh)
endi

interface IDirect3DRMFace extends IDirect3DRMObject
  GUID                          EB16CB07-D271-11CE-AC48-0000C03825A1
  AddVertex                     stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z)
  AddVertexAndNormalIndexed     stdmethod(THIS, DWORD vertex, DWORD normal)
  SetColorRGB                   stdmethod(THIS, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
  SetColor                      stdmethod(THIS, D3DCOLOR color)
  SetTexture                    stdmethod(THIS, LPDIRECT3DRMTEXTURE lpD3DRMTexture)
  SetTextureCoordinates         stdmethod(THIS, DWORD vertex, D3DVALUE u, D3DVALUE v)
  SetMaterial                   stdmethod(THIS, LPDIRECT3DRMMATERIAL lpD3DRMMaterial)
  SetTextureTopology            stdmethod(THIS, BOOL cylU, BOOL cylV)
  GetVertex                     stdmethod(THIS, DWORD index, D3DVECTOR *lpPosition, D3DVECTOR *lpNormal)
  GetVertices                   stdmethod(THIS, DWORD *lpdwVertexCount, D3DVECTOR *lpPosition, D3DVECTOR *lpNormal)
  GetTextureCoordinates         stdmethod(THIS, DWORD index, D3DVALUE *lpU, D3DVALUE *lpV)
  GetTextureTopology            stdmethod(THIS, BOOL *lpU, BOOL *lpV)
  GetNormal                     stdmethod(THIS, D3DVECTOR *lpNormal)
  GetTexture                    stdmethod(THIS, LPDIRECT3DRMTEXTURE* lplpTexture)
  GetMaterial                   stdmethod(THIS, LPDIRECT3DRMMATERIAL* lplpMaterial)
  GetVertexCount                stdmethod(THIS)
  GetVertexIndex                stdmethod(THIS, DWORD dwIndex)
  GetTextureCoordinateIndex     stdmethod(THIS, DWORD dwIndex)
  GetColor                      stdmethod(THIS)
endi

interface IDirect3DRMLight extends IDirect3DRMObject
  GUID                          EB16CB08-D271-11CE-AC48-0000C03825A1
  SetType                       stdmethod(THIS, D3DRMLIGHTTYPE d3drmtType)
  SetColor                      stdmethod(THIS, D3DCOLOR rcColor)
  SetColorRGB                   stdmethod(THIS, D3DVALUE rvRed, D3DVALUE rvGreen, D3DVALUE rvBlue)
  SetRange                      stdmethod(THIS, D3DVALUE rvRange)
  SetUmbra                      stdmethod(THIS, D3DVALUE rvAngle)
  SetPenumbra                   stdmethod(THIS, D3DVALUE rvAngle)
  SetConstantAttenuation        stdmethod(THIS, D3DVALUE rvAtt)
  SetLinearAttenuation          stdmethod(THIS, D3DVALUE rvAtt)
  SetQuadraticAttenuation       stdmethod(THIS, D3DVALUE rvAtt)
  GetRange                      stdmethod(THIS)
  GetUmbra                      stdmethod(THIS)
  GetPenumbra                   stdmethod(THIS)
  GetConstantAttenuation        stdmethod(THIS)
  GetLinearAttenuation          stdmethod(THIS)
  GetQuadraticAttenuation       stdmethod(THIS)
  GetColor                      stdmethod(THIS)
  GetType                       stdmethod(THIS)
  SetEnableFrame                stdmethod(THIS, LPDIRECT3DRMFRAME lpEnableFrame)
  GetEnableFrame                stdmethod(THIS, LPDIRECT3DRMFRAME * lplpEnableFrame)
endi

interface IDirect3DRMTexture extends IDirect3DRMVisual
  GUID                          EB16CB09-D271-11CE-AC48-0000C03825A1
  InitFromFile                  stdmethod(THIS, const char *filename)
  InitFromSurface               stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDS)
  InitFromResource              stdmethod(THIS, HRSRC rs)
  Changed                       stdmethod(THIS, BOOL bPixels, BOOL bPalette)
  SetColors                     stdmethod(THIS, DWORD ulColors)
  SetShades                     stdmethod(THIS, DWORD ulShades)
  SetDecalSize                  stdmethod(THIS, D3DVALUE rvWidth, D3DVALUE rvHeight)
  SetDecalOrigin                stdmethod(THIS, LONG lX, LONG lY)
  SetDecalScale                 stdmethod(THIS, DWORD dwScale)
  SetDecalTransparency          stdmethod(THIS, BOOL bTransp)
  SetDecalTransparentColor      stdmethod(THIS, D3DCOLOR rcTransp)
  GetDecalSize                  stdmethod(THIS, D3DVALUE *lprvWidth, D3DVALUE *lprvHeight)
  GetDecalOrigin                stdmethod(THIS, LONG * lplX, LONG * lplY)
  GetImage                      stdmethod(THIS)
  GetShades                     stdmethod(THIS)
  GetColors                     stdmethod(THIS)
  GetDecalScale                 stdmethod(THIS)
  GetDecalTransparency          stdmethod(THIS)
  GetDecalTransparentColor      stdmethod(THIS)
endi

interface IDirect3DRMWrap extends IDirect3DRMObject
  GUID                          EB16CB0A-D271-11CE-AC48-0000C03825A1
  Init                          stdmethod(THIS, D3DRMWRAPTYPE d3drmwt, LPDIRECT3DRMFRAME lpd3drmfRef, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv)
  Apply                         stdmethod(THIS, LPDIRECT3DRMOBJECT lpObject)
  ApplyRelative                 stdmethod(THIS, LPDIRECT3DRMFRAME frame, LPDIRECT3DRMOBJECT mesh)
endi

interface IDirect3DRMMaterial extends IDirect3DRMObject
  GUID                          EB16CB0B-D271-11CE-AC48-0000C03825A1
  SetPower                      stdmethod(THIS, D3DVALUE rvPower)
  SetSpecular                   stdmethod(THIS, D3DVALUE r, D3DVALUE g, D3DVALUE b)
  SetEmissive                   stdmethod(THIS, D3DVALUE r, D3DVALUE g, D3DVALUE b)
  GetPower                      stdmethod(THIS)
  GetSpecular                   stdmethod(THIS, D3DVALUE *lpr, D3DVALUE *lpg, D3DVALUE *lpb)
  GetEmissive                   stdmethod(THIS, D3DVALUE *lpr, D3DVALUE *lpg, D3DVALUE *lpb)
endi

interface IDirect3DRMAnimation extends IDirect3DRMObject
  GUID                          EB16CB0D-D271-11CE-AC48-0000C03825A1
  SetOptions                    stdmethod(THIS, D3DRMANIMATIONOPTIONS d3drmanimFlags)
  AddRotateKey                  stdmethod(THIS, D3DVALUE rvTime, D3DRMQUATERNION *rqQuat)
  AddPositionKey                stdmethod(THIS, D3DVALUE rvTime, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ)
  AddScaleKey                   stdmethod(THIS, D3DVALUE rvTime, D3DVALUE rvX, D3DVALUE rvY, D3DVALUE rvZ)
  DeleteKey                     stdmethod(THIS, D3DVALUE rvTime)
  SetFrame                      stdmethod(THIS, LPDIRECT3DRMFRAME lpD3DRMFrame)
  SetTime                       stdmethod(THIS, D3DVALUE rvTime)
  GetOptions                    stdmethod(THIS)
endi

interface IDirect3DRMAnimationSet extends IDirect3DRMObject
  GUID                          EB16CB0E-D271-11CE-AC48-0000C03825A1
  AddAnimation                  stdmethod(THIS, LPDIRECT3DRMANIMATION lpD3DRMAnimation)
  Load                          stdmethod(THIS, LPVOID lpvObjSource, LPVOID lpvObjID, D3DRMLOADOPTIONS d3drmLOFlags, D3DRMLOADTEXTURECALLBACK d3drmLoadTextureProc, LPVOID lpArgLTP, LPDIRECT3DRMFRAME lpParentFrame)
  DeleteAnimation               stdmethod(THIS, LPDIRECT3DRMANIMATION lpD3DRMAnimation)
  SetTime                       stdmethod(THIS, D3DVALUE rvTime)
endi

interface IDirect3DRMArray extends IDirect3DRMObject ; abstraction that has no official GUID
  GUID                          XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ; EB16CB0F-D271-11CE-AC48-0000C03825A1
  GetSize                       stdmethod(THIS)
endi

interface IDirect3DRMDeviceArray extends IDirect3DRMArray
  GUID                          EB16CB10-D271-11CE-AC48-0000C03825A1
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMDEVICE * lplpD3DRMDevice)
endi

interface IDirect3DRMViewportArray extends IDirect3DRMArray
  GUID                          EB16CB11-D271-11CE-AC48-0000C03825A1
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMVIEWPORT * lplpD3DRMViewport)
endi

interface IDirect3DRMFrameArray extends IDirect3DRMArray
  GUID                          EB16CB12-D271-11CE-AC48-0000C03825A1
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMFRAME * lplpD3DRMFrame)
endi

interface IDirect3DRMVisualArray extends IDirect3DRMArray
  GUID                          EB16CB13-D271-11CE-AC48-0000C03825A1
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMVISUAL * lplpD3DRMVisual)
endi

interface IDirect3DRMLightArray extends IDirect3DRMArray
  GUID                          EB16CB14-D271-11CE-AC48-0000C03825A1
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMLIGHT * lplpD3DRMLight)
endi

interface IDirect3DRMPickedArray extends IDirect3DRMArray
  GUID                          EB16CB16-D271-11CE-AC48-0000C03825A1
  GetPick                       stdmethod(THIS, DWORD index, LPDIRECT3DRMVISUAL * lplpVisual, LPDIRECT3DRMFRAMEARRAY * lplpFrameArray, LPD3DRMPICKDESC lpD3DRMPickDesc)
endi

interface IDirect3DRMFaceArray extends IDirect3DRMArray
  GUID                          EB16CB17-D271-11CE-AC48-0000C03825A1
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMFACE * lplpD3DRMFace)
endi

interface IDirect3DRMUserVisual extends IDirect3DRMVisual
  GUID                          59163DE0-6D43-11CF-AC4A-0000C03825A1
  Init                          stdmethod(THIS, D3DRMUSERVISUALCALLBACK d3drmUVProc, void * lpArg)
endi

interface IDirect3DRMShadow extends IDirect3DRMVisual
  GUID                          AF359780-6BA3-11CF-AC4A-0000C03825A1
  Init                          stdmethod(THIS, LPDIRECT3DRMVISUAL lpD3DRMVisual, LPDIRECT3DRMLIGHT lpD3DRMLight, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz)
endi

interface IDirect3DRMWinDevice extends IDirect3DRMObject
  GUID                          C5016CC0-D273-11CE-AC48-0000C03825A1
  HandlePaint                   stdmethod(THIS, HDC hDC)
  HandleActivate                stdmethod(THIS, WORD wParam)
endi
DIRECTX3.INC:

Code: Select all

define _DIRECTX3_H
include 'directx2.inc'

;==================================================================
; DirectPlay
;==================================================================
interface IDirectPlay2 extends IUnknown ; unicode variant of IDirectPlay2
  GUID                          2B74F7C0-9154-11CF-A9CD-00AA006886E3
  AddPlayerToGroup              stdmethod(THIS, DPID idGroup, DPID idPlayer)
  Close                         stdmethod(THIS)
  CreateGroup                   stdmethod(THIS, LPDPID lpidGroup, LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags)
  CreatePlayer                  stdmethod(THIS, LPDPID lpidPlayer, LPDPNAME lpPlayerName, HANDLE hEvent, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags)
  DeletePlayerFromGroup         stdmethod(THIS, DPID idGroup, DPID idPlayer)
  DestroyGroup                  stdmethod(THIS, DPID idGroup)
  DestroyPlayer                 stdmethod(THIS, DPID idPlayer)
  EnumGroupPlayers              stdmethod(THIS, DPID idGroup, LPGUID lpguidInstance, LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, LPVOID lpContext, DWORD dwFlags)
  EnumGroups                    stdmethod(THIS, LPGUID lpguidInstance, LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, LPVOID lpContext, DWORD dwFlags)
  EnumPlayers                   stdmethod(THIS, LPGUID lpguidInstance, LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, LPVOID lpContext, DWORD dwFlags)
  EnumSessions                  stdmethod(THIS, LPDPSESSIONDESC2 lpsd, DWORD dwTimeout, LPDPENUMSESSIONSCALLBACK2 lpEnumSessionsCallback2, LPVOID lpContext, DWORD dwFlags)
  GetCaps                       stdmethod(THIS, LPDPCAPS lpDPCaps, DWORD dwFlags)
  GetGroupData                  stdmethod(THIS, DPID idGroup, LPVOID lpData, LPDWORD lpdwDataSize, DWORD dwFlags)
  GetGroupName                  stdmethod(THIS, DPPID idGroup, LPVOID lpData, LPDWORD lpdwDataSize)
  GetMessageCount               stdmethod(THIS, DPID idPlayer, LPDWORD lpdwCount)
  GetPlayerAddress              stdmethod(THIS, DPID idPlayer, LPVOID lpAddress, LPDWORD lpdwAddressSize)
  GetPlayerCaps                 stdmethod(THIS, DPID idPlayer, LPDPCAPS lpPlayerCaps, DWORD dwFlags)
  GetPlayerData                 stdmethod(THIS, DPID idPlayer, LPVOID lpData, LPDWORD lpdwDataSize, DWORD dwFlags)
  GetPlayerName                 stdmethod(THIS, DPID idPlayer, LPVOID lpData, LPDWORD lpdwDataSize)
  GetSessionDesc                stdmethod(THIS, LPVOID lpData, LPDWORD lpdwDataSize)
  Initialize                    stdmethod(THIS, LPGUID lpGUID)
  Open                          stdmethod(THIS, LPDPSESSIONDESC2 lpsd, DWORD dwFlags)
  Receive                       stdmethod(THIS, LPDPID lpidFrom, LPDPID lpidTo, DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize)
  Send                          stdmethod(THIS, DPID idFrom, DPID idTo, DWORD dwFlags, LPVOID lpData, DWORD dwDataSize)
  SetGroupData                  stdmethod(THIS, DPID idGroup, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags)
  SetGroupName                  stdmethod(THIS, DPID idGroup, LPDPNAME lpGroupName, DWORD dwFlags)
  SetPlayerData                 stdmethod(THIS, DPID idPlayer, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags)
  SetPlayerName                 stdmethod(THIS, DPID idPlayer, LPDPNAME lpPlayerName, DWORD dwFlags)
  SetSessionDesc                stdmethod(THIS, LPDPSESSIONDESC2 lpSessDesc, DWORD dwFlags)
endi

interface IDirectPlay2A extends IDirectPlay2 ; ASCII variant of IDirectPlay2
  GUID                          9D460580-A822-11CF-960C-0080C7534E82
endi

interface IDirectPlayLobby extends IUnknown ; unicode variant of IDirectPlayLobby
  GUID                          AF465C71-9588-11CF-A020-00AA006157AC
  Connect                       stdmethod(THIS, DWORD dwFlags, LPDIRECTPLAY2 FAR *lplpDP, IUnknown FAR *pUnk)
  CreateAddress                 stdmethod(THIS, REFGUID guidSP, REFGUID guidDataType, LPCVOID lpData, DWORD dwDataSize, LPVOID lpAddress, LPDWORD lpdwAddressSize)
  EnumAddress                   stdmethod(THIS, LPDPENUMADDRESS lpEnumAddressCallback, LPCVOID lpAddress, DWORD dwAddressSize, LPVOID lpContext)
  EnumAddressTypes              stdmethod(THIS, LDDPLENUMADDRESSTYPESCALLBACK lpEnumAddressTypeCallback, REFGUID guidSP, LPVOID lpContext, DWORD dwFlags)
  EnumLocalApplications         stdmethod(THIS, LPDPENUMLOCALAPPLICATIONS lpEnumLocalAppCallback, LPVOID lpContext, DWORD dwFlags)
  GetConnectionSettings         stdmethod(THIS, DWORD dwAppID, LPVOID lpData, LPDWORD lpdwDataSize)
  ReceiveLobbyMessage           stdmethod(THIS, DWORD dwFlags, DWORD dwAppID, LPDWORD lpdwMessageFlags, LPVOID lpData, LPDWORD lpdwDataSize)
  RunApplication                stdmethod(THIS, DWORD dwFlags, LPDWORD lpdwAppID, LPDPLCONNECTION lpConn, HANDLE hReceiveEvent)
  SendLobbyMessage              stdmethod(THIS, DWORD dwFlags, DWORD dwAppID, LPVOID lpData, DWORD dwDataSize)
  SetConnectionSettings         stdmethod(THIS, DWORD dwFlags, DWORD dwAppID, LPDPLCONNECTION lpConn)
  SetLobbyMessageEvent          stdmethod(THIS, DWORD dwFlags, DWORD dwAppID, HANDLE hReceiveEvent)
endi

interface IDirectPlayLobbyA extends IDirectPlayLobby ; ASCII variant of IDirectPlayLobby
  GUID                          26C66A70-B367-11CF-A024-00AA006157AC
endi

;==================================================================
; DirectSound
;==================================================================
interface IDirectSound3DListener extends IUnknown
  GUID                          279AFA84-4981-11CE-A521-0020AF0BE560
  GetAllParameters              stdmethod(THIS, LPDS3DLISTENER lpListener)
  GetDistanceFactor             stdmethod(THIS, LPD3DVALUE lpflDistanceFactor)
  GetDopplerFactor              stdmethod(THIS, LPD3DVALUE lpflDopplerFactor)
  GetOrientation                stdmethod(THIS, LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop)
  GetPosition                   stdmethod(THIS, LPD3DVECTOR lpvPosition)
  GetRolloffFactor              stdmethod(THIS, LPD3DVALUE lpflRolloffFactor)
  GetVelocity                   stdmethod(THIS, LPD3DVECTOR lpvVelocity)
  SetAllParameters              stdmethod(THIS, LPDS3DLISTENER lpListener, DWORD dwApply)
  SetDistanceFactor             stdmethod(THIS, D3DVALUE flDistanceFactor, DWORD dwApply)
  SetDopplerFactor              stdmethod(THIS, D3DVALUE flDopplerFactor, DWORD dwApply)
  SetOrientation                stdmethod(THIS, D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD    dwApply)
  SetPosition                   stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply)
  SetRolloffFactor              stdmethod(THIS, D3DVALUE flRolloffFactor, DWORD dwApply)
  SetVelocity                   stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply)
  CommitDeferredSettings        stdmethod(THIS)
endi

interface IDirectSound3DBuffer extends IUnknown
  GUID                          279AFA86-4981-11CE-A521-0020AF0BE560
  GetAllParameters              stdmethod(THIS, LPDS3DBUFFER lpDs3dBuffer)
  GetConeAngles                 stdmethod(THIS, LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle)
  GetConeOrientation            stdmethod(THIS, LPD3DVECTOR lpvOrientation)
  GetConeOutsideVolume          stdmethod(THIS, LPLONG lplConeOutsideVolume)
  GetMaxDistance                stdmethod(THIS, LPD3DVALUE lpflMaxDistance)
  GetMinDistance                stdmethod(THIS, LPD3DVALUE lpflMinDistance)
  GetMode                       stdmethod(THIS, LPDWORD lpdwMode)
  GetPosition                   stdmethod(THIS, LPD3DVECTOR lpvPosition)
  GetVelocity                   stdmethod(THIS, LPD3DVECTOR lpvVelocity)
  SetAllParameters              stdmethod(THIS, LPDS3DBUFFER lpDs3dBuffer, DWORD dwApply)
  SetConeAngles                 stdmethod(THIS, DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply)
  SetConeOrientation            stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply)
  SetConeOutsideVolume          stdmethod(THIS, LONG lConeOutsideVolume, DWORD dwApply)
  SetMaxDistance                stdmethod(THIS, D3DVALUE flMaxDistance, DWORD dwApply)
  SetMinDistance                stdmethod(THIS, D3DVALUE flMinDistance, DWORD dwApply)
  SetMode                       stdmethod(THIS, DWORD dwMode, DWORD dwApply)
  SetPosition                   stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply)
  SetVelocity                   stdmethod(THIS, D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply)
endi

;==================================================================
; DirectInput
;==================================================================
CLSID_DirectInput           equ 25E609E0-B259-11CF-BFC7-444553540000
CLSID_DirectInputDevice     equ 25E609E1-B259-11CF-BFC7-444553540000
GUID_XAxis                  equ A36D02E0-C9F3-11CF-BFC7-444553540000
GUID_YAxis                  equ A36D02E1-C9F3-11CF-BFC7-444553540000
GUID_ZAxis                  equ A36D02E2-C9F3-11CF-BFC7-444553540000
GUID_RAxis                  equ A36D02E3-C9F3-11CF-BFC7-444553540000
GUID_UAxis                  equ A36D02E4-C9F3-11CF-BFC7-444553540000
GUID_VAxis                  equ A36D02E5-C9F3-11CF-BFC7-444553540000

GUID_Button                 equ A36D02F0-C9F3-11CF-BFC7-444553540000
GUID_Key                    equ 55728220-D33C-11CF-BFC7-444553540000

GUID_POV                    equ A36D02F2-C9F3-11CF-BFC7-444553540000
GUID_Unknown                equ A36D02F3-C9F3-11CF-BFC7-444553540000

GUID_SysMouse               equ 6F1D2B60-D5A0-11CF-BFC7-444553540000
GUID_SysKeyboard            equ 6F1D2B61-D5A0-11CF-BFC7-444553540000
GUID_Joystick               equ 6F1D2B70-D5A0-11CF-BFC7-444553540000
GUID_SysMouseEm             equ 6F1D2B80-D5A0-11CF-BFC7-444553540000
GUID_SysMouseEm2            equ 6F1D2B81-D5A0-11CF-BFC7-444553540000
GUID_SysKeyboardEm          equ 6F1D2B82-D5A0-11CF-BFC7-444553540000
GUID_SysKeyboardEm2         equ 6F1D2B83-D5A0-11CF-BFC7-444553540000

interface IDirectInputA extends IUnknown ; ASCII variant of IDirectInput
  GUID                          89521360-AA8A-11CF-BFC7-444553540000
  CreateDevice                  stdmethod(THIS, REFGUID rguid, IDirectInputDeviceA** device, LPUNKNOWN unknown)
  EnumDevices                   stdmethod(THIS, DWORD devType,LPDIENUMDEVICESCALLBACKA callback, LPVOID ref, DWORD flags)
  GetDeviceStatus               stdmethod(THIS, REFGUID rguid)
  RunControlPanel               stdmethod(THIS, HWND owner, DWORD flags)
  Initialize                    stdmethod(THIS, HINSTANCE instance, DWORD version)
endi

interface IDirectInputW extends IDirectInputA ; unicode variant of IDirectInput
  GUID                          89521361-AA8A-11CF-BFC7-444553540000
endi

interface IDirectInputDeviceA extends IUnknown ; ASCII variant of IDirectInputDevice
  GUID                          5944E680-C92E-11CF-BFC7-444553540000
  GetCapabilities               stdmethod(THIS, LPDIDEVCAPS lpDIDevCaps)
  EnumObjects                   stdmethod(THIS, LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback, LPVOID pvRef, DWORD dwFlags)
  GetProperty                   stdmethod(THIS, REFGUID rguidProp, LPDIPROPHEADER pdiph)
  SetProperty                   stdmethod(THIS, REFGUID rguidProp, LPCDIPROPHEADER pdiph)
  Acquire                       stdmethod(THIS)
  Unacquire                     stdmethod(THIS)
  GetDeviceState                stdmethod(THIS, DWORD cbData, LPVOID lpvData)
  GetDeviceData                 stdmethod(THIS, DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags)
  SetDataFormat                 stdmethod(THIS, LPCDIDATAFORMAT lpdf)
  SetEventNotification          stdmethod(THIS, HANDLE hEvent)
  SetCooperativeLevel           stdmethod(THIS, HWND hwnd, DWORD dwFlags)
  GetObjectInfo                 stdmethod(THIS, LPDIDEVICEOBJECTINSTANCEA pdidoi, DWORD dwObj, DWORD dwHow)
  GetDeviceInfo                 stdmethod(THIS, LPDIDEVICEINSTANCEA pdidi)
  RunControlPanel               stdmethod(THIS, HWND hwndOwner, DWORD dwFlags)
  Initialize                    stdmethod(THIS, HINSTANCE hinst, DWORD dwVersion, REFGUID rguid)
endi

interface IDirectInputDeviceW extends IDirectInputDeviceA ; unicode variant of IDirectInputDevice
  GUID                          5944E681-C92E-11CF-BFC7-444553540000
endi
DIRECTX4.INC:

Code: Select all

define _DIRECTX4_H
include 'directx3.inc' 
DIRECTX5.INC:

Code: Select all

define _DIRECTX5_H
include 'directx4.inc'

;==================================================================
; DirectDraw
;==================================================================
interface IDirectDrawSurface3 extends IDirectDrawSurface2
  GUID                          DA044E00-69B2-11D0-A1D5-00AA00B8DFBB
  SetSurfaceDesc                stdmethod(THIS, LPDDSURFACEDESC lpDDSD, DWORD dwFlags)
endi

interface IDirectDrawColorControl extends IUnknown
  GUID                          4B9F0EE0-0D7E-11D0-9B06-00A0C903A3B8
  GetColorControls              stdmethod(THIS, LPDDCOLORCONTROL lpColorControl)
  SetColorControls              stdmethod(THIS, LPDDCOLORCONTROL lpColorControl)
endi

DDVPTYPE_E_HREFH_VREFH      equ 54F39980-DA60-11CF-9B06-00A0C903A3B8
DDVPTYPE_E_HREFH_VREFL      equ 92783220-DA60-11CF-9B06-00A0C903A3B8
DDVPTYPE_E_HREFL_VREFH      equ A07A02E0-DA60-11CF-9B06-00A0C903A3B8
DDVPTYPE_E_HREFL_VREFL      equ E09C77E0-DA60-11CF-9B06-00A0C903A3B8
DDVPTYPE_CCIR656            equ FCA326A0-DA60-11CF-9B06-00A0C903A3B8
DDVPTYPE_BROOKTREE          equ 1352A560-DA61-11CF-9B06-00A0C903A3B8
DDVPTYPE_PHILIPS            equ 332CF160-DA61-11CF-9B06-00A0C903A3B8

interface IDDVideoPortContainer extends IUnknown
  GUID                          6C142760-A733-11CE-A521-0020AF0BE560
  CreateVideoPort               stdmethod(THIS, DWORD dwFlags, LPDDVIDEOPORTDESC lpDDVideoPortDesc, LPDIRECTDRAWVIDEOPORT FAR *lplpDDVideoPort, IUnknown FAR *pUnkOuter)
  EnumVideoPorts                stdmethod(THIS, DWORD dwFlags, LPDDVIDEOPORTCAPS lpDDVideoPortCaps, LPVOID lpContext, LPENUMVIDEOCALLBACK lpEnumVideoCallback)
  GetVideoPortConnectInfo       stdmethod(THIS, DWORD dwPortId, LPDWORD lpNumEntries, LPDDVIDEOPORTCONNECT lpConnectInfo)
  QueryVideoPortStatus          stdmethod(THIS, DWORD dwPortId, LPDDVIDEOPORTSTATUS lpVPStatus)
endi

interface IDirectDrawVideoPort extends IUnknown
  GUID                          B36D93E0-2B43-11CF-A2DE-00AA00B93356
  Flip                          stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDSurface, DWORD dwFlags)
  GetBandwidthInfo              stdmethod(THIS, LPDDPIXELFORMAT lpddpfFormat, DWORD dwWidth, DWORD dwHeight, DWORD dwFlags, LPDDVIDEOPORTBANDWIDTH lpBandwidth)
  GetColorControls              stdmethod(THIS, LPDDCOLORCONTROL lpColorControl)
  GetInputFormats               stdmethod(THIS, LPDWORD lpNumFormats, LPDDPIXELFORMAT lpFormats, DWORD dwFlags)
  GetOutputFormats              stdmethod(THIS, LPDDPIXELFORMAT lpInputFormat, LPDWORD lpNumFormats, LPDDPIXELFORMAT lpFormats, DWORD dwFlags)
  GetFieldPolarity              stdmethod(THIS, LPBOOL lpbFieldPolarity)
  GetVideoLine                  stdmethod(THIS, LPDWORD lpdwLine)
  GetVideoSignalStatus          stdmethod(THIS, LPDWORD lpdwStatus)
  SetColorControls              stdmethod(THIS, LPDDCOLORCONTROL lpColorControl)
  SetTargetSurface              stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDSurface, DWORD dwFlags)
  StartVideo                    stdmethod(THIS, LPDDVIDEOPORTINFO lpVideoInfo)
  StopVideo                     stdmethod(THIS)
  UpdateVideo                   stdmethod(THIS, LPDDVIDEOPORTINFO lpVideoInfo)
  WaitForSync                   stdmethod(THIS, DWORD dwFlags, DWORD dwLine, DWORD dwTimeout)
endi

;==================================================================
; Direct3D immediate mode
;==================================================================
interface IDirect3D2 extends IUnknown
  GUID                          6AAE1EC1-662A-11D0-889D-00AA00B8B76A
  EnumDevices                   stdmethod(THIS, LPD3DENUMDEVICESCALLBACK Callback, LPVOID Context)
  CreateLight                   stdmethod(THIS, LPDIRECT3DLIGHT *Light, IUnknown *pUnkOuter)
  CreateMaterial                stdmethod(THIS, LPDIRECT3DMATERIAL2 *Direct3DLight, IUnknown *pUnkOuter)
  CreateViewport                stdmethod(THIS, LPDIRECT3DVIEWPORT2 *Viewport, IUnknown *pUnkOuter)
  FindDevice                    stdmethod(THIS, LPD3DFINDDEVICESEARCH D3DDFS, LPD3DFINDDEVICERESULT D3DFDR)
  CreateDevice                  stdmethod(THIS, REFCLSID rclsid, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DDEVICE2 *lplpD3DDevice)
endi

interface IDirect3DDevice2 extends IUnknown
  GUID                          93281501-8CF8-11D0-89AB-00A0C9054129
  GetCaps                       stdmethod(THIS, LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc)
  SwapTextureHandles            stdmethod(THIS, LPDIRECT3DTEXTURE2 lpD3DTex1, LPDIRECT3DTEXTURE2 lpD3DTex2)
  GetStats                      stdmethod(THIS, LPD3DSTATS lpD3DStats)
  AddViewport                   stdmethod(THIS, LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
  DeleteViewport                stdmethod(THIS, LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
  NextViewport                  stdmethod(THIS, LPDIRECT3DVIEWPORT2 lpDirect3DViewport2, LPDIRECT3DVIEWPORT2 *lplpDirect3DViewport2, DWORD dwFlags)
  EnumTextureFormats            stdmethod(THIS, LPD3DENUMTEXTUREFORMATSCALLBACK lpd3dEnumTextureProc, LPVOID lpArg)
  BeginScene                    stdmethod(THIS)
  EndScene                      stdmethod(THIS)
  GetDirect3D                   stdmethod(THIS, LPDIRECT3D2 *lplpD3D2)
  SetCurrentViewport            stdmethod(THIS, LPDIRECT3DVIEWPORT2 lpd3dViewport2)
  GetCurrentViewport            stdmethod(THIS, LPDIRECT3DVIEWPORT2 *lplpd3dViewport2)
  SetRenderTarget               stdmethod(THIS, LPDIRECTDRAWSURFACE lpNewRenderTarget, DWORD dwFlags)
  GetRenderTarget               stdmethod(THIS, LPDIRECTDRAWSURFACE *lplpRenderTarget)
  Begin                         stdmethod(THIS, D3DPRIMITIVETYPE d3dpt, D3DVERTEXTYPE d3dvt, DWORD dwFlags)
  BeginIndexed                  stdmethod(THIS, D3DPRIMITIVETYPE dptPrimitiveType, D3DVERTEXTYPE dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags)
  Vertex                        stdmethod(THIS, LPVOID lpVertexType)
  Index                         stdmethod(THIS, WORD wVertexIndex)
  End                           stdmethod(THIS, DWORD dwFlags)
  GetRenderState                stdmethod(THIS, D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState)
  SetRenderState                stdmethod(THIS, D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState)
  GetLightState                 stdmethod(THIS, D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState)
  SetLightState                 stdmethod(THIS, D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState)
  SetTransform                  stdmethod(THIS, D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
  GetTransform                  stdmethod(THIS, D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
  MultiplyTransform             stdmethod(THIS, D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
  DrawPrimitive                 stdmethod(THIS, D3DPRIMITIVETYPE dptPrimitiveType, D3DVERTEXTYPE dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags)
  DrawIndexedPrimitive          stdmethod(THIS, D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags)
  SetClipStatus                 stdmethod(THIS, LPD3DCLIPSTATUS lpD3DClipStatus)
  GetClipStatus                 stdmethod(THIS, LPD3DCLIPSTATUS lpD3DClipStatus)
endi

interface IDirect3DMaterial2 extends IUnknown
  GUID                          93281503-8CF8-11D0-89AB-00A0C9054129
  SetMaterial                   stdmethod(THIS, LPD3DMATERIAL lpMat)
  GetMaterial                   stdmethod(THIS, LPD3DMATERIAL lpMat)
  GetHandle                     stdmethod(THIS, LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DMATERIALHANDLE lpHandle)
endi

interface IDirect3DTexture2 extends IUnknown
  GUID                          93281502-8CF8-11D0-89AB-00A0C9054129
  GetHandle                     stdmethod(THIS, LPDIRECT3DDEVICE2 lpDirect3DDevice2, LPD3DTEXTUREHANDLE lpHandle)
  PaletteChanged                stdmethod(THIS, DWORD dwStart, DWORD dwCount)
  Load                          stdmethod(THIS, LPDIRECT3DTEXTURE2 lpD3DTexture2)
endi

interface IDirect3DViewport2 extends IDirect3DViewport
  GUID                          93281500-8CF8-11D0-89AB-00A0C9054129
  GetViewport2                  stdmethod(THIS, LPD3DVIEWPORT2 lpData)
  SetViewport2                  stdmethod(THIS, LPD3DVIEWPORT2 lpData)
endi

;==================================================================
; Direct3D retained mode
;==================================================================
CLSID_CDirect3DRMViewportInterpolator  equ 0DE9EAA1-3B84-11D0-9B6D-0000C0781BC3
CLSID_CDirect3DRMFrameInterpolator     equ 0DE9EAA2-3B84-11D0-9B6D-0000C0781BC3
CLSID_CDirect3DRMMeshInterpolator      equ 0DE9EAA3-3B84-11D0-9B6D-0000C0781BC3
CLSID_CDirect3DRMLightInterpolator     equ 0DE9EAA6-3B84-11D0-9B6D-0000C0781BC3
CLSID_CDirect3DRMMaterialInterpolator  equ 0DE9EAA7-3B84-11D0-9B6D-0000C0781BC3
CLSID_CDirect3DRMTextureInterpolator   equ 0DE9EAA8-3B84-11D0-9B6D-0000C0781BC3
CLSID_CDirect3DRMProgressiveMesh       equ 4516EC40-8F20-11D0-9B6D-0000C0781BC3

interface IDirect3DRM2 extends IUnknown
  GUID                          4516ECC8-8F20-11D0-9B6D-0000C0781BC3
  CreateObject                  stdmethod(THIS, REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv)
  CreateFrame                   stdmethod(THIS, LPDIRECT3DRMFRAME lpD3DRMFrame, LPDIRECT3DRMFRAME* lplpD3DRMFrame)
  CreateMesh                    stdmethod(THIS, LPDIRECT3DRMMESH* lplpD3DRMMesh)
  CreateMeshBuilder             stdmethod(THIS, LPDIRECT3DRMMESHBUILDER* lplpD3DRMMeshBuilder)
  CreateFace                    stdmethod(THIS, LPDIRECT3DRMFACE * lplpd3drmFace)
  CreateAnimation               stdmethod(THIS, LPDIRECT3DRMANIMATION * lplpD3DRMAnimation)
  CreateAnimationSet            stdmethod(THIS, LPDIRECT3DRMANIMATIONSET * lplpD3DRMAnimationSet)
  CreateTexture                 stdmethod(THIS, LPD3DRMIMAGE lpImage, LPDIRECT3DRMTEXTURE2* lplpD3DRMTexture)
  CreateLight                   stdmethod(THIS, D3DRMLIGHTTYPE d3drmltLightType, D3DCOLOR cColor, LPDIRECT3DRMLIGHT* lplpD3DRMLight)
  CreateLightRGB                stdmethod(THIS, D3DRMLIGHTTYPE ltLightType, D3DVALUE vRed, D3DVALUE vGreen, D3DVALUE vBlue, LPDIRECT3DRMLIGHT* lplpD3DRMLight)
  CreateMaterial                stdmethod(THIS, D3DVALUE vPower, LPDIRECT3DRMMATERIAL * lplpD3DRMMaterial)
  CreateDevice                  stdmethod(THIS, DWORD dwWidth, DWORD dwHeight, LPDIRECT3DRMDEVICE* lplpD3DRMDevice)
  CreateDeviceFromSurface       stdmethod(THIS, LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE2 * lplpD3DRMDevice)
  CreateDeviceFromD3D           stdmethod(THIS, LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev, LPDIRECT3DRMDEVICE2 * lplpD3DRMDevice)
  CreateDeviceFromClipper       stdmethod(THIS, LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height, LPDIRECT3DRMDEVICE2 * lplpD3DRMDevice)
  CreateTextureFromSurface      stdmethod(THIS, LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE2 * lplpD3DRMTexture)
  CreateShadow                  stdmethod(THIS, LPDIRECT3DRMVISUAL lpVisual, LPDIRECT3DRMLIGHT lpLight, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, LPDIRECT3DRMVISUAL * lplpShadow)
  CreateViewport                stdmethod(THIS, LPDIRECT3DRMDEVICE2 lpDev, LPDIRECT3DRMFRAME lpCamera, DWORD dwXPos, DWORD dwYPos, DWORD dwWidth, DWORD dwHeight, LPDIRECT3DRMVIEWPORT* lplpD3DRMViewport)
  CreateWrap                    stdmethod(THIS, D3DRMWRAPTYPE type, LPDIRECT3DRMFRAME lpRef, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv, LPDIRECT3DRMWRAP* lplpD3DRMWrap)
  CreateUserVisual              stdmethod(THIS, D3DRMUSERVISUALCALLBACK fn, LPVOID  lpArg, LPDIRECT3DRMUSERVISUAL * lplpD3DRMUV)
  LoadTexture                   stdmethod(THIS, const char * lpFileName, LPDIRECT3DRMTEXTURE2* lplpD3DRMTexture)
  LoadTextureFromResource       stdmethod(THIS, HMODULE hModule, LPCTSTR strName, LPCTSTR strType, LPDIRECT3DRMTEXTURE2 * lplpD3DRMTexture)
  SetSearchPath                 stdmethod(THIS, LPCSTR lpPath)
  AddSearchPath                 stdmethod(THIS, LPCSTR lpPath)
  GetSearchPath                 stdmethod(THIS, DWORD * lpdwSize, LPSTR lpszPath)
  SetDefaultTextureColors       stdmethod(THIS, DWORD dwColors)
  SetDefaultTextureShades       stdmethod(THIS, DWORD dwShades)
  GetDevices                    stdmethod(THIS, LPDIRECT3DRMDEVICEARRAY* lplpDevArray)
  GetNamedObject                stdmethod(THIS, const char * lpName, LPDIRECT3DRMOBJECT* lplpD3DRMObject)
  EnumerateObjects              stdmethod(THIS, D3DRMOBJECTCALLBACK func, LPVOID lpArg)
  Load                          stdmethod(THIS, LPVOID lpvObjSource, LPVOID lpvObjID, LPIID * lplpGUIDs, DWORD dwcGUIDs, D3DRMLOADOPTIONS d3drmLOFlags, D3DRMLOADCALLBACK d3drmLoadProc, LPVOID lpArgLP, D3DRMLOADTEXTURECALLBACK d3drmLoadTextureProc, LPVOID lpArgLTP, LPDIRECT3DRMFRAME lpParentFrame)
  Tick                          stdmethod(THIS, D3DVALUE d3dvalTick)
  CreateProgressiveMesh         stdmethod(THIS, LPDIRECT3DRMPROGRESSIVEMESH* lplpD3DRMProgressiveMesh)
endi

interface IDirect3DRMDevice2 extends IDirect3DRMDevice
  GUID                          4516EC78-8F20-11D0-9B6D-0000C0781BC3
  InitFromD3D2                  stdmethod(THIS, LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DIMDev)
  InitFromSurface               stdmethod(THIS, LPGUID lpGUID, LPDIRECTDRAW lpDD, LPDIRECTDRAWSURFACE lpDDSBack)
  SetRenderMode                 stdmethod(THIS, DWORD dwFlags)
  GetRenderMode                 stdmethod(THIS, DWORD dwFlags)
  GetDirect3DDevice2            stdmethod(THIS, LPDIRECT3DDEVICE2 * lplpD3DDevice)
endi

interface IDirect3DRMFrame2 extends IDirect3DRMFrame
  GUID                          C3DFBD60-3988-11D0-9EC2-0000C0291AC3
  AddMoveCallback2              stdmethod(THIS, D3DRMFRAME2MOVECALLBACK d3drmFMC, VOID * lpArg, DWORD dwFlags)
  GetBox                        stdmethod(THIS, D3DRMBOX * lpD3DRMBox)
  GetBoxEnable                  stdmethod(THIS)
  GetAxes                       stdmethod(THIS, LPD3DVECTOR dir, LPD3DVECTOR up)
  GetMaterial                   stdmethod(THIS, LPDIRECT3DRMMATERIAL *lplpMaterial)
  GetInheritAxes                stdmethod(THIS)
  GetHierarchyBox               stdmethod(THIS, D3DRMBOX * lpD3DRMBox)
  SetBox                        stdmethod(THIS, D3DRMBOX * lpD3DRMBox)
  SetBoxEnable                  stdmethod(THIS, BOOL bEnableFlag)
  SetAxes                       stdmethod(THIS, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz)
  SetInheritAxes                stdmethod(THIS, BOOL inherit_from_parent)
  SetMaterial                   stdmethod(THIS, LPDIRECT3DRMMATERIAL *lplpMaterial)
  SetQuaternion                 stdmethod(THIS, LPDIRECT3DRMFRAME2 lpRef, D3DRMQUATERNION *quat)
  RayPick                       stdmethod(THIS, LPDIRECT3DRMFRAME lpRefFrame, LPD3DRMRAY ray, DWORD dwFlags, LPD3DRMPICKED2ARRAY* lplpPicked2Array)
  Save                          stdmethod(THIS, LPCSTR lpFilename, D3DRMXOFFORMAT d3dFormat, D3DRMSAVEOPTIONS d3dSaveFlags)
endi

interface IDirect3DRMProgressiveMesh extends IDirect3DRMVisual
  GUID                          4516EC79-8F20-11D0-9B6D-0000C0781BC3
  Load                          stdmethod(THIS, LPVOID lpSource, LPVOID lpObjID, D3DRMLOADOPTIONS dloLoadflags, D3DRMLOADTEXTURECALLBACK lpCallback, LPVOID lpArg)
  GetLoadStatus                 stdmethod(THIS, LPD3DRMPMESHLOADSTATUS lpStatus)
  SetMinRenderDetail            stdmethod(THIS, D3DVALUE dvCount)
  Abort                         stdmethod(THIS, DWORD dwFlags)
  GetFaceDetail                 stdmethod(THIS, LPDWORD lpdwCount)
  GetVertexDetail               stdmethod(THIS, LPDWORD lpdwCount)
  SetFaceDetail                 stdmethod(THIS, LPDWORD lpdwCount)
  SetVertexDetail               stdmethod(THIS, DWORD dwCount)
  GetFaceDetailRange            stdmethod(THIS, LPDWORD lpdwMinFaces, LPDWORD lpdwMaxFaces)
  GetVertexDetailRange          stdmethod(THIS, LPDWORD lpdwMinVertices, LPDWORD lpdwMaxVertices)
  GetDetail                     stdmethod(THIS, LPD3DVALUE lpdvVal)
  SetDetail                     stdmethod(THIS, D3DVALUE dvVal)
  RegisterEvents                stdmethod(THIS, HANDLE hEvent, DWORD dwFlags, DWORD dwReserved)
  CreateMesh                    stdmethod(THIS, LPDIRECT3DRMMESH* lplpD3DRMMesh)
  Duplicate                     stdmethod(THIS, LPDIRECT3DRMPROGRESSIVEMESH* lplpD3DRMPMesh)
  GetBox                        stdmethod(THIS, D3DRMBOX * lpD3DRMBox)
  SetQuality                    stdmethod(THIS, D3DRMRENDERQUALITY quality)
  GetQuality                    stdmethod(THIS, LPD3DRMRENDERQUALITY lpQuality)
endi

interface IDirect3DRMMeshBuilder2 extends IDirect3DRMMeshBuilder
  GUID                          4516EC77-8F20-11D0-9B6D-0000C0781BC3
  GenerateNormals2              stdmethod(THIS, D3DVALUE dvCreaseAngle, DWORD dwFlags)
  GetFace                       stdmethod(THIS, DWORD dwIndex, LPDIRECT3DRMFACE* lplpD3DRMFace)
endi

interface IDirect3DRMTexture2 extends IDirect3DRMTexture
  GUID                          120F30C0-1629-11D0-941C-0080C80CFA7B
  InitFromImage                 stdmethod(THIS, LPD3DRMIMAGE lpImage)
  InitFromResource2             stdmethod(THIS, HModule hModule, LPCTSTR strName, LPCTSTR strType)
  GenerateMIPMap                stdmethod(THIS, DWORD dwFlags)
endi

interface IDirect3DRMObjectArray extends IDirect3DRMArray
  GUID                          242F6BC2-3849-11D0-9B6D-0000C0781BC3
  GetElement                    stdmethod(THIS, DWORD index, LPDIRECT3DRMOBJECT * lplpD3DRMObject)
endi

interface IDirect3DRMPicked2Array extends IDirect3DRMArray
  GUID                          4516EC7B-8F20-11D0-9B6D-0000C0781BC3
  GetPick                       stdmethod(THIS, DWORD index, LPDIRECT3DRMVISUAL * lplpVisual, LPDIRECT3DRMFRAMEARRAY * lplpFrameArray, LPD3DRMPICKDESC2 lpD3DRMPickDesc2)
endi

interface IDirect3DRMInterpolator extends IDirect3DRMObject
  GUID                          242F6BC1-3849-11D0-9B6D-0000C0781BC3
  AttachObject                  stdmethod(THIS, LPDIRECT3DRMOBJECT lpD3DRMObject)
  GetAttachedObjects            stdmethod(THIS, LPDIRECT3DRMOBJECTARRAY lpD3DRMObjectArray)
  DetachObject                  stdmethod(THIS, LPDIRECT3DRMOBJECT lpD3DRMObject)
  SetIndex                      stdmethod(THIS, D3DVALUE d3dVal)
  GetIndex                      stdmethod(THIS)
  Interpolate                   stdmethod(THIS, D3DVALUE d3dVal, LPDIRECT3DRMOBJECT lpD3DRMObject, D3DRMINTERPOLATIONOPTIONS d3drmInterpFlags)
endi

;==================================================================
; DirectPlay
;==================================================================
CLSID_DirectPlay            equ D1EB6D20-8923-11D0-9D97-00A0C90A43CB

DPSPGUID_IPX                equ 685BC400-9D2C-11CF-A9CD-00AA006886E3
DPSPGUID_TCPIP              equ 36E95EE0-8577-11CF-960C-0080C7534E82
DPSPGUID_SERIAL             equ 0F1D6860-88D9-11CF-9C4E-00A0C905425E
DPSPGUID_MODEM              equ 44EAA760-CB68-11CF-9C4E-00A0C905425E


interface IDirectPlay3 extends IDirectPlay2 ; unicode variant of IDirectPlay3
  GUID                          133EFE40-32DC-11D0-9CFB-00A0C90A43CB
  AddGroupToGroup               stdmethod(THIS, DPID idParentGroup, DPID idGroup)
  CreateGroupInGroup            stdmethod(THIS, DPID idParentGroup, LPDPID lpidGroup, LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags)
  DeleteGroupFromGroup          stdmethod(THIS, DPID idParentGroup, DPID idGroup)
  EnumConnections               stdmethod(THIS, LPCGUID lpguidApplication, LPDPENUMCONNECTIONSCALLBACK lpEnumCallback, LPVOID lpContext, DWORD dwFlags)
  EnumGroupsInGroup             stdmethod(THIS, DPID idGroup, LPGUID lpguidInstance, LPDPENUMPLAYERSCALLBACK2 lpEnumCallback, LPVOID lpContext, DWORD dwFlags)
  GetGroupConnectionSettings    stdmethod(THIS, DWORD dwFlags, DPID idGroup, LPVOID lpData, LPDWORD lpdwDataSize)
  InitializeConnection          stdmethod(THIS, LPVOID lpConnection, DWORD dwFlags)
  SecureOpen                    stdmethod(THIS, LPCDPSESSIONDESC2 lpsd, DWORD dwFlags, LPCDPSECURITYDESC lpSecurity, LPCDPCREDENTIALS lpCredentials)
  SendChatMessage               stdmethod(THIS, DPID idFrom, DPID idTo, DWORD dwFlags, LPDPCHAT lpChatMessage)
  SetGroupConnectionSettings    stdmethod(THIS, DWORD dwFlags, DPID idGroup, LPDPLCONNECTION lpConnection)
  StartSession                  stdmethod(THIS, DWORD dwFlags, DPID idGroup)
  GetGroupFlags                 stdmethod(THIS, DPID idGroup, LPDWORD lpdwFlags)
  GetGroupParent                stdmethod(THIS, DPID idGroup, LPDPID lpidParent)
  GetPlayerAccount              stdmethod(THIS, DPID idPlayer, DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize)
  GetPlayerFlags                stdmethod(THIS, DPID idPlayer, LPDWORD lpdwFlags)
endi

interface IDirectPlay3A extends IDirectPlay3 ; ASCII variant of IDirectPlay3
  GUID                          133EFE41-32DC-11D0-9CFB-00A0C90A43CB
endi

CLSID_DirectPlayLobby           equ 2FE8F810-B2A5-11D0-A787-0000F803ABFC

DPLPROPERTY_MessagesSupported   equ 762CCDA1-D916-11D0-BA39-00C04FD7ED67
DPLPROPERTY_LobbyGuid           equ F56920A0-D218-11D0-BA39-00C04FD7ED67
DPLPROPERTY_PlayerGuid          equ B4319322-D20D-11D0-BA39-00C04FD7ED67
DPLPROPERTY_PlayerScore         equ 48784000-D219-11D0-BA39-00C04FD7ED67

DPAID_TotalSize                 equ 1318F560-912C-11d0-9DAA-00A0C90A43CB
DPAID_ServiceProvider           equ 07D916C0-E0AF-11cf-9C4E-00A0C905425E
DPAID_LobbyProvider             equ 59B95640-9667-11d0-A77D-0000F803ABFC
DPAID_Phone                     equ 78EC89A0-E0AF-11cf-9C4E-00A0C905425E
DPAID_PhoneW                    equ BA5A7A70-9DBF-11d0-9CC1-00A0C905425E
DPAID_Modem                     equ F6DCC200-A2FE-11d0-9C4F-00A0C905425E
DPAID_ModemW                    equ 01FD92E0-A2FF-11d0-9C4F-00A0C905425E
DPAID_INet                      equ C4A54DA0-E0AF-11cf-9C4E-00A0C905425E
DPAID_INetW                     equ E63232A0-9DBF-11d0-9CC1-00A0C905425E
DPAID_ComPort                   equ F2F0CE00-E0AF-11cf-9C4E-00A0C905425E

interface IDirectPlayLobby2 extends IDirectPlayLobby ; unicode variant of IDirectPlayLobby2
  GUID                          0194C220-A303-11d0-9C4F-00A0C905425E
  CreateCompoundAddress         stdmethod(THIS, LPDPCOMPOUNDADDRESSELEMENT lpElements, DWORD dwElementCount, LPVOID lpAddress, LPDWORD lpdwAddressSize)
endi

interface IDirectPlayLobby2A extends IDirectPlayLobby2 ; ASCII variant of IDirectPlayLobby2
  GUID                          1BB4AF80-A303-11D0-9C4F-00A0C905425E
endi

;==================================================================
; DirectSound
;==================================================================
CLSID_DirectSound               equ 47D4D946-62E8-11CF-93BC-444553540000
CLSID_DirectSoundCapture        equ B0210780-89CD-11D0-AF08-00A0C925CD16

interface IDirectSoundCapture extends IUnknown
  GUID                          B0210781-89CD-11D0-AF08-00A0C925CD16
  CreateCaptureBuffer           stdmethod(THIS, LPDSCBUFFERDESC lpDSCBufferDesc, LPLPDIRECTSOUNDCAPTUREBUFFER lplpDirectSoundCaptureBuffer, LPUNKNOWN pUnkOuter)
  GetCaps                       stdmethod(THIS, LPDSCCAPS lpDSCCaps)
  Initialize                    stdmethod(THIS, LPGUID lpGuid)
endi

interface IDirectSoundCaptureBuffer extends IUnknown
  GUID                          B0210782-89CD-11D0-AF08-00A0C925CD16
  GetCaps                       stdmethod(THIS, LPDSCBCAPS lpDSCBCaps)
  GetCurrentPosition            stdmethod(THIS, LPDWORD lpdwCapturePosition, LPDWORD lpdwReadPosition)
  GetFormat                     stdmethod(THIS, LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten)
  GetStatus                     stdmethod(THIS, DWORD *lpdwStatus)
  Initialize                    stdmethod(THIS, LPDIRECTSOUNDCAPTURE lpDirectSoundCapture, LPCDSBUFFERDESC lpcDSBufferDesc)
  Lock                          stdmethod(THIS, DWORD dwReadCursor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags)
  Start                         stdmethod(THIS, DWORD dwFlags)
  Stop                          stdmethod(THIS)
  Unlock                        stdmethod(THIS, LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2)
endi

interface IDirectSoundNotify extends IUnknown
  GUID                          B0210783-89CD-11D0-AF08-00A0C925CD16
  SetNotificationPositions      stdmethod(THIS, DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies)
endi

interface IKsPropertySet extends IUnknown
  GUID                          31EFAC30-515C-11D0-A9AA-00AA0061BE93
  Get                           stdmethod(THIS, REFGUID PropertySetId, ULONG PropertyId, PVOID pPropertyParams, ULONG cbPropertyParams, PVOID pPropertyData, ULONG cbPropertyData, PULONG pcbReturnedData)
  Set                           stdmethod(THIS, REFGUID PropertySetId, ULONG PropertyId, PVOID pPropertyParams, ULONG cbPropertyParams, PVOID pPropertyData, ULONG cbPropertyData)
  QuerySupport                  stdmethod(THIS, REFGUID PropertySetId, ULONG PropertyId, PULONG pSupport)
endi

;==================================================================
; DirectInput
;==================================================================
GUID_RzAxis                     equ A36D02E3-C9F3-11CF-BFC7-444553540000 ; GUID_RAxis share same GUID
GUID_RxAxis                     equ A36D02F4-C9F3-11CF-BFC7-444553540000
GUID_RyAxis                     equ A36D02F5-C9F3-11CF-BFC7-444553540000
GUID_Slider                     equ A36D02E4-C9F3-11CF-BFC7-444553540000 ; GUID_UAxis share same GUID

GUID_ConstantForce              equ 13541C20-8E33-11D0-9AD0-00A0C9A06E35
GUID_RampForce                  equ 13541C21-8E33-11D0-9AD0-00A0C9A06E35
GUID_Square                     equ 13541C22-8E33-11D0-9AD0-00A0C9A06E35
GUID_Sine                       equ 13541C23-8E33-11D0-9AD0-00A0C9A06E35
GUID_Triangle                   equ 13541C24-8E33-11D0-9AD0-00A0C9A06E35
GUID_SawtoothUp                 equ 13541C25-8E33-11D0-9AD0-00A0C9A06E35
GUID_SawtoothDown               equ 13541C26-8E33-11D0-9AD0-00A0C9A06E35
GUID_Spring                     equ 13541C27-8E33-11D0-9AD0-00A0C9A06E35
GUID_Damper                     equ 13541C28-8E33-11D0-9AD0-00A0C9A06E35
GUID_Inertia                    equ 13541C29-8E33-11D0-9AD0-00A0C9A06E35
GUID_Friction                   equ 13541C2A-8E33-11D0-9AD0-00A0C9A06E35
GUID_CustomForce                equ 13541C2B-8E33-11D0-9AD0-00A0C9A06E35

interface IDirectInput2A extends IDirectInputA ; ASCII variant of IDirectInput2
  GUID                          5944E662-AA8A-11CF-BFC7-444553540000
  FindDevice                    stdmethod(THIS, REFGUID rguidClass, LPCTSTR ptszName, LPGUID pguidInstance)
endi

interface IDirectInput2W extends IDirectInput2A ; unicode variant of IDirectInput2
  GUID                          5944E663-AA8A-11CF-BFC7-444553540000
endi

interface IDirectInputDevice2A extends IDirectInputDeviceA ; ASCII variant of IDirectInputDevice2
  GUID                          5944E682-C92E-11CF-BFC7-444553540000
  CreateEffect                  stdmethod(THIS, REFGUID rguid, LPCDIEFFECT lpeff, LPDIRECTINPUTEFFECT * ppdeff, LPUNKNOWN punkOuter)
  EnumEffects                   stdmethod(THIS, LPDIENUMEFFECTSCALLBACK lpCallback, LPVOID pvRef, DWORD dwEffType)
  GetEffectInfo                 stdmethod(THIS, LPDIEFFECTINFO pdei, REFGUID rguid)
  GetForceFeedbackState         stdmethod(THIS, LPDWORD pdwOut)
  SendForceFeedbackCommand      stdmethod(THIS, DWORD dwFlags)
  EnumCreatedEffectObjects      stdmethod(THIS, LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl)
  Escape                        stdmethod(THIS, LPDIEFFESCAPE pesc)
  Poll                          stdmethod(THIS)
  SendDeviceData                stdmethod(THIS, DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl)
endi

interface IDirectInputDevice2W extends IDirectInputDevice2A ; unicode variant of IDirectInputDevice2
  GUID                          5944E683-C92E-11CF-BFC7-444553540000
endi

interface IDirectInputEffect extends IUnknown
  GUID                          E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35
  Initialize                    stdmethod(THIS, HINSTANCE hinst, DWORD dwVersion, REFGUID rguid)
  GetEffectGuid                 stdmethod(THIS, LPGUID pguid)
  GetParameters                 stdmethod(THIS, LPDIEFFECT peff, DWORD dwFlags)
  SetParameters                 stdmethod(THIS, LPCDIEFFECT peff, DWORD dwFlags)
  Start                         stdmethod(THIS, DWORD dwIterations, DWORD dwFlags)
  Stop                          stdmethod(THIS)
  GetEffectStatus               stdmethod(THIS, LPDWORD pdwFlags)
  Download                      stdmethod(THIS)
  Unload                        stdmethod(THIS)
  Escape                        stdmethod(THIS, LPDIEFFESCAPE pesc)
endi
DIRECTX6.INC - is in progress.
Problem is historical hole in dx4: what was actualy introduced in dx4, not in dx5?

Syntax of interfaces dosn`t strange - it is not for C-langueges family at all.
It is for assembly. planned set of similar examples about directx from dx1 up to dx12 (lib supported, not win10 built realization like): init scene, drawing triangle, drawing cube, drawing textired cube, ...
at current moment only couple of examples: dx8,dx9,ogl1 - https://sourceforge.net/projects/includ ... /PSEUDO3D/
(I know in dx1 there is no d3d - so 3d will be emulated)
(I`m going to avoid using of retained mode or X extensions specific functions instead of that inline their functional - so everything should be runned on win95 up to win10)

interfaces that discussed in this topic planned to be placed at:
https://sourceforge.net/projects/includ ... S/DIRECTX/

sometime before I wished FTP access to get DirectX 4 SDK.
But in case of that SDK I only interested in its 'SDK/includes' or 'SDK/inc' and/or in Help topic of it "What's New in DirectX 4.0?"
I will be very appreciated for screenshot or text copy of its contents.
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

oscareczek
User avatar
Posts: 700
Joined: Fri Apr 25, 2014 5:37 pm
Location: Poland

Re: Direct X antology

Post by oscareczek »

If only there was a site to see what happened to DX4… oh wait, there is https://en.wikipedia.org/wiki/DirectX#Version_historyhttps://devblogs.microsoft.com/oldnewthing/?p=40963

ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Re: Direct X antology

Post by ProMiNick »

oscareczek, thou got FTP access.
Thou could provide answer on help section of dx4 release "What's New in DirectX 4.0?", or based on includes in that SDK release.
Isn`t software should be usefull for humankind? Or thou prefer it will be archived without of use.
is Betaarchive is like a bookshelf for old junk? Why don`t take breath to old concepts?
(by the way Wikipedia itself isn`t autoritated source - Wikipedia stuff always say this)
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

oscareczek
User avatar
Posts: 700
Joined: Fri Apr 25, 2014 5:37 pm
Location: Poland

Re: Direct X antology

Post by oscareczek »

Your argument is 100% invalid since I posted two links, 2nd of which is of a Microsoft employee.
No, I can't get you this because:
a) it probably doesn't exist
b) you can't beg for stuff from FTP without FTP Access

ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Re: Direct X antology

Post by ProMiNick »

What dosn`t exists?
Image
there are textual information I mean content of help file for example. Its screenshot is not a part of SDK.
So thou will not make nothing terrible if thou (or somebody) share screenshot as proof.

words of Microsoft employee sounds not enought convincingly when I post proof of DX4SDK existence.
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

oscareczek
User avatar
Posts: 700
Joined: Fri Apr 25, 2014 5:37 pm
Location: Poland

Re: Direct X antology

Post by oscareczek »

It's the 2nd time in this very short topic when you simply don't want to read the stuff properly. Do you see "(beta)" in this thing? Do you know that not all the things that have beta versions get actually released? Can you deal with the fact Microsoft skipped DX4 because nobody wanted it and instead they released DX5 with all the features that were supposed to be released with 4?
And yes, words of Raymond Chen, who has been a part of Windows development team (and DirectX is a part of it) since at least Chicago days, is mentioned multiple times in the recent XP source leak and is considered a guru in terms of how Windows work, are objectively convincing, no matter what you say.
And no, I won't show you anything that's on FTP, just get an access on your own. It's really not that hard, you can get a random game for $5 on eBay.
PS: stop saying "thou," it's not 17th century.

ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Re: Direct X antology

Post by ProMiNick »

In Windows CE 3.0 by default built in DX 4.0? Isn`t it?
If it was only beta how it was built in DX of one of OSes?
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

oscareczek
User avatar
Posts: 700
Joined: Fri Apr 25, 2014 5:37 pm
Location: Poland

Re: Direct X antology

Post by oscareczek »

https://www.microsoft.com/en-us/downloa ... x?id=41197 → WindowsCE3.0_DocumentationArchive.chm → "What's New in Windows CE 3.0"
Image

ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Re: Direct X antology

Post by ProMiNick »

"In addition to the graphics and multimedia capabilities that are built into Windows CE" - DirectX 4 is currently built into Windows CE 3.0 and works out of the box without needance in add-ons.
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

oscareczek
User avatar
Posts: 700
Joined: Fri Apr 25, 2014 5:37 pm
Location: Poland

Re: Direct X antology

Post by oscareczek »

I checked 3 pages of "DirectX 4" Windows CE in Google and I found no source of what you're saying, which is quite obviously a result of DirectX 4 never being released on any platform. Stop already.

ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Re: Direct X antology

Post by ProMiNick »

Best proof of existance of something is working code.
At current stage I cant produce that code...
And I don`t have WindowsCE 3.0 and environment for launching that OS (only wince 5,6 and emulator of them) to execute such code.
But unexistance of something in named imports won`t mean unexistance, ordinal imports must be checked too
enumerate all ordinals and passing to them params NULL, lpDD, NULL, and if success test that returned an interface - try to release it. If success - at least DDraw is there. than try to query Direct3D interfaces. algorithm is something like that.

There is CoCreateInstance - alternative way is try to launch it with param of one of DirectX interfaces.
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

oscareczek
User avatar
Posts: 700
Joined: Fri Apr 25, 2014 5:37 pm
Location: Poland

Re: Direct X antology

Post by oscareczek »

I have no idea what you're talking about starting from "But", sounds like a bunch of buzz words glued together. Anyway, this article called Microsoft Introduces DirectX for Windows CE explicitly (combined with a title) tells that DirectX support was introduced for Windows CE with Platform Adaptation Kit. Version 1.0 is available on FTP, it doesn't tell what version of DirectX it is, but it isn't that important, because on TechEd 2000, there was a talk about it. There's a PowerPoint presentation available here http://archive.adaic.com/ase/ase02_01/b ... /8-307.ppt (I made a Wayback Machine copy as well) and guess what slide 11 says:
Image
It's a bunch of components from DirectX 6.1, no sight of 4 anywhere. Slide 45 references http://www.microsoft.com/windows/embedded/ce/guide/features/directx.asp and the first snapshot about version 1.1 ("expected to ship within the next four to six weeks" after 1.0 according to 1st link) says it's, of course, based on DX 6.1.
You got the information about CE 3.0 shipping with any version of DirectX absolutely from nowhere and you didn't provide any source confirming what you say, yet you keep saying it's a case with a version that never reached RTM.

yourepicfailure
User avatar
Donator
Posts: 1317
Joined: Mon Jul 23, 2012 9:40 pm
Location: Lufthansa DC-10

Re: Direct X antology

Post by yourepicfailure »

Microsoft (and other software companies) are known for hyping up a software, only to cancel it later. This includes releasing beta support software to get venders ready for the final release.
Such as DirectX 4.

Windows CE did not contain complete DirectX. Nor was it planned to. Microsoft gave it a minimalist implementation to support certain games that rely on DirectDraw. Obviously during the CE3 era, devices did NOT have remotely any capability to perform even primitive Direct3D or even complete DirectDraw.
It was a fork over, heavily cut-back, tweaked form to accomodate low-powered and low-spec PocketPC to enable basic games to be designed and played to increase its software ecosystem as well as provide a means for better portability.
This is similar to the forking of MFC to MFCE. MFCE supports many, but not all, of MFC in the era it was forked from. While still providing some way to port over common and simple MFC programs with minimal necessary change, to the CE platform.

We primarily write in Modern English here. Not Elizabethan English. Not backseating, just commenting.

EDIT: Perhaps I should include this. What goes on in the conventional PC land stays in the conventional PC land. What goes on in PocketPC/CE land stays in PocketPC/CE land. I used conventional PC designation as obviously there is 9x and NT in play.
DO NOT meld PocketPC/CE and Conventional PC. They do not translate into each other. The scope of your posts is oriented around Conventional PC DirectX. It does not matter if DirectX 4 was explicitly made in PocketPC/CE. Because it was not released for the Conventional PC.
You are trying to prove the completion of DirectX 4. It was not completed. Nor was it completed in a sense for CE. PocketPC/CE DirectX is not Conventional PC DirectX. Yes, there is no doubt it was being developed. But it was not released.

Again, do not meld PocketPC/CE with Conventional PC. Anything that goes into PocketPC/CE is to be viewed and stated as completely separated from, and somewat unrelated to, what goes into Conventional PC unless it was stated by a reputable source that the component(s) were concurrently developed for a single end result. Do not use PocketPC/CE as a reference for anything that goes on in Conventional PC land.
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Image
You will never tear me from the grasp of the Pentium M!

ProMiNick
Posts: 39
Joined: Thu Nov 14, 2019 9:36 am

Re: Direct X antology

Post by ProMiNick »

DIRECTX7.INC:

Code: Select all

define _DIRECTX7_H
include 'directx6.inc'

;==================================================================
; DirectDraw
;==================================================================
interface IDirectDraw7 extends IDirectDraw4
  GUID                          15E65EC0-3B9C-11D2-B92F-00609797EA5B
  StartModeTest                 stdmethod(THIS, LPSIZE lpModesToTest, DWORD dwNumEntries, DirectDrawStartModeTestFlags dwFlags)
  EvaluateMode                  stdmethod(THIS, DirectDrawEvaluateModeFlags dwFlags, DWORD *pSecondsUntilTimeout)
endi

interface IDirectDrawSurface7 extends IDirectDrawSurface4
  GUID                          06675A80-3B9B-11D2-B92F-00609797EA5B
  SetPriority                   stdmethod(THIS, DWORD dwPriority)
  GetPriority                   stdmethod(THIS, LPDWORD lpdwPriority)
  SetLOD                        stdmethod(THIS, DWORD dwMaxLOD)
  GetLOD                        stdmethod(THIS, LPDWORD lpdwMaxLOD)
endi

;==================================================================
; Direct3D
;==================================================================
IID_IDirect3DTnLHalDevice  equ  F5049E78-4861-11D2-A407-00A0C90629A8

interface IID_IDirect3D7 extends IUnknown
  GUID                          F5049E77-4861-11D2-A407-00A0C90629A8
  EnumDevices                   stdmethod(THIS, LPD3DENUMDEVICESCALLBACK7 lpEnumDevicesCallback, LPVOID lpUserArg)
  CreateDevice                  stdmethod(THIS, REFCLSID rclsid, LPDIRECTDRAWSURFACE7 lpDDS, LPDIRECT3DDEVICE7 *lplpD3DDevice)
  CreateVertexBuffer            stdmethod(THIS, LPD3DVERTEXBUFFERDESC lpD3DVertBufDesc, LPDIRECT3DVERTEXBUFFER7 *lplpD3DVertBuf, DWORD dwFlags)
  EnumZBufferFormats            stdmethod(THIS, REFCLSID riidDevice, LPD3DENUMPIXELFORMATSCALLBACK lpEnumCallback, LPVOID lpContext)
  EvictManagedTextures          stdmethod(THIS)
endi

interface IDirect3DDevice7 extends IUnknown
  GUID                          F5049E79-4861-11D2-A407-00A0C90629A8
  GetCaps                       stdmethod(THIS, LPD3DDEVICEDESC7 lpD3DDevDesc)
  EnumTextureFormats            stdmethod(THIS, LPD3DENUMPIXELFORMATSCALLBACK lpd3dEnumPixelProc, LPVOID lpArg)
  BeginScene                    stdmethod(THIS)
  EndScene                      stdmethod(THIS)
  GetDirect3D                   stdmethod(THIS, LPDIRECT3D7 *lplpD3D)
  SetRenderTarget               stdmethod(THIS, LPDIRECTDRAWSURFACE7 lpNewRenderTarget, DWORD dwFlags)
  GetRenderTarget               stdmethod(THIS, LPDIRECTDRAWSURFACE7 *lplpRenderTarget)
  Clear                         stdmethod(THIS, DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags, DWORD dwColor, D3DVALUE dvZ, DWORD dwStencil)
  SetTransform                  stdmethod(THIS, D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
  GetTransform                  stdmethod(THIS, D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
  SetViewport                   stdmethod(THIS, LPD3DVIEWPORT7 lpViewport)
  MultiplyTransform             stdmethod(THIS, D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
  GetViewport                   stdmethod(THIS, LPD3DVIEWPORT7 lpViewport)
  SetMaterial                   stdmethod(THIS, LPD3DMATERIAL7 lpMaterial)
  GetMaterial                   stdmethod(THIS, LPD3DMATERIAL7 lpMaterial)
  SetLight                      stdmethod(THIS, DWORD dwLightIndex, LPD3DLIGHT7 lpLight)
  GetLight                      stdmethod(THIS, DWORD dwLightIndex, LPD3DLIGHT7 lpLight)
  SetRenderState                stdmethod(THIS, D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState)
  GetRenderState                stdmethod(THIS, D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState)
  BeginStateBlock               stdmethod(THIS)
  EndStateBlock                 stdmethod(THIS, LPDWORD lpdwBlockHandle)
  PreLoad                       stdmethod(THIS, LPDIRECTDRAWSURFACE7 lpddsTexture)
  DrawPrimitive                 stdmethod(THIS, D3DPRIMITIVETYPE dptPrimitiveType, DWORD dwVertexTypeDesc, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags)
  DrawIndexedPrimitive          stdmethod(THIS, D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD dwVertexTypeDesc, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD lpwIndices, DWORD dwIndexCount, DWORD dwFlags)
  SetClipStatus                 stdmethod(THIS, LPD3DCLIPSTATUS lpD3DClipStatus)
  GetClipStatus                 stdmethod(THIS, LPD3DCLIPSTATUS lpD3DClipStatus)
  DrawPrimitiveStrided          stdmethod(THIS, D3DPRIMITIVETYPE dptPrimitiveType, DWORD dwVertexTypeDesc, LPD3DDRAWPRIMITIVESTRIDEDDATA lpVertexArray, DWORD dwVertexCount, DWORD dwFlags)
  DrawIndexedPrimitiveStrided   stdmethod(THIS, D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD dwVertexTypeDesc, LPD3DDRAWPRIMITIVESTRIDEDDATA lpVertexArray, DWORD dwVertexCount, LPWORD lpwIndices, DWORD dwIndexCount, DWORD dwFlags)
  DrawPrimitiveVB               stdmethod(THIS, D3DPRIMITIVETYPE d3dptPrimitiveType, LPDIRECT3DVERTEXBUFFER7 lpd3dVertexBuffer, DWORD dwStartVertex, DWORD dwNumVertices, DWORD dwFlags)
  DrawIndexedPrimitiveVB        stdmethod(THIS, D3DPRIMITIVETYPE d3dptPrimitiveType, LPDIRECT3DVERTEXBUFFER7 lpd3dVertexBuffer, DWORD dwStartVertex, DWORD dwNumVertices, LPWORD lpwIndices, DWORD dwIndexCount, DWORD dwFlags)
  ComputeSphereVisibility       stdmethod(THIS, LPD3DVECTOR lpCenters, LPD3DVALUE lpRadii, DWORD dwNumSpheres, DWORD dwFlags, LPDWORD lpdwReturnValues)
  GetTexture                    stdmethod(THIS, DWORD dwStage, LPDIRECTDRAWSURFACE7 * lplpTexture)
  SetTexture                    stdmethod(THIS, DWORD dwStage, LPDIRECTDRAWSURFACE7 lpTexture)
  GetTextureStageState          stdmethod(THIS, DWORD dwStage, D3DTEXTURESTAGESTATETYPE dwState, LPDWORD lpdwValue)
  SetTextureStageState          stdmethod(THIS, DWORD dwStage, D3DTEXTURESTAGESTATETYPE dwState, DWORD dwValue)
  ValidateDevice                stdmethod(THIS, LPDWORD lpdwPasses)
  ApplyStateBlock               stdmethod(THIS, DWORD dwBlockHandle)
  CaptureStateBlock             stdmethod(THIS, DWORD dwBlockHandle)
  DeleteStateBlock              stdmethod(THIS, DWORD dwBlockHandle)
  CreateStateBlock              stdmethod(THIS, D3DSTATEBLOCKTYPE d3dsbType, LPDWORD lpdwBlockHandle)
  Load                          stdmethod(THIS, LPDIRECTDRAWSURACE7 lpDestTex, LPPOINT lpDestPoint, LPDIRECTDRAWSURACE7 lpSrcTex, LPRECT lprcSrcRect, DWORD dwFlags)
  LightEnable                   stdmethod(THIS, DWORD dwLightIndex, BOOL bEnable)
  GetLightEnable                stdmethod(THIS, DWORD dwLightIndex, BOOL* pbEnable)
  SetClipPlane                  stdmethod(THIS, DWORD dwIndex, D3DVALUE* pPlaneEquation)
  GetClipPlane                  stdmethod(THIS, DWORD dwIndex, D3DVALUE* pPlaneEquation)
  GetInfo                       stdmethod(THIS, DWORD dwDevInfoID, LPVOID pDevInfoStruct, DWORD dwSize)
endi

interface IDirect3DVertexBuffer7 extends IUnknown
  GUID                          F5049E7D-4861-11D2-A407-00A0C90629A8
 \Lock                          stdmethod(THIS, DWORD dwFlags, LPVOID* lplpData, LPDWORD lpdwSize)
  Unlock                        stdmethod(THIS)
  ProcessVertices               stdmethod(THIS, DWORD dwVertexOp, DWORD dwDestIndex, DWORD dwCount, LPDIRECT3DVERTEXBUFFER7 lpSrcBuffer, DWORD dwSrcIndex, LPDIRECT3DDEVICE7 lpD3DDevice, DWORD dwFlags)
  GetVertexBufferDesc           stdmethod(THIS, LPD3DVERTEXBUFFERDESC lpVBDesc)
  Optimize                      stdmethod(THIS, LPDIRECT3DDEVICE7 lpD3DDevice, DWORD dwFlags)
  ProcessVerticesStrided        stdmethod(THIS, DWORD dwVertexOp, DWORD dwDestIndex, DWORD dwCount, LPD3DDRAWPRIMITIVESTRIDEDDATA lpVertexArray, DWORD dwSrcIndex, LPDIRECT3DDEVICE7 lpD3DDevice, DWORD dwFlags)
endi

;==================================================================
; Direct3DX utility library
;==================================================================

interface ID3DXContext extends IUnknown
  GUID                          9B74ED7A-BBEF-11d2-9F8E-0000F8080835
  GetDD                         stdmethod(THIS)
  GetD3D                        stdmethod(THIS)
  GetD3DDevice                  stdmethod(THIS)
  GetPrimary                    stdmethod(THIS)
  GetZBuffer                    stdmethod(THIS)
  GetBackBuffer                 stdmethod(THIS, DWORD dwWhich)
  GetWindow                     stdmethod(THIS)
  GetFocusWindow                stdmethod(THIS)
  GetDeviceIndex                stdmethod(THIS, LPDWORD pIndex, LPDWORD hwLevel)
  GetNumBackBuffers             stdmethod(THIS)
  GetNumBits                    stdmethod(THIS, LPDWORD colorBits, LPDWORD depthBits, LPDWORD alphaBits, LPDWORD stencilBits)
  GetBufferSize                 stdmethod(THIS, LPDWORD width, LPDWORD height)
  GetCreationFlags              stdmethod(THIS)
  GetRefreshRate                stdmethod(THIS)
  RestoreSurfaces               stdmethod(THIS)
  Resize                        stdmethod(THIS, DWORD width, DWORD height)
  UpdateFrame                   stdmethod(THIS, DWORD flags)
  DrawDebugText                 stdmethod(THIS, float topLeftX, float topLeftY, D3DCOLOR color, LPSTR pString)
  Clear                         stdmethod(THIS, DWORD ClearFlags)
  SetClearColor                 stdmethod(THIS, D3DCOLOR color)
  SetClearDepth                 stdmethod(THIS, float z)
  SetClearStencil               stdmethod(THIS, DWORD dwClearValue)
endi

interface ID3DXMatrixStack extends IUnknown
  GUID                          E3357330-CC5E-11D2-A434-00A0C90629A8
 \Pop                           stdmethod(THIS)
 \Push                          stdmethod(THIS)
  LoadIdentity                  stdmethod(THIS)
  LoadMatrix                    stdmethod(THIS, const D3DXMATRIX* pMat)
  MultMatrix                    stdmethod(THIS, const D3DXMATRIX* pMat)
  MultMatrixLocal               stdmethod(THIS, const D3DXMATRIX* pMat)
  RotateAxis                    stdmethod(THIS, const D3DXVECTOR3* pV, float angle)
  RotateAxisLocal               stdmethod(THIS, const D3DXVECTOR3* pV, float angle)
  RotateYawPitchRoll            stdmethod(THIS, float yaw, float pitch, float roll)
  RotateYawPitchRollLocal       stdmethod(THIS, float yaw, float pitch, float roll)
  Scale                         stdmethod(THIS, float x, float y, float z)
  ScaleLocal                    stdmethod(THIS, float x, float y, float z)
  Translate                     stdmethod(THIS, float x, float y, float z)
  TranslateLocal                stdmethod(THIS, float x, float y, float z)
  GetTop                        stdmethod(THIS)
endi

interface ID3DXSimpleShape extends IUnknown
  GUID                          E3357330-CC5E-11D2-A434-00A0C90629A8
  GetVB                         stdmethod(THIS)
  GetIndices                    stdmethod(THIS, LPWORD* ppIndices)
  Draw                          stdmethod(THIS)
endi

;==================================================================
; DirectPlay
;==================================================================
interface IDirectPlay4 extends IDirectPlay3 ; unicode variant of IDirectPlay4
  GUID                          0AB1C530-4745-11D1-A7A1-0000F803ABFC
  GetGroupOwner                 stdmethod(THIS, DPID idGroup, LPDPID lpidOwner)
  SetGroupOwner                 stdmethod(THIS, DPID idGroup, DPID idOwner)
  SendEx                        stdmethod(THIS, DPID idFrom, DPID idTo, DWORD dwFlags, LPVOID lpData, DWORD dwDataSize, DWORD dwPriority, DWORD dwTimeout, LPVOID lpContext, LPDWORD lpdwMsgID)
  GetMessageQueue               stdmethod(THIS, DPID idFrom, DPID idTo, DWORD dwFlags, LPDWORD lpdwNumMsgs, LPDWORD lpdwNumBytes)
  CancelMessage                 stdmethod(THIS, DWORD dwMsgID, DWORD dwFlags)
  CancelPriority                stdmethod(THIS, DWORD dwMinPriority, DWORD dwMaxPriority, DWORD dwFlags)
endi

interface IDirectPlay4A extends IDirectPlay4 ; ASCII variant of IDirectPlay4
  GUID                          0AB1C531-4745-11D1-A7A1-0000F803ABFC
endi

interface IDirectPlayLobby3 extends IDirectPlayLobby2 ; unicode variant of IDirectPlayLobby3
  GUID                          2DB72490-652C-11d1-A7A8-0000F803ABFC
  ConnectEx                     stdmethod(THIS, DWORD dwFlags, REFIID riid, LPVOID *lplpDP, IUnknown FAR *pUnk)
  RegisterApplication           stdmethod(THIS, DWORD dwFlags, LPVOID lpAppDesc)
  UnregisterApplication         stdmethod(THIS, DWORD dwFlags, REFGUID guidApplication)
  WaitForConnectionSettings     stdmethod(THIS, DWORD dwFlags)
endi

interface IDirectPlayLobby3A extends IDirectPlayLobby3 ; ASCII variant of IDirectPlayLobby3
  GUID                          2DB72491-652C-11d1-A7A8-0000F803ABFC
endi

;==================================================================
; DirectInput
;==================================================================
CLSID_DirectInput               equ 25E609E0-B259-11CF-BFC7-444553540000
CLSID_DirectInputDevice         equ 25E609E1-B259-11CF-BFC7-444553540000

interface IDirectInput7A extends IDirectInput2A ; ASCII variant of IDirectInput7
  GUID                          9A4CB684-236D-11D3-8E9D-00C04F6844AE
  CreateDeviceEx                stdmethod(THIS, REFGUID rguid, REFIID riid, LPVOID *pvOut, LPUNKNOWN pUnkOuter)
endi

interface IDirectInput7W extends IDirectInput7A ; unicode variant of IDirectInput7
  GUID                          9A4CB685-236D-11D3-8E9D-00C04F6844AE
endi

interface IDirectInputDevice7A extends IDirectInputDevice2A ; ASCII variant of IDirectInputDevice7
  GUID                          57D7C6BC-2356-11D3-8E9D-00C04F6844AE
  EnumEffectsInFile             stdmethod(THIS, LPCSTR lpszFileName, LPENUMEFFECTSINFILECALLBACK pec, LPVOID pvRef, DWORD dwFlags)
  WriteEffectToFile             stdmethod(THIS, LPCSTR lpszFileName, DWORD dwEntries, LPCDIFILEEFFECT rgDiFileEft, DWORD dwFlags)
endi

interface IDirectInputDevice7W extends IDirectInputDevice7A ; unicode variant of IDirectInputDevice7
  GUID                          57D7C6BD-2356-11D3-8E9D-00C04F6844AE
endi
Sorry, but I can`t refer to single person by You. My soul & spirit require acronim thou instead.

Post Reply