aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/w32api/ChangeLog4
-rw-r--r--winsup/w32api/include/msacm.h186
2 files changed, 190 insertions, 0 deletions
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog
index e69c79a..dedab58 100644
--- a/winsup/w32api/ChangeLog
+++ b/winsup/w32api/ChangeLog
@@ -1,3 +1,7 @@
+2004-04-20 Adrian Sandor <aditsu@users.sourceforge.net>
+
+ * include/msacm.h: New file.
+
2004-01-09 Stuart Cunningham <stuart_hc@users.sourceforge.net>
* include/objbase.h (STGFMT): Declare enum.
diff --git a/winsup/w32api/include/msacm.h b/winsup/w32api/include/msacm.h
new file mode 100644
index 0000000..5d571c0
--- /dev/null
+++ b/winsup/w32api/include/msacm.h
@@ -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