mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 04:25:08 +00:00
707 lines
25 KiB
C
707 lines
25 KiB
C
/**
|
|
* 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
|