--- modules/access/vcd/cdrom_internals.h~	2006-10-05 23:40:27.000000000 +1000
+++ modules/access/vcd/cdrom_internals.h	2006-10-05 23:45:11.000000000 +1000
@@ -25,6 +25,11 @@
 /*****************************************************************************
  * The vcddev structure
  *****************************************************************************/
+#ifdef WIN32
+typedef WINAPI DWORD (*GETASPI32SUPPORTINFO)(VOID);
+typedef WINAPI DWORD (*SENDASPI32COMMAND)(LPVOID);
+#endif
+
 struct vcddev_s
 {
     char   *psz_dev;                                      /* vcd device name */
@@ -40,7 +45,7 @@
     HANDLE h_device_handle;                         /* vcd device descriptor */
     long  hASPI;
     short i_sid;
-    long  (*lpSendCommand)( void* );
+    SENDASPI32COMMAND lpSendCommand;
 
 #else
     int    i_device_handle;                         /* vcd device descriptor */
--- modules/access/vcd/cdrom.c~	2006-11-17 17:15:17.000000000 +1100
+++ modules/access/vcd/cdrom.c	2006-11-17 17:15:30.000000000 +1100
@@ -1153,8 +1153,8 @@
     else
     {
         HMODULE hASPI = NULL;
-        long (*lpGetSupport)( void ) = NULL;
-        long (*lpSendCommand)( void* ) = NULL;
+        GETASPI32SUPPORTINFO lpGetSupport = NULL;
+        SENDASPI32COMMAND lpSendCommand = NULL;
         DWORD dwSupportInfo;
         int i, j, i_hostadapters;
         char c_drive = psz_dev[0];
@@ -1162,9 +1162,9 @@
         hASPI = LoadLibrary( "wnaspi32.dll" );
         if( hASPI != NULL )
         {
-            (FARPROC) lpGetSupport = GetProcAddress( hASPI,
+            lpGetSupport = (GETASPI32SUPPORTINFO) GetProcAddress( hASPI,
                                                      "GetASPI32SupportInfo" );
-            (FARPROC) lpSendCommand = GetProcAddress( hASPI,
+            lpSendCommand = (SENDASPI32COMMAND) GetProcAddress( hASPI,
                                                       "SendASPI32Command" );
         }
 
