Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

msacm.h

00001 /*
00002  *      msacm.h   -       Declarations for MSACM
00003  */
00004 
00005 #ifndef __WINE_MSACM_H
00006 #define __WINE_MSACM_H
00007 
00008 #include "windef.h"
00009 #include "driver.h"
00010 #include "mmreg.h"
00011 
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif /* defined(__cplusplus) */
00015 
00016 //typedef WORD    VERSION;        /* major (high byte), minor (low byte) */
00017 
00018 typedef UINT16  MMVERSION16;
00019 typedef UINT    MMVERSION;
00020 typedef UINT16  MCIDEVICEID16;
00021 typedef UINT    MCIDEVICEID;
00022 typedef UINT16  MMRESULT16;
00023 typedef UINT    MMRESULT;
00024 typedef DWORD           FOURCC;         /* a four character code */
00025 
00026 
00027 
00028 #if !defined(WAVE_FORMAT_PCM)
00029 #define WAVE_FORMAT_PCM     1
00030 #endif
00031 
00032 /***********************************************************************
00033  * Defines/Enums
00034  */
00035 
00036 #define ACMERR_BASE        512
00037 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
00038 #define ACMERR_BUSY        (ACMERR_BASE + 1)
00039 #define ACMERR_UNPREPARED  (ACMERR_BASE + 2)
00040 #define ACMERR_CANCELED    (ACMERR_BASE + 3)
00041 
00042 #define MM_ACM_OPEN  MM_STREAM_OPEN
00043 #define MM_ACM_CLOSE MM_STREAM_CLOSE
00044 #define MM_ACM_DONE  MM_STREAM_DONE
00045 
00046 #define ACM_DRIVERADDF_FUNCTION   0x00000003L
00047 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
00048 #define ACM_DRIVERADDF_TYPEMASK   0x00000007L
00049 #define ACM_DRIVERADDF_LOCAL      0x00000000L
00050 #define ACM_DRIVERADDF_GLOBAL     0x00000008L
00051 
00052 #define ACMDRIVERDETAILS_SHORTNAME_CHARS  32
00053 #define ACMDRIVERDETAILS_LONGNAME_CHARS  128
00054 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS  80
00055 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
00056 #define ACMDRIVERDETAILS_FEATURES_CHARS  512
00057 
00058 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
00059 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED  mmioFOURCC('\0', '\0', '\0', '\0')
00060 
00061 #define ACMDRIVERDETAILS_SUPPORTF_CODEC     0x00000001L
00062 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
00063 #define ACMDRIVERDETAILS_SUPPORTF_FILTER    0x00000004L
00064 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE  0x00000008L
00065 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC     0x00000010L
00066 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL     0x40000000L
00067 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED  0x80000000L
00068 
00069 #define ACM_DRIVERENUMF_NOLOCAL  0x40000000L
00070 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
00071 
00072 #define ACM_DRIVERPRIORITYF_ENABLE    0x00000001L
00073 #define ACM_DRIVERPRIORITYF_DISABLE   0x00000002L
00074 #define ACM_DRIVERPRIORITYF_ABLEMASK  0x00000003L
00075 #define ACM_DRIVERPRIORITYF_BEGIN     0x00010000L
00076 #define ACM_DRIVERPRIORITYF_END       0x00020000L
00077 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
00078 
00079 #define MM_ACM_FILTERCHOOSE 0x8000
00080 
00081 #define FILTERCHOOSE_MESSAGE          0
00082 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
00083 #define FILTERCHOOSE_FILTER_VERIFY    (FILTERCHOOSE_MESSAGE+1)
00084 #define FILTERCHOOSE_CUSTOM_VERIFY    (FILTERCHOOSE_MESSAGE+2)
00085 
00086 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP             0x00000004L
00087 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK           0x00000008L
00088 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE       0x00000010L
00089 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
00090 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT   0x00000040L
00091 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP          0x00000080L
00092 
00093 #define ACMFILTERDETAILS_FILTER_CHARS 128
00094 
00095 #define ACM_FILTERDETAILSF_INDEX     0x00000000L
00096 #define ACM_FILTERDETAILSF_FILTER    0x00000001L
00097 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
00098 
00099 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
00100 
00101 #define ACM_FILTERTAGDETAILSF_INDEX       0x00000000L
00102 #define ACM_FILTERTAGDETAILSF_FILTERTAG   0x00000001L
00103 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
00104 #define ACM_FILTERTAGDETAILSF_QUERYMASK   0x0000000FL
00105 
00106 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
00107 
00108 #define ACMHELPMSGSTRINGA       "acmchoose_help"
00109 #define ACMHELPMSGSTRINGW       L"acmchoose_help"
00110 #define ACMHELPMSGSTRING16       "acmchoose_help"
00111 
00112 #define ACMHELPMSGCONTEXTMENUA  "acmchoose_contextmenu"
00113 #define ACMHELPMSGCONTEXTMENUW  L"acmchoose_contextmenu"
00114 #define ACMHELPMSGCONTEXTMENU16   "acmchoose_contextmenu"
00115 
00116 #define ACMHELPMSGCONTEXTHELPA  "acmchoose_contexthelp"
00117 #define ACMHELPMSGCONTEXTHELPW  L"acmchoose_contexthelp"
00118 #define ACMHELPMSGCONTEXTHELP16   "acmchoose_contexthelp"
00119 
00120 #define MM_ACM_FORMATCHOOSE 0x8000
00121 
00122 #define FORMATCHOOSE_MESSAGE          0
00123 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
00124 #define FORMATCHOOSE_FORMAT_VERIFY    (FORMATCHOOSE_MESSAGE+1)
00125 #define FORMATCHOOSE_CUSTOM_VERIFY    (FORMATCHOOSE_MESSAGE+2)
00126 
00127 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP             0x00000004L
00128 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK           0x00000008L
00129 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE       0x00000010L
00130 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
00131 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT      0x00000040L
00132 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP          0x00000080L
00133 
00134 #define ACMFORMATDETAILS_FORMAT_CHARS   128
00135 
00136 #define ACM_FORMATDETAILSF_INDEX     0x00000000L
00137 #define ACM_FORMATDETAILSF_FORMAT    0x00000001L
00138 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
00139 
00140 #define ACM_FORMATENUMF_WFORMATTAG     0x00010000L
00141 #define ACM_FORMATENUMF_NCHANNELS      0x00020000L
00142 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
00143 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
00144 #define ACM_FORMATENUMF_CONVERT        0x00100000L
00145 #define ACM_FORMATENUMF_SUGGEST        0x00200000L
00146 #define ACM_FORMATENUMF_HARDWARE       0x00400000L
00147 #define ACM_FORMATENUMF_INPUT          0x00800000L
00148 #define ACM_FORMATENUMF_OUTPUT         0x01000000L
00149 
00150 #define ACM_FORMATSUGGESTF_WFORMATTAG     0x00010000L
00151 #define ACM_FORMATSUGGESTF_NCHANNELS      0x00020000L
00152 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
00153 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
00154 #define ACM_FORMATSUGGESTF_TYPEMASK       0x00FF0000L
00155 
00156 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
00157 
00158 #define ACM_FORMATTAGDETAILSF_INDEX       0x00000000L
00159 #define ACM_FORMATTAGDETAILSF_FORMATTAG   0x00000001L
00160 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
00161 #define ACM_FORMATTAGDETAILSF_QUERYMASK   0x0000000FL
00162 
00163 #define ACM_METRIC_COUNT_DRIVERS            1
00164 #define ACM_METRIC_COUNT_CODECS             2
00165 #define ACM_METRIC_COUNT_CONVERTERS         3
00166 #define ACM_METRIC_COUNT_FILTERS            4
00167 #define ACM_METRIC_COUNT_DISABLED           5
00168 #define ACM_METRIC_COUNT_HARDWARE           6
00169 #define ACM_METRIC_COUNT_LOCAL_DRIVERS     20
00170 #define ACM_METRIC_COUNT_LOCAL_CODECS      21
00171 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS  22
00172 #define ACM_METRIC_COUNT_LOCAL_FILTERS     23
00173 #define ACM_METRIC_COUNT_LOCAL_DISABLED    24
00174 #define ACM_METRIC_HARDWARE_WAVE_INPUT     30
00175 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT    31
00176 #define ACM_METRIC_MAX_SIZE_FORMAT         50
00177 #define ACM_METRIC_MAX_SIZE_FILTER         51
00178 #define ACM_METRIC_DRIVER_SUPPORT         100
00179 #define ACM_METRIC_DRIVER_PRIORITY        101
00180 
00181 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
00182 #define ACM_STREAMCONVERTF_START      0x00000010
00183 #define ACM_STREAMCONVERTF_END        0x00000020
00184 
00185 #define ACMSTREAMHEADER_STATUSF_DONE     0x00010000L
00186 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
00187 #define ACMSTREAMHEADER_STATUSF_INQUEUE  0x00100000L
00188 
00189 #define ACM_STREAMOPENF_QUERY       0x00000001
00190 #define ACM_STREAMOPENF_ASYNC       0x00000002
00191 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
00192 
00193 #define ACM_STREAMSIZEF_SOURCE      0x00000000L
00194 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
00195 #define ACM_STREAMSIZEF_QUERYMASK   0x0000000FL
00196 
00197 #define ACMDM_USER                  (DRV_USER + 0x0000)
00198 #define ACMDM_RESERVED_LOW          (DRV_USER + 0x2000)
00199 #define ACMDM_RESERVED_HIGH         (DRV_USER + 0x2FFF)
00200 
00201 #define ACMDM_BASE                  ACMDM_RESERVED_LOW
00202 
00203 #define ACMDM_DRIVER_ABOUT          (ACMDM_BASE + 11)
00204 
00205 /***********************************************************************
00206  * Callbacks
00207  */
00208 
00209 typedef WIN_BOOL CALLBACK ( *ACMDRIVERENUMCB)(
00210   HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
00211 );
00212 
00213 typedef WIN_BOOL16 CALLBACK ( *ACMDRIVERENUMCB16)(
00214   HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
00215 );
00216 
00217 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCA)(
00218   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
00219 );
00220 
00221 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCW)(
00222   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
00223 );
00224 
00225 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROC16)(
00226   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
00227 );
00228 
00229 typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCA)(
00230   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
00231 );
00232 
00233 typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCW)(
00234   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
00235 );
00236 
00237 typedef UINT16 CALLBACK ( *ACMFORMATCHOOSEHOOKPROC16)(
00238   HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
00239 );
00240 
00241 /***********************************************************************
00242  * Structures
00243  */
00244 
00245 typedef struct _ACMDRIVERDETAILSA
00246 {
00247   DWORD    cbStruct;
00248 
00249   FOURCC   fccType;
00250   FOURCC   fccComp;
00251 
00252   WORD     wMid;
00253   WORD     wPid;
00254 
00255   DWORD    vdwACM;
00256   DWORD    vdwDriver;
00257 
00258   DWORD    fdwSupport;
00259   DWORD    cFormatTags;
00260   DWORD    cFilterTags;
00261 
00262   HICON  hicon;
00263 
00264   CHAR     szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
00265   CHAR     szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
00266   CHAR     szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
00267   CHAR     szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
00268   CHAR     szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
00269 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
00270 
00271 typedef struct _ACMDRIVERDETAILSW
00272 {
00273   DWORD    cbStruct;
00274 
00275   FOURCC   fccType;
00276   FOURCC   fccComp;
00277 
00278   WORD     wMid;
00279   WORD     wPid;
00280 
00281   DWORD    vdwACM;
00282   DWORD    vdwDriver;
00283 
00284   DWORD    fdwSupport;
00285   DWORD    cFormatTags;
00286   DWORD    cFilterTags;
00287 
00288   HICON  hicon;
00289 
00290   WCHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
00291   WCHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
00292   WCHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
00293   WCHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
00294   WCHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
00295 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
00296 
00297 typedef struct _ACMDRIVERDETAILS16
00298 {
00299   DWORD   cbStruct;
00300 
00301   FOURCC  fccType;
00302   FOURCC  fccComp;
00303 
00304   WORD    wMid;
00305   WORD    wPid;
00306 
00307   DWORD   vdwACM;
00308   DWORD   vdwDriver;
00309 
00310   DWORD   fdwSupport;
00311   DWORD   cFormatTags;
00312   DWORD   cFilterTags;
00313 
00314   HICON16 hicon;
00315 
00316   CHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
00317   CHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
00318   CHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
00319   CHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
00320   CHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
00321 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
00322 
00323 typedef struct _ACMFILTERCHOOSEA
00324 {
00325   DWORD         cbStruct;
00326   DWORD         fdwStyle;
00327 
00328   HWND        hwndOwner;
00329 
00330   PWAVEFILTER   pwfltr;
00331   DWORD         cbwfltr;
00332 
00333   LPCSTR        pszTitle;
00334 
00335   CHAR          szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
00336   CHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
00337   LPSTR         pszName;
00338   DWORD         cchName;
00339 
00340   DWORD         fdwEnum;
00341   PWAVEFILTER   pwfltrEnum;
00342     
00343   HINSTANCE   hInstance;
00344   LPCSTR        pszTemplateName;
00345   LPARAM        lCustData;
00346   ACMFILTERCHOOSEHOOKPROCA pfnHook;
00347 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
00348 
00349 typedef struct _ACMFILTERCHOOSEW
00350 {
00351   DWORD         cbStruct;
00352   DWORD         fdwStyle;
00353 
00354   HWND        hwndOwner;
00355 
00356   PWAVEFILTER   pwfltr;
00357   DWORD         cbwfltr;
00358 
00359   LPCWSTR       pszTitle;
00360 
00361   WCHAR         szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
00362   WCHAR         szFilter[ACMFILTERDETAILS_FILTER_CHARS];
00363   LPWSTR        pszName;
00364   DWORD         cchName;
00365 
00366   DWORD         fdwEnum;
00367   PWAVEFILTER   pwfltrEnum;
00368     
00369   HINSTANCE   hInstance;
00370   LPCWSTR       pszTemplateName;
00371   LPARAM        lCustData;
00372   ACMFILTERCHOOSEHOOKPROCW pfnHook;
00373 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
00374 
00375 typedef struct _ACMFILTERCHOOSE16
00376 {
00377   DWORD          cbStruct;
00378   DWORD          fdwStyle;
00379 
00380   HWND16         hwndOwner;
00381 
00382   LPWAVEFILTER   pwfltr;
00383   DWORD          cbwfltr;
00384 
00385   LPCSTR         pszTitle;
00386 
00387   char           szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
00388   char           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
00389   LPSTR          pszName;
00390   DWORD          cchName;
00391 
00392   DWORD          fdwEnum;
00393   LPWAVEFILTER   pwfltrEnum;
00394     
00395   HINSTANCE16    hInstance;
00396   LPCSTR         pszTemplateName;
00397   LPARAM         lCustData;
00398   ACMFILTERCHOOSEHOOKPROC16 pfnHook;
00399 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
00400 
00401 typedef struct _ACMFILTERDETAILSA
00402 {
00403   DWORD           cbStruct;
00404   DWORD           dwFilterIndex;
00405   DWORD           dwFilterTag;
00406   DWORD           fdwSupport;
00407   PWAVEFILTER     pwfltr;
00408   DWORD           cbwfltr;
00409   CHAR            szFilter[ACMFILTERDETAILS_FILTER_CHARS];
00410 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
00411 
00412 typedef struct _ACMFILTERDETAILSW
00413 {
00414   DWORD          cbStruct;
00415   DWORD          dwFilterIndex;
00416   DWORD          dwFilterTag;
00417   DWORD          fdwSupport;
00418   PWAVEFILTER    pwfltr;
00419   DWORD          cbwfltr;
00420   WCHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
00421 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
00422 
00423 typedef struct _ACMFILTERDETAILS16
00424 {
00425   DWORD          cbStruct;
00426   DWORD          dwFilterIndex;
00427   DWORD          dwFilterTag;
00428   DWORD          fdwSupport;
00429   LPWAVEFILTER   pwfltr;
00430   DWORD          cbwfltr;
00431   CHAR           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
00432 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
00433 
00434 typedef struct _ACMFILTERTAGDETAILSA
00435 {
00436   DWORD cbStruct;
00437   DWORD dwFilterTagIndex;
00438   DWORD dwFilterTag;
00439   DWORD cbFilterSize;
00440   DWORD fdwSupport;
00441   DWORD cStandardFilters;
00442   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
00443 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
00444 
00445 typedef struct _ACMFILTERTAGDETAILSW
00446 {
00447   DWORD cbStruct;
00448   DWORD dwFilterTagIndex;
00449   DWORD dwFilterTag;
00450   DWORD cbFilterSize;
00451   DWORD fdwSupport;
00452   DWORD cStandardFilters;
00453   WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
00454 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
00455 
00456 typedef struct _ACMFILTERTAGDETAILS16
00457 {
00458   DWORD cbStruct;
00459   DWORD dwFilterTagIndex;
00460   DWORD dwFilterTag;
00461   DWORD cbFilterSize;
00462   DWORD fdwSupport;
00463   DWORD cStandardFilters;
00464   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
00465 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
00466 
00467 typedef struct _ACMFORMATCHOOSEA
00468 {
00469   DWORD           cbStruct;
00470   DWORD           fdwStyle;
00471  
00472   HWND          hwndOwner;
00473 
00474   PWAVEFORMATEX   pwfx;
00475   DWORD           cbwfx;
00476   LPCSTR          pszTitle;
00477     
00478   CHAR            szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
00479   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
00480 
00481   LPSTR           pszName;
00482   DWORD           cchName;
00483 
00484   DWORD           fdwEnum;
00485   PWAVEFORMATEX   pwfxEnum;
00486     
00487   HINSTANCE     hInstance;
00488   LPCSTR          pszTemplateName;
00489   LPARAM          lCustData;
00490   ACMFORMATCHOOSEHOOKPROCA pfnHook;
00491 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
00492 
00493 typedef struct _ACMFORMATCHOOSEW
00494 {
00495   DWORD           cbStruct;
00496   DWORD           fdwStyle;
00497     
00498   HWND          hwndOwner;
00499 
00500   PWAVEFORMATEX   pwfx;
00501   DWORD           cbwfx;
00502   LPCWSTR         pszTitle;
00503     
00504   WCHAR           szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
00505   WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
00506 
00507   LPWSTR          pszName;
00508   DWORD           cchName;
00509 
00510   DWORD           fdwEnum;
00511   LPWAVEFORMATEX  pwfxEnum;
00512     
00513   HINSTANCE     hInstance;
00514   LPCWSTR         pszTemplateName;
00515   LPARAM          lCustData;
00516   ACMFORMATCHOOSEHOOKPROCW pfnHook;
00517 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
00518 
00519 typedef struct _ACMFORMATCHOOSE16
00520 {
00521   DWORD            cbStruct;
00522   DWORD            fdwStyle;
00523     
00524   HWND16           hwndOwner;
00525 
00526   LPWAVEFORMATEX   pwfx;
00527   DWORD            cbwfx;
00528   LPCSTR           pszTitle;
00529     
00530   CHAR             szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
00531   CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
00532 
00533   LPSTR            pszName;
00534   DWORD            cchName;
00535 
00536   DWORD            fdwEnum;
00537   LPWAVEFORMATEX   pwfxEnum;
00538     
00539   HINSTANCE16      hInstance;
00540   LPCSTR           pszTemplateName;
00541   LPARAM           lCustData;
00542   ACMFORMATCHOOSEHOOKPROC16 pfnHook;
00543 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
00544 
00545 typedef struct _ACMFORMATDETAILSA
00546 {
00547   DWORD           cbStruct;
00548   DWORD           dwFormatIndex;
00549   DWORD           dwFormatTag;
00550   DWORD           fdwSupport;
00551   PWAVEFORMATEX   pwfx;
00552   DWORD           cbwfx;
00553   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
00554 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
00555 
00556 typedef struct _ACMFORMATDETAILSW
00557 {
00558     DWORD           cbStruct;
00559     DWORD           dwFormatIndex;
00560     DWORD           dwFormatTag;
00561     DWORD           fdwSupport;
00562     PWAVEFORMATEX   pwfx;
00563     DWORD           cbwfx;
00564     WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
00565 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
00566 
00567 typedef struct _ACMFORMATDETAILS16
00568 {
00569     DWORD            cbStruct;
00570     DWORD            dwFormatIndex;
00571     DWORD            dwFormatTag;
00572     DWORD            fdwSupport;
00573     LPWAVEFORMATEX   pwfx;
00574     DWORD            cbwfx;
00575     CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
00576 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
00577 
00578 typedef struct _ACMFORMATTAGDETAILSA
00579 {
00580   DWORD cbStruct;
00581   DWORD dwFormatTagIndex;
00582   DWORD dwFormatTag;
00583   DWORD cbFormatSize;
00584   DWORD fdwSupport;
00585   DWORD cStandardFormats;
00586   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
00587 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
00588 
00589 typedef struct _ACMFORMATTAGDETAILSW
00590 {
00591   DWORD cbStruct;
00592   DWORD dwFormatTagIndex;
00593   DWORD dwFormatTag;
00594   DWORD cbFormatSize;
00595   DWORD fdwSupport;
00596   DWORD cStandardFormats;
00597   WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
00598 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
00599 
00600 typedef struct _ACMFORMATTAGDETAILS16
00601 {
00602   DWORD cbStruct;
00603   DWORD dwFormatTagIndex;
00604   DWORD dwFormatTag;
00605   DWORD cbFormatSize;
00606   DWORD fdwSupport;
00607   DWORD cStandardFormats;
00608   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
00609 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
00610 
00611 typedef struct _ACMSTREAMHEADER
00612 {
00613   DWORD  cbStruct;
00614   DWORD  fdwStatus;
00615   DWORD  dwUser;
00616   LPBYTE pbSrc;
00617   DWORD  cbSrcLength;
00618   DWORD  cbSrcLengthUsed;
00619   DWORD  dwSrcUser;
00620   LPBYTE pbDst;
00621   DWORD  cbDstLength;
00622   DWORD  cbDstLengthUsed;
00623   DWORD  dwDstUser;
00624   DWORD  dwReservedDriver[10];
00625 } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
00626   ACMSTREAMHEADER, *PACMSTREAMHEADER;
00627 
00628 /***********************************************************************
00629  * Callbacks 2
00630  */
00631 
00632 typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBA)(
00633   HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
00634   DWORD dwInstance, DWORD fdwSupport
00635 );
00636 
00637 typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBW)(
00638   HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
00639   DWORD dwInstance, DWORD fdwSupport
00640 );
00641 
00642 typedef WIN_BOOL16 CALLBACK ( *ACMFILTERENUMCB16)(
00643  HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
00644  DWORD dwInstance, DWORD fdwSupport
00645 );
00646 
00647 typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBA)(
00648   HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
00649   DWORD dwInstance, DWORD fdwSupport
00650 );
00651 
00652 typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBW)(
00653   HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
00654   DWORD dwInstance, DWORD fdwSupport
00655 );
00656 
00657 typedef WIN_BOOL16 CALLBACK ( *ACMFILTERTAGENUMCB16)(
00658   HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
00659   DWORD dwInstance, DWORD fdwSupport
00660 );
00661 
00662 typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBA)(
00663   HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
00664   DWORD dwInstance, DWORD fdwSupport
00665 );
00666 
00667 typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBW)(
00668   HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
00669   DWORD dwInstance, DWORD fdwSupport
00670 );
00671 
00672 typedef WIN_BOOL16 CALLBACK ( *ACMFORMATENUMCB16)(
00673   HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
00674   DWORD dwInstance, DWORD fdwSupport
00675 );
00676 
00677 typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBA)(
00678   HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
00679   DWORD dwInstance, DWORD fdwSupport
00680 );
00681 
00682 typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBW)(
00683   HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
00684   DWORD dwInstance, DWORD fdwSupport
00685 );
00686 
00687 typedef WIN_BOOL16 CALLBACK ( *ACMFORMATTAGENUMCB16)(
00688   HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
00689   DWORD dwInstance, DWORD fdwSupport
00690 );
00691 
00692 /***********************************************************************
00693  * Functions - Win16
00694  */
00695 
00696 DWORD WINAPI acmGetVersion16(
00697 );
00698 MMRESULT16 WINAPI acmMetrics16(
00699   HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
00700 );
00701 MMRESULT16 WINAPI acmDriverEnum16(
00702   ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
00703 );
00704 MMRESULT16 WINAPI acmDriverDetails16(
00705   HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
00706 );
00707 MMRESULT16 WINAPI acmDriverAdd16(
00708   LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
00709   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
00710 );
00711 MMRESULT16 WINAPI acmDriverRemove16(
00712   HACMDRIVERID16 hadid, DWORD fdwRemove
00713 );
00714 MMRESULT16 WINAPI acmDriverOpen16(
00715   LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
00716 );
00717 MMRESULT16 WINAPI acmDriverClose16(
00718   HACMDRIVER16 had, DWORD fdwClose
00719 );
00720 LRESULT WINAPI acmDriverMessage16(
00721   HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
00722 );
00723 MMRESULT16 WINAPI acmDriverID16(
00724   HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
00725 );
00726 MMRESULT16 WINAPI acmDriverPriority16(
00727  HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
00728 );
00729 MMRESULT16 WINAPI acmFormatTagDetails16(
00730   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
00731 );
00732 MMRESULT16 WINAPI acmFormatTagEnum16(
00733   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
00734   ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
00735 );
00736 MMRESULT16 WINAPI acmFormatChoose16(
00737   LPACMFORMATCHOOSE16 pafmtc
00738 );
00739 MMRESULT16 WINAPI acmFormatDetails16(
00740   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
00741 );
00742 MMRESULT16 WINAPI acmFormatEnum16(
00743   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
00744   ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
00745 );
00746 MMRESULT16 WINAPI acmFormatSuggest16(
00747   HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, 
00748   LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
00749 );
00750 MMRESULT16 WINAPI acmFilterTagDetails16(
00751   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
00752 );
00753 MMRESULT16 WINAPI acmFilterTagEnum16(
00754   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
00755   ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
00756 );
00757 MMRESULT16 WINAPI acmFilterChoose16(
00758   LPACMFILTERCHOOSE16 pafltrc
00759 );
00760 MMRESULT16 WINAPI acmFilterDetails16(
00761   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
00762 );
00763 MMRESULT16 WINAPI acmFilterEnum16(
00764   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
00765   ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
00766 );
00767 MMRESULT16 WINAPI acmStreamOpen16(
00768   LPHACMSTREAM16 phas, HACMDRIVER16 had,
00769   LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
00770   LPWAVEFILTER pwfltr, DWORD dwCallback,
00771   DWORD dwInstance, DWORD fdwOpen
00772 );
00773 MMRESULT16 WINAPI acmStreamClose16(
00774   HACMSTREAM16 has, DWORD fdwClose
00775 );
00776 MMRESULT16 WINAPI acmStreamSize16(
00777   HACMSTREAM16 has, DWORD cbInput, 
00778   LPDWORD pdwOutputBytes, DWORD fdwSize
00779 );
00780 MMRESULT16 WINAPI acmStreamConvert16(
00781   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
00782 );
00783 MMRESULT16 WINAPI acmStreamReset16(
00784   HACMSTREAM16 has, DWORD fdwReset
00785 );
00786 MMRESULT16 WINAPI acmStreamPrepareHeader16(
00787   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
00788 );
00789 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
00790   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
00791 );
00792 
00793 /***********************************************************************
00794  * Functions - Win32
00795  */
00796 
00797 MMRESULT WINAPI acmDriverAddA(
00798   PHACMDRIVERID phadid, HINSTANCE hinstModule,
00799   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
00800 );
00801 MMRESULT WINAPI acmDriverAddW(
00802   PHACMDRIVERID phadid, HINSTANCE hinstModule,
00803   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
00804 );
00805 MMRESULT WINAPI acmDriverClose(
00806   HACMDRIVER had, DWORD fdwClose
00807 );
00808 MMRESULT WINAPI acmDriverDetailsA(
00809   HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
00810 );
00811 MMRESULT WINAPI acmDriverDetailsW(
00812   HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
00813 );
00814 MMRESULT WINAPI acmDriverEnum(
00815   ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
00816 );
00817 MMRESULT WINAPI acmDriverID(
00818   HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
00819 );
00820 LRESULT WINAPI acmDriverMessage(
00821   HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
00822 );
00823 MMRESULT WINAPI acmDriverOpen(
00824   PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
00825 );
00826 MMRESULT WINAPI acmDriverPriority(
00827   HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
00828 );
00829 MMRESULT WINAPI acmDriverRemove(
00830   HACMDRIVERID hadid, DWORD fdwRemove
00831 );
00832 MMRESULT WINAPI acmFilterChooseA(
00833   PACMFILTERCHOOSEA pafltrc
00834 );
00835 MMRESULT WINAPI acmFilterChooseW(
00836   PACMFILTERCHOOSEW pafltrc
00837 );
00838 MMRESULT WINAPI acmFilterDetailsA(
00839   HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
00840 );
00841 MMRESULT WINAPI acmFilterDetailsW(
00842   HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
00843 );
00844 MMRESULT WINAPI acmFilterEnumA(
00845   HACMDRIVER had, PACMFILTERDETAILSA pafd, 
00846   ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
00847 );
00848 MMRESULT WINAPI acmFilterEnumW(
00849   HACMDRIVER had, PACMFILTERDETAILSW pafd, 
00850   ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
00851 );
00852 MMRESULT WINAPI acmFilterTagDetailsA(
00853   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
00854 );
00855 MMRESULT WINAPI acmFilterTagDetailsW(
00856   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
00857 );
00858 MMRESULT WINAPI acmFilterTagEnumA(
00859   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
00860   ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
00861 );
00862 MMRESULT WINAPI acmFilterTagEnumW(
00863   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
00864   ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
00865 );
00866 MMRESULT WINAPI acmFormatChooseA(
00867   PACMFORMATCHOOSEA pafmtc
00868 );
00869 MMRESULT WINAPI acmFormatChooseW(
00870   PACMFORMATCHOOSEW pafmtc
00871 );
00872 MMRESULT WINAPI acmFormatDetailsA(
00873   HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
00874 );
00875 MMRESULT WINAPI acmFormatDetailsW(
00876   HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
00877 );
00878 MMRESULT WINAPI acmFormatEnumA(
00879   HACMDRIVER had, PACMFORMATDETAILSA pafd,
00880   ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
00881 );
00882 MMRESULT WINAPI acmFormatEnumW(
00883   HACMDRIVER had, PACMFORMATDETAILSW pafd,
00884   ACMFORMATENUMCBW fnCallback, DWORD dwInstance,  DWORD fdwEnum
00885 );
00886 MMRESULT WINAPI acmFormatSuggest(
00887   HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
00888   DWORD cbwfxDst, DWORD fdwSuggest
00889 );
00890 MMRESULT WINAPI acmFormatTagDetailsA(
00891   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
00892 );
00893 MMRESULT WINAPI acmFormatTagDetailsW(
00894   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
00895 );
00896 MMRESULT WINAPI acmFormatTagEnumA(
00897   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
00898   ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
00899 );
00900 MMRESULT WINAPI acmFormatTagEnumW(
00901   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
00902   ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
00903 );
00904 DWORD WINAPI acmGetVersion(
00905 );
00906 MMRESULT WINAPI acmMetrics(
00907   HACMOBJ hao, UINT  uMetric, LPVOID  pMetric
00908 );
00909 MMRESULT WINAPI acmStreamClose(
00910   HACMSTREAM has, DWORD fdwClose
00911 );
00912 MMRESULT WINAPI acmStreamConvert(
00913   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
00914 );
00915 MMRESULT WINAPI acmStreamMessage(
00916   HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
00917 );
00918 MMRESULT WINAPI acmStreamOpen(
00919   PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
00920   PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
00921   DWORD dwInstance, DWORD fdwOpen
00922 );
00923 MMRESULT WINAPI acmStreamPrepareHeader(
00924   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
00925 );
00926 MMRESULT WINAPI acmStreamReset(
00927   HACMSTREAM has, DWORD fdwReset
00928 );
00929 MMRESULT WINAPI acmStreamSize(
00930   HACMSTREAM has, DWORD cbInput, 
00931   LPDWORD pdwOutputBytes, DWORD fdwSize
00932 );
00933 MMRESULT WINAPI acmStreamUnprepareHeader(
00934   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
00935 );
00936 
00937 #ifdef __cplusplus
00938 } /* extern "C" */
00939 #endif /* defined(__cplusplus) */
00940 
00941 #endif  /* __WINE_MSACM_H */
00942 
00943 

Generated on Tue Dec 20 10:14:22 2005 for vlc-0.8.4a by  doxygen 1.4.2