//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1998 - 1998 // // File: d3drmpickedarrayobj.cpp // //-------------------------------------------------------------------------- // d3drmPickedArrayObj.cpp : Implementation of CDirectApp and DLL registration. #include "stdafx.h" #include "Direct.h" #include "dms.h" #include "d3drmPickedArrayObj.h" #include "d3drmFrameArrayObj.h" #include "d3drmVisualObj.h" CONSTRUCTOR( _dxj_Direct3dRMPickArray, {}); DESTRUCTOR( _dxj_Direct3dRMPickArray, {}); GETSET_OBJECT(_dxj_Direct3dRMPickArray); GET_DIRECT_R(_dxj_Direct3dRMPickArray, getSize, GetSize, long) ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMPickArrayObject::getPickVisual(long index, D3dRMPickDesc *Desc, I_dxj_Direct3dRMVisual **visual) { LPDIRECT3DRMVISUAL lpVisual=NULL; LPDIRECT3DRMFRAMEARRAY lpFrameArray=NULL; HRESULT hr; *visual=NULL; hr=m__dxj_Direct3dRMPickArray->GetPick((DWORD)index, &lpVisual, &lpFrameArray, (struct _D3DRMPICKDESC *)Desc); if(hr != S_OK) return hr; if (!lpVisual) return S_OK; hr=CreateCoverVisual(lpVisual, visual); if (lpFrameArray) lpFrameArray->Release(); return hr; } ///////////////////////////////////////////////////////////////////////////// STDMETHODIMP C_dxj_Direct3dRMPickArrayObject::getPickFrame(long index, D3dRMPickDesc *Desc, I_dxj_Direct3dRMFrameArray **frameArray) { LPDIRECT3DRMVISUAL lpVisual=NULL; LPDIRECT3DRMFRAMEARRAY lpFrameArray=NULL; HRESULT hr; hr=m__dxj_Direct3dRMPickArray->GetPick((DWORD)index, &lpVisual, &lpFrameArray, (struct _D3DRMPICKDESC *)Desc); if( hr != S_OK) return hr; if (!lpFrameArray) return S_OK; INTERNAL_CREATE(_dxj_Direct3dRMFrameArray, lpFrameArray, frameArray); if (lpVisual) lpVisual->Release(); return S_OK; }