gdi32/tests: Fix MSVC build in icm.c.
[wine] / include / msacm.h
index 37a2777..73788fe 100644 (file)
@@ -1,22 +1,37 @@
 /*
- *      msacm.h   -       Declarations for MSACM
+ * Declarations for MSACM
+ *
+ * Copyright (C) the Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
 #ifndef __WINE_MSACM_H
 #define __WINE_MSACM_H
 
-#include "windef.h"
-#include "mmsystem.h"
-#include "mmreg.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* defined(__cplusplus) */
 
+#include <pshpack1.h>
+
+#define ACMAPI              WINAPI
+
 /***********************************************************************
  * Defines/Enums
  */
-
 #define ACMERR_BASE        512
 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
 #define ACMERR_BUSY        (ACMERR_BASE + 1)
@@ -27,6 +42,7 @@ extern "C" {
 #define MM_ACM_CLOSE MM_STREAM_CLOSE
 #define MM_ACM_DONE  MM_STREAM_DONE
 
+#define ACM_DRIVERADDF_NAME       0x00000001L
 #define ACM_DRIVERADDF_FUNCTION   0x00000003L
 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
 #define ACM_DRIVERADDF_TYPEMASK   0x00000007L
@@ -90,16 +106,40 @@ extern "C" {
 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
 
 #define ACMHELPMSGSTRINGA       "acmchoose_help"
-#define ACMHELPMSGSTRINGW       L"acmchoose_help"
-#define ACMHELPMSGSTRING16       "acmchoose_help"
+#if defined(__GNUC__)
+# define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
+  'c','h','o','o','s','e','_','h','e','l','p',0 }
+#elif defined(_MSC_VER)
+# define ACMHELPMSGSTRINGW      L"acmchoose_help"
+#else
+static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
+  'c','h','o','o','s','e','_','h','e','l','p',0 };
+#endif
+#define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
 
 #define ACMHELPMSGCONTEXTMENUA  "acmchoose_contextmenu"
-#define ACMHELPMSGCONTEXTMENUW  L"acmchoose_contextmenu"
-#define ACMHELPMSGCONTEXTMENU16   "acmchoose_contextmenu"
+#if defined(__GNUC__)
+# define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
+  'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
+#elif defined(_MSC_VER)
+# define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
+#else
+static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
+  'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
+#endif
+#define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
 
 #define ACMHELPMSGCONTEXTHELPA  "acmchoose_contexthelp"
-#define ACMHELPMSGCONTEXTHELPW  L"acmchoose_contexthelp"
-#define ACMHELPMSGCONTEXTHELP16   "acmchoose_contexthelp"
+#if defined(__GNUC__)
+# define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
+  'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
+#elif defined(_MSC_VER)
+# define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
+#else
+static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
+  'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
+#endif
+#define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
 
 #define MM_ACM_FORMATCHOOSE 0x8000
 
@@ -186,41 +226,42 @@ extern "C" {
 
 #define ACMDM_DRIVER_ABOUT          (ACMDM_BASE + 11)
 
+/* handles */
+
+DECLARE_HANDLE(HACMDRIVERID);
+DECLARE_HANDLE(HACMDRIVER);
+DECLARE_HANDLE(HACMSTREAM);
+DECLARE_HANDLE(HACMOBJ);
+typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID;
+typedef HACMDRIVER   *PHACMDRIVER, *LPHACMDRIVER;
+typedef HACMSTREAM   *PHACMSTREAM, *LPHACMSTREAM;
+typedef HACMOBJ      *PHACMOBJ, *LPHACMOBJ;
+
 /***********************************************************************
  * Callbacks
  */
 
-typedef BOOL CALLBACK (*ACMDRIVERENUMCB)(
-  HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
-);
-
-typedef BOOL16 CALLBACK (*ACMDRIVERENUMCB16)(
-  HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
+typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
+  HACMDRIVERID hadid, DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROCA)(
+typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
 );
 
-typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROCW)(
+typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
 );
+#define        ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
 
-typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROC16)(
+typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
 );
 
-typedef UINT CALLBACK (*ACMFORMATCHOOSEHOOKPROCA)(
+typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
 );
-
-typedef UINT CALLBACK (*ACMFORMATCHOOSEHOOKPROCW)(
-  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
-);
-
-typedef UINT16 CALLBACK (*ACMFORMATCHOOSEHOOKPROC16)(
-  HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
-);
+#define        ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
 
 /***********************************************************************
  * Structures
@@ -250,7 +291,7 @@ typedef struct _ACMDRIVERDETAILSA
   CHAR     szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
   CHAR     szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
   CHAR     szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
-} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
+} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
 
 typedef struct _ACMDRIVERDETAILSW
 {
@@ -276,33 +317,11 @@ typedef struct _ACMDRIVERDETAILSW
   WCHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
   WCHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
   WCHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
-} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
-
-typedef struct _ACMDRIVERDETAILS16
-{
-  DWORD   cbStruct;
+} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
 
-  FOURCC  fccType;
-  FOURCC  fccComp;
-
-  WORD    wMid;
-  WORD    wPid;
-
-  DWORD   vdwACM;
-  DWORD   vdwDriver;
-
-  DWORD   fdwSupport;
-  DWORD   cFormatTags;
-  DWORD   cFilterTags;
-
-  HICON16 hicon;
-
-  CHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
-  CHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
-  CHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
-  CHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
-  CHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
-} ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
+DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
+DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
+DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
 
 typedef struct _ACMFILTERCHOOSEA
 {
@@ -323,12 +342,12 @@ typedef struct _ACMFILTERCHOOSEA
 
   DWORD         fdwEnum;
   PWAVEFILTER   pwfltrEnum;
-    
+
   HINSTANCE   hInstance;
   LPCSTR        pszTemplateName;
   LPARAM        lCustData;
   ACMFILTERCHOOSEHOOKPROCA pfnHook;
-} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
+} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
 
 typedef struct _ACMFILTERCHOOSEW
 {
@@ -349,38 +368,16 @@ typedef struct _ACMFILTERCHOOSEW
 
   DWORD         fdwEnum;
   PWAVEFILTER   pwfltrEnum;
-    
+
   HINSTANCE   hInstance;
   LPCWSTR       pszTemplateName;
   LPARAM        lCustData;
   ACMFILTERCHOOSEHOOKPROCW pfnHook;
-} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
-
-typedef struct _ACMFILTERCHOOSE16
-{
-  DWORD          cbStruct;
-  DWORD          fdwStyle;
-
-  HWND16         hwndOwner;
-
-  LPWAVEFILTER   pwfltr;
-  DWORD          cbwfltr;
-
-  LPCSTR         pszTitle;
+} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
 
-  char           szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
-  char           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
-  LPSTR          pszName;
-  DWORD          cchName;
-
-  DWORD          fdwEnum;
-  LPWAVEFILTER   pwfltrEnum;
-    
-  HINSTANCE16    hInstance;
-  LPCSTR         pszTemplateName;
-  LPARAM         lCustData;
-  ACMFILTERCHOOSEHOOKPROC16 pfnHook;
-} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
+DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
+DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
+DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
 
 typedef struct _ACMFILTERDETAILSA
 {
@@ -391,7 +388,7 @@ typedef struct _ACMFILTERDETAILSA
   PWAVEFILTER     pwfltr;
   DWORD           cbwfltr;
   CHAR            szFilter[ACMFILTERDETAILS_FILTER_CHARS];
-} ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
+} ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
 
 typedef struct _ACMFILTERDETAILSW
 {
@@ -402,18 +399,11 @@ typedef struct _ACMFILTERDETAILSW
   PWAVEFILTER    pwfltr;
   DWORD          cbwfltr;
   WCHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
-} ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
+} ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
 
-typedef struct _ACMFILTERDETAILS16
-{
-  DWORD          cbStruct;
-  DWORD          dwFilterIndex;
-  DWORD          dwFilterTag;
-  DWORD          fdwSupport;
-  LPWAVEFILTER   pwfltr;
-  DWORD          cbwfltr;
-  CHAR           szFilter[ACMFILTERDETAILS_FILTER_CHARS];
-} ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
+DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
+DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
+DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
 
 typedef struct _ACMFILTERTAGDETAILSA
 {
@@ -424,7 +414,7 @@ typedef struct _ACMFILTERTAGDETAILSA
   DWORD fdwSupport;
   DWORD cStandardFilters;
   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
-} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
+} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
 
 typedef struct _ACMFILTERTAGDETAILSW
 {
@@ -435,96 +425,67 @@ typedef struct _ACMFILTERTAGDETAILSW
   DWORD fdwSupport;
   DWORD cStandardFilters;
   WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
-} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
+} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
 
-typedef struct _ACMFILTERTAGDETAILS16
-{
-  DWORD cbStruct;
-  DWORD dwFilterTagIndex;
-  DWORD dwFilterTag;
-  DWORD cbFilterSize;
-  DWORD fdwSupport;
-  DWORD cStandardFilters;
-  CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
-} ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
+DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
+DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
+DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
 
 typedef struct _ACMFORMATCHOOSEA
 {
   DWORD           cbStruct;
   DWORD           fdwStyle;
+
   HWND          hwndOwner;
 
   PWAVEFORMATEX   pwfx;
   DWORD           cbwfx;
   LPCSTR          pszTitle;
-    
+
   CHAR            szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
-  CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
+  CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
 
   LPSTR           pszName;
   DWORD           cchName;
 
   DWORD           fdwEnum;
   PWAVEFORMATEX   pwfxEnum;
-    
+
   HINSTANCE     hInstance;
   LPCSTR          pszTemplateName;
   LPARAM          lCustData;
   ACMFORMATCHOOSEHOOKPROCA pfnHook;
-} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
+} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
 
 typedef struct _ACMFORMATCHOOSEW
 {
   DWORD           cbStruct;
   DWORD           fdwStyle;
-    
+
   HWND          hwndOwner;
 
   PWAVEFORMATEX   pwfx;
   DWORD           cbwfx;
   LPCWSTR         pszTitle;
-    
+
   WCHAR           szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
-  WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
+  WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
 
   LPWSTR          pszName;
   DWORD           cchName;
 
   DWORD           fdwEnum;
   LPWAVEFORMATEX  pwfxEnum;
-    
+
   HINSTANCE     hInstance;
   LPCWSTR         pszTemplateName;
   LPARAM          lCustData;
   ACMFORMATCHOOSEHOOKPROCW pfnHook;
-} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
+} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
 
-typedef struct _ACMFORMATCHOOSE16
-{
-  DWORD            cbStruct;
-  DWORD            fdwStyle;
-    
-  HWND16           hwndOwner;
-
-  LPWAVEFORMATEX   pwfx;
-  DWORD            cbwfx;
-  LPCSTR           pszTitle;
-    
-  CHAR             szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
-  CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];    
-
-  LPSTR            pszName;
-  DWORD            cchName;
-
-  DWORD            fdwEnum;
-  LPWAVEFORMATEX   pwfxEnum;
-    
-  HINSTANCE16      hInstance;
-  LPCSTR           pszTemplateName;
-  LPARAM           lCustData;
-  ACMFORMATCHOOSEHOOKPROC16 pfnHook;
-} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
+DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
+DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
+DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
 
 typedef struct _ACMFORMATDETAILSA
 {
@@ -535,7 +496,7 @@ typedef struct _ACMFORMATDETAILSA
   PWAVEFORMATEX   pwfx;
   DWORD           cbwfx;
   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
-} ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
+} ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
 
 typedef struct _ACMFORMATDETAILSW
 {
@@ -546,18 +507,11 @@ typedef struct _ACMFORMATDETAILSW
     PWAVEFORMATEX   pwfx;
     DWORD           cbwfx;
     WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
-} ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
+} ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
 
-typedef struct _ACMFORMATDETAILS16
-{
-    DWORD            cbStruct;
-    DWORD            dwFormatIndex;
-    DWORD            dwFormatTag;
-    DWORD            fdwSupport;
-    LPWAVEFORMATEX   pwfx;
-    DWORD            cbwfx;
-    CHAR             szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
-} ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
+DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
+DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
+DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
 
 typedef struct _ACMFORMATTAGDETAILSA
 {
@@ -568,7 +522,7 @@ typedef struct _ACMFORMATTAGDETAILSA
   DWORD fdwSupport;
   DWORD cStandardFormats;
   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
-} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
+} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
 
 typedef struct _ACMFORMATTAGDETAILSW
 {
@@ -579,200 +533,87 @@ typedef struct _ACMFORMATTAGDETAILSW
   DWORD fdwSupport;
   DWORD cStandardFormats;
   WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
-} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
+} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
 
-typedef struct _ACMFORMATTAGDETAILS16
-{
-  DWORD cbStruct;
-  DWORD dwFormatTagIndex;
-  DWORD dwFormatTag;
-  DWORD cbFormatSize;
-  DWORD fdwSupport;
-  DWORD cStandardFormats;
-  CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
-} ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
+DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
+DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
+DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
+
+#ifdef _WIN64
+#  define _ACMSTREAMHEADERRESERVE 15
+#else
+#  define _ACMSTREAMHEADERRESERVE 10
+#endif
 
 typedef struct _ACMSTREAMHEADER
 {
-  DWORD  cbStruct;
-  DWORD  fdwStatus;
-  DWORD  dwUser;
-  LPBYTE pbSrc;
-  DWORD  cbSrcLength;
-  DWORD  cbSrcLengthUsed;
-  DWORD  dwSrcUser;
-  LPBYTE pbDst;
-  DWORD  cbDstLength;
-  DWORD  cbDstLengthUsed;
-  DWORD  dwDstUser;
-  DWORD  dwReservedDriver[10];
-} ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
-  ACMSTREAMHEADER, *PACMSTREAMHEADER;
+  DWORD     cbStruct;
+  DWORD     fdwStatus;
+  DWORD_PTR dwUser;
+  LPBYTE    pbSrc;
+  DWORD     cbSrcLength;
+  DWORD     cbSrcLengthUsed;
+  DWORD_PTR dwSrcUser;
+  LPBYTE    pbDst;
+  DWORD     cbDstLength;
+  DWORD     cbDstLengthUsed;
+  DWORD_PTR dwDstUser;
+  DWORD     dwReservedDriver[_ACMSTREAMHEADERRESERVE];
+} ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
+
+#undef _ACMSTREAMHEADERRESERVE
 
 /***********************************************************************
  * Callbacks 2
  */
 
-typedef BOOL CALLBACK (*ACMFILTERENUMCBA)(
+typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
   HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL CALLBACK (*ACMFILTERENUMCBW)(
+typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
   HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL16 CALLBACK (*ACMFILTERENUMCB16)(
- HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
- DWORD dwInstance, DWORD fdwSupport
-);
+#define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
 
-typedef BOOL CALLBACK (*ACMFILTERTAGENUMCBA)(
+typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
   HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL CALLBACK (*ACMFILTERTAGENUMCBW)(
+typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
   HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL16 CALLBACK (*ACMFILTERTAGENUMCB16)(
-  HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
-  DWORD dwInstance, DWORD fdwSupport
-);
+#define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
 
-typedef BOOL CALLBACK (*ACMFORMATENUMCBA)(
+typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
   HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL CALLBACK (*ACMFORMATENUMCBW)(
+typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
   HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL16 CALLBACK (*ACMFORMATENUMCB16)(
-  HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
-  DWORD dwInstance, DWORD fdwSupport
-);
+#define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
 
-typedef BOOL CALLBACK (*ACMFORMATTAGENUMCBA)(
+typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
   HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL CALLBACK (*ACMFORMATTAGENUMCBW)(
+typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
   HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
-  DWORD dwInstance, DWORD fdwSupport
+  DWORD_PTR dwInstance, DWORD fdwSupport
 );
 
-typedef BOOL16 CALLBACK (*ACMFORMATTAGENUMCB16)(
-  HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
-  DWORD dwInstance, DWORD fdwSupport
-);
-
-/***********************************************************************
- * Functions - Win16
- */
-
-DWORD WINAPI acmGetVersion16(
-);
-MMRESULT16 WINAPI acmMetrics16(
-  HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
-);
-MMRESULT16 WINAPI acmDriverEnum16(
-  ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
-);
-MMRESULT16 WINAPI acmDriverDetails16(
-  HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
-);
-MMRESULT16 WINAPI acmDriverAdd16(
-  LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
-  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
-);
-MMRESULT16 WINAPI acmDriverRemove16(
-  HACMDRIVERID16 hadid, DWORD fdwRemove
-);
-MMRESULT16 WINAPI acmDriverOpen16(
-  LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
-);
-MMRESULT16 WINAPI acmDriverClose16(
-  HACMDRIVER16 had, DWORD fdwClose
-);
-LRESULT WINAPI acmDriverMessage16(
-  HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
-);
-MMRESULT16 WINAPI acmDriverID16(
-  HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
-);
-MMRESULT16 WINAPI acmDriverPriority16(
- HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
-);
-MMRESULT16 WINAPI acmFormatTagDetails16(
-  HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
-);
-MMRESULT16 WINAPI acmFormatTagEnum16(
-  HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
-  ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
-);
-MMRESULT16 WINAPI acmFormatChoose16(
-  LPACMFORMATCHOOSE16 pafmtc
-);
-MMRESULT16 WINAPI acmFormatDetails16(
-  HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
-);
-MMRESULT16 WINAPI acmFormatEnum16(
-  HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
-  ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
-);
-MMRESULT16 WINAPI acmFormatSuggest16(
-  HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, 
-  LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
-);
-MMRESULT16 WINAPI acmFilterTagDetails16(
-  HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
-);
-MMRESULT16 WINAPI acmFilterTagEnum16(
-  HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
-  ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
-);
-MMRESULT16 WINAPI acmFilterChoose16(
-  LPACMFILTERCHOOSE16 pafltrc
-);
-MMRESULT16 WINAPI acmFilterDetails16(
-  HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
-);
-MMRESULT16 WINAPI acmFilterEnum16(
-  HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
-  ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
-);
-MMRESULT16 WINAPI acmStreamOpen16(
-  LPHACMSTREAM16 phas, HACMDRIVER16 had,
-  LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
-  LPWAVEFILTER pwfltr, DWORD dwCallback,
-  DWORD dwInstance, DWORD fdwOpen
-);
-MMRESULT16 WINAPI acmStreamClose16(
-  HACMSTREAM16 has, DWORD fdwClose
-);
-MMRESULT16 WINAPI acmStreamSize16(
-  HACMSTREAM16 has, DWORD cbInput, 
-  LPDWORD pdwOutputBytes, DWORD fdwSize
-);
-MMRESULT16 WINAPI acmStreamConvert16(
-  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
-);
-MMRESULT16 WINAPI acmStreamReset16(
-  HACMSTREAM16 has, DWORD fdwReset
-);
-MMRESULT16 WINAPI acmStreamPrepareHeader16(
-  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
-);
-MMRESULT16 WINAPI acmStreamUnprepareHeader16(
-  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
-);
+#define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
 
 /***********************************************************************
  * Functions - Win32
@@ -786,6 +627,8 @@ MMRESULT WINAPI acmDriverAddW(
   PHACMDRIVERID phadid, HINSTANCE hinstModule,
   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
 );
+#define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
+
 MMRESULT WINAPI acmDriverClose(
   HACMDRIVER had, DWORD fdwClose
 );
@@ -795,8 +638,10 @@ MMRESULT WINAPI acmDriverDetailsA(
 MMRESULT WINAPI acmDriverDetailsW(
   HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
 );
+#define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
+
 MMRESULT WINAPI acmDriverEnum(
-  ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
+  ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
 MMRESULT WINAPI acmDriverID(
   HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
@@ -819,54 +664,70 @@ MMRESULT WINAPI acmFilterChooseA(
 MMRESULT WINAPI acmFilterChooseW(
   PACMFILTERCHOOSEW pafltrc
 );
+#define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
+
 MMRESULT WINAPI acmFilterDetailsA(
   HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
 );
 MMRESULT WINAPI acmFilterDetailsW(
   HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
 );
+#define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
+
 MMRESULT WINAPI acmFilterEnumA(
-  HACMDRIVER had, PACMFILTERDETAILSA pafd, 
-  ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
+  HACMDRIVER had, PACMFILTERDETAILSA pafd,
+  ACMFILTERENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
 MMRESULT WINAPI acmFilterEnumW(
-  HACMDRIVER had, PACMFILTERDETAILSW pafd, 
-  ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
+  HACMDRIVER had, PACMFILTERDETAILSW pafd,
+  ACMFILTERENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
+#define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
+
 MMRESULT WINAPI acmFilterTagDetailsA(
   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
 );
 MMRESULT WINAPI acmFilterTagDetailsW(
   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
 );
+#define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
+
 MMRESULT WINAPI acmFilterTagEnumA(
   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
-  ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
+  ACMFILTERTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
 MMRESULT WINAPI acmFilterTagEnumW(
   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
-  ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
+  ACMFILTERTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
+#define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
+
 MMRESULT WINAPI acmFormatChooseA(
   PACMFORMATCHOOSEA pafmtc
 );
 MMRESULT WINAPI acmFormatChooseW(
   PACMFORMATCHOOSEW pafmtc
 );
+#define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
+
 MMRESULT WINAPI acmFormatDetailsA(
   HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
 );
 MMRESULT WINAPI acmFormatDetailsW(
   HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
 );
+#define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
+
 MMRESULT WINAPI acmFormatEnumA(
   HACMDRIVER had, PACMFORMATDETAILSA pafd,
-  ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
+  ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
 MMRESULT WINAPI acmFormatEnumW(
   HACMDRIVER had, PACMFORMATDETAILSW pafd,
-  ACMFORMATENUMCBW fnCallback, DWORD dwInstance,  DWORD fdwEnum
+  ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance,  DWORD fdwEnum
 );
+#define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
+
 MMRESULT WINAPI acmFormatSuggest(
   HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
   DWORD cbwfxDst, DWORD fdwSuggest
@@ -877,15 +738,19 @@ MMRESULT WINAPI acmFormatTagDetailsA(
 MMRESULT WINAPI acmFormatTagDetailsW(
   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
 );
+#define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
+
 MMRESULT WINAPI acmFormatTagEnumA(
   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
-  ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
+  ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
 MMRESULT WINAPI acmFormatTagEnumW(
   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
-  ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
+  ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
 );
-DWORD WINAPI acmGetVersion(
+#define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
+
+DWORD WINAPI acmGetVersion(void
 );
 MMRESULT WINAPI acmMetrics(
   HACMOBJ hao, UINT  uMetric, LPVOID  pMetric
@@ -901,8 +766,8 @@ MMRESULT WINAPI acmStreamMessage(
 );
 MMRESULT WINAPI acmStreamOpen(
   PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
-  PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
-  DWORD dwInstance, DWORD fdwOpen
+  PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD_PTR dwCallback,
+  DWORD_PTR dwInstance, DWORD fdwOpen
 );
 MMRESULT WINAPI acmStreamPrepareHeader(
   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
@@ -911,17 +776,17 @@ MMRESULT WINAPI acmStreamReset(
   HACMSTREAM has, DWORD fdwReset
 );
 MMRESULT WINAPI acmStreamSize(
-  HACMSTREAM has, DWORD cbInput, 
+  HACMSTREAM has, DWORD cbInput,
   LPDWORD pdwOutputBytes, DWORD fdwSize
 );
 MMRESULT WINAPI acmStreamUnprepareHeader(
   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
 );
 
+#include <poppack.h>
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif /* defined(__cplusplus) */
 
 #endif  /* __WINE_MSACM_H */
-
-