Moved macro DECLARE_HANDLE() (in msacm.h and wtypes.h) to windef.h,
then deleted the duplicated typedefs (in imm.h and mmsystem.h).

diff --git a/include/imm.h b/include/imm.h
index 5dba721..46dfc1dc 100644
--- a/include/imm.h
+++ b/include/imm.h
@@ -14,7 +14,6 @@
 typedef HANDLE HIMC;
 typedef HANDLE HIMCC;
 
-typedef HKL *LPHKL;
 
 typedef int (CALLBACK *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID);
 typedef int (CALLBACK *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID);
diff --git a/include/mmsystem.h b/include/mmsystem.h
index db5fa2f..67c3521 100644
--- a/include/mmsystem.h
+++ b/include/mmsystem.h
@@ -199,12 +199,8 @@
 #define WAVERR_SYNC           (WAVERR_BASE + 3)    /* device is synchronous */
 #define WAVERR_LASTERROR      (WAVERR_BASE + 3)    /* last error in range */
 
-typedef HWAVEIN16 *LPHWAVEIN16;
-typedef HWAVEOUT16 *LPHWAVEOUT16;
 typedef LPDRVCALLBACK16 LPWAVECALLBACK16;
 typedef LPDRVCALLBACK LPWAVECALLBACK;
-typedef HMIXER16 *LPHMIXER16;
-typedef HMIXER *LPHMIXER;
 
 #define WOM_OPEN        MM_WOM_OPEN
 #define WOM_CLOSE       MM_WOM_CLOSE
@@ -440,8 +436,6 @@
 #define MIDIERR_INVALIDSETUP  (MIDIERR_BASE + 5)   /* invalid setup */
 #define MIDIERR_LASTERROR     (MIDIERR_BASE + 5)   /* last error in range */
 
-typedef HMIDIIN16  *LPHMIDIIN16;
-typedef HMIDIOUT16  *LPHMIDIOUT16;
 typedef LPDRVCALLBACK16 LPMIDICALLBACK16;
 typedef LPDRVCALLBACK LPMIDICALLBACK;
 #define MIDIPATCHSIZE   128
diff --git a/include/msacm.h b/include/msacm.h
index 5958a17..431845c 100644
--- a/include/msacm.h
+++ b/include/msacm.h
@@ -11,27 +11,6 @@
 #include "mmreg.h"
 
 /***********************************************************************
- * Types
- */
-
-/* FIXME: Move to windef.h */
-#define DECLARE_HANDLE(a) \
-typedef HANDLE16 a##16; \
-typedef HANDLE a; \
-typedef a##16 *P##a##16; \
-typedef a##16 *NP##a##16; \
-typedef a##16 *LP##a##16; \
-typedef a *P##a;
-
-DECLARE_HANDLE(HACMDRIVERID)
-DECLARE_HANDLE(HACMDRIVER)
-DECLARE_HANDLE(HACMSTREAM)
-DECLARE_HANDLE(HACMOBJ)
-
-/* FIXME: Remove when define moved to windef.h */
-#undef DECLARE_HANDLE
-
-/***********************************************************************
  * Defines/Enums
  */
 
diff --git a/include/windef.h b/include/windef.h
index 4cadbea..fa4c91c 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -183,7 +183,20 @@
 
 /* Handle types that exist both in Win16 and Win32. */
 
-#define DECLARE_HANDLE(a)  typedef HANDLE16 a##16; typedef HANDLE a
+#define DECLARE_HANDLE(a) \
+	typedef HANDLE16 a##16; \
+	typedef HANDLE a; \
+	typedef a##16 *P##a##16; \
+	typedef a##16 *NP##a##16; \
+	typedef a##16 *LP##a##16; \
+	typedef a *P##a; \
+	typedef a *LP##a
+DECLARE_HANDLE(HACMDRIVERID);
+DECLARE_HANDLE(HACMDRIVER);
+DECLARE_HANDLE(HACMOBJ);
+DECLARE_HANDLE(HACMSTREAM);
+DECLARE_HANDLE(HMETAFILEPICT);
+
 DECLARE_HANDLE(HACCEL);
 DECLARE_HANDLE(HBITMAP);
 DECLARE_HANDLE(HBRUSH);
@@ -501,4 +514,4 @@
 }
 #endif
 
-#endif /* __WINE_WINTYPES_H */
+#endif /* __WINE_WINDEF_H */
diff --git a/include/wtypes.h b/include/wtypes.h
index 574cc5d..79b953f 100644
--- a/include/wtypes.h
+++ b/include/wtypes.h
@@ -82,10 +82,6 @@
 	STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4
 } STGC;
 
-#define DECLARE_HANDLE(a)  typedef HANDLE16 a##16; typedef HANDLE a
-DECLARE_HANDLE(HMETAFILEPICT);
-#undef DECLARE_HANDLE
-
 typedef struct _COAUTHIDENTITY
 {
     USHORT* User;