708 lines
28 KiB
C
708 lines
28 KiB
C
/*
|
|
* msacm.h Audio Compression Manager (ACM) functions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _INC_ACM
|
|
#define _INC_ACM
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* ACM calling convention */
|
|
#define ACMAPI WINAPI
|
|
|
|
/* ACM handle data types */
|
|
DECLARE_HANDLE( HACMDRIVERID );
|
|
DECLARE_HANDLE( HACMDRIVER );
|
|
DECLARE_HANDLE( HACMSTREAM );
|
|
DECLARE_HANDLE( HACMOBJ );
|
|
|
|
/* Pointers to handles */
|
|
typedef HACMDRIVERID *PHACMDRIVERID;
|
|
typedef HACMDRIVERID *LPHACMDRIVERID;
|
|
typedef HACMDRIVER *PHACMDRIVER;
|
|
typedef HACMDRIVER *LPHACMDRIVER;
|
|
typedef HACMSTREAM *PHACMSTREAM;
|
|
typedef HACMSTREAM *LPHACMSTREAM;
|
|
typedef HACMOBJ *PHACMOBJ;
|
|
typedef HACMOBJ *LPHACMOBJ;
|
|
|
|
/* Mapper driver messages */
|
|
#define DRV_MAPPER_PREFERRED_INPUT_GET (DRV_USER + 0)
|
|
#define DRV_MAPPER_PREFERRED_OUTPUT_GET (DRV_USER + 2)
|
|
#define DRVM_MAPPER 0x2000
|
|
#define DRVM_MAPPER_STATUS (DRVM_MAPPER + 0)
|
|
#define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
|
|
#define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
|
|
|
|
/* Wave input mapper status values */
|
|
#define WAVEIN_MAPPER_STATUS_DEVICE 0
|
|
#define WAVEIN_MAPPER_STATUS_MAPPED 1
|
|
#define WAVEIN_MAPPER_STATUS_FORMAT 2
|
|
|
|
/* Wave output mapper status values */
|
|
#define WAVEOUT_MAPPER_STATUS_DEVICE 0
|
|
#define WAVEOUT_MAPPER_STATUS_MAPPED 1
|
|
#define WAVEOUT_MAPPER_STATUS_FORMAT 2
|
|
|
|
/* ACM error codes */
|
|
#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)
|
|
|
|
/* ACM messages */
|
|
#define MM_ACM_OPEN MM_STREAM_OPEN
|
|
#define MM_ACM_CLOSE MM_STREAM_CLOSE
|
|
#define MM_ACM_DONE MM_STREAM_DONE
|
|
#define MM_ACM_FORMATCHOOSE 0x8000
|
|
#define MM_ACM_FILTERCHOOSE 0x8000
|
|
|
|
/* acmMetrics() indices */
|
|
#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
|
|
|
|
/* acmDriverEnum() flags */
|
|
#define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
|
|
#define ACM_DRIVERENUMF_DISABLED 0x80000000L
|
|
|
|
/* acmDriverAdd() flags */
|
|
#define ACM_DRIVERADDF_NAME 0x00000001L
|
|
#define ACM_DRIVERADDF_FUNCTION 0x00000003L
|
|
#define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
|
|
#define ACM_DRIVERADDF_TYPEMASK 0x00000007L
|
|
#define ACM_DRIVERADDF_LOCAL 0x00000000L
|
|
#define ACM_DRIVERADDF_GLOBAL 0x00000008L
|
|
|
|
/* ACM driver messages */
|
|
#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)
|
|
|
|
/* acmDriverPriority() flags */
|
|
#define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
|
|
#define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
|
|
#define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
|
|
#define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
|
|
#define ACM_DRIVERPRIORITYF_END 0x00020000L
|
|
#define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
|
|
|
|
/* acmDriverDetails() string lengths */
|
|
#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
|
|
|
|
/* acmDriverDetails() special values */
|
|
#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC( 'a', 'u', 'd', 'c' )
|
|
#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC( '\0', '\0', '\0', '\0' )
|
|
|
|
/* acmDriverDetails() support flags */
|
|
#define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
|
|
#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
|
|
#define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
|
|
#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
|
|
#define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
|
|
#define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
|
|
#define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
|
|
|
|
/* acmFormatTagDetails() string length */
|
|
#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
|
|
|
|
/* acmFormatTagDetails() flags */
|
|
#define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
|
|
#define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
|
|
#define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
|
|
#define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
|
|
|
|
/* acmFormatDetails() string length */
|
|
#define ACMFORMATDETAILS_FORMAT_CHARS 128
|
|
|
|
/* acmFormatDetails() flags */
|
|
#define ACM_FORMATDETAILSF_INDEX 0x00000000L
|
|
#define ACM_FORMATDETAILSF_FORMAT 0x00000001L
|
|
#define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
|
|
|
|
/* acmFormatEnum() flags */
|
|
#define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
|
|
#define ACM_FORMATENUMF_NCHANNELS 0x00020000L
|
|
#define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
|
|
#define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
|
|
#define ACM_FORMATENUMF_CONVERT 0x00100000L
|
|
#define ACM_FORMATENUMF_SUGGEST 0x00200000L
|
|
#define ACM_FORMATENUMF_HARDWARE 0x00400000L
|
|
#define ACM_FORMATENUMF_INPUT 0x00800000L
|
|
#define ACM_FORMATENUMF_OUTPUT 0x01000000L
|
|
|
|
/* acmFormatSuggest() flags */
|
|
#define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
|
|
#define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
|
|
#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
|
|
#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
|
|
#define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
|
|
|
|
/* ACM registered messages */
|
|
#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
|
|
|
|
/* MM_ACM_FORMATCHOOSE codes */
|
|
#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)
|
|
|
|
/* acmFormatChoose() style flags */
|
|
#define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
|
|
#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
|
|
#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
|
|
#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
|
|
#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
|
|
#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
|
|
|
|
/* acmFilterTagDetails() string length */
|
|
#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
|
|
|
|
/* acmFilterTagDetails() flags */
|
|
#define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
|
|
#define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
|
|
#define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
|
|
#define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
|
|
|
|
/* acmFilterDetails() string length */
|
|
#define ACMFILTERDETAILS_FILTER_CHARS 128
|
|
|
|
/* acmFilterDetails() flags */
|
|
#define ACM_FILTERDETAILSF_INDEX 0x00000000L
|
|
#define ACM_FILTERDETAILSF_FILTER 0x00000001L
|
|
#define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
|
|
|
|
/* acmFilterEnum() flags */
|
|
#define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
|
|
|
|
/* MM_ACM_FILTERCHOOSE codes */
|
|
#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)
|
|
|
|
/* acmFilterChoose() flags */
|
|
#define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
|
|
#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
|
|
#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
|
|
#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
|
|
#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
|
|
#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
|
|
|
|
/* Size of driver reserved data */
|
|
#define _DRVRESERVED 10
|
|
|
|
/* ACM stream header status flags */
|
|
#define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
|
|
#define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
|
|
#define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
|
|
|
|
/* acmStreamOpen() flags */
|
|
#define ACM_STREAMOPENF_QUERY 0x00000001L
|
|
#define ACM_STREAMOPENF_ASYNC 0x00000002L
|
|
#define ACM_STREAMOPENF_NONREALTIME 0x00000004L
|
|
|
|
/* acmStreamSize() flags */
|
|
#define ACM_STREAMSIZEF_SOURCE 0x00000000L
|
|
#define ACM_STREAMSIZEF_DESTINATION 0x00000001L
|
|
#define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
|
|
|
|
/* acmStreamConvert() flags */
|
|
#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004L
|
|
#define ACM_STREAMCONVERTF_START 0x00000010L
|
|
#define ACM_STREAMCONVERTF_END 0x00000020L
|
|
|
|
/* ACM driver enumeration callback */
|
|
typedef BOOL (CALLBACK *ACMDRIVERENUMCB)( HACMDRIVERID, DWORD_PTR, DWORD );
|
|
|
|
/* ACM driver procedure */
|
|
typedef LRESULT (CALLBACK *ACMDRIVERPROC)( DWORD_PTR, HACMDRIVERID, UINT, LPARAM, LPARAM );
|
|
typedef ACMDRIVERPROC *LPACMDRIVERPROC;
|
|
|
|
/* acmDriverDetails() parameters */
|
|
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;
|
|
typedef ACMDRIVERDETAILSA *PACMDRIVERDETAILSA;
|
|
typedef ACMDRIVERDETAILSA *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;
|
|
typedef ACMDRIVERDETAILSW *PACMDRIVERDETAILSW;
|
|
typedef ACMDRIVERDETAILSW *LPACMDRIVERDETAILSW;
|
|
#ifdef UNICODE
|
|
typedef ACMDRIVERDETAILSW ACMDRIVERDETAILS;
|
|
typedef PACMDRIVERDETAILSW PACMDRIVERDETAILS;
|
|
typedef LPACMDRIVERDETAILSW LPACMDRIVERDETAILS;
|
|
#else
|
|
typedef ACMDRIVERDETAILSA ACMDRIVERDETAILS;
|
|
typedef PACMDRIVERDETAILSA PACMDRIVERDETAILS;
|
|
typedef LPACMDRIVERDETAILSA LPACMDRIVERDETAILS;
|
|
#endif
|
|
|
|
/* acmFormatTagDetails() parameters */
|
|
typedef struct tACMFORMATTAGDETAILSA {
|
|
DWORD cbStruct;
|
|
DWORD dwFormatTagIndex;
|
|
DWORD dwFormatTag;
|
|
DWORD cbFormatSize;
|
|
DWORD fdwSupport;
|
|
DWORD cStandardFormats;
|
|
char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
|
|
} ACMFORMATTAGDETAILSA;
|
|
typedef ACMFORMATTAGDETAILSA *PACMFORMATTAGDETAILSA;
|
|
typedef ACMFORMATTAGDETAILSA *LPACMFORMATTAGDETAILSA;
|
|
typedef struct tACMFORMATTAGDETAILSW {
|
|
DWORD cbStruct;
|
|
DWORD dwFormatTagIndex;
|
|
DWORD dwFormatTag;
|
|
DWORD cbFormatSize;
|
|
DWORD fdwSupport;
|
|
DWORD cStandardFormats;
|
|
WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
|
|
} ACMFORMATTAGDETAILSW;
|
|
typedef ACMFORMATTAGDETAILSW *PACMFORMATTAGDETAILSW;
|
|
typedef ACMFORMATTAGDETAILSW *LPACMFORMATTAGDETAILSW;
|
|
#ifdef UNICODE
|
|
typedef ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS;
|
|
typedef PACMFORMATTAGDETAILSW PACMFORMATTAGDETAILS;
|
|
typedef LPACMFORMATTAGDETAILSW LPACMFORMATTAGDETAILS;
|
|
#else
|
|
typedef ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS;
|
|
typedef PACMFORMATTAGDETAILSA PACMFORMATTAGDETAILS;
|
|
typedef LPACMFORMATTAGDETAILSA LPACMFORMATTAGDETAILS;
|
|
#endif
|
|
|
|
/* ACM format tag enumeration callback */
|
|
typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)( HACMDRIVERID, LPACMFORMATTAGDETAILSA, DWORD_PTR, DWORD );
|
|
typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)( HACMDRIVERID, LPACMFORMATTAGDETAILSW, DWORD_PTR, DWORD );
|
|
#ifdef UNICODE
|
|
#define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBW
|
|
#else
|
|
#define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBA
|
|
#endif
|
|
|
|
/* acmFormatDetails() parameters */
|
|
typedef struct tACMFORMATDETAILSA {
|
|
DWORD cbStruct;
|
|
DWORD dwFormatIndex;
|
|
DWORD dwFormatTag;
|
|
DWORD fdwSupport;
|
|
LPWAVEFORMATEX pwfx;
|
|
DWORD cbwfx;
|
|
char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
|
|
} ACMFORMATDETAILSA;
|
|
typedef ACMFORMATDETAILSA *PACMFORMATDETAILSA;
|
|
typedef ACMFORMATDETAILSA *LPACMFORMATDETAILSA;
|
|
typedef struct tACMFORMATDETAILSW {
|
|
DWORD cbStruct;
|
|
DWORD dwFormatIndex;
|
|
DWORD dwFormatTag;
|
|
DWORD fdwSupport;
|
|
LPWAVEFORMATEX pwfx;
|
|
DWORD cbwfx;
|
|
WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
|
|
} ACMFORMATDETAILSW;
|
|
typedef ACMFORMATDETAILSW *PACMFORMATDETAILSW;
|
|
typedef ACMFORMATDETAILSW *LPACMFORMATDETAILSW;
|
|
#ifdef UNICODE
|
|
typedef ACMFORMATDETAILSW ACMFORMATDETAILS;
|
|
typedef PACMFORMATDETAILSW PACMFORMATDETAILS;
|
|
typedef LPACMFORMATDETAILSW LPACMFORMATDETAILS;
|
|
#else
|
|
typedef ACMFORMATDETAILSA ACMFORMATDETAILS;
|
|
typedef PACMFORMATDETAILSA PACMFORMATDETAILS;
|
|
typedef LPACMFORMATDETAILSA LPACMFORMATDETAILS;
|
|
#endif
|
|
|
|
/* ACM format enumeration callback */
|
|
typedef BOOL (CALLBACK *ACMFORMATENUMCBA)( HACMDRIVERID, LPACMFORMATDETAILSA, DWORD_PTR, DWORD );
|
|
typedef BOOL (CALLBACK *ACMFORMATENUMCBW)( HACMDRIVERID, LPACMFORMATDETAILSW, DWORD_PTR, DWORD );
|
|
#ifdef UNICODE
|
|
#define ACMFORMATENUMCB ACMFORMATENUMCBW
|
|
#else
|
|
#define ACMFORMATENUMCB ACMFORMATENUMCBA
|
|
#endif
|
|
|
|
/* acmFormatChoose() hook procedure */
|
|
typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)( HWND, UINT, WPARAM, LPARAM );
|
|
typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)( HWND, UINT, WPARAM, LPARAM );
|
|
#ifdef UNICODE
|
|
#define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCW
|
|
#else
|
|
#define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCA
|
|
#endif
|
|
|
|
/* acmFormatChoose() parameters */
|
|
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;
|
|
typedef ACMFORMATCHOOSEA *PACMFORMATCHOOSEA;
|
|
typedef ACMFORMATCHOOSEA *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;
|
|
typedef ACMFORMATCHOOSEW *PACMFORMATCHOOSEW;
|
|
typedef ACMFORMATCHOOSEW *LPACMFORMATCHOOSEW;
|
|
#ifdef UNICODE
|
|
typedef ACMFORMATCHOOSEW ACMFORMATCHOOSE;
|
|
typedef PACMFORMATCHOOSEW PACMFORMATCHOOSE;
|
|
typedef LPACMFORMATCHOOSEW LPACMFORMATCHOOSE;
|
|
#else
|
|
typedef ACMFORMATCHOOSEA ACMFORMATCHOOSE;
|
|
typedef PACMFORMATCHOOSEA PACMFORMATCHOOSE;
|
|
typedef LPACMFORMATCHOOSEA LPACMFORMATCHOOSE;
|
|
#endif
|
|
|
|
/* acmFilterTagDetails() parameters */
|
|
typedef struct tACMFILTERTAGDETAILSA {
|
|
DWORD cbStruct;
|
|
DWORD dwFilterTagIndex;
|
|
DWORD dwFilterTag;
|
|
DWORD cbFilterSize;
|
|
DWORD fdwSupport;
|
|
DWORD cStandardFilters;
|
|
char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
|
|
} ACMFILTERTAGDETAILSA;
|
|
typedef ACMFILTERTAGDETAILSA *PACMFILTERTAGDETAILSA;
|
|
typedef ACMFILTERTAGDETAILSA *LPACMFILTERTAGDETAILSA;
|
|
typedef struct tACMFILTERTAGDETAILSW {
|
|
DWORD cbStruct;
|
|
DWORD dwFilterTagIndex;
|
|
DWORD dwFilterTag;
|
|
DWORD cbFilterSize;
|
|
DWORD fdwSupport;
|
|
DWORD cStandardFilters;
|
|
WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
|
|
} ACMFILTERTAGDETAILSW;
|
|
typedef ACMFILTERTAGDETAILSW *PACMFILTERTAGDETAILSW;
|
|
typedef ACMFILTERTAGDETAILSW *LPACMFILTERTAGDETAILSW;
|
|
#ifdef UNICODE
|
|
typedef ACMFILTERTAGDETAILSW ACMFILTERTAGDETAILS;
|
|
typedef PACMFILTERTAGDETAILSW PACMFILTERTAGDETAILS;
|
|
typedef LPACMFILTERTAGDETAILSW LPACMFILTERTAGDETAILS;
|
|
#else
|
|
typedef ACMFILTERTAGDETAILSA ACMFILTERTAGDETAILS;
|
|
typedef PACMFILTERTAGDETAILSA PACMFILTERTAGDETAILS;
|
|
typedef LPACMFILTERTAGDETAILSA LPACMFILTERTAGDETAILS;
|
|
#endif
|
|
|
|
/* ACM filter tag enumeration callback */
|
|
typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)( HACMDRIVERID, LPACMFILTERTAGDETAILSA, DWORD_PTR, DWORD );
|
|
typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)( HACMDRIVERID, LPACMFILTERTAGDETAILSW, DWORD_PTR, DWORD );
|
|
#ifdef UNICODE
|
|
#define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBW
|
|
#else
|
|
#define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBA
|
|
#endif
|
|
|
|
/* acmFilterDetails() parameters */
|
|
typedef struct tACMFILTERDETAILSA {
|
|
DWORD cbStruct;
|
|
DWORD dwFilterIndex;
|
|
DWORD dwFilterTag;
|
|
DWORD fdwSupport;
|
|
LPWAVEFILTER pwfltr;
|
|
DWORD cbwfltr;
|
|
char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
|
|
} ACMFILTERDETAILSA;
|
|
typedef ACMFILTERDETAILSA *PACMFILTERDETAILSA;
|
|
typedef ACMFILTERDETAILSA *LPACMFILTERDETAILSA;
|
|
typedef struct tACMFILTERDETAILSW {
|
|
DWORD cbStruct;
|
|
DWORD dwFilterIndex;
|
|
DWORD dwFilterTag;
|
|
DWORD fdwSupport;
|
|
LPWAVEFILTER pwfltr;
|
|
DWORD cbwfltr;
|
|
WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
|
|
} ACMFILTERDETAILSW;
|
|
typedef ACMFILTERDETAILSW *PACMFILTERDETAILSW;
|
|
typedef ACMFILTERDETAILSW *LPACMFILTERDETAILSW;
|
|
#ifdef UNICODE
|
|
typedef ACMFILTERDETAILSW ACMFILTERDETAILS;
|
|
typedef PACMFILTERDETAILSW PACMFILTERDETAILS;
|
|
typedef LPACMFILTERDETAILSW LPACMFILTERDETAILS;
|
|
#else
|
|
typedef ACMFILTERDETAILSA ACMFILTERDETAILS;
|
|
typedef PACMFILTERDETAILSA PACMFILTERDETAILS;
|
|
typedef LPACMFILTERDETAILSA LPACMFILTERDETAILS;
|
|
#endif
|
|
|
|
/* ACM filter enumeration callback */
|
|
typedef BOOL (CALLBACK *ACMFILTERENUMCBA)( HACMDRIVERID, LPACMFILTERDETAILSA, DWORD_PTR, DWORD );
|
|
typedef BOOL (CALLBACK *ACMFILTERENUMCBW)( HACMDRIVERID, LPACMFILTERDETAILSW, DWORD_PTR, DWORD );
|
|
#ifdef UNICODE
|
|
#define ACMFILTERENUMCB ACMFILTERENUMCBW
|
|
#else
|
|
#define ACMFILTERENUMCB ACMFILTERENUMCBA
|
|
#endif
|
|
|
|
/* acmFilterChoose() callback procedure */
|
|
typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)( HWND, UINT, WPARAM, LPARAM );
|
|
typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)( HWND, UINT, WPARAM, LPARAM );
|
|
#ifdef UNICODE
|
|
#define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCW
|
|
#else
|
|
#define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCA
|
|
#endif
|
|
|
|
/* acmFilterChoose() parameters */
|
|
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;
|
|
typedef ACMFILTERCHOOSEA *PACMFILTERCHOOSEA;
|
|
typedef ACMFILTERCHOOSEA *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;
|
|
typedef ACMFILTERCHOOSEW *PACMFILTERCHOOSEW;
|
|
typedef ACMFILTERCHOOSEW *LPACMFILTERCHOOSEW;
|
|
#ifdef UNICODE
|
|
typedef ACMFILTERCHOOSEW ACMFILTERCHOOSE;
|
|
typedef PACMFILTERCHOOSEW PACMFILTERCHOOSE;
|
|
typedef LPACMFILTERCHOOSEW LPACMFILTERCHOOSE;
|
|
#else
|
|
typedef ACMFILTERCHOOSEA ACMFILTERCHOOSE;
|
|
typedef PACMFILTERCHOOSEA PACMFILTERCHOOSE;
|
|
typedef LPACMFILTERCHOOSEA LPACMFILTERCHOOSE;
|
|
#endif
|
|
|
|
/* ACM stream header */
|
|
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;
|
|
typedef ACMSTREAMHEADER *PACMSTREAMHEADER;
|
|
typedef ACMSTREAMHEADER *LPACMSTREAMHEADER;
|
|
|
|
/* Functions in MSACM32.DLL */
|
|
MMRESULT ACMAPI acmDriverAddA( LPHACMDRIVERID, HINSTANCE, LPARAM, DWORD, DWORD );
|
|
MMRESULT ACMAPI acmDriverAddW( LPHACMDRIVERID, HINSTANCE, LPARAM, DWORD, DWORD );
|
|
MMRESULT ACMAPI acmDriverClose( HACMDRIVER, DWORD );
|
|
MMRESULT ACMAPI acmDriverDetailsA( HACMDRIVERID, LPACMDRIVERDETAILSA, DWORD );
|
|
MMRESULT ACMAPI acmDriverDetailsW( HACMDRIVERID, LPACMDRIVERDETAILSW, DWORD );
|
|
MMRESULT ACMAPI acmDriverEnum( ACMDRIVERENUMCB, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmDriverID( HACMOBJ, LPHACMDRIVERID, DWORD );
|
|
LRESULT ACMAPI acmDriverMessage( HACMDRIVER, UINT, LPARAM, LPARAM );
|
|
MMRESULT ACMAPI acmDriverOpen( LPHACMDRIVER, HACMDRIVERID, DWORD );
|
|
MMRESULT ACMAPI acmDriverPriority( HACMDRIVERID, DWORD, DWORD );
|
|
MMRESULT ACMAPI acmDriverRemove( HACMDRIVERID, DWORD );
|
|
MMRESULT ACMAPI acmFilterChooseA( LPACMFILTERCHOOSEA );
|
|
MMRESULT ACMAPI acmFilterChooseW( LPACMFILTERCHOOSEW );
|
|
MMRESULT ACMAPI acmFilterDetailsA( HACMDRIVER, LPACMFILTERDETAILSA, DWORD );
|
|
MMRESULT ACMAPI acmFilterDetailsW( HACMDRIVER, LPACMFILTERDETAILSW, DWORD );
|
|
MMRESULT ACMAPI acmFilterEnumA( HACMDRIVER, LPACMFILTERDETAILSA, ACMFILTERENUMCBA, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFilterEnumW( HACMDRIVER, LPACMFILTERDETAILSW, ACMFILTERENUMCBW, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFilterTagDetailsA( HACMDRIVER, LPACMFILTERTAGDETAILSA, DWORD );
|
|
MMRESULT ACMAPI acmFilterTagDetailsW( HACMDRIVER, LPACMFILTERTAGDETAILSW, DWORD );
|
|
MMRESULT ACMAPI acmFilterTagEnumA( HACMDRIVER, LPACMFILTERTAGDETAILSA, ACMFILTERTAGENUMCBA, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFilterTagEnumW( HACMDRIVER, LPACMFILTERTAGDETAILSW, ACMFILTERTAGENUMCBW, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFormatChooseA( LPACMFORMATCHOOSEA );
|
|
MMRESULT ACMAPI acmFormatChooseW( LPACMFORMATCHOOSEW );
|
|
MMRESULT ACMAPI acmFormatDetailsA( HACMDRIVER, LPACMFORMATDETAILSA, DWORD );
|
|
MMRESULT ACMAPI acmFormatDetailsW( HACMDRIVER, LPACMFORMATDETAILSW, DWORD );
|
|
MMRESULT ACMAPI acmFormatEnumA( HACMDRIVER, LPACMFORMATDETAILSA, ACMFORMATENUMCBA, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFormatEnumW( HACMDRIVER, LPACMFORMATDETAILSW, ACMFORMATENUMCBW, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFormatSuggest( HACMDRIVER, LPWAVEFORMATEX, LPWAVEFORMATEX, DWORD, DWORD );
|
|
MMRESULT ACMAPI acmFormatTagDetailsA( HACMDRIVER, LPACMFORMATTAGDETAILSA, DWORD );
|
|
MMRESULT ACMAPI acmFormatTagDetailsW( HACMDRIVER, LPACMFORMATTAGDETAILSW, DWORD );
|
|
MMRESULT ACMAPI acmFormatTagEnumA( HACMDRIVER, LPACMFORMATTAGDETAILSA, ACMFORMATTAGENUMCBA, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmFormatTagEnumW( HACMDRIVER, LPACMFORMATTAGDETAILSW, ACMFORMATTAGENUMCBW, DWORD_PTR, DWORD );
|
|
DWORD ACMAPI acmGetVersion( void );
|
|
MMRESULT ACMAPI acmMetrics( HACMOBJ, UINT, LPVOID );
|
|
MMRESULT ACMAPI acmStreamClose( HACMSTREAM, DWORD );
|
|
MMRESULT ACMAPI acmStreamConvert( HACMSTREAM, LPACMSTREAMHEADER, DWORD );
|
|
MMRESULT ACMAPI acmStreamMessage( HACMSTREAM, UINT, LPARAM, LPARAM );
|
|
MMRESULT ACMAPI acmStreamOpen( LPHACMSTREAM, HACMDRIVER, LPWAVEFORMATEX, LPWAVEFORMATEX, LPWAVEFILTER, DWORD_PTR, DWORD_PTR, DWORD );
|
|
MMRESULT ACMAPI acmStreamPrepareHeader( HACMSTREAM, LPACMSTREAMHEADER, DWORD );
|
|
MMRESULT ACMAPI acmStreamReset( HACMSTREAM, DWORD );
|
|
MMRESULT ACMAPI acmStreamSize( HACMSTREAM, DWORD, LPDWORD, DWORD );
|
|
MMRESULT ACMAPI acmStreamUnprepareHeader( HACMSTREAM, LPACMSTREAMHEADER, DWORD );
|
|
|
|
/* Map generic function names to the appropriate ANSI or Unicode version. */
|
|
#ifdef UNICODE
|
|
#define acmDriverAdd acmDriverAddW
|
|
#define acmDriverDetails acmDriverDetailsW
|
|
#define acmFilterChoose acmFilterChooseW
|
|
#define acmFilterDetails acmFilterDetailsW
|
|
#define acmFilterEnum acmFilterEnumW
|
|
#define acmFilterTagDetails acmFilterTagDetailsW
|
|
#define acmFilterTagEnum acmFilterTagEnumW
|
|
#define acmFormatChoose acmFormatChooseW
|
|
#define acmFormatDetails acmFormatDetailsW
|
|
#define acmFormatEnum acmFormatEnumW
|
|
#define acmFormatTagDetails acmFormatTagDetailsW
|
|
#define acmFormatTagEnum acmFormatTagEnumW
|
|
#else
|
|
#define acmDriverAdd acmDriverAddA
|
|
#define acmDriverDetails acmDriverDetailsA
|
|
#define acmFilterChoose acmFilterChooseA
|
|
#define acmFilterDetails acmFilterDetailsA
|
|
#define acmFilterEnum acmFilterEnumA
|
|
#define acmFilterTagDetails acmFilterTagDetailsA
|
|
#define acmFilterTagEnum acmFilterTagEnumA
|
|
#define acmFormatChoose acmFormatChooseA
|
|
#define acmFormatDetails acmFormatDetailsA
|
|
#define acmFormatEnum acmFormatEnumA
|
|
#define acmFormatTagDetails acmFormatTagDetailsA
|
|
#define acmFormatTagEnum acmFormatTagEnumA
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _INC_ACM */
|