mingw-5.1.4/win32/include/msacm.h
changeset 0 76b1f169d9fe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mingw-5.1.4/win32/include/msacm.h	Fri Apr 03 17:16:45 2009 +0100
@@ -0,0 +1,186 @@
+/*author: Adrian Sandor
+  written for MinGW*/
+#ifndef _MSACM_H
+#define _MSACM_H
+
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef HANDLE HACMDRIVERID, HACMDRIVER, *LPHACMDRIVER; /*they're handles, right?*/
+
+/*found through experimentation*/
+#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
+#define ACMDRIVERDETAILS_LONGNAME_CHARS 128
+#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
+#define ACMDRIVERDETAILS_LICENSING_CHARS 128
+
+/*I don't know the right values for these macros*/
+#define ACMFORMATDETAILS_FORMAT_CHARS 256
+#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 256
+#define ACMDRIVERDETAILS_FEATURES_CHARS 256
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatdetails_str.asp*/
+typedef struct {
+	DWORD          cbStruct;
+	DWORD          dwFormatIndex;
+	DWORD          dwFormatTag;
+	DWORD          fdwSupport;
+	LPWAVEFORMATEX pwfx;
+	DWORD          cbwfx;
+	char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
+} ACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
+typedef struct {
+	DWORD          cbStruct;
+	DWORD          dwFormatIndex;
+	DWORD          dwFormatTag;
+	DWORD          fdwSupport;
+	LPWAVEFORMATEX pwfx;
+	DWORD          cbwfx;
+	WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
+} ACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagdetails_str.asp*/
+typedef struct {
+	DWORD cbStruct;
+	DWORD dwFormatTagIndex;
+	DWORD dwFormatTag;
+	DWORD cbFormatSize;
+	DWORD fdwSupport;
+	DWORD cStandardFormats;
+	char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
+} ACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
+typedef struct {
+	DWORD cbStruct;
+	DWORD dwFormatTagIndex;
+	DWORD dwFormatTag;
+	DWORD cbFormatSize;
+	DWORD fdwSupport;
+	DWORD cStandardFormats;
+	WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
+} ACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverdetails_str.asp*/
+typedef struct {
+	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, *LPACMDRIVERDETAILSA;
+typedef struct {
+	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, *LPACMDRIVERDETAILSW;
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatenumcallback.asp*/
+typedef BOOL (CALLBACK *ACMFORMATENUMCBA) (
+	HACMDRIVERID        hadid,
+	LPACMFORMATDETAILSA pafd,
+	DWORD_PTR           dwInstance,
+	DWORD               fdwSupport
+);
+typedef BOOL (CALLBACK *ACMFORMATENUMCBW) (
+	HACMDRIVERID        hadid,
+	LPACMFORMATDETAILSW pafd,
+	DWORD_PTR           dwInstance,
+	DWORD               fdwSupport
+);
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagenumcallback.asp*/
+typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA) (
+	HACMDRIVERID           hadid,
+	LPACMFORMATTAGDETAILSA paftd,
+	DWORD_PTR              dwInstance,
+	DWORD                  fdwSupport
+);
+typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW) (
+	HACMDRIVERID           hadid,
+	LPACMFORMATTAGDETAILSW paftd,
+	DWORD_PTR              dwInstance,
+	DWORD                  fdwSupport
+);
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverenumcallback.asp*/
+typedef BOOL (CALLBACK *ACMDRIVERENUMCB) (
+	HACMDRIVERID hadid,
+	DWORD_PTR    dwInstance,
+	DWORD        fdwSupport
+);
+
+/*and now the functions...*/
+
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriveropen.asp*/
+MMRESULT WINAPI acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen);
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverenum.asp*/
+MMRESULT WINAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatenum.asp*/
+MMRESULT WINAPI acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd, ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+MMRESULT WINAPI acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd, ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverclose.asp*/
+MMRESULT WINAPI acmDriverClose(HACMDRIVER had, DWORD fdwClose);
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverdetails.asp*/
+MMRESULT WINAPI acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd, DWORD fdwDetails);
+MMRESULT WINAPI acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd, DWORD fdwDetails);
+/*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagenum.asp*/
+MMRESULT WINAPI acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd, ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd, ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+
+#ifdef UNICODE
+
+typedef ACMFORMATDETAILSW ACMFORMATDETAILS, *LPACMFORMATDETAILS;
+typedef ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS, *LPACMFORMATTAGDETAILS;
+typedef ACMDRIVERDETAILSW ACMDRIVERDETAILS, *LPACMDRIVERDETAILS;
+typedef ACMFORMATENUMCBW ACMFORMATENUMCB;
+typedef ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
+#define acmFormatEnum acmFormatEnumW
+#define acmDriverDetails acmDriverDetailsW
+#define acmFormatTagEnum acmFormatTagEnumW
+
+#else /*ifdef UNICODE*/
+
+typedef ACMFORMATDETAILSA ACMFORMATDETAILS, *LPACMFORMATDETAILS;
+typedef ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS, *LPACMFORMATTAGDETAILS;
+typedef ACMDRIVERDETAILSA ACMDRIVERDETAILS, *LPACMDRIVERDETAILS;
+typedef ACMFORMATENUMCBA ACMFORMATENUMCB;
+typedef ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
+#define acmFormatEnum acmFormatEnumA
+#define acmDriverDetails acmDriverDetailsA
+#define acmFormatTagEnum acmFormatTagEnumA
+
+#endif /*ifdef UNICODE*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif