diff win32/msacm.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/win32/msacm.d	Tue Apr 05 20:44:01 2011 +0200
@@ -0,0 +1,172 @@
+/***********************************************************************\
+*                                msacm.d                                *
+*                                                                       *
+*                       Windows API header module                       *
+*                                                                       *
+*                 Translated from MinGW Windows headers                 *
+*                           by Stewart Gordon                           *
+*                                                                       *
+*                       Placed into public domain                       *
+\***********************************************************************/
+module win32.msacm;
+
+private import win32.basetsd, win32.mmsystem, win32.windef;
+
+alias HANDLE HACMDRIVERID, HACMDRIVER;
+alias HANDLE* LPHACMDRIVER;
+
+/* Comment from MinGW
+	found through experimentation
+ */
+const size_t
+	ACMDRIVERDETAILS_SHORTNAME_CHARS =  32,
+	ACMDRIVERDETAILS_LONGNAME_CHARS  = 128,
+	ACMDRIVERDETAILS_COPYRIGHT_CHARS =  80,
+	ACMDRIVERDETAILS_LICENSING_CHARS = 128;
+
+/* Comment from MinGW
+	I don't know the right values for these macros
+ */
+const size_t
+	ACMFORMATDETAILS_FORMAT_CHARS       = 256,
+	ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 256,
+	ACMDRIVERDETAILS_FEATURES_CHARS     = 256;
+
+struct ACMFORMATDETAILSA {
+	DWORD          cbStruct = ACMFORMATDETAILSA.sizeof;  // are they?
+	DWORD          dwFormatIndex;
+	DWORD          dwFormatTag;
+	DWORD          fdwSupport;
+	LPWAVEFORMATEX pwfx;
+	DWORD          cbwfx;
+	char[ACMFORMATDETAILS_FORMAT_CHARS] szFormat;
+}
+alias ACMFORMATDETAILSA* LPACMFORMATDETAILSA;
+
+struct ACMFORMATDETAILSW {
+	DWORD          cbStruct = ACMFORMATDETAILSW.sizeof;
+	DWORD          dwFormatIndex;
+	DWORD          dwFormatTag;
+	DWORD          fdwSupport;
+	LPWAVEFORMATEX pwfx;
+	DWORD          cbwfx;
+	WCHAR[ACMFORMATDETAILS_FORMAT_CHARS] szFormat;
+}
+alias ACMFORMATDETAILSW* LPACMFORMATDETAILSW;
+
+struct ACMFORMATTAGDETAILSA {
+	DWORD cbStruct = ACMFORMATTAGDETAILSA.sizeof;
+	DWORD dwFormatTagIndex;
+	DWORD dwFormatTag;
+	DWORD cbFormatSize;
+	DWORD fdwSupport;
+	DWORD cStandardFormats;
+	char[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag;
+}
+alias ACMFORMATTAGDETAILSA* LPACMFORMATTAGDETAILSA;
+
+struct ACMFORMATTAGDETAILSW {
+	DWORD cbStruct = ACMFORMATTAGDETAILSW.sizeof;
+	DWORD dwFormatTagIndex;
+	DWORD dwFormatTag;
+	DWORD cbFormatSize;
+	DWORD fdwSupport;
+	DWORD cStandardFormats;
+	WCHAR[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag;
+}
+alias ACMFORMATTAGDETAILSW* LPACMFORMATTAGDETAILSW;
+
+struct ACMDRIVERDETAILSA {
+	DWORD  cbStruct = ACMDRIVERDETAILSA.sizeof;
+	FOURCC fccType;
+	FOURCC fccComp;
+	WORD   wMid;
+	WORD   wPid;
+	DWORD  vdwACM;
+	DWORD  vdwDriver;
+	DWORD  fdwSupport;
+	DWORD  cFormatTags;
+	DWORD  cFilterTags;
+	HICON  hicon;
+	char[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName;
+	char[ACMDRIVERDETAILS_LONGNAME_CHARS]  szLongName;
+	char[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright;
+	char[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing;
+	char[ACMDRIVERDETAILS_FEATURES_CHARS]  szFeatures;
+}
+alias ACMDRIVERDETAILSA* LPACMDRIVERDETAILSA;
+
+struct ACMDRIVERDETAILSW {
+	DWORD  cbStruct = ACMDRIVERDETAILSW.sizeof;
+	FOURCC fccType;
+	FOURCC fccComp;
+	WORD   wMid;
+	WORD   wPid;
+	DWORD  vdwACM;
+	DWORD  vdwDriver;
+	DWORD  fdwSupport;
+	DWORD  cFormatTags;
+	DWORD  cFilterTags;
+	HICON  hicon;
+	WCHAR[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName;
+	WCHAR[ACMDRIVERDETAILS_LONGNAME_CHARS]  szLongName;
+	WCHAR[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright;
+	WCHAR[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing;
+	WCHAR[ACMDRIVERDETAILS_FEATURES_CHARS]  szFeatures;
+}
+alias ACMDRIVERDETAILSW* LPACMDRIVERDETAILSW;
+
+extern (Windows) {
+	alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd,
+	  DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBA;
+	alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSW pafd,
+	  DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBW;
+	alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSA paftd,
+	  DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBA;
+	alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSW paftd,
+	  DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBW;
+	alias BOOL function(HACMDRIVERID hadid, DWORD_PTR dwInstance,
+	  DWORD fdwSupport) ACMDRIVERENUMCB;
+
+	MMRESULT acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid,
+	  DWORD fdwOpen);
+	MMRESULT acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance,
+	  DWORD fdwEnum);
+	MMRESULT acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd,
+	  ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+	MMRESULT acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd,
+	  ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+	MMRESULT acmDriverClose(HACMDRIVER had, DWORD fdwClose);
+	MMRESULT acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd,
+	  DWORD fdwDetails);
+	MMRESULT acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd,
+	  DWORD fdwDetails);
+	MMRESULT acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd,
+	  ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+	MMRESULT acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd,
+	  ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
+}
+
+version (Unicode) {
+	alias ACMFORMATDETAILSW ACMFORMATDETAILS;
+	alias ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS;
+	alias ACMDRIVERDETAILSW ACMDRIVERDETAILS;
+	alias ACMFORMATENUMCBW ACMFORMATENUMCB;
+	alias ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
+	alias acmFormatEnumW acmFormatEnum;
+	alias acmDriverDetailsW acmDriverDetails;
+	alias acmFormatTagEnumW acmFormatTagEnum;
+} else {
+	alias ACMFORMATDETAILSA ACMFORMATDETAILS;
+	alias ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS;
+	alias ACMDRIVERDETAILSA ACMDRIVERDETAILS;
+	alias ACMFORMATENUMCBA ACMFORMATENUMCB;
+	alias ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
+	alias acmFormatEnumA acmFormatEnum;
+	alias acmDriverDetailsA acmDriverDetails;
+	alias acmFormatTagEnumA acmFormatTagEnum;
+}
+
+alias ACMFORMATDETAILS* LPACMFORMATDETAILS;
+alias ACMFORMATTAGDETAILS* LPACMFORMATTAGDETAILS;
+alias ACMDRIVERDETAILS* LPACMDRIVERDETAILS;