|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef _INC_ACM | 
|  | #define _INC_ACM | 
|  |  | 
|  | #if !defined(_INC_MMREG) || (_INC_MMREG < 142) | 
|  | #ifndef RC_INVOKED | 
|  | #error MMREG.H version 142 or greater to be included first | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #if defined(UNICODE) && !defined(_UNICODE) | 
|  | #ifndef RC_INVOKED | 
|  | #warning MSACM.H: Defining _UNICODE because application defined UNICODE | 
|  | #endif | 
|  | #define _UNICODE | 
|  | #endif | 
|  |  | 
|  | #include "pshpack1.h" | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifndef DRV_MAPPER_PREFERRED_INPUT_GET | 
|  | #define DRV_MAPPER_PREFERRED_INPUT_GET (DRV_USER + 0) | 
|  | #endif | 
|  |  | 
|  | #ifndef DRV_MAPPER_PREFERRED_OUTPUT_GET | 
|  | #define DRV_MAPPER_PREFERRED_OUTPUT_GET (DRV_USER + 2) | 
|  | #endif | 
|  |  | 
|  | #ifndef DRVM_MAPPER_STATUS | 
|  | #define DRVM_MAPPER (0x2000) | 
|  | #define DRVM_MAPPER_STATUS (DRVM_MAPPER+0) | 
|  | #endif | 
|  |  | 
|  | #ifndef WIDM_MAPPER_STATUS | 
|  | #define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0) | 
|  | #define WAVEIN_MAPPER_STATUS_DEVICE 0 | 
|  | #define WAVEIN_MAPPER_STATUS_MAPPED 1 | 
|  | #define WAVEIN_MAPPER_STATUS_FORMAT 2 | 
|  | #endif | 
|  |  | 
|  | #ifndef WODM_MAPPER_STATUS | 
|  | #define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0) | 
|  | #define WAVEOUT_MAPPER_STATUS_DEVICE 0 | 
|  | #define WAVEOUT_MAPPER_STATUS_MAPPED 1 | 
|  | #define WAVEOUT_MAPPER_STATUS_FORMAT 2 | 
|  | #endif | 
|  |  | 
|  | #define ACMAPI WINAPI | 
|  |  | 
|  | DECLARE_HANDLE(HACMDRIVERID); | 
|  |  | 
|  | typedef HACMDRIVERID *PHACMDRIVERID; | 
|  | typedef HACMDRIVERID *LPHACMDRIVERID; | 
|  |  | 
|  | DECLARE_HANDLE(HACMDRIVER); | 
|  |  | 
|  | typedef HACMDRIVER *PHACMDRIVER; | 
|  | typedef HACMDRIVER *LPHACMDRIVER; | 
|  |  | 
|  | DECLARE_HANDLE(HACMSTREAM); | 
|  |  | 
|  | typedef HACMSTREAM *PHACMSTREAM; | 
|  | typedef HACMSTREAM *LPHACMSTREAM; | 
|  |  | 
|  | DECLARE_HANDLE(HACMOBJ); | 
|  |  | 
|  | typedef HACMOBJ *PHACMOBJ; | 
|  | typedef HACMOBJ *LPHACMOBJ; | 
|  |  | 
|  | #ifndef _MMRESULT_ | 
|  | #define _MMRESULT_ | 
|  | typedef UINT MMRESULT; | 
|  | #endif | 
|  |  | 
|  | #define ACMERR_BASE (512) | 
|  | #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0) | 
|  | #define ACMERR_BUSY (ACMERR_BASE + 1) | 
|  | #define ACMERR_UNPREPARED (ACMERR_BASE + 2) | 
|  | #define ACMERR_CANCELED (ACMERR_BASE + 3) | 
|  |  | 
|  | #define MM_ACM_OPEN (MM_STREAM_OPEN) | 
|  | #define MM_ACM_CLOSE (MM_STREAM_CLOSE) | 
|  | #define MM_ACM_DONE (MM_STREAM_DONE) | 
|  |  | 
|  | DWORD ACMAPI acmGetVersion(void); | 
|  | MMRESULT ACMAPI acmMetrics(HACMOBJ hao,UINT uMetric,LPVOID pMetric); | 
|  |  | 
|  | #define ACM_METRIC_COUNT_DRIVERS 1 | 
|  | #define ACM_METRIC_COUNT_CODECS 2 | 
|  | #define ACM_METRIC_COUNT_CONVERTERS 3 | 
|  | #define ACM_METRIC_COUNT_FILTERS 4 | 
|  | #define ACM_METRIC_COUNT_DISABLED 5 | 
|  | #define ACM_METRIC_COUNT_HARDWARE 6 | 
|  | #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20 | 
|  | #define ACM_METRIC_COUNT_LOCAL_CODECS 21 | 
|  | #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22 | 
|  | #define ACM_METRIC_COUNT_LOCAL_FILTERS 23 | 
|  | #define ACM_METRIC_COUNT_LOCAL_DISABLED 24 | 
|  | #define ACM_METRIC_HARDWARE_WAVE_INPUT 30 | 
|  | #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31 | 
|  | #define ACM_METRIC_MAX_SIZE_FORMAT 50 | 
|  | #define ACM_METRIC_MAX_SIZE_FILTER 51 | 
|  | #define ACM_METRIC_DRIVER_SUPPORT 100 | 
|  | #define ACM_METRIC_DRIVER_PRIORITY 101 | 
|  |  | 
|  | typedef WINBOOL (CALLBACK *ACMDRIVERENUMCB)(HACMDRIVERID hadid,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  |  | 
|  | MMRESULT ACMAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  |  | 
|  | #define ACM_DRIVERENUMF_NOLOCAL __MSABI_LONG(0x40000000) | 
|  | #define ACM_DRIVERENUMF_DISABLED __MSABI_LONG(0x80000000) | 
|  |  | 
|  | MMRESULT ACMAPI acmDriverID(HACMOBJ hao,LPHACMDRIVERID phadid,DWORD fdwDriverID); | 
|  | MMRESULT ACMAPI acmDriverAddA(LPHACMDRIVERID phadid,HINSTANCE hinstModule,LPARAM lParam,DWORD dwPriority,DWORD fdwAdd); | 
|  | MMRESULT ACMAPI acmDriverAddW(LPHACMDRIVERID phadid,HINSTANCE hinstModule,LPARAM lParam,DWORD dwPriority,DWORD fdwAdd); | 
|  | #ifdef _UNICODE | 
|  | #define acmDriverAdd acmDriverAddW | 
|  | #else | 
|  | #define acmDriverAdd acmDriverAddA | 
|  | #endif | 
|  |  | 
|  | #define ACM_DRIVERADDF_NAME __MSABI_LONG(0x00000001) | 
|  | #define ACM_DRIVERADDF_FUNCTION __MSABI_LONG(0x00000003) | 
|  | #define ACM_DRIVERADDF_NOTIFYHWND __MSABI_LONG(0x00000004) | 
|  | #define ACM_DRIVERADDF_TYPEMASK __MSABI_LONG(0x00000007) | 
|  | #define ACM_DRIVERADDF_LOCAL __MSABI_LONG(0x00000000) | 
|  | #define ACM_DRIVERADDF_GLOBAL __MSABI_LONG(0x00000008) | 
|  |  | 
|  | typedef LRESULT (CALLBACK *ACMDRIVERPROC)(DWORD_PTR,HACMDRIVERID,UINT,LPARAM,LPARAM); | 
|  | typedef ACMDRIVERPROC *LPACMDRIVERPROC; | 
|  |  | 
|  | MMRESULT ACMAPI acmDriverRemove(HACMDRIVERID hadid,DWORD fdwRemove); | 
|  | MMRESULT ACMAPI acmDriverOpen(LPHACMDRIVER phad,HACMDRIVERID hadid,DWORD fdwOpen); | 
|  | MMRESULT ACMAPI acmDriverClose(HACMDRIVER had,DWORD fdwClose); | 
|  | LRESULT ACMAPI acmDriverMessage(HACMDRIVER had,UINT uMsg,LPARAM lParam1,LPARAM lParam2); | 
|  |  | 
|  | #define ACMDM_USER (DRV_USER + 0x0000) | 
|  | #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000) | 
|  | #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF) | 
|  |  | 
|  | #define ACMDM_BASE ACMDM_RESERVED_LOW | 
|  |  | 
|  | #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11) | 
|  |  | 
|  | MMRESULT ACMAPI acmDriverPriority(HACMDRIVERID hadid,DWORD dwPriority,DWORD fdwPriority); | 
|  |  | 
|  | #define ACM_DRIVERPRIORITYF_ENABLE __MSABI_LONG(0x00000001) | 
|  | #define ACM_DRIVERPRIORITYF_DISABLE __MSABI_LONG(0x00000002) | 
|  | #define ACM_DRIVERPRIORITYF_ABLEMASK __MSABI_LONG(0x00000003) | 
|  | #define ACM_DRIVERPRIORITYF_BEGIN __MSABI_LONG(0x00010000) | 
|  | #define ACM_DRIVERPRIORITYF_END __MSABI_LONG(0x00020000) | 
|  | #define ACM_DRIVERPRIORITYF_DEFERMASK __MSABI_LONG(0x00030000) | 
|  |  | 
|  | #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32 | 
|  | #define ACMDRIVERDETAILS_LONGNAME_CHARS 128 | 
|  | #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80 | 
|  | #define ACMDRIVERDETAILS_LICENSING_CHARS 128 | 
|  | #define ACMDRIVERDETAILS_FEATURES_CHARS 512 | 
|  |  | 
|  | typedef struct tACMDRIVERDETAILSA { | 
|  | DWORD cbStruct; | 
|  | FOURCC fccType; | 
|  | FOURCC fccComp; | 
|  | WORD wMid; | 
|  | WORD wPid; | 
|  | DWORD vdwACM; | 
|  | DWORD vdwDriver; | 
|  | DWORD fdwSupport; | 
|  | DWORD cFormatTags; | 
|  | DWORD cFilterTags; | 
|  | HICON hicon; | 
|  | char szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; | 
|  | char szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; | 
|  | char szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; | 
|  | char szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; | 
|  | char szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; | 
|  | } ACMDRIVERDETAILSA,*PACMDRIVERDETAILSA,*LPACMDRIVERDETAILSA; | 
|  |  | 
|  | typedef struct tACMDRIVERDETAILSW { | 
|  | DWORD cbStruct; | 
|  | FOURCC fccType; | 
|  | FOURCC fccComp; | 
|  | WORD wMid; | 
|  | WORD wPid; | 
|  | DWORD vdwACM; | 
|  | DWORD vdwDriver; | 
|  | DWORD fdwSupport; | 
|  | DWORD cFormatTags; | 
|  | DWORD cFilterTags; | 
|  | HICON hicon; | 
|  | WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; | 
|  | WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; | 
|  | WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; | 
|  | WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; | 
|  | WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; | 
|  | } ACMDRIVERDETAILSW,*PACMDRIVERDETAILSW,*LPACMDRIVERDETAILSW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMDRIVERDETAILS ACMDRIVERDETAILSW | 
|  | #define PACMDRIVERDETAILS PACMDRIVERDETAILSW | 
|  | #define LPACMDRIVERDETAILS LPACMDRIVERDETAILSW | 
|  | #else | 
|  | #define ACMDRIVERDETAILS ACMDRIVERDETAILSA | 
|  | #define PACMDRIVERDETAILS PACMDRIVERDETAILSA | 
|  | #define LPACMDRIVERDETAILS LPACMDRIVERDETAILSA | 
|  | #endif | 
|  |  | 
|  | #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a','u','d','c') | 
|  | #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0','\0','\0','\0') | 
|  |  | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_CODEC __MSABI_LONG(0x00000001) | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER __MSABI_LONG(0x00000002) | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_FILTER __MSABI_LONG(0x00000004) | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE __MSABI_LONG(0x00000008) | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_ASYNC __MSABI_LONG(0x00000010) | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_LOCAL __MSABI_LONG(0x40000000) | 
|  | #define ACMDRIVERDETAILS_SUPPORTF_DISABLED __MSABI_LONG(0x80000000) | 
|  |  | 
|  | MMRESULT ACMAPI acmDriverDetailsA(HACMDRIVERID hadid,LPACMDRIVERDETAILSA padd,DWORD fdwDetails); | 
|  | MMRESULT ACMAPI acmDriverDetailsW(HACMDRIVERID hadid,LPACMDRIVERDETAILSW padd,DWORD fdwDetails); | 
|  | #ifdef _UNICODE | 
|  | #define acmDriverDetails acmDriverDetailsW | 
|  | #else | 
|  | #define acmDriverDetails acmDriverDetailsA | 
|  | #endif | 
|  |  | 
|  | #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48 | 
|  |  | 
|  | typedef struct tACMFORMATTAGDETAILSA { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFormatTagIndex; | 
|  | DWORD dwFormatTag; | 
|  | DWORD cbFormatSize; | 
|  | DWORD fdwSupport; | 
|  | DWORD cStandardFormats; | 
|  | char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; | 
|  | } ACMFORMATTAGDETAILSA,*PACMFORMATTAGDETAILSA,*LPACMFORMATTAGDETAILSA; | 
|  |  | 
|  | typedef struct tACMFORMATTAGDETAILSW { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFormatTagIndex; | 
|  | DWORD dwFormatTag; | 
|  | DWORD cbFormatSize; | 
|  | DWORD fdwSupport; | 
|  | DWORD cStandardFormats; | 
|  | WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; | 
|  | } ACMFORMATTAGDETAILSW,*PACMFORMATTAGDETAILSW,*LPACMFORMATTAGDETAILSW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMFORMATTAGDETAILS ACMFORMATTAGDETAILSW | 
|  | #define PACMFORMATTAGDETAILS PACMFORMATTAGDETAILSW | 
|  | #define LPACMFORMATTAGDETAILS LPACMFORMATTAGDETAILSW | 
|  | #else | 
|  | #define ACMFORMATTAGDETAILS ACMFORMATTAGDETAILSA | 
|  | #define PACMFORMATTAGDETAILS PACMFORMATTAGDETAILSA | 
|  | #define LPACMFORMATTAGDETAILS LPACMFORMATTAGDETAILSA | 
|  | #endif | 
|  |  | 
|  | MMRESULT ACMAPI acmFormatTagDetailsA(HACMDRIVER had,LPACMFORMATTAGDETAILSA paftd,DWORD fdwDetails); | 
|  | MMRESULT ACMAPI acmFormatTagDetailsW(HACMDRIVER had,LPACMFORMATTAGDETAILSW paftd,DWORD fdwDetails); | 
|  | #ifdef _UNICODE | 
|  | #define acmFormatTagDetails acmFormatTagDetailsW | 
|  | #else | 
|  | #define acmFormatTagDetails acmFormatTagDetailsA | 
|  | #endif | 
|  |  | 
|  | #define ACM_FORMATTAGDETAILSF_INDEX __MSABI_LONG(0x00000000) | 
|  | #define ACM_FORMATTAGDETAILSF_FORMATTAG __MSABI_LONG(0x00000001) | 
|  | #define ACM_FORMATTAGDETAILSF_LARGESTSIZE __MSABI_LONG(0x00000002) | 
|  | #define ACM_FORMATTAGDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F) | 
|  |  | 
|  | typedef WINBOOL (CALLBACK *ACMFORMATTAGENUMCBA)(HACMDRIVERID hadid,LPACMFORMATTAGDETAILSA paftd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  | typedef WINBOOL (CALLBACK *ACMFORMATTAGENUMCBW)(HACMDRIVERID hadid,LPACMFORMATTAGDETAILSW paftd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  |  | 
|  | MMRESULT ACMAPI acmFormatTagEnumA(HACMDRIVER had,LPACMFORMATTAGDETAILSA paftd,ACMFORMATTAGENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | MMRESULT ACMAPI acmFormatTagEnumW(HACMDRIVER had,LPACMFORMATTAGDETAILSW paftd,ACMFORMATTAGENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | #ifdef _UNICODE | 
|  | #define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBW | 
|  | #define acmFormatTagEnum acmFormatTagEnumW | 
|  | #else | 
|  | #define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBA | 
|  | #define acmFormatTagEnum acmFormatTagEnumA | 
|  | #endif | 
|  |  | 
|  | #define ACMFORMATDETAILS_FORMAT_CHARS 128 | 
|  |  | 
|  | typedef struct tACMFORMATDETAILSA { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFormatIndex; | 
|  | DWORD dwFormatTag; | 
|  | DWORD fdwSupport; | 
|  | LPWAVEFORMATEX pwfx; | 
|  | DWORD cbwfx; | 
|  | char szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; | 
|  | } ACMFORMATDETAILSA,*PACMFORMATDETAILSA,*LPACMFORMATDETAILSA; | 
|  |  | 
|  | typedef struct tACMFORMATDETAILSW { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFormatIndex; | 
|  | DWORD dwFormatTag; | 
|  | DWORD fdwSupport; | 
|  | LPWAVEFORMATEX pwfx; | 
|  | DWORD cbwfx; | 
|  | WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; | 
|  | } ACMFORMATDETAILSW,*PACMFORMATDETAILSW,*LPACMFORMATDETAILSW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMFORMATDETAILS ACMFORMATDETAILSW | 
|  | #define PACMFORMATDETAILS PACMFORMATDETAILSW | 
|  | #define LPACMFORMATDETAILS LPACMFORMATDETAILSW | 
|  | #else | 
|  | #define ACMFORMATDETAILS ACMFORMATDETAILSA | 
|  | #define PACMFORMATDETAILS PACMFORMATDETAILSA | 
|  | #define LPACMFORMATDETAILS LPACMFORMATDETAILSA | 
|  | #endif | 
|  |  | 
|  | MMRESULT ACMAPI acmFormatDetailsA(HACMDRIVER had,LPACMFORMATDETAILSA pafd,DWORD fdwDetails); | 
|  | MMRESULT ACMAPI acmFormatDetailsW(HACMDRIVER had,LPACMFORMATDETAILSW pafd,DWORD fdwDetails); | 
|  | #ifdef _UNICODE | 
|  | #define acmFormatDetails acmFormatDetailsW | 
|  | #else | 
|  | #define acmFormatDetails acmFormatDetailsA | 
|  | #endif | 
|  |  | 
|  | #define ACM_FORMATDETAILSF_INDEX __MSABI_LONG(0x00000000) | 
|  | #define ACM_FORMATDETAILSF_FORMAT __MSABI_LONG(0x00000001) | 
|  | #define ACM_FORMATDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F) | 
|  |  | 
|  | typedef WINBOOL (CALLBACK *ACMFORMATENUMCBA)(HACMDRIVERID hadid,LPACMFORMATDETAILSA pafd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  | typedef WINBOOL (CALLBACK *ACMFORMATENUMCBW)(HACMDRIVERID hadid,LPACMFORMATDETAILSW pafd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  |  | 
|  | MMRESULT ACMAPI acmFormatEnumA(HACMDRIVER had,LPACMFORMATDETAILSA pafd,ACMFORMATENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | MMRESULT ACMAPI acmFormatEnumW(HACMDRIVER had,LPACMFORMATDETAILSW pafd,ACMFORMATENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | #ifdef _UNICODE | 
|  | #define ACMFORMATENUMCB ACMFORMATENUMCBW | 
|  | #define acmFormatEnum acmFormatEnumW | 
|  | #else | 
|  | #define ACMFORMATENUMCB ACMFORMATENUMCBA | 
|  | #define acmFormatEnum acmFormatEnumA | 
|  | #endif | 
|  |  | 
|  | #define ACM_FORMATENUMF_WFORMATTAG __MSABI_LONG(0x00010000) | 
|  | #define ACM_FORMATENUMF_NCHANNELS __MSABI_LONG(0x00020000) | 
|  | #define ACM_FORMATENUMF_NSAMPLESPERSEC __MSABI_LONG(0x00040000) | 
|  | #define ACM_FORMATENUMF_WBITSPERSAMPLE __MSABI_LONG(0x00080000) | 
|  | #define ACM_FORMATENUMF_CONVERT __MSABI_LONG(0x00100000) | 
|  | #define ACM_FORMATENUMF_SUGGEST __MSABI_LONG(0x00200000) | 
|  | #define ACM_FORMATENUMF_HARDWARE __MSABI_LONG(0x00400000) | 
|  | #define ACM_FORMATENUMF_INPUT __MSABI_LONG(0x00800000) | 
|  | #define ACM_FORMATENUMF_OUTPUT __MSABI_LONG(0x01000000) | 
|  |  | 
|  | MMRESULT ACMAPI acmFormatSuggest | 
|  | (HACMDRIVER had,LPWAVEFORMATEX pwfxSrc,LPWAVEFORMATEX pwfxDst,DWORD cbwfxDst,DWORD fdwSuggest); | 
|  |  | 
|  | #define ACM_FORMATSUGGESTF_WFORMATTAG __MSABI_LONG(0x00010000) | 
|  | #define ACM_FORMATSUGGESTF_NCHANNELS __MSABI_LONG(0x00020000) | 
|  | #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC __MSABI_LONG(0x00040000) | 
|  | #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE __MSABI_LONG(0x00080000) | 
|  |  | 
|  | #define ACM_FORMATSUGGESTF_TYPEMASK __MSABI_LONG(0x00FF0000) | 
|  |  | 
|  | #define ACMHELPMSGSTRINGA "acmchoose_help" | 
|  | #define ACMHELPMSGSTRINGW L"acmchoose_help" | 
|  | #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu" | 
|  | #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu" | 
|  | #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp" | 
|  | #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp" | 
|  | #ifdef _UNICODE | 
|  | #define ACMHELPMSGSTRING ACMHELPMSGSTRINGW | 
|  | #define ACMHELPMSGCONTEXTMENU ACMHELPMSGCONTEXTMENUW | 
|  | #define ACMHELPMSGCONTEXTHELP ACMHELPMSGCONTEXTHELPW | 
|  | #else | 
|  | #define ACMHELPMSGSTRING ACMHELPMSGSTRINGA | 
|  | #define ACMHELPMSGCONTEXTMENU ACMHELPMSGCONTEXTMENUA | 
|  | #define ACMHELPMSGCONTEXTHELP ACMHELPMSGCONTEXTHELPA | 
|  | #endif | 
|  |  | 
|  | #define MM_ACM_FORMATCHOOSE (0x8000) | 
|  |  | 
|  | #define FORMATCHOOSE_MESSAGE 0 | 
|  | #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0) | 
|  | #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1) | 
|  | #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2) | 
|  |  | 
|  | typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); | 
|  | typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); | 
|  | #ifdef _UNICODE | 
|  | #define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCW | 
|  | #else | 
|  | #define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCA | 
|  | #endif | 
|  |  | 
|  | typedef struct tACMFORMATCHOOSEA { | 
|  | DWORD cbStruct; | 
|  | DWORD fdwStyle; | 
|  | HWND hwndOwner; | 
|  | LPWAVEFORMATEX pwfx; | 
|  | DWORD cbwfx; | 
|  | LPCSTR pszTitle; | 
|  | char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; | 
|  | char szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; | 
|  | LPSTR pszName; | 
|  | DWORD cchName; | 
|  | DWORD fdwEnum; | 
|  | LPWAVEFORMATEX pwfxEnum; | 
|  | HINSTANCE hInstance; | 
|  | LPCSTR pszTemplateName; | 
|  | LPARAM lCustData; | 
|  | ACMFORMATCHOOSEHOOKPROCA pfnHook; | 
|  | } ACMFORMATCHOOSEA,*PACMFORMATCHOOSEA,*LPACMFORMATCHOOSEA; | 
|  |  | 
|  | typedef struct tACMFORMATCHOOSEW { | 
|  | DWORD cbStruct; | 
|  | DWORD fdwStyle; | 
|  | HWND hwndOwner; | 
|  | LPWAVEFORMATEX pwfx; | 
|  | DWORD cbwfx; | 
|  | LPCWSTR pszTitle; | 
|  | WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; | 
|  | WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; | 
|  | LPWSTR pszName; | 
|  | DWORD cchName; | 
|  | DWORD fdwEnum; | 
|  | LPWAVEFORMATEX pwfxEnum; | 
|  | HINSTANCE hInstance; | 
|  | LPCWSTR pszTemplateName; | 
|  | LPARAM lCustData; | 
|  | ACMFORMATCHOOSEHOOKPROCW pfnHook; | 
|  | } ACMFORMATCHOOSEW,*PACMFORMATCHOOSEW,*LPACMFORMATCHOOSEW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMFORMATCHOOSE ACMFORMATCHOOSEW | 
|  | #define PACMFORMATCHOOSE PACMFORMATCHOOSEW | 
|  | #define LPACMFORMATCHOOSE LPACMFORMATCHOOSEW | 
|  | #else | 
|  | #define ACMFORMATCHOOSE ACMFORMATCHOOSEA | 
|  | #define PACMFORMATCHOOSE PACMFORMATCHOOSEA | 
|  | #define LPACMFORMATCHOOSE LPACMFORMATCHOOSEA | 
|  | #endif | 
|  |  | 
|  | #define ACMFORMATCHOOSE_STYLEF_SHOWHELP __MSABI_LONG(0x00000004) | 
|  | #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK __MSABI_LONG(0x00000008) | 
|  | #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE __MSABI_LONG(0x00000010) | 
|  | #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x00000020) | 
|  | #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT __MSABI_LONG(0x00000040) | 
|  | #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP __MSABI_LONG(0x00000080) | 
|  |  | 
|  | MMRESULT ACMAPI acmFormatChooseA(LPACMFORMATCHOOSEA pafmtc); | 
|  | MMRESULT ACMAPI acmFormatChooseW(LPACMFORMATCHOOSEW pafmtc); | 
|  | #ifdef _UNICODE | 
|  | #define acmFormatChoose acmFormatChooseW | 
|  | #else | 
|  | #define acmFormatChoose acmFormatChooseA | 
|  | #endif | 
|  |  | 
|  | #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48 | 
|  |  | 
|  | typedef struct tACMFILTERTAGDETAILSA { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFilterTagIndex; | 
|  | DWORD dwFilterTag; | 
|  | DWORD cbFilterSize; | 
|  | DWORD fdwSupport; | 
|  | DWORD cStandardFilters; | 
|  | char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; | 
|  | } ACMFILTERTAGDETAILSA,*PACMFILTERTAGDETAILSA,*LPACMFILTERTAGDETAILSA; | 
|  |  | 
|  | typedef struct tACMFILTERTAGDETAILSW { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFilterTagIndex; | 
|  | DWORD dwFilterTag; | 
|  | DWORD cbFilterSize; | 
|  | DWORD fdwSupport; | 
|  | DWORD cStandardFilters; | 
|  | WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; | 
|  | } ACMFILTERTAGDETAILSW,*PACMFILTERTAGDETAILSW,*LPACMFILTERTAGDETAILSW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMFILTERTAGDETAILS ACMFILTERTAGDETAILSW | 
|  | #define PACMFILTERTAGDETAILS PACMFILTERTAGDETAILSW | 
|  | #define LPACMFILTERTAGDETAILS LPACMFILTERTAGDETAILSW | 
|  | #else | 
|  | #define ACMFILTERTAGDETAILS ACMFILTERTAGDETAILSA | 
|  | #define PACMFILTERTAGDETAILS PACMFILTERTAGDETAILSA | 
|  | #define LPACMFILTERTAGDETAILS LPACMFILTERTAGDETAILSA | 
|  | #endif | 
|  |  | 
|  | MMRESULT ACMAPI acmFilterTagDetailsA(HACMDRIVER had,LPACMFILTERTAGDETAILSA paftd,DWORD fdwDetails); | 
|  | MMRESULT ACMAPI acmFilterTagDetailsW(HACMDRIVER had,LPACMFILTERTAGDETAILSW paftd,DWORD fdwDetails); | 
|  | #ifdef _UNICODE | 
|  | #define acmFilterTagDetails acmFilterTagDetailsW | 
|  | #else | 
|  | #define acmFilterTagDetails acmFilterTagDetailsA | 
|  | #endif | 
|  |  | 
|  | #define ACM_FILTERTAGDETAILSF_INDEX __MSABI_LONG(0x00000000) | 
|  | #define ACM_FILTERTAGDETAILSF_FILTERTAG __MSABI_LONG(0x00000001) | 
|  | #define ACM_FILTERTAGDETAILSF_LARGESTSIZE __MSABI_LONG(0x00000002) | 
|  | #define ACM_FILTERTAGDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F) | 
|  |  | 
|  | typedef WINBOOL (CALLBACK *ACMFILTERTAGENUMCBA)(HACMDRIVERID hadid,LPACMFILTERTAGDETAILSA paftd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  | typedef WINBOOL (CALLBACK *ACMFILTERTAGENUMCBW)(HACMDRIVERID hadid,LPACMFILTERTAGDETAILSW paftd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  |  | 
|  | MMRESULT ACMAPI acmFilterTagEnumA(HACMDRIVER had,LPACMFILTERTAGDETAILSA paftd,ACMFILTERTAGENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | MMRESULT ACMAPI acmFilterTagEnumW(HACMDRIVER had,LPACMFILTERTAGDETAILSW paftd,ACMFILTERTAGENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | #ifdef _UNICODE | 
|  | #define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBW | 
|  | #define acmFilterTagEnum acmFilterTagEnumW | 
|  | #else | 
|  | #define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBA | 
|  | #define acmFilterTagEnum acmFilterTagEnumA | 
|  | #endif | 
|  |  | 
|  | #define ACMFILTERDETAILS_FILTER_CHARS 128 | 
|  |  | 
|  | typedef struct tACMFILTERDETAILSA { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFilterIndex; | 
|  | DWORD dwFilterTag; | 
|  | DWORD fdwSupport; | 
|  | LPWAVEFILTER pwfltr; | 
|  | DWORD cbwfltr; | 
|  | char szFilter[ACMFILTERDETAILS_FILTER_CHARS]; | 
|  | } ACMFILTERDETAILSA,*PACMFILTERDETAILSA,*LPACMFILTERDETAILSA; | 
|  |  | 
|  | typedef struct tACMFILTERDETAILSW { | 
|  | DWORD cbStruct; | 
|  | DWORD dwFilterIndex; | 
|  | DWORD dwFilterTag; | 
|  | DWORD fdwSupport; | 
|  | LPWAVEFILTER pwfltr; | 
|  | DWORD cbwfltr; | 
|  | WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; | 
|  | } ACMFILTERDETAILSW,*PACMFILTERDETAILSW,*LPACMFILTERDETAILSW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMFILTERDETAILS ACMFILTERDETAILSW | 
|  | #define PACMFILTERDETAILS PACMFILTERDETAILSW | 
|  | #define LPACMFILTERDETAILS LPACMFILTERDETAILSW | 
|  | #else | 
|  | #define ACMFILTERDETAILS ACMFILTERDETAILSA | 
|  | #define PACMFILTERDETAILS PACMFILTERDETAILSA | 
|  | #define LPACMFILTERDETAILS LPACMFILTERDETAILSA | 
|  | #endif | 
|  |  | 
|  | MMRESULT ACMAPI acmFilterDetailsA(HACMDRIVER had,LPACMFILTERDETAILSA pafd,DWORD fdwDetails); | 
|  | MMRESULT ACMAPI acmFilterDetailsW(HACMDRIVER had,LPACMFILTERDETAILSW pafd,DWORD fdwDetails); | 
|  | #ifdef _UNICODE | 
|  | #define acmFilterDetails acmFilterDetailsW | 
|  | #else | 
|  | #define acmFilterDetails acmFilterDetailsA | 
|  | #endif | 
|  |  | 
|  | #define ACM_FILTERDETAILSF_INDEX __MSABI_LONG(0x00000000) | 
|  | #define ACM_FILTERDETAILSF_FILTER __MSABI_LONG(0x00000001) | 
|  | #define ACM_FILTERDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F) | 
|  |  | 
|  | typedef WINBOOL (CALLBACK *ACMFILTERENUMCBA)(HACMDRIVERID hadid,LPACMFILTERDETAILSA pafd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  | typedef WINBOOL (CALLBACK *ACMFILTERENUMCBW)(HACMDRIVERID hadid,LPACMFILTERDETAILSW pafd,DWORD_PTR dwInstance,DWORD fdwSupport); | 
|  |  | 
|  | MMRESULT ACMAPI acmFilterEnumA(HACMDRIVER had,LPACMFILTERDETAILSA pafd,ACMFILTERENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | MMRESULT ACMAPI acmFilterEnumW(HACMDRIVER had,LPACMFILTERDETAILSW pafd,ACMFILTERENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum); | 
|  | #ifdef _UNICODE | 
|  | #define ACMFILTERENUMCB ACMFILTERENUMCBW | 
|  | #define acmFilterEnum acmFilterEnumW | 
|  | #else | 
|  | #define ACMFILTERENUMCB ACMFILTERENUMCBA | 
|  | #define acmFilterEnum acmFilterEnumA | 
|  | #endif | 
|  |  | 
|  | #define ACM_FILTERENUMF_DWFILTERTAG __MSABI_LONG(0x00010000) | 
|  |  | 
|  | #define MM_ACM_FILTERCHOOSE (0x8000) | 
|  |  | 
|  | #define FILTERCHOOSE_MESSAGE 0 | 
|  | #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0) | 
|  | #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1) | 
|  | #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2) | 
|  |  | 
|  | typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); | 
|  | typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); | 
|  | #ifdef _UNICODE | 
|  | #define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCW | 
|  | #else | 
|  | #define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCA | 
|  | #endif | 
|  |  | 
|  | typedef struct tACMFILTERCHOOSEA { | 
|  | DWORD cbStruct; | 
|  | DWORD fdwStyle; | 
|  | HWND hwndOwner; | 
|  | LPWAVEFILTER pwfltr; | 
|  | DWORD cbwfltr; | 
|  | LPCSTR pszTitle; | 
|  | char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; | 
|  | char szFilter[ACMFILTERDETAILS_FILTER_CHARS]; | 
|  | LPSTR pszName; | 
|  | DWORD cchName; | 
|  | DWORD fdwEnum; | 
|  | LPWAVEFILTER pwfltrEnum; | 
|  | HINSTANCE hInstance; | 
|  | LPCSTR pszTemplateName; | 
|  | LPARAM lCustData; | 
|  | ACMFILTERCHOOSEHOOKPROCA pfnHook; | 
|  | } ACMFILTERCHOOSEA,*PACMFILTERCHOOSEA,*LPACMFILTERCHOOSEA; | 
|  |  | 
|  | typedef struct tACMFILTERCHOOSEW { | 
|  | DWORD cbStruct; | 
|  | DWORD fdwStyle; | 
|  | HWND hwndOwner; | 
|  | LPWAVEFILTER pwfltr; | 
|  | DWORD cbwfltr; | 
|  | LPCWSTR pszTitle; | 
|  | WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; | 
|  | WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; | 
|  | LPWSTR pszName; | 
|  | DWORD cchName; | 
|  | DWORD fdwEnum; | 
|  | LPWAVEFILTER pwfltrEnum; | 
|  | HINSTANCE hInstance; | 
|  | LPCWSTR pszTemplateName; | 
|  | LPARAM lCustData; | 
|  | ACMFILTERCHOOSEHOOKPROCW pfnHook; | 
|  | } ACMFILTERCHOOSEW,*PACMFILTERCHOOSEW,*LPACMFILTERCHOOSEW; | 
|  | #ifdef _UNICODE | 
|  | #define ACMFILTERCHOOSE ACMFILTERCHOOSEW | 
|  | #define PACMFILTERCHOOSE PACMFILTERCHOOSEW | 
|  | #define LPACMFILTERCHOOSE LPACMFILTERCHOOSEW | 
|  | #else | 
|  | #define ACMFILTERCHOOSE ACMFILTERCHOOSEA | 
|  | #define PACMFILTERCHOOSE PACMFILTERCHOOSEA | 
|  | #define LPACMFILTERCHOOSE LPACMFILTERCHOOSEA | 
|  | #endif | 
|  |  | 
|  | #define ACMFILTERCHOOSE_STYLEF_SHOWHELP __MSABI_LONG(0x00000004) | 
|  | #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK __MSABI_LONG(0x00000008) | 
|  | #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE __MSABI_LONG(0x00000010) | 
|  | #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x00000020) | 
|  | #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT __MSABI_LONG(0x00000040) | 
|  | #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP __MSABI_LONG(0x00000080) | 
|  |  | 
|  | MMRESULT ACMAPI acmFilterChooseA(LPACMFILTERCHOOSEA pafltrc); | 
|  | MMRESULT ACMAPI acmFilterChooseW(LPACMFILTERCHOOSEW pafltrc); | 
|  | #ifdef _UNICODE | 
|  | #define acmFilterChoose acmFilterChooseW | 
|  | #else | 
|  | #define acmFilterChoose acmFilterChooseA | 
|  | #endif | 
|  |  | 
|  | #ifdef _WIN64 | 
|  | #define _DRVRESERVED 15 | 
|  | #else | 
|  | #define _DRVRESERVED 10 | 
|  | #endif | 
|  |  | 
|  | typedef struct tACMSTREAMHEADER { | 
|  | DWORD cbStruct; | 
|  | DWORD fdwStatus; | 
|  | DWORD_PTR dwUser; | 
|  | LPBYTE pbSrc; | 
|  | DWORD cbSrcLength; | 
|  | DWORD cbSrcLengthUsed; | 
|  | DWORD_PTR dwSrcUser; | 
|  | LPBYTE pbDst; | 
|  | DWORD cbDstLength; | 
|  | DWORD cbDstLengthUsed; | 
|  | DWORD_PTR dwDstUser; | 
|  | DWORD dwReservedDriver[_DRVRESERVED]; | 
|  | } ACMSTREAMHEADER,*PACMSTREAMHEADER,*LPACMSTREAMHEADER; | 
|  |  | 
|  | #define ACMSTREAMHEADER_STATUSF_DONE __MSABI_LONG(0x00010000) | 
|  | #define ACMSTREAMHEADER_STATUSF_PREPARED __MSABI_LONG(0x00020000) | 
|  | #define ACMSTREAMHEADER_STATUSF_INQUEUE __MSABI_LONG(0x00100000) | 
|  |  | 
|  | MMRESULT ACMAPI acmStreamOpen(LPHACMSTREAM phas,HACMDRIVER had,LPWAVEFORMATEX pwfxSrc,LPWAVEFORMATEX pwfxDst,LPWAVEFILTER pwfltr,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); | 
|  |  | 
|  | #define ACM_STREAMOPENF_QUERY 0x00000001 | 
|  | #define ACM_STREAMOPENF_ASYNC 0x00000002 | 
|  | #define ACM_STREAMOPENF_NONREALTIME 0x00000004 | 
|  |  | 
|  | MMRESULT ACMAPI acmStreamClose | 
|  | (HACMSTREAM has,DWORD fdwClose); | 
|  |  | 
|  | MMRESULT ACMAPI acmStreamSize(HACMSTREAM has,DWORD cbInput,LPDWORD pdwOutputBytes,DWORD fdwSize); | 
|  |  | 
|  | #define ACM_STREAMSIZEF_SOURCE __MSABI_LONG(0x00000000) | 
|  | #define ACM_STREAMSIZEF_DESTINATION __MSABI_LONG(0x00000001) | 
|  | #define ACM_STREAMSIZEF_QUERYMASK __MSABI_LONG(0x0000000F) | 
|  |  | 
|  | MMRESULT ACMAPI acmStreamReset(HACMSTREAM has,DWORD fdwReset); | 
|  | MMRESULT ACMAPI acmStreamMessage(HACMSTREAM has,UINT uMsg,LPARAM lParam1,LPARAM lParam2); | 
|  | MMRESULT ACMAPI acmStreamConvert(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwConvert); | 
|  |  | 
|  | #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004 | 
|  | #define ACM_STREAMCONVERTF_START 0x00000010 | 
|  | #define ACM_STREAMCONVERTF_END 0x00000020 | 
|  |  | 
|  | MMRESULT ACMAPI acmStreamPrepareHeader(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwPrepare); | 
|  | MMRESULT ACMAPI acmStreamUnprepareHeader(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwUnprepare); | 
|  |  | 
|  | #include "poppack.h" | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif |