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.
129 lines
3.4 KiB
129 lines
3.4 KiB
//=================================================================
|
|
|
|
//
|
|
|
|
// MsAcm32API.cpp
|
|
|
|
//
|
|
|
|
// Copyright (c) 1999-2001 Microsoft Corporation, All Rights Reserved
|
|
//
|
|
//=================================================================
|
|
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
#include <ntobapi.h>
|
|
|
|
#define _WINNT_ // have what is needed from above
|
|
|
|
#include "precomp.h"
|
|
#include <cominit.h>
|
|
#include <mmsystem.h>
|
|
#include <mmreg.h>
|
|
#include <msacm.h>
|
|
|
|
#include "DllWrapperBase.h"
|
|
#include "MsAcm32Api.h"
|
|
#include "DllWrapperCreatorReg.h"
|
|
|
|
// {7D65D31E-0FB5-11d3-910C-00105AA630BE}
|
|
static const GUID g_guidMsAcm32Api =
|
|
{ 0x7d65d31e, 0xfb5, 0x11d3, { 0x91, 0xc, 0x0, 0x10, 0x5a, 0xa6, 0x30, 0xbe } };
|
|
|
|
static const TCHAR g_tstrMsAcm32 [] = _T("MsAcm32.Dll");
|
|
|
|
/******************************************************************************
|
|
* Register this class with the CResourceManager.
|
|
*****************************************************************************/
|
|
CDllApiWraprCreatrReg<CMsAcm32Api, &g_guidMsAcm32Api, g_tstrMsAcm32> MyRegisteredMsAcm32Wrapper;
|
|
|
|
/******************************************************************************
|
|
* Constructor
|
|
*****************************************************************************/
|
|
CMsAcm32Api::CMsAcm32Api(LPCTSTR a_tstrWrappedDllName)
|
|
: CDllWrapperBase(a_tstrWrappedDllName),
|
|
m_pfnacmDriverDetails (NULL),
|
|
m_pfnacmDriverEnum (NULL)
|
|
{
|
|
}
|
|
|
|
/******************************************************************************
|
|
* Destructor
|
|
*****************************************************************************/
|
|
CMsAcm32Api::~CMsAcm32Api()
|
|
{
|
|
}
|
|
|
|
/******************************************************************************
|
|
* Initialization function to check that we obtained function addresses.
|
|
******************************************************************************/
|
|
bool CMsAcm32Api::Init()
|
|
{
|
|
bool fRet = LoadLibrary();
|
|
if(fRet)
|
|
{
|
|
#ifdef UNICODE
|
|
m_pfnacmDriverDetails = ( PFN_MsAcm32_acmDriverDetails ) GetProcAddress ( "acmDriverDetailsW" ) ;
|
|
#else
|
|
m_pfnacmDriverDetails = ( PFN_MsAcm32_acmDriverDetails ) GetProcAddress ( "acmDriverDetailsA" ) ;
|
|
|
|
#endif
|
|
m_pfnacmDriverEnum = ( PFN_MsAcm32_acmDriverEnum ) GetProcAddress ( "acmDriverEnum" ) ;
|
|
}
|
|
|
|
// We require these function for all versions of this dll.
|
|
|
|
if ( m_pfnacmDriverDetails == NULL ||
|
|
m_pfnacmDriverEnum == NULL )
|
|
{
|
|
fRet = false;
|
|
LogErrorMessage(L"Failed find entrypoint in msacm32api");
|
|
}
|
|
|
|
return fRet;
|
|
}
|
|
|
|
/******************************************************************************
|
|
* Member functions wrapping Tapi api functions. Add new functions here
|
|
* as required.
|
|
*****************************************************************************/
|
|
|
|
#ifdef UNICODE
|
|
MMRESULT CMsAcm32Api :: MsAcm32acmDriverDetails (
|
|
|
|
HACMDRIVERID hadid,
|
|
LPACMDRIVERDETAILSW padd,
|
|
DWORD fdwDetails
|
|
)
|
|
#else
|
|
MMRESULT CMsAcm32Api :: MsAcm32acmDriverDetails (
|
|
|
|
HACMDRIVERID hadid,
|
|
LPACMDRIVERDETAILSA padd,
|
|
DWORD fdwDetails
|
|
)
|
|
#endif
|
|
{
|
|
return m_pfnacmDriverDetails (
|
|
|
|
hadid,
|
|
padd,
|
|
fdwDetails
|
|
) ;
|
|
}
|
|
|
|
MMRESULT CMsAcm32Api :: MsAcm32acmDriverEnum (
|
|
|
|
ACMDRIVERENUMCB fnCallback,
|
|
DWORD_PTR dwInstance,
|
|
DWORD fdwEnum
|
|
)
|
|
{
|
|
return m_pfnacmDriverEnum (
|
|
|
|
fnCallback,
|
|
dwInstance,
|
|
fdwEnum
|
|
) ;
|
|
}
|