mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.3 KiB
101 lines
2.3 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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;
|
|
}
|
|
|