/** * 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