//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1998 - 1998 // // File: d3drmclippedvisualobj.cpp // //-------------------------------------------------------------------------- // d3dRMClippedVisualObj.cpp : Implementation of CDirectApp and DLL registration. #include "stdafx.h" #include "Direct.h" #include "dms.h" #include "d3dRMClippedVisualObj.h" CONSTRUCTOR(_dxj_Direct3dRMClippedVisual, {}); DESTRUCTOR(_dxj_Direct3dRMClippedVisual, {}); GETSET_OBJECT(_dxj_Direct3dRMClippedVisual); CLONE_R(_dxj_Direct3dRMClippedVisual,Direct3DRMClippedVisual); GETNAME_R(_dxj_Direct3dRMClippedVisual); SETNAME_R(_dxj_Direct3dRMClippedVisual); GETCLASSNAME_R(_dxj_Direct3dRMClippedVisual); ADDDESTROYCALLBACK_R(_dxj_Direct3dRMClippedVisual); DELETEDESTROYCALLBACK_R(_dxj_Direct3dRMClippedVisual); PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMClippedVisual, setAppData, SetAppData, long,(DWORD)); GET_DIRECT_R(_dxj_Direct3dRMClippedVisual, getAppData, GetAppData, long); //PASS_THROUGH_CAST_2_R(_dxj_Direct3dRMClippedVisual, deletePlane, DeletePlane, long,(DWORD),long,(DWORD)); STDMETHODIMP C_dxj_Direct3dRMClippedVisualObject::deletePlane( long id) { HRESULT hr; hr = m__dxj_Direct3dRMClippedVisual->DeletePlane(id,0); return hr; } ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMClippedVisualObject::addPlane( /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *ref, /* [out][in] */ D3dVector __RPC_FAR *point, /* [out][in] */ D3dVector __RPC_FAR *normal, ///* [in] */ long flags, /* [retval][out] */ long __RPC_FAR *ret) { HRESULT hr; if (!point) return E_INVALIDARG; if (!normal) return E_INVALIDARG; DO_GETOBJECT_NOTNULL(LPDIRECT3DRMFRAME3,lpFrame,ref); hr = m__dxj_Direct3dRMClippedVisual->AddPlane( lpFrame, (D3DVECTOR*) point, (D3DVECTOR*) normal, (DWORD) 0, (DWORD*)ret); return hr; } ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMClippedVisualObject::getPlane( /* [in] */ long id, /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *ref, /* [out][in] */ D3dVector __RPC_FAR *point, /* [out][in] */ D3dVector __RPC_FAR *normal ///* [in] */ long flags ) { HRESULT hr; if (!point) return E_INVALIDARG; if (!normal) return E_INVALIDARG; DO_GETOBJECT_NOTNULL(LPDIRECT3DRMFRAME3,lpFrame,ref); hr = m__dxj_Direct3dRMClippedVisual->GetPlane( (DWORD)id, lpFrame, (D3DVECTOR*) point, (D3DVECTOR*) normal, (DWORD) 0); return hr; } ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMClippedVisualObject::setPlane( /* [in] */ long id, /* [in] */ I_dxj_Direct3dRMFrame3 __RPC_FAR *ref, /* [out][in] */ D3dVector __RPC_FAR *point, /* [out][in] */ D3dVector __RPC_FAR *normal ///* [in] */ long flags ) { HRESULT hr; if (!point) return E_INVALIDARG; if (!normal) return E_INVALIDARG; DO_GETOBJECT_NOTNULL(LPDIRECT3DRMFRAME3,lpFrame,ref); hr = m__dxj_Direct3dRMClippedVisual->SetPlane( (DWORD)id, lpFrame, (D3DVECTOR*) point, (D3DVECTOR*) normal, (DWORD) 0); return hr; } ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMClippedVisualObject::getPlaneIdsCount( /* [in] */ long *count) { HRESULT hr; hr = m__dxj_Direct3dRMClippedVisual->GetPlaneIDs((DWORD*)count,NULL,0); return hr; } ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMClippedVisualObject::getPlaneIds( /* [in] */ long count, /* [out][in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *arrayOfIds) \ { HRESULT hr; if (!ISSAFEARRAY1D(arrayOfIds,(DWORD)count)) return E_INVALIDARG; hr = m__dxj_Direct3dRMClippedVisual->GetPlaneIDs((DWORD*)&count, (DWORD*)(((SAFEARRAY *)*arrayOfIds)->pvData),0); return hr; //getDibits }