From de54c5b749b3eefb75d420840c889533a58aa342 Mon Sep 17 00:00:00 2001
From: marha <marha@users.sourceforge.net>
Date: Wed, 24 Jul 2013 14:25:51 +0200
Subject: 64-bit compilation now compiles and runs

---
 xorg-server/hw/xwin/InitOutput.c            |   5 --
 xorg-server/hw/xwin/swrastwgl_dri/makefile  |   8 +-
 xorg-server/hw/xwin/winSetAppUserModelID.c  |   3 +-
 xorg-server/hw/xwin/winmultiwindowwm.c      | 116 ++--------------------------
 xorg-server/hw/xwin/winmultiwindowwndproc.c |   2 +-
 xorg-server/hw/xwin/xlaunch/main.cc         |  36 ++++-----
 xorg-server/hw/xwin/xlaunch/makefile        |  10 +--
 7 files changed, 35 insertions(+), 145 deletions(-)

(limited to 'xorg-server/hw')

diff --git a/xorg-server/hw/xwin/InitOutput.c b/xorg-server/hw/xwin/InitOutput.c
index a35721e74..f194d535f 100644
--- a/xorg-server/hw/xwin/InitOutput.c
+++ b/xorg-server/hw/xwin/InitOutput.c
@@ -975,11 +975,6 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
     winPropertyStoreInit();
 #endif
 
-#ifdef XWIN_MULTIWINDOW
-  /* Load libraries for taskbar grouping */
-  winTaskbarInit ();
-#endif
-
     /* Store the instance handle */
     g_hInstance = GetModuleHandle(NULL);
 
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/makefile b/xorg-server/hw/xwin/swrastwgl_dri/makefile
index bf0e66f16..201f2aeb9 100644
--- a/xorg-server/hw/xwin/swrastwgl_dri/makefile
+++ b/xorg-server/hw/xwin/swrastwgl_dri/makefile
@@ -1,3 +1,7 @@
+ifndef PYTHON3
+$(error Please define PYTHON3 environment variable)
+endif
+
 SHAREDLIB = swrastwgl_dri
 
 INCLUDES += $(OBJDIR) ..\..\.. .. ..\glx
@@ -10,8 +14,8 @@ CSRCS = swrastwgl_dri.c glwrap.c wgl_ext_api.c
 
 vpath %.c ../glx
 
-$(OBJDIR)\generated_gl_wrappers.c: gen_gl_wrappers.py ../glx/gl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py ../../../glx/dispatch.h
+$(OBJDIR)\generated_gl_wrappers.c: ../glx/gen_gl_wrappers.py ../glx/gl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py ../../../glx/dispatch.h
 	$(PYTHON3) ../glx/gen_gl_wrappers.py -outfile $@ -nodbgcount -registry ../glx/gl.xml -staticwrappers -dispatchheader ../../../glx/dispatch.h
 
-$(OBJDIR)\generated_wgl_wrappers.c: gen_gl_wrappers.py ../glx/wgl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py
+$(OBJDIR)\generated_wgl_wrappers.c: ../glx/gen_gl_wrappers.py ../glx/wgl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py
 	$(PYTHON3) ../glx/gen_gl_wrappers.py -outfile $@ -nodbgcount -registry ../glx/wgl.xml -prefix wgl -preresolve
diff --git a/xorg-server/hw/xwin/winSetAppUserModelID.c b/xorg-server/hw/xwin/winSetAppUserModelID.c
index 41615e19c..3c449a3a8 100644
--- a/xorg-server/hw/xwin/winSetAppUserModelID.c
+++ b/xorg-server/hw/xwin/winSetAppUserModelID.c
@@ -34,6 +34,7 @@
 #include "winmsg.h"
 
 #include <shlwapi.h>
+#include <propvarutil.h>
 
 #define INITGUID
 #include "initguid.h"
@@ -95,7 +96,7 @@ winSetAppUserModelID(HWND hWnd, const char *AppID)
     hr = g_pSHGetPropertyStoreForWindow(hWnd, &IID_IPropertyStore,
                                         (void **) &pps);
     if (SUCCEEDED(hr) && pps) {
-        memset(&pv, 0, sizeof(PROPVARIANT));
+        PropVariantInit(&pv);
         if (AppID) {
             pv.vt = VT_LPWSTR;
             hr = SHStrDupA(AppID, &pv.pwszVal);
diff --git a/xorg-server/hw/xwin/winmultiwindowwm.c b/xorg-server/hw/xwin/winmultiwindowwm.c
index 3187f2172..e8fbf08c0 100644
--- a/xorg-server/hw/xwin/winmultiwindowwm.c
+++ b/xorg-server/hw/xwin/winmultiwindowwm.c
@@ -65,9 +65,6 @@ typedef int pid_t;
 #include "windowstr.h"
 #include "winmultiwindowclass.h"
 
-#include <shlwapi.h>
-#include "taskbar.h"
-
 #ifdef XWIN_MULTIWINDOWEXTWM
 #define _WINDOWSWM_SERVER_
 #include <X11/extensions/windowswmstr.h>
@@ -207,10 +204,6 @@ static pthread_t g_winMultiWindowXMsgProcThread;
 static Bool g_shutdown = FALSE;
 static Bool redirectError = FALSE;
 static Bool g_fAnotherWMRunning = FALSE;
-static HMODULE                  g_hmodShell32Dll = NULL;
-static HMODULE                  g_hmodOle32Dll = NULL;
-static SHGETPROPERTYSTOREFORWINDOWPROC g_pSHGetPropertyStoreForWindow = NULL;
-static PROPVARIANTCLEARPROC     g_pPropVariantClear = NULL;
 
 /*
  * PushMessage - Push a message onto the queue
@@ -458,7 +451,7 @@ getHwnd(WMInfoPtr pWMInfo, Window iWindow)
                            iWindow,
                            pWMInfo->atmPrivMap,
                            0,
-                           1,
+                           sizeof(HWND)/4,
                            False,
                            XA_INTEGER,
                            &atmType,
@@ -701,7 +694,7 @@ winMultiWindowWMProc(void *pArg)
             XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER,     //pWMInfo->atmPrivMap,
                             32,
                             PropModeReplace,
-                            (unsigned char *) &(pNode->msg.hwndWindow), 1);
+                            (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4);
             UpdateName(pWMInfo, pNode->msg.iWindow);
             UpdateIcon(pWMInfo, pNode->msg.iWindow);
             break;
@@ -712,7 +705,7 @@ winMultiWindowWMProc(void *pArg)
             XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER,     //pWMInfo->atmPrivMap,
                             32,
                             PropModeReplace,
-                            (unsigned char *) &(pNode->msg.hwndWindow), 1);
+                            (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4);
             break;
 
         case WM_WM_MAP3:
@@ -722,7 +715,7 @@ winMultiWindowWMProc(void *pArg)
             XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER,     //pWMInfo->atmPrivMap,
                             32,
                             PropModeReplace,
-                            (unsigned char *) &(pNode->msg.hwndWindow), 1);
+                            (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4);
             UpdateName(pWMInfo, pNode->msg.iWindow);
             UpdateIcon(pWMInfo, pNode->msg.iWindow);
             UpdateStyle(pWMInfo, pNode->msg.iWindow);
@@ -1006,14 +999,14 @@ winMultiWindowXMsgProc(void *pArg)
                 (pProcArg->pDisplay, pProcArg->dwScreen, TRUE)) {
                 if (!g_fAnotherWMRunning) {
                     g_fAnotherWMRunning = TRUE;
-                    SendMessage(*(HWND *) pProcArg->hwndScreen, WM_UNMANAGE, 0,
+                    SendMessage(pProcArg->hwndScreen, WM_UNMANAGE, 0,
                                 0);
                 }
             }
             else {
                 if (g_fAnotherWMRunning) {
                     g_fAnotherWMRunning = FALSE;
-                    SendMessage(*(HWND *) pProcArg->hwndScreen, WM_MANAGE, 0,
+                    SendMessage(pProcArg->hwndScreen, WM_MANAGE, 0,
                                 0);
                 }
             }
@@ -1857,100 +1850,3 @@ winUpdateWindowPosition(HWND hWnd, HWND * zstyle)
                  rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, 0);
 
 }
-
-void
-winTaskbarInit (void)
-{
-  /*
-    Load libraries and get function pointers to SHGetPropertyStoreForWindow
-    and PropVariantClear for winSetAppID()
-  */
-
-  /*
-    SHGetPropertyStoreForWindow is only supported since Windows 7. On previous
-    versions the pointer will be NULL and taskbar grouping is not supported.
-    winSetAppID() will do nothing in this case.
-  */
-  g_hmodShell32Dll = LoadLibrary ("shell32.dll");
-  if (g_hmodShell32Dll == NULL)
-    {
-      ErrorF ("winTaskbarInit - Could not load shell32.dll\n");
-      return;
-    }
-
-  g_pSHGetPropertyStoreForWindow = (SHGETPROPERTYSTOREFORWINDOWPROC) GetProcAddress (g_hmodShell32Dll, "SHGetPropertyStoreForWindow");
-  if (g_pSHGetPropertyStoreForWindow == NULL)
-    {
-      ErrorF ("winTaskbarInit - Could not get SHGetPropertyStoreForWindow address\n");
-      return;
-    }
-
-  /*
-    PropVariantClear is supported since NT4, but we have no propidl.h to
-    provide a prototype for it
-  */
-  g_hmodOle32Dll = LoadLibrary ("ole32.dll");
-  if (g_hmodOle32Dll == NULL)
-    {
-      ErrorF ("winTaskbarInit - Could not load ole32.dll\n");
-      return;
-    }
-
-  g_pPropVariantClear = (PROPVARIANTCLEARPROC) GetProcAddress (g_hmodOle32Dll, "PropVariantClear");
-  if (g_pPropVariantClear == NULL)
-    {
-      ErrorF ("winTaskbarInit - Could not get g_pPropVariantClear address\n");
-      return;
-    }
-}
-
-void
-winTaskbarDestroy (void)
-{
-  if (g_hmodOle32Dll != NULL)
-    {
-      FreeLibrary (g_hmodOle32Dll);
-      g_hmodOle32Dll = NULL;
-      g_pPropVariantClear = NULL;
-    }
-  if (g_hmodShell32Dll != NULL)
-    {
-      FreeLibrary (g_hmodShell32Dll);
-      g_hmodShell32Dll = NULL;
-      g_pSHGetPropertyStoreForWindow = NULL;
-    }
-}
-
-void
-winSetAppID (HWND hWnd, const char* AppID)
-{
-  PROPVARIANT pv;
-  IPropertyStore *pps = NULL;
-  HRESULT hr;
-
-  if (g_pSHGetPropertyStoreForWindow == NULL ||
-      g_pPropVariantClear == NULL)
-    {
-      return;
-    }
-
-  winDebug ("winSetAppID - hwnd 0x%08x appid '%s'\n", hWnd, AppID);
-
-  hr = g_pSHGetPropertyStoreForWindow (hWnd, &IID_IPropertyStore, (void**)&pps);
-  if(SUCCEEDED(hr) && pps)
-    {
-      memset(&pv, 0, sizeof(PROPVARIANT));
-      if(AppID)
-        {
-          pv.vt = VT_LPWSTR;
-          hr = SHStrDupA(AppID, &pv.pwszVal);
-        }
-
-      if(SUCCEEDED(hr))
-        {
-          hr = pps->lpVtbl->SetValue(pps, &PKEY_AppUserModel_ID, &pv);
-          g_pPropVariantClear(&pv);
-        }
-      pps->lpVtbl->Release(pps);
-    }
-}
diff --git a/xorg-server/hw/xwin/winmultiwindowwndproc.c b/xorg-server/hw/xwin/winmultiwindowwndproc.c
index af6bb528e..b52d5990b 100644
--- a/xorg-server/hw/xwin/winmultiwindowwndproc.c
+++ b/xorg-server/hw/xwin/winmultiwindowwndproc.c
@@ -806,7 +806,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
         }
         /* Prevent the mouse wheel from stalling when another window is minimized */
         if (HIWORD(wParam) == 0 && LOWORD(wParam) == WA_ACTIVE &&
-            (HWND) lParam != NULL && (HWND) lParam != (HWND) GetParent(hwnd))
+            (HWND) lParam != NULL && (HWND) lParam != GetParent(hwnd))
             SetFocus(hwnd);
         return 0;
 
diff --git a/xorg-server/hw/xwin/xlaunch/main.cc b/xorg-server/hw/xwin/xlaunch/main.cc
index 8ec1e011c..bf4f5e6a5 100644
--- a/xorg-server/hw/xwin/xlaunch/main.cc
+++ b/xorg-server/hw/xwin/xlaunch/main.cc
@@ -219,7 +219,7 @@ class CMyWizard : public CWizard
                         config.window = CConfig::Nodecoration;
                     else
                     {
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                         return TRUE;
                     }
                     // Get selected display number
@@ -233,27 +233,27 @@ class CMyWizard : public CWizard
                     if (config.display.empty())
                     {
                         MessageBox(hwndDlg,"Please fill in a display number.","Error",MB_OK);
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                     }
                     else
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_CLIENTS);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
                     return TRUE;
                 case IDD_CLIENTS:
                     // Check for select client startup method
                     if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT))
                     {
                         config.client = CConfig::StartProgram;
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_PROGRAM);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PROGRAM);
                     } else if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP))
                     {
                         config.client = CConfig::XDMCP;
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_XDMCP);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_XDMCP);
                     } else if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_NONE))
                     {
                         config.client = CConfig::NoClient;
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_EXTRA);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
                     } else
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                     return TRUE;
                 case IDD_PROGRAM:
                     // Check wether local or remote client should be started
@@ -263,7 +263,7 @@ class CMyWizard : public CWizard
                         config.local = false;
                     else
                     {
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                         return TRUE;
                     }
                     // Read program, user and host name
@@ -290,9 +290,9 @@ class CMyWizard : public CWizard
                     }
                     // Check for valid input
                     if (!config.local && (config.host.empty() || config.localprogram.empty() || config.remoteprogram.empty()))
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                     else
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_EXTRA);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
                     return TRUE;
                 case IDD_XDMCP:
                     // Check for broadcast
@@ -302,7 +302,7 @@ class CMyWizard : public CWizard
                         config.broadcast = false;
                     else
                     {
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                         return TRUE;
                     }
                     // Check for indirect mode
@@ -319,9 +319,9 @@ class CMyWizard : public CWizard
                     }
                     // Check for valid input
                     if (!config.broadcast && config.xdmcp_host.empty())
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
                     else
-                        SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_EXTRA);
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
                     if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_TERMINATE))
                         config.xdmcpterminate = true;
                     else
@@ -355,7 +355,7 @@ class CMyWizard : public CWizard
                         buffer[511] = 0;
                         config.extra_params = buffer;
                     }
-                    SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_FINISH);
+                    SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_FINISH);
                     return TRUE;
                 default:
                     break;
@@ -385,20 +385,20 @@ class CMyWizard : public CWizard
             {
                 case IDD_PROGRAM:
                 case IDD_XDMCP:
-                    SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_CLIENTS);
+                    SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
                     return TRUE;
                 case IDD_FONTPATH:
                 case IDD_EXTRA: // temporary. fontpath is disabled
                     switch (config.client)
                     {
                         case CConfig::NoClient:
-                            SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_CLIENTS);
+                            SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
                             return TRUE;
                         case CConfig::StartProgram:
-                            SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_PROGRAM);
+                            SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PROGRAM);
                             return TRUE;
                         case CConfig::XDMCP:
-                            SetWindowLong(hwndDlg, DWL_MSGRESULT, IDD_XDMCP);
+                            SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_XDMCP);
                             return TRUE;
                     }
                     break;
diff --git a/xorg-server/hw/xwin/xlaunch/makefile b/xorg-server/hw/xwin/xlaunch/makefile
index 98656e57e..83426fe19 100644
--- a/xorg-server/hw/xwin/xlaunch/makefile
+++ b/xorg-server/hw/xwin/xlaunch/makefile
@@ -11,18 +11,12 @@ WINAPP = xlaunch
 
 RESOURCES = resources.rc
 
-$(OBJDIR)\%.res : resources\%.rc $(wildcard resources\*.rc) 
+$(OBJDIR)\%.res : resources\%.rc $(wildcard resources\*.rc)
 	$(RC) $(RCFLAGS) $(RCDEFINES:%=-d "%") $(RCINCLUDES:%=-i %) -Fo$(relpath $@) $<
 
 LIBDIRS=$(dir $(INCLUDELIBFILES))
 
 load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
 
-LINKLIBS += $(MHMAKECONF)\libxml2\lib\libxml2.lib
-
-ifeq ($(DEBUG),1)
-LINKLIBS += $(MHMAKECONF)\pthreads\pthreadVC2d.lib
-else
-LINKLIBS += $(MHMAKECONF)\pthreads\pthreadVC2.lib
-endif
+LINKLIBS += $(LIBXMLLIB) $(PTHREADLIB)
 
-- 
cgit v1.2.3