windows-nt/Source/XPSP1/NT/multimedia/directx/dxvb/dx7vb/d3drm3obj.h
2020-09-26 16:20:57 +08:00

254 lines
9.8 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: d3drm3obj.h
//
//--------------------------------------------------------------------------
// d3drmObj.h : Declaration of the C_dxj_Direct3dRMObject
#include "resource.h" // main symbols
#define typedef__dxj_Direct3dRM3 LPDIRECT3DRM3
/////////////////////////////////////////////////////////////////////////////
// Direct
//REVIEW -- using pointers to ID's is necessary because some compilers don't like
//references as template arguments.
class C_dxj_Direct3dRM3Object :
public I_dxj_Direct3dRM3,
public CComObjectRoot
// public CComCoClass<C_dxj_Direct3dRM3Object, &CLSID__dxj_Direct3dRM3>, public CComObjectRoot
{
public:
void doCreateObj();
void doDeleteObj();
C_dxj_Direct3dRM3Object();
virtual ~C_dxj_Direct3dRM3Object();
BEGIN_COM_MAP(C_dxj_Direct3dRM3Object)
COM_INTERFACE_ENTRY(I_dxj_Direct3dRM3)
END_COM_MAP()
DECLARE_AGGREGATABLE(C_dxj_Direct3dRM3Object)
// I_dxj_Direct3dRM
public:
/* [hidden] */ HRESULT STDMETHODCALLTYPE InternalSetObject(
/* [in] */ IUnknown __RPC_FAR *lpdd);
/* [hidden] */ HRESULT STDMETHODCALLTYPE InternalGetObject(
/* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *lpdd);
HRESULT STDMETHODCALLTYPE createDeviceFromClipper(
/* [in] */ I_dxj_DirectDrawClipper __RPC_FAR *lpDDClipper,
/* [in] */ BSTR guid,
/* [in] */ int width,
/* [in] */ int height,
/* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createFrame(
/* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *parent,
/* [retval][out] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createLightRGB(
/* [in] */ d3drmLightType lt,
/* [in] */ float vred,
/* [in] */ float vgreen,
/* [in] */ float vblue,
/* [retval][out] */ I_dxj_Direct3dRMLight __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createLight(
/* [in] */ d3drmLightType lt,
/* [in] */ long color,
/* [retval][out] */ I_dxj_Direct3dRMLight __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createMeshBuilder(
/* [retval][out] */ I_dxj_Direct3dRMMeshBuilder3 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createMaterial(
/* [in] */ float d,
/* [retval][out] */ I_dxj_Direct3dRMMaterial2 __RPC_FAR *__RPC_FAR *val);
HRESULT STDMETHODCALLTYPE loadTexture(
/* [in] */ BSTR name,
/* [retval][out] */ I_dxj_Direct3dRMTexture3 __RPC_FAR *__RPC_FAR *retval);
HRESULT STDMETHODCALLTYPE createViewport(
/* [in] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *dev,
/* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *fr,
/* [in] */ long l,
/* [in] */ long t,
/* [in] */ long w,
/* [in] */ long h,
/* [retval][out] */ I_dxj_Direct3dRMViewport2 __RPC_FAR *__RPC_FAR *retval);
HRESULT STDMETHODCALLTYPE setDefaultTextureColors(
/* [in] */ long ds);
HRESULT STDMETHODCALLTYPE setDefaultTextureShades(
/* [in] */ long ds);
HRESULT STDMETHODCALLTYPE createAnimationSet(
/* [retval][out] */ I_dxj_Direct3dRMAnimationSet2 __RPC_FAR *__RPC_FAR *retval);
HRESULT STDMETHODCALLTYPE createMesh(
/* [retval][out] */ I_dxj_Direct3dRMMesh __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createFace(
/* [retval][out] */ I_dxj_Direct3dRMFace2 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createAnimation(
/* [retval][out] */ I_dxj_Direct3dRMAnimation2 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE tick(
/* [in] */ float tic);
// HRESULT STDMETHODCALLTYPE createDevice(
// /* [in] */ long v1,
// /* [in] */ long v2,
// /* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createDeviceFromSurface(
/* [in] */ BSTR g,
/* [in] */ I_dxj_DirectDraw4 __RPC_FAR *dd,
/* [in] */ I_dxj_DirectDrawSurface4 __RPC_FAR *dds,
/* [in] */ long flags,
/* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *retval);
//HRESULT STDMETHODCALLTYPE createDeviceFromD3D(
// /* [in] */ I_dxj_Direct3d3 __RPC_FAR *D3D,
// /* [in] */ I_dxj_Direct3dDevice3 __RPC_FAR *dev,
// /* [retval][out] */ I_dxj_Direct3dRMDevice3 __RPC_FAR *__RPC_FAR *val);
HRESULT STDMETHODCALLTYPE createTextureFromSurface(
/* [in] */ I_dxj_DirectDrawSurface4 __RPC_FAR *dds,
/* [retval][out] */ I_dxj_Direct3dRMTexture3 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createWrap(
/* [in] */ d3drmWrapType t,
/* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *f,
/* [in] */ float ox,
/* [in] */ float oy,
/* [in] */ float oz,
/* [in] */ float dx,
/* [in] */ float dy,
/* [in] */ float dz,
/* [in] */ float ux,
/* [in] */ float uy,
/* [in] */ float uz,
/* [in] */ float ou,
/* [in] */ float ov,
/* [in] */ float su,
/* [in] */ float sv,
/* [retval][out] */ I_dxj_Direct3dRMWrap __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE getSearchPath(
/* [retval][out] */ BSTR __RPC_FAR *name);
HRESULT STDMETHODCALLTYPE getDevices(
/* [retval][out] */ I_dxj_Direct3dRMDeviceArray __RPC_FAR *__RPC_FAR *retval);
HRESULT STDMETHODCALLTYPE getNamedObject(
/* [in] */ BSTR name,
/* [retval][out] */ I_dxj_Direct3dRMObject __RPC_FAR *__RPC_FAR *retval);
HRESULT STDMETHODCALLTYPE setSearchPath(
/* [in] */ BSTR name);
HRESULT STDMETHODCALLTYPE addSearchPath(
/* [in] */ BSTR name);
// HRESULT STDMETHODCALLTYPE createUserVisual(
// /* [in] */ I_dxj_Direct3dRMUserVisualCallback __RPC_FAR *fn,
// /* [in] */ IUnknown __RPC_FAR *arg,
// /* [retval][out] */ I_dxj_Direct3dRMUserVisual __RPC_FAR *__RPC_FAR *f);
HRESULT STDMETHODCALLTYPE enumerateObjects(
/* [in] */ I_dxj_Direct3dRMEnumerateObjectsCallback __RPC_FAR *fn,
/* [in] */ IUnknown __RPC_FAR *pargs);
HRESULT STDMETHODCALLTYPE loadFromFile(
/* [in] */ BSTR filename,
/* [in] */ VARIANT id,
/* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *guidArray,
/* [in] */ long cnt,
/* [in] */ d3drmLoadFlags options,
/* [in] */ I_dxj_Direct3dRMLoadCallback __RPC_FAR *fn1,
/* [in] */ IUnknown __RPC_FAR *arg1,
/* [in] */ I_dxj_Direct3dRMLoadTextureCallback3 __RPC_FAR *fn2,
/* [in] */ IUnknown __RPC_FAR *arg2,
/* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *f);
HRESULT STDMETHODCALLTYPE createShadow(
/* [in] */ I_dxj_Direct3dRMVisual __RPC_FAR *visual,
/* [in] */ I_dxj_Direct3dRMLight __RPC_FAR *light,
/* [in] */ float px,
/* [in] */ float py,
/* [in] */ float pz,
/* [in] */ float nx,
/* [in] */ float ny,
/* [in] */ float nz,
/* [retval][out] */ I_dxj_Direct3dRMShadow2 __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createProgressiveMesh(
/* [retval][out] */ I_dxj_Direct3dRMProgressiveMesh __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createClippedVisual(
/* [in] */ I_dxj_Direct3dRMVisual __RPC_FAR *vis,
/* [retval][out] */ I_dxj_Direct3dRMClippedVisual __RPC_FAR *__RPC_FAR *ret);
HRESULT STDMETHODCALLTYPE getOptions(
/* [retval][out] */ long __RPC_FAR *options);
HRESULT STDMETHODCALLTYPE setOptions(
/* [in] */ long options);
// HRESULT STDMETHODCALLTYPE createInterpolator(
// /* [retval][out] */ I_dxj_Direct3dRMInterpolator __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createInterpolatorMesh(
/* [retval][out] */ I_dxj_Direct3dRMMeshInterpolator __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createInterpolatorTexture(
/* [retval][out] */ I_dxj_Direct3dRMTextureInterpolator __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createInterpolatorMaterial(
/* [retval][out] */ I_dxj_Direct3dRMMaterialInterpolator __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createInterpolatorFrame(
/* [retval][out] */ I_dxj_Direct3dRMFrameInterpolator __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createInterpolatorViewport(
/* [retval][out] */ I_dxj_Direct3dRMViewportInterpolator __RPC_FAR *__RPC_FAR *retv);
HRESULT STDMETHODCALLTYPE createInterpolatorLight(
/* [retval][out] */ I_dxj_Direct3dRMLightInterpolator __RPC_FAR *__RPC_FAR *retv);
////////////////////////////////////////////////////////////////////////////////////
// note: this is public for the callbacks
DECL_VARIABLE(_dxj_Direct3dRM3);
private:
HINSTANCE hinstLib;
public:
DX3J_GLOBAL_LINKS( _dxj_Direct3dRM3)
};