mingw-5.1.4/win32/include/msacm.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     1 /*author: Adrian Sandor
       
     2   written for MinGW*/
       
     3 #ifndef _MSACM_H
       
     4 #define _MSACM_H
       
     5 
       
     6 #if __GNUC__ >= 3
       
     7 #pragma GCC system_header
       
     8 #endif
       
     9 
       
    10 #ifdef __cplusplus
       
    11 extern "C" {
       
    12 #endif
       
    13 
       
    14 typedef HANDLE HACMDRIVERID, HACMDRIVER, *LPHACMDRIVER; /*they're handles, right?*/
       
    15 
       
    16 /*found through experimentation*/
       
    17 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
       
    18 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
       
    19 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
       
    20 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
       
    21 
       
    22 /*I don't know the right values for these macros*/
       
    23 #define ACMFORMATDETAILS_FORMAT_CHARS 256
       
    24 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 256
       
    25 #define ACMDRIVERDETAILS_FEATURES_CHARS 256
       
    26 
       
    27 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatdetails_str.asp*/
       
    28 typedef struct {
       
    29 	DWORD          cbStruct;
       
    30 	DWORD          dwFormatIndex;
       
    31 	DWORD          dwFormatTag;
       
    32 	DWORD          fdwSupport;
       
    33 	LPWAVEFORMATEX pwfx;
       
    34 	DWORD          cbwfx;
       
    35 	char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
       
    36 } ACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
       
    37 typedef struct {
       
    38 	DWORD          cbStruct;
       
    39 	DWORD          dwFormatIndex;
       
    40 	DWORD          dwFormatTag;
       
    41 	DWORD          fdwSupport;
       
    42 	LPWAVEFORMATEX pwfx;
       
    43 	DWORD          cbwfx;
       
    44 	WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
       
    45 } ACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
       
    46 
       
    47 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagdetails_str.asp*/
       
    48 typedef struct {
       
    49 	DWORD cbStruct;
       
    50 	DWORD dwFormatTagIndex;
       
    51 	DWORD dwFormatTag;
       
    52 	DWORD cbFormatSize;
       
    53 	DWORD fdwSupport;
       
    54 	DWORD cStandardFormats;
       
    55 	char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
       
    56 } ACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
       
    57 typedef struct {
       
    58 	DWORD cbStruct;
       
    59 	DWORD dwFormatTagIndex;
       
    60 	DWORD dwFormatTag;
       
    61 	DWORD cbFormatSize;
       
    62 	DWORD fdwSupport;
       
    63 	DWORD cStandardFormats;
       
    64 	WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
       
    65 } ACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
       
    66 
       
    67 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverdetails_str.asp*/
       
    68 typedef struct {
       
    69 	DWORD  cbStruct;
       
    70 	FOURCC fccType;
       
    71 	FOURCC fccComp;
       
    72 	WORD   wMid;
       
    73 	WORD   wPid;
       
    74 	DWORD  vdwACM;
       
    75 	DWORD  vdwDriver;
       
    76 	DWORD  fdwSupport;
       
    77 	DWORD  cFormatTags;
       
    78 	DWORD  cFilterTags;
       
    79 	HICON  hicon;
       
    80 	char  szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
       
    81 	char  szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
       
    82 	char  szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
       
    83 	char  szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
       
    84 	char  szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
       
    85 } ACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
       
    86 typedef struct {
       
    87 	DWORD  cbStruct;
       
    88 	FOURCC fccType;
       
    89 	FOURCC fccComp;
       
    90 	WORD   wMid;
       
    91 	WORD   wPid;
       
    92 	DWORD  vdwACM;
       
    93 	DWORD  vdwDriver;
       
    94 	DWORD  fdwSupport;
       
    95 	DWORD  cFormatTags;
       
    96 	DWORD  cFilterTags;
       
    97 	HICON  hicon;
       
    98 	WCHAR  szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
       
    99 	WCHAR  szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
       
   100 	WCHAR  szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
       
   101 	WCHAR  szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
       
   102 	WCHAR  szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
       
   103 } ACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
       
   104 
       
   105 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatenumcallback.asp*/
       
   106 typedef BOOL (CALLBACK *ACMFORMATENUMCBA) (
       
   107 	HACMDRIVERID        hadid,
       
   108 	LPACMFORMATDETAILSA pafd,
       
   109 	DWORD_PTR           dwInstance,
       
   110 	DWORD               fdwSupport
       
   111 );
       
   112 typedef BOOL (CALLBACK *ACMFORMATENUMCBW) (
       
   113 	HACMDRIVERID        hadid,
       
   114 	LPACMFORMATDETAILSW pafd,
       
   115 	DWORD_PTR           dwInstance,
       
   116 	DWORD               fdwSupport
       
   117 );
       
   118 
       
   119 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagenumcallback.asp*/
       
   120 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA) (
       
   121 	HACMDRIVERID           hadid,
       
   122 	LPACMFORMATTAGDETAILSA paftd,
       
   123 	DWORD_PTR              dwInstance,
       
   124 	DWORD                  fdwSupport
       
   125 );
       
   126 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW) (
       
   127 	HACMDRIVERID           hadid,
       
   128 	LPACMFORMATTAGDETAILSW paftd,
       
   129 	DWORD_PTR              dwInstance,
       
   130 	DWORD                  fdwSupport
       
   131 );
       
   132 
       
   133 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverenumcallback.asp*/
       
   134 typedef BOOL (CALLBACK *ACMDRIVERENUMCB) (
       
   135 	HACMDRIVERID hadid,
       
   136 	DWORD_PTR    dwInstance,
       
   137 	DWORD        fdwSupport
       
   138 );
       
   139 
       
   140 /*and now the functions...*/
       
   141 
       
   142 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriveropen.asp*/
       
   143 MMRESULT WINAPI acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen);
       
   144 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverenum.asp*/
       
   145 MMRESULT WINAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
       
   146 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatenum.asp*/
       
   147 MMRESULT WINAPI acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd, ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
       
   148 MMRESULT WINAPI acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd, ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
       
   149 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverclose.asp*/
       
   150 MMRESULT WINAPI acmDriverClose(HACMDRIVER had, DWORD fdwClose);
       
   151 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverdetails.asp*/
       
   152 MMRESULT WINAPI acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd, DWORD fdwDetails);
       
   153 MMRESULT WINAPI acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd, DWORD fdwDetails);
       
   154 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagenum.asp*/
       
   155 MMRESULT WINAPI acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd, ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
       
   156 MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd, ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
       
   157 
       
   158 #ifdef UNICODE
       
   159 
       
   160 typedef ACMFORMATDETAILSW ACMFORMATDETAILS, *LPACMFORMATDETAILS;
       
   161 typedef ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS, *LPACMFORMATTAGDETAILS;
       
   162 typedef ACMDRIVERDETAILSW ACMDRIVERDETAILS, *LPACMDRIVERDETAILS;
       
   163 typedef ACMFORMATENUMCBW ACMFORMATENUMCB;
       
   164 typedef ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
       
   165 #define acmFormatEnum acmFormatEnumW
       
   166 #define acmDriverDetails acmDriverDetailsW
       
   167 #define acmFormatTagEnum acmFormatTagEnumW
       
   168 
       
   169 #else /*ifdef UNICODE*/
       
   170 
       
   171 typedef ACMFORMATDETAILSA ACMFORMATDETAILS, *LPACMFORMATDETAILS;
       
   172 typedef ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS, *LPACMFORMATTAGDETAILS;
       
   173 typedef ACMDRIVERDETAILSA ACMDRIVERDETAILS, *LPACMDRIVERDETAILS;
       
   174 typedef ACMFORMATENUMCBA ACMFORMATENUMCB;
       
   175 typedef ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
       
   176 #define acmFormatEnum acmFormatEnumA
       
   177 #define acmDriverDetails acmDriverDetailsA
       
   178 #define acmFormatTagEnum acmFormatTagEnumA
       
   179 
       
   180 #endif /*ifdef UNICODE*/
       
   181 
       
   182 #ifdef __cplusplus
       
   183 }
       
   184 #endif
       
   185 
       
   186 #endif