Leaked source code of windows server 2003
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

//=================================================================
//
// 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
) ;
}