Changed GetProcAddress16 and 16-bit resource functions to take normal
pointers instead of SEGPTRs.
Removed WIN16_GetTempDrive.

diff --git a/windows/cursoricon.c b/windows/cursoricon.c
index d6e5e42..f3d4d7f 100644
--- a/windows/cursoricon.c
+++ b/windows/cursoricon.c
@@ -1040,20 +1040,18 @@
 /***********************************************************************
  *           LoadCursor16    (USER.173)
  */
-HCURSOR16 WINAPI LoadCursor16( HINSTANCE16 hInstance, SEGPTR name )
+HCURSOR16 WINAPI LoadCursor16( HINSTANCE16 hInstance, LPCSTR name )
 {
-    LPCSTR nameStr = HIWORD(name)? PTR_SEG_TO_LIN(name) : (LPCSTR)name;
-    return LoadCursorA( hInstance, nameStr );
+    return LoadCursorA( hInstance, name );
 }
 
 
 /***********************************************************************
  *           LoadIcon16    (USER.174)
  */
-HICON16 WINAPI LoadIcon16( HINSTANCE16 hInstance, SEGPTR name )
+HICON16 WINAPI LoadIcon16( HINSTANCE16 hInstance, LPCSTR name )
 {
-    LPCSTR nameStr = HIWORD(name)? PTR_SEG_TO_LIN(name) : (LPCSTR)name;
-    return LoadIconA( hInstance, nameStr );
+    return LoadIconA( hInstance, name );
 }
 
 
@@ -2304,8 +2302,7 @@
 /**********************************************************************
  *	    LoadBitmap16    (USER.175)
  */
-HBITMAP16 WINAPI LoadBitmap16( HINSTANCE16 instance, SEGPTR name )
+HBITMAP16 WINAPI LoadBitmap16( HINSTANCE16 instance, LPCSTR name )
 {
-    LPCSTR nameStr = HIWORD(name)? PTR_SEG_TO_LIN(name) : (LPCSTR)name;
-    return LoadBitmapA( instance, nameStr );
+    return LoadBitmapA( instance, name );
 }
diff --git a/windows/dialog.c b/windows/dialog.c
index 841c449..fa9caaa 100644
--- a/windows/dialog.c
+++ b/windows/dialog.c
@@ -710,12 +710,7 @@
 
     if (template.menuName)
     {
-        if (!win32Template)
-        {
-            LPSTR str = SEGPTR_STRDUP( template.menuName );
-	    hMenu = LoadMenu16( hInst, SEGPTR_GET(str) );
-            SEGPTR_FREE( str );
-	}
+        if (!win32Template) hMenu = LoadMenu16( hInst, template.menuName );
         else hMenu = LoadMenuW( hInst, (LPCWSTR)template.menuName );
     }
 
@@ -891,7 +886,7 @@
 /***********************************************************************
  *           CreateDialog16   (USER.89)
  */
-HWND16 WINAPI CreateDialog16( HINSTANCE16 hInst, SEGPTR dlgTemplate,
+HWND16 WINAPI CreateDialog16( HINSTANCE16 hInst, LPCSTR dlgTemplate,
                               HWND16 owner, DLGPROC16 dlgProc )
 {
     return CreateDialogParam16( hInst, dlgTemplate, owner, dlgProc, 0 );
@@ -901,7 +896,7 @@
 /***********************************************************************
  *           CreateDialogParam16   (USER.241)
  */
-HWND16 WINAPI CreateDialogParam16( HINSTANCE16 hInst, SEGPTR dlgTemplate,
+HWND16 WINAPI CreateDialogParam16( HINSTANCE16 hInst, LPCSTR dlgTemplate,
                                    HWND16 owner, DLGPROC16 dlgProc,
                                    LPARAM param )
 {
@@ -910,10 +905,10 @@
     HGLOBAL16 hmem;
     LPCVOID data;
 
-    TRACE("%04x,%08lx,%04x,%08lx,%ld\n",
-                   hInst, (DWORD)dlgTemplate, owner, (DWORD)dlgProc, param );
+    TRACE("%04x,%s,%04x,%08lx,%ld\n",
+          hInst, debugres_a(dlgTemplate), owner, (DWORD)dlgProc, param );
 
-    if (!(hRsrc = FindResource16( hInst, dlgTemplate, RT_DIALOG16 ))) return 0;
+    if (!(hRsrc = FindResource16( hInst, dlgTemplate, RT_DIALOGA ))) return 0;
     if (!(hmem = LoadResource16( hInst, hRsrc ))) return 0;
     if (!(data = LockResource16( hmem ))) hwnd = 0;
     else hwnd = CreateDialogIndirectParam16( hInst, data, owner,
@@ -1051,7 +1046,7 @@
 /***********************************************************************
  *           DialogBox16   (USER.87)
  */
-INT16 WINAPI DialogBox16( HINSTANCE16 hInst, SEGPTR dlgTemplate,
+INT16 WINAPI DialogBox16( HINSTANCE16 hInst, LPCSTR dlgTemplate,
                           HWND16 owner, DLGPROC16 dlgProc )
 {
     return DialogBoxParam16( hInst, dlgTemplate, owner, dlgProc, 0 );
@@ -1061,7 +1056,7 @@
 /***********************************************************************
  *           DialogBoxParam16   (USER.239)
  */
-INT16 WINAPI DialogBoxParam16( HINSTANCE16 hInst, SEGPTR template,
+INT16 WINAPI DialogBoxParam16( HINSTANCE16 hInst, LPCSTR template,
                                HWND16 owner, DLGPROC16 dlgProc, LPARAM param )
 {
     HWND16 hwnd = 0;
@@ -1070,7 +1065,7 @@
     LPCVOID data;
     int ret = -1;
 
-    if (!(hRsrc = FindResource16( hInst, template, RT_DIALOG16 ))) return 0;
+    if (!(hRsrc = FindResource16( hInst, template, RT_DIALOGA ))) return 0;
     if (!(hmem = LoadResource16( hInst, hRsrc ))) return 0;
     if (!(data = LockResource16( hmem ))) hwnd = 0;
     else hwnd = DIALOG_CreateIndirect( hInst, data, FALSE, owner,
@@ -1480,7 +1475,7 @@
 /***********************************************************************
  *           IsDialogMessage16   (USER.90)
  */
-BOOL16 WINAPI WIN16_IsDialogMessage16( HWND16 hwndDlg, SEGPTR msg16 )
+BOOL16 WINAPI IsDialogMessage16( HWND16 hwndDlg, SEGPTR msg16 )
 {
     LPMSG16 msg = PTR_SEG_TO_LIN(msg16);
     BOOL ret, translate, dispatch;
@@ -1503,17 +1498,6 @@
 }
 
 
-BOOL16 WINAPI IsDialogMessage16( HWND16 hwndDlg, LPMSG16 msg )
-{
-    LPMSG16 msg16 = SEGPTR_NEW(MSG16);
-    BOOL ret;
-
-    *msg16 = *msg;
-    ret = WIN16_IsDialogMessage16( hwndDlg, SEGPTR_GET(msg16) );
-    SEGPTR_FREE(msg16);
-    return ret;
-}
-
 /***********************************************************************
  *           IsDialogMessageA   (USER32.342)
  */
diff --git a/windows/driver.c b/windows/driver.c
index c0e2576..ba3792b 100644
--- a/windows/driver.c
+++ b/windows/driver.c
@@ -739,7 +739,7 @@
     lpSFN = (lpSFN) ? (lpSFN + 1) : lpFileName;
     
     if ((hModule = LoadModule16(lpFileName, (LPVOID)-1)) >= 32) {
-	if ((lpProc = (DRIVERPROC16)WIN32_GetProcAddress16(hModule, "DRIVERPROC")) != NULL) {
+	if ((lpProc = (DRIVERPROC16)GetProcAddress16(hModule, "DRIVERPROC")) != NULL) {
 	    lpDrv = DRIVER_RegisterDriver16(lpSFN, hModule, lpProc, lParam, bCallFrom32);
 	} else {
 	    FreeLibrary16(hModule);
diff --git a/windows/win.c b/windows/win.c
index 33fff0a..57c458e 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -904,23 +904,17 @@
         if (cs->hMenu) SetMenu(hwnd, cs->hMenu);
         else
         {
-#if 0  /* FIXME: should check if classPtr->menuNameW can be used as is */
-            if (classPtr->menuNameA)
-                cs->hMenu = HIWORD(classPtr->menuNameA) ?
-                       LoadMenu(cs->hInstance,SEGPTR_GET(classPtr->menuNameA)):
-                       LoadMenu(cs->hInstance,(SEGPTR)classPtr->menuNameA);
-#else
-	    SEGPTR menuName = (SEGPTR)GetClassLong16( hwnd, GCL_MENUNAME );
+            /* FIXME: should check if classPtr->menuNameW can be used as is */
+            LPCSTR menuName = (LPCSTR)GetClassLongA( hwnd, GCL_MENUNAME );
             if (menuName)
             {
                 if (HIWORD(cs->hInstance))
-                    cs->hMenu = LoadMenuA(cs->hInstance,PTR_SEG_TO_LIN(menuName));
+                    cs->hMenu = LoadMenuA(cs->hInstance,menuName);
                 else
                     cs->hMenu = LoadMenu16(cs->hInstance,menuName);
 
                 if (cs->hMenu) SetMenu( hwnd, cs->hMenu );
             }
-#endif
         }
     }
     else wndPtr->wIDmenu = (UINT)cs->hMenu;
@@ -3286,7 +3280,7 @@
         return 0L;
     }
 
-    hBummer = LoadCursor16(0, IDC_BUMMER16);
+    hBummer = LoadCursorA(0, IDC_BUMMERA);
 
     if( !hBummer || !wndPtr )
     {