4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * msacm.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.msacm; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.basetsd, win32.mmsystem, win32.windef; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias HANDLE HACMDRIVERID, HACMDRIVER; 4e2933c620 2015-04-21 kinaba: alias HANDLE* LPHACMDRIVER; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* Comment from MinGW 4e2933c620 2015-04-21 kinaba: found through experimentation 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: const size_t 4e2933c620 2015-04-21 kinaba: ACMDRIVERDETAILS_SHORTNAME_CHARS = 32, 4e2933c620 2015-04-21 kinaba: ACMDRIVERDETAILS_LONGNAME_CHARS = 128, 4e2933c620 2015-04-21 kinaba: ACMDRIVERDETAILS_COPYRIGHT_CHARS = 80, 4e2933c620 2015-04-21 kinaba: ACMDRIVERDETAILS_LICENSING_CHARS = 128; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* Comment from MinGW 4e2933c620 2015-04-21 kinaba: I don't know the right values for these macros 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: const size_t 4e2933c620 2015-04-21 kinaba: ACMFORMATDETAILS_FORMAT_CHARS = 256, 4e2933c620 2015-04-21 kinaba: ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 256, 4e2933c620 2015-04-21 kinaba: ACMDRIVERDETAILS_FEATURES_CHARS = 256; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ACMFORMATDETAILSA { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct = ACMFORMATDETAILSA.sizeof; // are they? 4e2933c620 2015-04-21 kinaba: DWORD dwFormatIndex; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatTag; 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport; 4e2933c620 2015-04-21 kinaba: LPWAVEFORMATEX pwfx; 4e2933c620 2015-04-21 kinaba: DWORD cbwfx; 4e2933c620 2015-04-21 kinaba: char[ACMFORMATDETAILS_FORMAT_CHARS] szFormat; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias ACMFORMATDETAILSA* LPACMFORMATDETAILSA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ACMFORMATDETAILSW { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct = ACMFORMATDETAILSW.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatIndex; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatTag; 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport; 4e2933c620 2015-04-21 kinaba: LPWAVEFORMATEX pwfx; 4e2933c620 2015-04-21 kinaba: DWORD cbwfx; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMFORMATDETAILS_FORMAT_CHARS] szFormat; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias ACMFORMATDETAILSW* LPACMFORMATDETAILSW; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ACMFORMATTAGDETAILSA { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct = ACMFORMATTAGDETAILSA.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatTagIndex; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatTag; 4e2933c620 2015-04-21 kinaba: DWORD cbFormatSize; 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport; 4e2933c620 2015-04-21 kinaba: DWORD cStandardFormats; 4e2933c620 2015-04-21 kinaba: char[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGDETAILSA* LPACMFORMATTAGDETAILSA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ACMFORMATTAGDETAILSW { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct = ACMFORMATTAGDETAILSW.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatTagIndex; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatTag; 4e2933c620 2015-04-21 kinaba: DWORD cbFormatSize; 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport; 4e2933c620 2015-04-21 kinaba: DWORD cStandardFormats; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGDETAILSW* LPACMFORMATTAGDETAILSW; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ACMDRIVERDETAILSA { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct = ACMDRIVERDETAILSA.sizeof; 4e2933c620 2015-04-21 kinaba: FOURCC fccType; 4e2933c620 2015-04-21 kinaba: FOURCC fccComp; 4e2933c620 2015-04-21 kinaba: WORD wMid; 4e2933c620 2015-04-21 kinaba: WORD wPid; 4e2933c620 2015-04-21 kinaba: DWORD vdwACM; 4e2933c620 2015-04-21 kinaba: DWORD vdwDriver; 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport; 4e2933c620 2015-04-21 kinaba: DWORD cFormatTags; 4e2933c620 2015-04-21 kinaba: DWORD cFilterTags; 4e2933c620 2015-04-21 kinaba: HICON hicon; 4e2933c620 2015-04-21 kinaba: char[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName; 4e2933c620 2015-04-21 kinaba: char[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName; 4e2933c620 2015-04-21 kinaba: char[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright; 4e2933c620 2015-04-21 kinaba: char[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing; 4e2933c620 2015-04-21 kinaba: char[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias ACMDRIVERDETAILSA* LPACMDRIVERDETAILSA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ACMDRIVERDETAILSW { 4e2933c620 2015-04-21 kinaba: DWORD cbStruct = ACMDRIVERDETAILSW.sizeof; 4e2933c620 2015-04-21 kinaba: FOURCC fccType; 4e2933c620 2015-04-21 kinaba: FOURCC fccComp; 4e2933c620 2015-04-21 kinaba: WORD wMid; 4e2933c620 2015-04-21 kinaba: WORD wPid; 4e2933c620 2015-04-21 kinaba: DWORD vdwACM; 4e2933c620 2015-04-21 kinaba: DWORD vdwDriver; 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport; 4e2933c620 2015-04-21 kinaba: DWORD cFormatTags; 4e2933c620 2015-04-21 kinaba: DWORD cFilterTags; 4e2933c620 2015-04-21 kinaba: HICON hicon; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing; 4e2933c620 2015-04-21 kinaba: WCHAR[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias ACMDRIVERDETAILSW* LPACMDRIVERDETAILSW; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd, 4e2933c620 2015-04-21 kinaba: DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBA; 4e2933c620 2015-04-21 kinaba: alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSW pafd, 4e2933c620 2015-04-21 kinaba: DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBW; 4e2933c620 2015-04-21 kinaba: alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSA paftd, 4e2933c620 2015-04-21 kinaba: DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBA; 4e2933c620 2015-04-21 kinaba: alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSW paftd, 4e2933c620 2015-04-21 kinaba: DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBW; 4e2933c620 2015-04-21 kinaba: alias BOOL function(HACMDRIVERID hadid, DWORD_PTR dwInstance, 4e2933c620 2015-04-21 kinaba: DWORD fdwSupport) ACMDRIVERENUMCB; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: MMRESULT acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid, 4e2933c620 2015-04-21 kinaba: DWORD fdwOpen); 4e2933c620 2015-04-21 kinaba: MMRESULT acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, 4e2933c620 2015-04-21 kinaba: DWORD fdwEnum); 4e2933c620 2015-04-21 kinaba: MMRESULT acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd, 4e2933c620 2015-04-21 kinaba: ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 4e2933c620 2015-04-21 kinaba: MMRESULT acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd, 4e2933c620 2015-04-21 kinaba: ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 4e2933c620 2015-04-21 kinaba: MMRESULT acmDriverClose(HACMDRIVER had, DWORD fdwClose); 4e2933c620 2015-04-21 kinaba: MMRESULT acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd, 4e2933c620 2015-04-21 kinaba: DWORD fdwDetails); 4e2933c620 2015-04-21 kinaba: MMRESULT acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd, 4e2933c620 2015-04-21 kinaba: DWORD fdwDetails); 4e2933c620 2015-04-21 kinaba: MMRESULT acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd, 4e2933c620 2015-04-21 kinaba: ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 4e2933c620 2015-04-21 kinaba: MMRESULT acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd, 4e2933c620 2015-04-21 kinaba: ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version (Unicode) { 4e2933c620 2015-04-21 kinaba: alias ACMFORMATDETAILSW ACMFORMATDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMDRIVERDETAILSW ACMDRIVERDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATENUMCBW ACMFORMATENUMCB; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB; 4e2933c620 2015-04-21 kinaba: alias acmFormatEnumW acmFormatEnum; 4e2933c620 2015-04-21 kinaba: alias acmDriverDetailsW acmDriverDetails; 4e2933c620 2015-04-21 kinaba: alias acmFormatTagEnumW acmFormatTagEnum; 4e2933c620 2015-04-21 kinaba: } else { 4e2933c620 2015-04-21 kinaba: alias ACMFORMATDETAILSA ACMFORMATDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMDRIVERDETAILSA ACMDRIVERDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATENUMCBA ACMFORMATENUMCB; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB; 4e2933c620 2015-04-21 kinaba: alias acmFormatEnumA acmFormatEnum; 4e2933c620 2015-04-21 kinaba: alias acmDriverDetailsA acmDriverDetails; 4e2933c620 2015-04-21 kinaba: alias acmFormatTagEnumA acmFormatTagEnum; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias ACMFORMATDETAILS* LPACMFORMATDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMFORMATTAGDETAILS* LPACMFORMATTAGDETAILS; 4e2933c620 2015-04-21 kinaba: alias ACMDRIVERDETAILS* LPACMDRIVERDETAILS;