msacm.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:27k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*
  2.  *      msacm.h   -       Declarations for MSACM
  3.  */
  4. #ifndef __WINE_MSACM_H
  5. #define __WINE_MSACM_H
  6. #include "windef.h"
  7. #include "driver.h"
  8. #include "mmreg.h"
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif /* defined(__cplusplus) */
  12. //typedef WORD    VERSION;        /* major (high byte), minor (low byte) */
  13. typedef UINT16 MMVERSION16;
  14. typedef UINT MMVERSION;
  15. typedef UINT16 MCIDEVICEID16;
  16. typedef UINT MCIDEVICEID;
  17. typedef UINT16 MMRESULT16;
  18. typedef UINT MMRESULT;
  19. typedef DWORD           FOURCC;         /* a four character code */
  20. #if !defined(WAVE_FORMAT_PCM)
  21. #define WAVE_FORMAT_PCM     1
  22. #endif
  23. /***********************************************************************
  24.  * Defines/Enums
  25.  */
  26. #define ACMERR_BASE        512
  27. #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
  28. #define ACMERR_BUSY        (ACMERR_BASE + 1)
  29. #define ACMERR_UNPREPARED  (ACMERR_BASE + 2)
  30. #define ACMERR_CANCELED    (ACMERR_BASE + 3)
  31. #define MM_ACM_OPEN  MM_STREAM_OPEN
  32. #define MM_ACM_CLOSE MM_STREAM_CLOSE
  33. #define MM_ACM_DONE  MM_STREAM_DONE
  34. #define ACM_DRIVERADDF_FUNCTION   0x00000003L
  35. #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
  36. #define ACM_DRIVERADDF_TYPEMASK   0x00000007L
  37. #define ACM_DRIVERADDF_LOCAL      0x00000000L
  38. #define ACM_DRIVERADDF_GLOBAL     0x00000008L
  39. #define ACMDRIVERDETAILS_SHORTNAME_CHARS  32
  40. #define ACMDRIVERDETAILS_LONGNAME_CHARS  128
  41. #define ACMDRIVERDETAILS_COPYRIGHT_CHARS  80
  42. #define ACMDRIVERDETAILS_LICENSING_CHARS 128
  43. #define ACMDRIVERDETAILS_FEATURES_CHARS  512
  44. #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
  45. #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED  mmioFOURCC('', '', '', '')
  46. #define ACMDRIVERDETAILS_SUPPORTF_CODEC     0x00000001L
  47. #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
  48. #define ACMDRIVERDETAILS_SUPPORTF_FILTER    0x00000004L
  49. #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE  0x00000008L
  50. #define ACMDRIVERDETAILS_SUPPORTF_ASYNC     0x00000010L
  51. #define ACMDRIVERDETAILS_SUPPORTF_LOCAL     0x40000000L
  52. #define ACMDRIVERDETAILS_SUPPORTF_DISABLED  0x80000000L
  53. #define ACM_DRIVERENUMF_NOLOCAL  0x40000000L
  54. #define ACM_DRIVERENUMF_DISABLED 0x80000000L
  55. #define ACM_DRIVERPRIORITYF_ENABLE    0x00000001L
  56. #define ACM_DRIVERPRIORITYF_DISABLE   0x00000002L
  57. #define ACM_DRIVERPRIORITYF_ABLEMASK  0x00000003L
  58. #define ACM_DRIVERPRIORITYF_BEGIN     0x00010000L
  59. #define ACM_DRIVERPRIORITYF_END       0x00020000L
  60. #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
  61. #define MM_ACM_FILTERCHOOSE 0x8000
  62. #define FILTERCHOOSE_MESSAGE          0
  63. #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
  64. #define FILTERCHOOSE_FILTER_VERIFY    (FILTERCHOOSE_MESSAGE+1)
  65. #define FILTERCHOOSE_CUSTOM_VERIFY    (FILTERCHOOSE_MESSAGE+2)
  66. #define ACMFILTERCHOOSE_STYLEF_SHOWHELP             0x00000004L
  67. #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK           0x00000008L
  68. #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE       0x00000010L
  69. #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
  70. #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT   0x00000040L
  71. #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP          0x00000080L
  72. #define ACMFILTERDETAILS_FILTER_CHARS 128
  73. #define ACM_FILTERDETAILSF_INDEX     0x00000000L
  74. #define ACM_FILTERDETAILSF_FILTER    0x00000001L
  75. #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
  76. #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
  77. #define ACM_FILTERTAGDETAILSF_INDEX       0x00000000L
  78. #define ACM_FILTERTAGDETAILSF_FILTERTAG   0x00000001L
  79. #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
  80. #define ACM_FILTERTAGDETAILSF_QUERYMASK   0x0000000FL
  81. #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
  82. #define ACMHELPMSGSTRINGA       "acmchoose_help"
  83. #define ACMHELPMSGSTRINGW       L"acmchoose_help"
  84. #define ACMHELPMSGSTRING16       "acmchoose_help"
  85. #define ACMHELPMSGCONTEXTMENUA  "acmchoose_contextmenu"
  86. #define ACMHELPMSGCONTEXTMENUW  L"acmchoose_contextmenu"
  87. #define ACMHELPMSGCONTEXTMENU16   "acmchoose_contextmenu"
  88. #define ACMHELPMSGCONTEXTHELPA  "acmchoose_contexthelp"
  89. #define ACMHELPMSGCONTEXTHELPW  L"acmchoose_contexthelp"
  90. #define ACMHELPMSGCONTEXTHELP16   "acmchoose_contexthelp"
  91. #define MM_ACM_FORMATCHOOSE 0x8000
  92. #define FORMATCHOOSE_MESSAGE          0
  93. #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
  94. #define FORMATCHOOSE_FORMAT_VERIFY    (FORMATCHOOSE_MESSAGE+1)
  95. #define FORMATCHOOSE_CUSTOM_VERIFY    (FORMATCHOOSE_MESSAGE+2)
  96. #define ACMFORMATCHOOSE_STYLEF_SHOWHELP             0x00000004L
  97. #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK           0x00000008L
  98. #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE       0x00000010L
  99. #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
  100. #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT      0x00000040L
  101. #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP          0x00000080L
  102. #define ACMFORMATDETAILS_FORMAT_CHARS   128
  103. #define ACM_FORMATDETAILSF_INDEX     0x00000000L
  104. #define ACM_FORMATDETAILSF_FORMAT    0x00000001L
  105. #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
  106. #define ACM_FORMATENUMF_WFORMATTAG     0x00010000L
  107. #define ACM_FORMATENUMF_NCHANNELS      0x00020000L
  108. #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
  109. #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
  110. #define ACM_FORMATENUMF_CONVERT        0x00100000L
  111. #define ACM_FORMATENUMF_SUGGEST        0x00200000L
  112. #define ACM_FORMATENUMF_HARDWARE       0x00400000L
  113. #define ACM_FORMATENUMF_INPUT          0x00800000L
  114. #define ACM_FORMATENUMF_OUTPUT         0x01000000L
  115. #define ACM_FORMATSUGGESTF_WFORMATTAG     0x00010000L
  116. #define ACM_FORMATSUGGESTF_NCHANNELS      0x00020000L
  117. #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
  118. #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
  119. #define ACM_FORMATSUGGESTF_TYPEMASK       0x00FF0000L
  120. #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
  121. #define ACM_FORMATTAGDETAILSF_INDEX       0x00000000L
  122. #define ACM_FORMATTAGDETAILSF_FORMATTAG   0x00000001L
  123. #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
  124. #define ACM_FORMATTAGDETAILSF_QUERYMASK   0x0000000FL
  125. #define ACM_METRIC_COUNT_DRIVERS            1
  126. #define ACM_METRIC_COUNT_CODECS             2
  127. #define ACM_METRIC_COUNT_CONVERTERS         3
  128. #define ACM_METRIC_COUNT_FILTERS            4
  129. #define ACM_METRIC_COUNT_DISABLED           5
  130. #define ACM_METRIC_COUNT_HARDWARE           6
  131. #define ACM_METRIC_COUNT_LOCAL_DRIVERS     20
  132. #define ACM_METRIC_COUNT_LOCAL_CODECS      21
  133. #define ACM_METRIC_COUNT_LOCAL_CONVERTERS  22
  134. #define ACM_METRIC_COUNT_LOCAL_FILTERS     23
  135. #define ACM_METRIC_COUNT_LOCAL_DISABLED    24
  136. #define ACM_METRIC_HARDWARE_WAVE_INPUT     30
  137. #define ACM_METRIC_HARDWARE_WAVE_OUTPUT    31
  138. #define ACM_METRIC_MAX_SIZE_FORMAT         50
  139. #define ACM_METRIC_MAX_SIZE_FILTER         51
  140. #define ACM_METRIC_DRIVER_SUPPORT         100
  141. #define ACM_METRIC_DRIVER_PRIORITY        101
  142. #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
  143. #define ACM_STREAMCONVERTF_START      0x00000010
  144. #define ACM_STREAMCONVERTF_END        0x00000020
  145. #define ACMSTREAMHEADER_STATUSF_DONE     0x00010000L
  146. #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
  147. #define ACMSTREAMHEADER_STATUSF_INQUEUE  0x00100000L
  148. #define ACM_STREAMOPENF_QUERY       0x00000001
  149. #define ACM_STREAMOPENF_ASYNC       0x00000002
  150. #define ACM_STREAMOPENF_NONREALTIME 0x00000004
  151. #define ACM_STREAMSIZEF_SOURCE      0x00000000L
  152. #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
  153. #define ACM_STREAMSIZEF_QUERYMASK   0x0000000FL
  154. #define ACMDM_USER                  (DRV_USER + 0x0000)
  155. #define ACMDM_RESERVED_LOW          (DRV_USER + 0x2000)
  156. #define ACMDM_RESERVED_HIGH         (DRV_USER + 0x2FFF)
  157. #define ACMDM_BASE                  ACMDM_RESERVED_LOW
  158. #define ACMDM_DRIVER_ABOUT          (ACMDM_BASE + 11)
  159. /***********************************************************************
  160.  * Callbacks
  161.  */
  162. typedef WIN_BOOL CALLBACK ( *ACMDRIVERENUMCB)(
  163.   HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
  164. );
  165. typedef WIN_BOOL16 CALLBACK ( *ACMDRIVERENUMCB16)(
  166.   HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
  167. );
  168. typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCA)(
  169.   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
  170. );
  171. typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCW)(
  172.   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
  173. );
  174. typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROC16)(
  175.   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
  176. );
  177. typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCA)(
  178.   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
  179. );
  180. typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCW)(
  181.   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
  182. );
  183. typedef UINT16 CALLBACK ( *ACMFORMATCHOOSEHOOKPROC16)(
  184.   HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
  185. );
  186. /***********************************************************************
  187.  * Structures
  188.  */
  189. typedef struct _ACMDRIVERDETAILSA
  190. {
  191.   DWORD    cbStruct;
  192.   FOURCC   fccType;
  193.   FOURCC   fccComp;
  194.   WORD     wMid;
  195.   WORD     wPid;
  196.   DWORD    vdwACM;
  197.   DWORD    vdwDriver;
  198.   DWORD    fdwSupport;
  199.   DWORD    cFormatTags;
  200.   DWORD    cFilterTags;
  201.   HICON  hicon;
  202.   CHAR     szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
  203.   CHAR     szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
  204.   CHAR     szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
  205.   CHAR     szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
  206.   CHAR     szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
  207. } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
  208. typedef struct _ACMDRIVERDETAILSW
  209. {
  210.   DWORD    cbStruct;
  211.   FOURCC   fccType;
  212.   FOURCC   fccComp;
  213.   WORD     wMid;
  214.   WORD     wPid;
  215.   DWORD    vdwACM;
  216.   DWORD    vdwDriver;
  217.   DWORD    fdwSupport;
  218.   DWORD    cFormatTags;
  219.   DWORD    cFilterTags;
  220.   HICON  hicon;
  221.   WCHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
  222.   WCHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
  223.   WCHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
  224.   WCHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
  225.   WCHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
  226. } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
  227. typedef struct _ACMDRIVERDETAILS16
  228. {
  229.   DWORD   cbStruct;
  230.   FOURCC  fccType;
  231.   FOURCC  fccComp;
  232.   WORD    wMid;
  233.   WORD    wPid;
  234.   DWORD   vdwACM;
  235.   DWORD   vdwDriver;
  236.   DWORD   fdwSupport;
  237.   DWORD   cFormatTags;
  238.   DWORD   cFilterTags;
  239.   HICON16 hicon;
  240.   CHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
  241.   CHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
  242.   CHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
  243.   CHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
  244.   CHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
  245. } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
  246. typedef struct _ACMFILTERCHOOSEA
  247. {
  248.   DWORD         cbStruct;
  249.   DWORD         fdwStyle;
  250.   HWND        hwndOwner;
  251.   PWAVEFILTER   pwfltr;
  252.   DWORD         cbwfltr;
  253.   LPCSTR        pszTitle;
  254.   CHAR          szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
  255.   CHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
  256.   LPSTR         pszName;
  257.   DWORD         cchName;
  258.   DWORD         fdwEnum;
  259.   PWAVEFILTER   pwfltrEnum;
  260.     
  261.   HINSTANCE   hInstance;
  262.   LPCSTR        pszTemplateName;
  263.   LPARAM        lCustData;
  264.   ACMFILTERCHOOSEHOOKPROCA pfnHook;
  265. } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
  266. typedef struct _ACMFILTERCHOOSEW
  267. {
  268.   DWORD         cbStruct;
  269.   DWORD         fdwStyle;
  270.   HWND        hwndOwner;
  271.   PWAVEFILTER   pwfltr;
  272.   DWORD         cbwfltr;
  273.   LPCWSTR       pszTitle;
  274.   WCHAR         szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
  275.   WCHAR         szFilter[ACMFILTERDETAILS_FILTER_CHARS];
  276.   LPWSTR        pszName;
  277.   DWORD         cchName;
  278.   DWORD         fdwEnum;
  279.   PWAVEFILTER   pwfltrEnum;
  280.     
  281.   HINSTANCE   hInstance;
  282.   LPCWSTR       pszTemplateName;
  283.   LPARAM        lCustData;
  284.   ACMFILTERCHOOSEHOOKPROCW pfnHook;
  285. } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
  286. typedef struct _ACMFILTERCHOOSE16
  287. {
  288.   DWORD          cbStruct;
  289.   DWORD          fdwStyle;
  290.   HWND16         hwndOwner;
  291.   LPWAVEFILTER   pwfltr;
  292.   DWORD          cbwfltr;
  293.   LPCSTR         pszTitle;
  294.   char           szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
  295.   char           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
  296.   LPSTR          pszName;
  297.   DWORD          cchName;
  298.   DWORD          fdwEnum;
  299.   LPWAVEFILTER   pwfltrEnum;
  300.     
  301.   HINSTANCE16    hInstance;
  302.   LPCSTR         pszTemplateName;
  303.   LPARAM         lCustData;
  304.   ACMFILTERCHOOSEHOOKPROC16 pfnHook;
  305. } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
  306. typedef struct _ACMFILTERDETAILSA
  307. {
  308.   DWORD           cbStruct;
  309.   DWORD           dwFilterIndex;
  310.   DWORD           dwFilterTag;
  311.   DWORD           fdwSupport;
  312.   PWAVEFILTER     pwfltr;
  313.   DWORD           cbwfltr;
  314.   CHAR            szFilter[ACMFILTERDETAILS_FILTER_CHARS];
  315. } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
  316. typedef struct _ACMFILTERDETAILSW
  317. {
  318.   DWORD          cbStruct;
  319.   DWORD          dwFilterIndex;
  320.   DWORD          dwFilterTag;
  321.   DWORD          fdwSupport;
  322.   PWAVEFILTER    pwfltr;
  323.   DWORD          cbwfltr;
  324.   WCHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
  325. } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
  326. typedef struct _ACMFILTERDETAILS16
  327. {
  328.   DWORD          cbStruct;
  329.   DWORD          dwFilterIndex;
  330.   DWORD          dwFilterTag;
  331.   DWORD          fdwSupport;
  332.   LPWAVEFILTER   pwfltr;
  333.   DWORD          cbwfltr;
  334.   CHAR           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
  335. } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
  336. typedef struct _ACMFILTERTAGDETAILSA
  337. {
  338.   DWORD cbStruct;
  339.   DWORD dwFilterTagIndex;
  340.   DWORD dwFilterTag;
  341.   DWORD cbFilterSize;
  342.   DWORD fdwSupport;
  343.   DWORD cStandardFilters;
  344.   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
  345. } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
  346. typedef struct _ACMFILTERTAGDETAILSW
  347. {
  348.   DWORD cbStruct;
  349.   DWORD dwFilterTagIndex;
  350.   DWORD dwFilterTag;
  351.   DWORD cbFilterSize;
  352.   DWORD fdwSupport;
  353.   DWORD cStandardFilters;
  354.   WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
  355. } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
  356. typedef struct _ACMFILTERTAGDETAILS16
  357. {
  358.   DWORD cbStruct;
  359.   DWORD dwFilterTagIndex;
  360.   DWORD dwFilterTag;
  361.   DWORD cbFilterSize;
  362.   DWORD fdwSupport;
  363.   DWORD cStandardFilters;
  364.   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
  365. } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
  366. typedef struct _ACMFORMATCHOOSEA
  367. {
  368.   DWORD           cbStruct;
  369.   DWORD           fdwStyle;
  370.  
  371.   HWND          hwndOwner;
  372.   PWAVEFORMATEX   pwfx;
  373.   DWORD           cbwfx;
  374.   LPCSTR          pszTitle;
  375.     
  376.   CHAR            szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
  377.   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
  378.   LPSTR           pszName;
  379.   DWORD           cchName;
  380.   DWORD           fdwEnum;
  381.   PWAVEFORMATEX   pwfxEnum;
  382.     
  383.   HINSTANCE     hInstance;
  384.   LPCSTR          pszTemplateName;
  385.   LPARAM          lCustData;
  386.   ACMFORMATCHOOSEHOOKPROCA pfnHook;
  387. } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
  388. typedef struct _ACMFORMATCHOOSEW
  389. {
  390.   DWORD           cbStruct;
  391.   DWORD           fdwStyle;
  392.     
  393.   HWND          hwndOwner;
  394.   PWAVEFORMATEX   pwfx;
  395.   DWORD           cbwfx;
  396.   LPCWSTR         pszTitle;
  397.     
  398.   WCHAR           szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
  399.   WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
  400.   LPWSTR          pszName;
  401.   DWORD           cchName;
  402.   DWORD           fdwEnum;
  403.   LPWAVEFORMATEX  pwfxEnum;
  404.     
  405.   HINSTANCE     hInstance;
  406.   LPCWSTR         pszTemplateName;
  407.   LPARAM          lCustData;
  408.   ACMFORMATCHOOSEHOOKPROCW pfnHook;
  409. } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
  410. typedef struct _ACMFORMATCHOOSE16
  411. {
  412.   DWORD            cbStruct;
  413.   DWORD            fdwStyle;
  414.     
  415.   HWND16           hwndOwner;
  416.   LPWAVEFORMATEX   pwfx;
  417.   DWORD            cbwfx;
  418.   LPCSTR           pszTitle;
  419.     
  420.   CHAR             szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
  421.   CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
  422.   LPSTR            pszName;
  423.   DWORD            cchName;
  424.   DWORD            fdwEnum;
  425.   LPWAVEFORMATEX   pwfxEnum;
  426.     
  427.   HINSTANCE16      hInstance;
  428.   LPCSTR           pszTemplateName;
  429.   LPARAM           lCustData;
  430.   ACMFORMATCHOOSEHOOKPROC16 pfnHook;
  431. } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
  432. typedef struct _ACMFORMATDETAILSA
  433. {
  434.   DWORD           cbStruct;
  435.   DWORD           dwFormatIndex;
  436.   DWORD           dwFormatTag;
  437.   DWORD           fdwSupport;
  438.   PWAVEFORMATEX   pwfx;
  439.   DWORD           cbwfx;
  440.   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
  441. } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
  442. typedef struct _ACMFORMATDETAILSW
  443. {
  444.     DWORD           cbStruct;
  445.     DWORD           dwFormatIndex;
  446.     DWORD           dwFormatTag;
  447.     DWORD           fdwSupport;
  448.     PWAVEFORMATEX   pwfx;
  449.     DWORD           cbwfx;
  450.     WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
  451. } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
  452. typedef struct _ACMFORMATDETAILS16
  453. {
  454.     DWORD            cbStruct;
  455.     DWORD            dwFormatIndex;
  456.     DWORD            dwFormatTag;
  457.     DWORD            fdwSupport;
  458.     LPWAVEFORMATEX   pwfx;
  459.     DWORD            cbwfx;
  460.     CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
  461. } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
  462. typedef struct _ACMFORMATTAGDETAILSA
  463. {
  464.   DWORD cbStruct;
  465.   DWORD dwFormatTagIndex;
  466.   DWORD dwFormatTag;
  467.   DWORD cbFormatSize;
  468.   DWORD fdwSupport;
  469.   DWORD cStandardFormats;
  470.   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
  471. } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
  472. typedef struct _ACMFORMATTAGDETAILSW
  473. {
  474.   DWORD cbStruct;
  475.   DWORD dwFormatTagIndex;
  476.   DWORD dwFormatTag;
  477.   DWORD cbFormatSize;
  478.   DWORD fdwSupport;
  479.   DWORD cStandardFormats;
  480.   WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
  481. } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
  482. typedef struct _ACMFORMATTAGDETAILS16
  483. {
  484.   DWORD cbStruct;
  485.   DWORD dwFormatTagIndex;
  486.   DWORD dwFormatTag;
  487.   DWORD cbFormatSize;
  488.   DWORD fdwSupport;
  489.   DWORD cStandardFormats;
  490.   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
  491. } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
  492. typedef struct _ACMSTREAMHEADER
  493. {
  494.   DWORD  cbStruct;
  495.   DWORD  fdwStatus;
  496.   DWORD  dwUser;
  497.   LPBYTE pbSrc;
  498.   DWORD  cbSrcLength;
  499.   DWORD  cbSrcLengthUsed;
  500.   DWORD  dwSrcUser;
  501.   LPBYTE pbDst;
  502.   DWORD  cbDstLength;
  503.   DWORD  cbDstLengthUsed;
  504.   DWORD  dwDstUser;
  505.   DWORD  dwReservedDriver[10];
  506. } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
  507.   ACMSTREAMHEADER, *PACMSTREAMHEADER;
  508. /***********************************************************************
  509.  * Callbacks 2
  510.  */
  511. typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBA)(
  512.   HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
  513.   DWORD dwInstance, DWORD fdwSupport
  514. );
  515. typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBW)(
  516.   HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
  517.   DWORD dwInstance, DWORD fdwSupport
  518. );
  519. typedef WIN_BOOL16 CALLBACK ( *ACMFILTERENUMCB16)(
  520.  HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
  521.  DWORD dwInstance, DWORD fdwSupport
  522. );
  523. typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBA)(
  524.   HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
  525.   DWORD dwInstance, DWORD fdwSupport
  526. );
  527. typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBW)(
  528.   HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
  529.   DWORD dwInstance, DWORD fdwSupport
  530. );
  531. typedef WIN_BOOL16 CALLBACK ( *ACMFILTERTAGENUMCB16)(
  532.   HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
  533.   DWORD dwInstance, DWORD fdwSupport
  534. );
  535. typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBA)(
  536.   HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
  537.   DWORD dwInstance, DWORD fdwSupport
  538. );
  539. typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBW)(
  540.   HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
  541.   DWORD dwInstance, DWORD fdwSupport
  542. );
  543. typedef WIN_BOOL16 CALLBACK ( *ACMFORMATENUMCB16)(
  544.   HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
  545.   DWORD dwInstance, DWORD fdwSupport
  546. );
  547. typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBA)(
  548.   HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
  549.   DWORD dwInstance, DWORD fdwSupport
  550. );
  551. typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBW)(
  552.   HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
  553.   DWORD dwInstance, DWORD fdwSupport
  554. );
  555. typedef WIN_BOOL16 CALLBACK ( *ACMFORMATTAGENUMCB16)(
  556.   HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
  557.   DWORD dwInstance, DWORD fdwSupport
  558. );
  559. /***********************************************************************
  560.  * Functions - Win16
  561.  */
  562. DWORD WINAPI acmGetVersion16(
  563. );
  564. MMRESULT16 WINAPI acmMetrics16(
  565.   HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
  566. );
  567. MMRESULT16 WINAPI acmDriverEnum16(
  568.   ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
  569. );
  570. MMRESULT16 WINAPI acmDriverDetails16(
  571.   HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
  572. );
  573. MMRESULT16 WINAPI acmDriverAdd16(
  574.   LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
  575.   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
  576. );
  577. MMRESULT16 WINAPI acmDriverRemove16(
  578.   HACMDRIVERID16 hadid, DWORD fdwRemove
  579. );
  580. MMRESULT16 WINAPI acmDriverOpen16(
  581.   LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
  582. );
  583. MMRESULT16 WINAPI acmDriverClose16(
  584.   HACMDRIVER16 had, DWORD fdwClose
  585. );
  586. LRESULT WINAPI acmDriverMessage16(
  587.   HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
  588. );
  589. MMRESULT16 WINAPI acmDriverID16(
  590.   HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
  591. );
  592. MMRESULT16 WINAPI acmDriverPriority16(
  593.  HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
  594. );
  595. MMRESULT16 WINAPI acmFormatTagDetails16(
  596.   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
  597. );
  598. MMRESULT16 WINAPI acmFormatTagEnum16(
  599.   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
  600.   ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
  601. );
  602. MMRESULT16 WINAPI acmFormatChoose16(
  603.   LPACMFORMATCHOOSE16 pafmtc
  604. );
  605. MMRESULT16 WINAPI acmFormatDetails16(
  606.   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
  607. );
  608. MMRESULT16 WINAPI acmFormatEnum16(
  609.   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
  610.   ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
  611. );
  612. MMRESULT16 WINAPI acmFormatSuggest16(
  613.   HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, 
  614.   LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
  615. );
  616. MMRESULT16 WINAPI acmFilterTagDetails16(
  617.   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
  618. );
  619. MMRESULT16 WINAPI acmFilterTagEnum16(
  620.   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
  621.   ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
  622. );
  623. MMRESULT16 WINAPI acmFilterChoose16(
  624.   LPACMFILTERCHOOSE16 pafltrc
  625. );
  626. MMRESULT16 WINAPI acmFilterDetails16(
  627.   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
  628. );
  629. MMRESULT16 WINAPI acmFilterEnum16(
  630.   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
  631.   ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
  632. );
  633. MMRESULT16 WINAPI acmStreamOpen16(
  634.   LPHACMSTREAM16 phas, HACMDRIVER16 had,
  635.   LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
  636.   LPWAVEFILTER pwfltr, DWORD dwCallback,
  637.   DWORD dwInstance, DWORD fdwOpen
  638. );
  639. MMRESULT16 WINAPI acmStreamClose16(
  640.   HACMSTREAM16 has, DWORD fdwClose
  641. );
  642. MMRESULT16 WINAPI acmStreamSize16(
  643.   HACMSTREAM16 has, DWORD cbInput, 
  644.   LPDWORD pdwOutputBytes, DWORD fdwSize
  645. );
  646. MMRESULT16 WINAPI acmStreamConvert16(
  647.   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
  648. );
  649. MMRESULT16 WINAPI acmStreamReset16(
  650.   HACMSTREAM16 has, DWORD fdwReset
  651. );
  652. MMRESULT16 WINAPI acmStreamPrepareHeader16(
  653.   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
  654. );
  655. MMRESULT16 WINAPI acmStreamUnprepareHeader16(
  656.   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
  657. );
  658. /***********************************************************************
  659.  * Functions - Win32
  660.  */
  661. MMRESULT WINAPI acmDriverAddA(
  662.   PHACMDRIVERID phadid, HINSTANCE hinstModule,
  663.   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
  664. );
  665. MMRESULT WINAPI acmDriverAddW(
  666.   PHACMDRIVERID phadid, HINSTANCE hinstModule,
  667.   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
  668. );
  669. MMRESULT WINAPI acmDriverClose(
  670.   HACMDRIVER had, DWORD fdwClose
  671. );
  672. MMRESULT WINAPI acmDriverDetailsA(
  673.   HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
  674. );
  675. MMRESULT WINAPI acmDriverDetailsW(
  676.   HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
  677. );
  678. MMRESULT WINAPI acmDriverEnum(
  679.   ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
  680. );
  681. MMRESULT WINAPI acmDriverID(
  682.   HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
  683. );
  684. LRESULT WINAPI acmDriverMessage(
  685.   HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
  686. );
  687. MMRESULT WINAPI acmDriverOpen(
  688.   PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
  689. );
  690. MMRESULT WINAPI acmDriverPriority(
  691.   HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
  692. );
  693. MMRESULT WINAPI acmDriverRemove(
  694.   HACMDRIVERID hadid, DWORD fdwRemove
  695. );
  696. MMRESULT WINAPI acmFilterChooseA(
  697.   PACMFILTERCHOOSEA pafltrc
  698. );
  699. MMRESULT WINAPI acmFilterChooseW(
  700.   PACMFILTERCHOOSEW pafltrc
  701. );
  702. MMRESULT WINAPI acmFilterDetailsA(
  703.   HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
  704. );
  705. MMRESULT WINAPI acmFilterDetailsW(
  706.   HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
  707. );
  708. MMRESULT WINAPI acmFilterEnumA(
  709.   HACMDRIVER had, PACMFILTERDETAILSA pafd, 
  710.   ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
  711. );
  712. MMRESULT WINAPI acmFilterEnumW(
  713.   HACMDRIVER had, PACMFILTERDETAILSW pafd, 
  714.   ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
  715. );
  716. MMRESULT WINAPI acmFilterTagDetailsA(
  717.   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
  718. );
  719. MMRESULT WINAPI acmFilterTagDetailsW(
  720.   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
  721. );
  722. MMRESULT WINAPI acmFilterTagEnumA(
  723.   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
  724.   ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
  725. );
  726. MMRESULT WINAPI acmFilterTagEnumW(
  727.   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
  728.   ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
  729. );
  730. MMRESULT WINAPI acmFormatChooseA(
  731.   PACMFORMATCHOOSEA pafmtc
  732. );
  733. MMRESULT WINAPI acmFormatChooseW(
  734.   PACMFORMATCHOOSEW pafmtc
  735. );
  736. MMRESULT WINAPI acmFormatDetailsA(
  737.   HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
  738. );
  739. MMRESULT WINAPI acmFormatDetailsW(
  740.   HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
  741. );
  742. MMRESULT WINAPI acmFormatEnumA(
  743.   HACMDRIVER had, PACMFORMATDETAILSA pafd,
  744.   ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
  745. );
  746. MMRESULT WINAPI acmFormatEnumW(
  747.   HACMDRIVER had, PACMFORMATDETAILSW pafd,
  748.   ACMFORMATENUMCBW fnCallback, DWORD dwInstance,  DWORD fdwEnum
  749. );
  750. MMRESULT WINAPI acmFormatSuggest(
  751.   HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
  752.   DWORD cbwfxDst, DWORD fdwSuggest
  753. );
  754. MMRESULT WINAPI acmFormatTagDetailsA(
  755.   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
  756. );
  757. MMRESULT WINAPI acmFormatTagDetailsW(
  758.   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
  759. );
  760. MMRESULT WINAPI acmFormatTagEnumA(
  761.   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
  762.   ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
  763. );
  764. MMRESULT WINAPI acmFormatTagEnumW(
  765.   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
  766.   ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
  767. );
  768. DWORD WINAPI acmGetVersion(
  769. );
  770. MMRESULT WINAPI acmMetrics(
  771.   HACMOBJ hao, UINT  uMetric, LPVOID  pMetric
  772. );
  773. MMRESULT WINAPI acmStreamClose(
  774.   HACMSTREAM has, DWORD fdwClose
  775. );
  776. MMRESULT WINAPI acmStreamConvert(
  777.   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
  778. );
  779. MMRESULT WINAPI acmStreamMessage(
  780.   HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
  781. );
  782. MMRESULT WINAPI acmStreamOpen(
  783.   PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
  784.   PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
  785.   DWORD dwInstance, DWORD fdwOpen
  786. );
  787. MMRESULT WINAPI acmStreamPrepareHeader(
  788.   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
  789. );
  790. MMRESULT WINAPI acmStreamReset(
  791.   HACMSTREAM has, DWORD fdwReset
  792. );
  793. MMRESULT WINAPI acmStreamSize(
  794.   HACMSTREAM has, DWORD cbInput, 
  795.   LPDWORD pdwOutputBytes, DWORD fdwSize
  796. );
  797. MMRESULT WINAPI acmStreamUnprepareHeader(
  798.   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
  799. );
  800. #ifdef __cplusplus
  801. } /* extern "C" */
  802. #endif /* defined(__cplusplus) */
  803. #endif  /* __WINE_MSACM_H */