windows-nt/Source/XPSP1/NT/multimedia/directx/dxvb/dx8vb/dmbandobj.cpp

102 lines
2.3 KiB
C++
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1998
//
// File: dmbandobj.cpp
//
//--------------------------------------------------------------------------
// dmPerformanceObj.cpp
#include "dmusici.h"
#include "dmusicc.h"
#include "dmusicf.h"
#include "stdafx.h"
#include "Direct.h"
#include "dms.h"
#include "dmSegmentObj.h"
#include "dmPerformanceObj.h"
#include "dmBandObj.h"
extern void *g_dxj_DirectMusicSegment;
extern void *g_dxj_DirectMusicBand;
extern HRESULT BSTRtoGUID(LPGUID,BSTR);
CONSTRUCTOR(_dxj_DirectMusicBand, {});
DESTRUCTOR(_dxj_DirectMusicBand, {});
GETSET_OBJECT(_dxj_DirectMusicBand);
typedef IDirectMusicSegment8* LPDIRECTMUSICSEGMENT;
typedef IDirectMusicPerformance8* LPDIRECTMUSICPERFORMANCE;
HRESULT C_dxj_DirectMusicBandObject::createSegment(
/* [retval][out] */ I_dxj_DirectMusicSegment __RPC_FAR *__RPC_FAR *ret)
{
HRESULT hr;
LPDIRECTMUSICSEGMENT pSeg=NULL;
IDirectMusicSegment* pSegment = NULL;
hr=m__dxj_DirectMusicBand->CreateSegment(&pSegment);
if FAILED(hr) return hr;
if (!pSegment) return E_FAIL;
hr = pSegment->QueryInterface(IID_IDirectMusicSegment8, (void**)&pSeg);
pSegment->Release();
if (FAILED (hr) ) return hr;
if (!pSeg) return E_FAIL;
INTERNAL_CREATE_NOADDREF(_dxj_DirectMusicSegment,pSeg,ret);
return hr;
}
HRESULT C_dxj_DirectMusicBandObject::download(
/* [in] */ I_dxj_DirectMusicPerformance __RPC_FAR *downloadpath)
{
HRESULT hr;
IDirectMusicPerformance *lpPerf = NULL;
DO_GETOBJECT_NOTNULL(IDirectMusicPerformance8*,pPer,downloadpath);
hr = pPer->QueryInterface(IID_IDirectMusicPerformance,(void**)&lpPerf);
if (FAILED(hr))
{
pPer->Release();
return hr;
}
pPer->Release();
hr=m__dxj_DirectMusicBand->Download(lpPerf);
return hr;
}
HRESULT C_dxj_DirectMusicBandObject::unload(
/* [in] */ I_dxj_DirectMusicPerformance __RPC_FAR *downloadpath)
{
HRESULT hr;
IDirectMusicPerformance *lpPerf = NULL;
DO_GETOBJECT_NOTNULL(IDirectMusicPerformance8*,pPer,downloadpath);
hr = pPer->QueryInterface(IID_IDirectMusicPerformance,(void**)&lpPerf);
if (FAILED(hr))
{
pPer->Release();
return hr;
}
pPer->Release();
hr=m__dxj_DirectMusicBand->Unload(lpPerf);
return hr;
}