// Copyright (c) 1999 Microsoft Corporation. All rights reserved. // // Implementation of CAutDirectMusicAudioPathConfig. // #include "stdinc.h" #include "autaudiopathconfig.h" #include "activescript.h" const WCHAR CAutDirectMusicAudioPathConfig::ms_wszClassName[] = L"AudioPathConfig"; ////////////////////////////////////////////////////////////////////// // Method Names/DispIDs const DISPID DMPDISP_Load = 1; const DISPID DMPDISP_Create = 2; const AutDispatchMethod CAutDirectMusicAudioPathConfig::ms_Methods[] = { // dispid, name, // return: type, (opt), (iid), // parm 1: type, opt, iid, // parm 2: type, opt, iid, // ... // ADT_None { DMPDISP_Load, L"Load", ADPARAM_NORETURN, ADT_None }, { DMPDISP_Create, L"Create", ADT_Interface, true, &IID_IUnknown, // returned audiopath ADT_None }, { DISPID_UNKNOWN } }; const DispatchHandlerEntry CAutDirectMusicAudioPathConfig::ms_Handlers[] = { { DMPDISP_Load, Load }, { DMPDISP_Create, Create }, { DISPID_UNKNOWN } }; ////////////////////////////////////////////////////////////////////// // Creation CAutDirectMusicAudioPathConfig::CAutDirectMusicAudioPathConfig( IUnknown* pUnknownOuter, const IID& iid, void** ppv, HRESULT *phr) : BaseImpAPConfig(pUnknownOuter, iid, ppv, phr) { } HRESULT CAutDirectMusicAudioPathConfig::CreateInstance( IUnknown* pUnknownOuter, const IID& iid, void** ppv) { HRESULT hr = S_OK; CAutDirectMusicAudioPathConfig *pInst = new CAutDirectMusicAudioPathConfig(pUnknownOuter, iid, ppv, &hr); if (FAILED(hr)) { delete pInst; return hr; } if (pInst == NULL) return E_OUTOFMEMORY; return hr; } ////////////////////////////////////////////////////////////////////// // Automation methods HRESULT CAutDirectMusicAudioPathConfig::Load(AutDispatchDecodedParams *paddp) { // Loading is actually implemented generically by container items. // If we're here, we're already loaded and don't need to do anything. return S_OK; } HRESULT CAutDirectMusicAudioPathConfig::Create(AutDispatchDecodedParams *paddp) { IDirectMusicAudioPath **ppAudioPath = reinterpret_cast(paddp->pvReturn); if (!ppAudioPath) return S_OK; HRESULT hr = S_OK; IDirectMusicPerformance8 *pPerformance = CActiveScriptManager::GetCurrentPerformanceWEAK(); hr = pPerformance->CreateAudioPath(m_pITarget, TRUE, ppAudioPath); if (FAILED(hr)) return hr; return S_OK; }