Implemented most of '*Format*' API.
Improved internal object and messages handling.
Started some '*Filter*' functions.
Fixed standard headers for Winelib.
Fixed acmMetrics.

diff --git a/include/msacm.h b/include/msacm.h
index 37a2777..8e909ad 100644
--- a/include/msacm.h
+++ b/include/msacm.h
@@ -205,6 +205,7 @@
 typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROCW)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
 );
+#define	ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
 
 typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROC16)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
@@ -217,6 +218,7 @@
 typedef UINT CALLBACK (*ACMFORMATCHOOSEHOOKPROCW)(
   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
 );
+#define	ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
 
 typedef UINT16 CALLBACK (*ACMFORMATCHOOSEHOOKPROC16)(
   HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
@@ -278,6 +280,9 @@
   WCHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
 
+DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS);
+DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS);
+
 typedef struct _ACMDRIVERDETAILS16
 {
   DWORD   cbStruct;
@@ -356,6 +361,9 @@
   ACMFILTERCHOOSEHOOKPROCW pfnHook;
 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
 
+DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE);
+DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE);
+
 typedef struct _ACMFILTERCHOOSE16
 {
   DWORD          cbStruct;
@@ -404,6 +412,9 @@
   WCHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
 
+DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS);
+DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS);
+
 typedef struct _ACMFILTERDETAILS16
 {
   DWORD          cbStruct;
@@ -437,6 +448,9 @@
   WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
 
+DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS);
+DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS);
+
 typedef struct _ACMFILTERTAGDETAILS16
 {
   DWORD cbStruct;
@@ -500,6 +514,9 @@
   ACMFORMATCHOOSEHOOKPROCW pfnHook;
 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
 
+DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE);
+DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE);
+
 typedef struct _ACMFORMATCHOOSE16
 {
   DWORD            cbStruct;
@@ -548,6 +565,9 @@
     WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
 
+DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS);
+DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS);
+
 typedef struct _ACMFORMATDETAILS16
 {
     DWORD            cbStruct;
@@ -581,6 +601,9 @@
   WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
 
+DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS);
+DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS);
+
 typedef struct _ACMFORMATTAGDETAILS16
 {
   DWORD cbStruct;
@@ -623,6 +646,8 @@
   DWORD dwInstance, DWORD fdwSupport
 );
 
+#define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
+
 typedef BOOL16 CALLBACK (*ACMFILTERENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
  DWORD dwInstance, DWORD fdwSupport
@@ -638,6 +663,8 @@
   DWORD dwInstance, DWORD fdwSupport
 );
 
+#define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
+
 typedef BOOL16 CALLBACK (*ACMFILTERTAGENUMCB16)(
   HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
   DWORD dwInstance, DWORD fdwSupport
@@ -653,6 +680,8 @@
   DWORD dwInstance, DWORD fdwSupport
 );
 
+#define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
+
 typedef BOOL16 CALLBACK (*ACMFORMATENUMCB16)(
   HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
   DWORD dwInstance, DWORD fdwSupport
@@ -668,6 +697,8 @@
   DWORD dwInstance, DWORD fdwSupport
 );
 
+#define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
+
 typedef BOOL16 CALLBACK (*ACMFORMATTAGENUMCB16)(
   HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
   DWORD dwInstance, DWORD fdwSupport
@@ -786,6 +817,8 @@
   PHACMDRIVERID phadid, HINSTANCE hinstModule,
   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
 );
+#define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
+
 MMRESULT WINAPI acmDriverClose(
   HACMDRIVER had, DWORD fdwClose
 );
@@ -795,6 +828,8 @@
 MMRESULT WINAPI acmDriverDetailsW(
   HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
 );
+#define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
+
 MMRESULT WINAPI acmDriverEnum(
   ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
 );
@@ -819,12 +854,16 @@
 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
@@ -833,12 +872,16 @@
   HACMDRIVER had, PACMFILTERDETAILSW pafd, 
   ACMFILTERENUMCBW fnCallback, DWORD 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
@@ -847,18 +890,24 @@
   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
   ACMFILTERTAGENUMCBW fnCallback, DWORD 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
@@ -867,6 +916,8 @@
   HACMDRIVER had, PACMFORMATDETAILSW pafd,
   ACMFORMATENUMCBW fnCallback, DWORD dwInstance,  DWORD fdwEnum
 );
+#define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
+
 MMRESULT WINAPI acmFormatSuggest(
   HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
   DWORD cbwfxDst, DWORD fdwSuggest
@@ -877,6 +928,8 @@
 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
@@ -885,6 +938,8 @@
   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
   ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
 );
+#define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
+
 DWORD WINAPI acmGetVersion(
 );
 MMRESULT WINAPI acmMetrics(