applied fixes to make a user32.dll
authorBoudewijn Dekker <ariadne@xs4all.nl>
Thu, 13 Apr 2000 20:59:11 +0000 (20:59 +0000)
committerBoudewijn Dekker <ariadne@xs4all.nl>
Thu, 13 Apr 2000 20:59:11 +0000 (20:59 +0000)
code is based on wine.

svn path=/trunk/; revision=1120

reactos/lib/user32/controls/combo.c
reactos/lib/user32/controls/edit.c
reactos/lib/user32/controls/listbox.c
reactos/lib/user32/controls/scroll.c
reactos/lib/user32/internal/win.c
reactos/lib/user32/internal/winpos.c
reactos/lib/user32/misc/dllmain.c
reactos/lib/user32/misc/main.c
reactos/lib/user32/windows/wndproc.c

index 4b5bb20..0eea751 100644 (file)
@@ -82,7 +82,7 @@ static LRESULT COMBO_NCCreate(WND* wnd, LPARAM lParam)
    if ( wnd && COMBO_Init() &&
       (lphc = HeapAlloc(GetProcessHeap(), 0, sizeof(HEADCOMBO))) )
    {
-       LPCREATESTRUCTA     lpcs = (CREATESTRUCTA*)lParam;
+       LPCREATESTRUCT     lpcs = (CREATESTRUCT*)lParam;
        
        memset( lphc, 0, sizeof(HEADCOMBO) );
        *(LPHEADCOMBO*)wnd->wExtra = lphc;
index dbf3032..26e7cfb 100644 (file)
@@ -216,7 +216,7 @@ static void EDIT_WM_Char(WND *wnd, EDITSTATE *es, CHAR c, DWORD key_data);
 static void    EDIT_WM_Command(WND *wnd, EDITSTATE *es, INT code, INT id, HWND conrtol);
 static void    EDIT_WM_ContextMenu(WND *wnd, EDITSTATE *es, HWND hwnd, INT x, INT y);
 static void    EDIT_WM_Copy(WND *wnd, EDITSTATE *es);
-static LRESULT EDIT_WM_Create(WND *wnd, EDITSTATE *es, LPCREATESTRUCTA cs);
+static LRESULT EDIT_WM_Create(WND *wnd, EDITSTATE *es, LPCREATESTRUCT cs);
 static void    EDIT_WM_Destroy(WND *wnd, EDITSTATE *es);
 static LRESULT EDIT_WM_EraseBkGnd(WND *wnd, EDITSTATE *es, HDC dc);
 static INT     EDIT_WM_GetText(WND *wnd, EDITSTATE *es, INT count, LPSTR text);
@@ -227,7 +227,7 @@ static LRESULT      EDIT_WM_LButtonDblClk(WND *wnd, EDITSTATE *es, DWORD keys, INT x,
 static LRESULT EDIT_WM_LButtonDown(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT y);
 static LRESULT EDIT_WM_LButtonUp(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT y);
 static LRESULT EDIT_WM_MouseMove(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT y);
-static LRESULT EDIT_WM_NCCreate(WND *wnd, LPCREATESTRUCTA cs);
+static LRESULT EDIT_WM_NCCreate(WND *wnd, LPCREATESTRUCT cs);
 static void    EDIT_WM_Paint(WND *wnd, EDITSTATE *es);
 static void    EDIT_WM_Paste(WND *wnd, EDITSTATE *es);
 static void    EDIT_WM_SetFocus(WND *wnd, EDITSTATE *es, HWND window_losing_focus);
@@ -313,7 +313,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
 
        case WM_NCCREATE:
                DPRINTF_EDIT_MSG("WM_NCCREATE");
-               return EDIT_WM_NCCreate(wnd, (LPCREATESTRUCTA)lParam);
+               return EDIT_WM_NCCreate(wnd, (LPCREATESTRUCT)lParam);
        }
 
        if (!es)
@@ -591,7 +591,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
 
        case WM_CREATE:
                DPRINTF_EDIT_MSG("WM_CREATE");
-               result = EDIT_WM_Create(wnd, es, (LPCREATESTRUCTA)lParam);
+               result = EDIT_WM_Create(wnd, es, (LPCREATESTRUCT)lParam);
                break;
 
        case WM_CUT:
@@ -2720,7 +2720,7 @@ static void EDIT_WM_Copy(WND *wnd, EDITSTATE *es)
  *     WM_CREATE
  *
  */
-static LRESULT EDIT_WM_Create(WND *wnd, EDITSTATE *es, LPCREATESTRUCTA cs)
+static LRESULT EDIT_WM_Create(WND *wnd, EDITSTATE *es, LPCREATESTRUCT cs)
 {
        /*
         *      To initialize some final structure members, we call some helper
@@ -3231,7 +3231,7 @@ static LRESULT EDIT_WM_MouseMove(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT
  *     WM_NCCREATE
  *
  */
-static LRESULT EDIT_WM_NCCreate(WND *wnd, LPCREATESTRUCTA cs)
+static LRESULT EDIT_WM_NCCreate(WND *wnd, LPCREATESTRUCT cs)
 {
        EDITSTATE *es;
 
index 362132e..8cf3520 100644 (file)
@@ -2498,7 +2498,7 @@ LRESULT WINAPI ComboLBWndProc( HWND hwnd, UINT msg,
            switch( msg )
            {
                case WM_CREATE:
-#define lpcs   ((LPCREATESTRUCTA)lParam)
+#define lpcs   ((LPCREATESTRUCT)lParam)
                     DPRINT( "\tpassed parent handle = 0x%08x\n", 
                                  (UINT)lpcs->lpCreateParams);
 
index f0960d2..8a6fb71 100644 (file)
@@ -855,7 +855,7 @@ LRESULT STDCALL ScrollBarWndProc( HWND hwnd, UINT message, WPARAM wParam,
     {
     case WM_CREATE:
         {
-           CREATESTRUCTA *lpCreat = (CREATESTRUCTA *)lParam;
+           CREATESTRUCT *lpCreat = (CREATESTRUCT *)lParam;
             if (lpCreat->style & SBS_SIZEBOX)
             {
                 DPRINT( "FIXME Unimplemented style SBS_SIZEBOX.\n" );
index fcada1c..44f2e13 100644 (file)
@@ -32,15 +32,12 @@ BOOL WIN_CreateDesktopWindow(void)
 
     DPRINT("Creating desktop window\n");
 
-#if 0
-    if (!ICONTITLE_Init() ||
-       !WINPOS_CreateInternalPosAtom() ||
-       !(class = CLASS_FindClassByAtom( STRING2ATOM(DESKTOP_CLASS_NAME) , 0 )))
+
+    
+    class = CLASS_FindClassByAtom( STRING2ATOMW(DESKTOP_CLASS_NAME) , 0 );
+    if ( class == NULL )
        return FALSE;
-#else
-       WINPOS_CreateInternalPosAtom();
-       class = CLASS_FindClassByAtom( STRING2ATOMW(DESKTOP_CLASS_NAME) , 0 );
-#endif
+
     hwndDesktop = HeapAlloc(GetProcessHeap(),0, sizeof(WND)+class->cbWndExtra );
     if (!hwndDesktop) return FALSE;
     pWndDesktop = (WND *) ( hwndDesktop );
@@ -72,7 +69,7 @@ BOOL WIN_CreateDesktopWindow(void)
     pWndDesktop->dwStyle           = WS_VISIBLE | WS_CLIPCHILDREN |
                                      WS_CLIPSIBLINGS;
     pWndDesktop->dwExStyle         = 0;
-    pWndDesktop->dce               = NULL;
+    pWndDesktop->dce               = DCE_AllocDCE(pWndDesktop,DCE_WINDOW_DC);
     pWndDesktop->pVScroll          = NULL;
     pWndDesktop->pHScroll          = NULL;
     pWndDesktop->pProp             = NULL;
@@ -96,7 +93,7 @@ BOOL WIN_CreateDesktopWindow(void)
 
 HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
 {
-    HANDLE hWnd;
+
     WND *wndPtr;
     STARTUPINFO StartupInfo;
     CLASS *classPtr = NULL;
@@ -137,7 +134,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
     wndPtr->class       = classPtr;
     
     wndPtr->hwndSelf = wndPtr;
-    hWnd = wndPtr->hwndSelf;
+   
 
     /* Fill the window structure */
 
@@ -152,8 +149,8 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
     }
     else
     {
-        wndPtr->parent = pWndDesktop;
-        if (!cs->hwndParent || (cs->hwndParent == pWndDesktop->hwndSelf))
+        wndPtr->parent = WIN_GetDesktop();
+        if (!cs->hwndParent || (cs->hwndParent == WIN_GetDesktop()->hwndSelf))
             wndPtr->owner = NULL;
         else
         {
@@ -167,8 +164,8 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
 /*
     else
     {
-        wndPtr->parent = pWndDesktop;
-        if (!cs->hWndParent || (cs->hWndParent == pWndDesktop->hwndSelf))
+        wndPtr->parent = WIN_GetDesktop();
+        if (!cs->hWndParent || (cs->hWndParent == WIN_GetDesktop()->hwndSelf))
             wndPtr->owner = NULL;
         else
             wndPtr->owner = WIN_GetTopParentPtr(WIN_FindWndPtr(cs->hWndParent));
@@ -177,7 +174,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
     
     wndPtr->winproc        = classPtr->winproc;
     wndPtr->dwMagic        = WND_MAGIC;
-    //wndPtr->hwndSelf       = hWnd;
+
     wndPtr->hInstance      = cs->hInstance;
     wndPtr->text           = NULL;
     wndPtr->hmemTaskQ      = GetFastQueue();
@@ -193,7 +190,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
     wndPtr->pProp          = NULL;
     wndPtr->userdata       = 0;
     wndPtr->hSysMenu       = (wndPtr->dwStyle & WS_SYSMENU)
-                            ? MENU_GetSysMenu( hWnd, 0 ) : 0;
+                            ? MENU_GetSysMenu( wndPtr->hwndSelf, 0 ) : 0;
 
     if (classPtr->cbWndExtra) 
        HEAP_memset( wndPtr->wExtra, 0, classPtr->cbWndExtra);
@@ -210,7 +207,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
 
        cbtc.lpcs = cs;
        cbtc.hwndInsertAfter = hWndLinkAfter;
-        ret = HOOK_CallHooks(WH_CBT, HCBT_CREATEWND, (INT)hWnd, (LPARAM)&cbtc,  classPtr->bUnicode);
+        ret = HOOK_CallHooks(WH_CBT, HCBT_CREATEWND, (INT)wndPtr->hwndSelf, (LPARAM)&cbtc,  classPtr->bUnicode);
         if (ret)
        {
 
@@ -331,7 +328,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
     if ((wndPtr->dwStyle & (WS_CAPTION | WS_CHILD)) == WS_CAPTION )
     {
         if (cs->hMenu) 
-               SetMenu(hWnd, cs->hMenu);
+               SetMenu(wndPtr->hwndSelf, cs->hMenu);
         else
         {
             if (classPtr->menuName) {
@@ -364,9 +361,9 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
        
     /* Insert the window in the linked list */
 
-    WIN_LinkWindow( hWnd, hWndLinkAfter );
+    WIN_LinkWindow( wndPtr->hwndSelf, hWndLinkAfter );
 
-    WINPOS_SendNCCalcSize( hWnd, FALSE, &wndPtr->rectWindow,
+    WINPOS_SendNCCalcSize( wndPtr->hwndSelf, FALSE, &wndPtr->rectWindow,
                                NULL, NULL, 0, &wndPtr->rectClient );
     OffsetRect(&wndPtr->rectWindow, maxPos.x - wndPtr->rectWindow.left,
                                           maxPos.y - wndPtr->rectWindow.top);
@@ -374,7 +371,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
 
     if( (MSG_SendMessage( wndPtr, WM_CREATE, 0, (LPARAM)cs)) == -1 )
     {
-       WIN_UnlinkWindow( hWnd );
+       WIN_UnlinkWindow( wndPtr->hwndSelf );
        WIN_DestroyWindow( wndPtr );
        return NULL;
     }
@@ -405,7 +402,7 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
                 swFlag = ((wndPtr->dwStyle & WS_CHILD) || GetActiveWindow())
                     ? SWP_NOACTIVATE | SWP_NOZORDER | SWP_FRAMECHANGED
                     : SWP_NOZORDER | SWP_FRAMECHANGED;
-        SetWindowPos( hWnd, 0, newPos.left, newPos.top,
+        SetWindowPos( wndPtr->hwndSelf, 0, newPos.left, newPos.top,
                                 newPos.right, newPos.bottom, swFlag );
     }
 
@@ -414,19 +411,19 @@ HANDLE WIN_CreateWindowEx( CREATESTRUCT *cs, ATOM classAtom)
                /* Notify the parent window only */
 
                MSG_SendMessage( wndPtr->parent, WM_PARENTNOTIFY,
-                               MAKEWPARAM(WM_CREATE, wndPtr->wIDmenu), (LPARAM)hWnd );
-               if( !IsWindow(hWnd) ) return 0;
+                               MAKEWPARAM(WM_CREATE, wndPtr->wIDmenu), (LPARAM)wndPtr->hwndSelf );
+               if( !IsWindow(wndPtr->hwndSelf) ) return 0;
     }
 
     if (cs->style & WS_VISIBLE) 
-               ShowWindow( hWnd, SW_SHOW );
+               ShowWindow( wndPtr->hwndSelf, SW_SHOW );
 
             /* Call WH_SHELL hook */
 
     if (!(wndPtr->dwStyle & WS_CHILD) && !wndPtr->owner)
-                HOOK_CallHooks( WH_SHELL, HSHELL_WINDOWCREATED, (INT)hWnd, 0L,  classPtr->bUnicode);
+                HOOK_CallHooks( WH_SHELL, HSHELL_WINDOWCREATED, (INT)wndPtr->hwndSelf, 0L,  classPtr->bUnicode);
 
-    return hWnd;
+    return wndPtr->hwndSelf;
  
 
 }
@@ -445,14 +442,14 @@ WINBOOL WIN_IsWindow(HANDLE hWnd)
 HWND WIN_FindWinToRepaint( HWND hwnd, HQUEUE hQueue )
 {
     HWND hwndRet;
-    WND *pWnd = pWndDesktop;
+    WND *pWnd = WIN_GetDesktop();
 
     /* Note: the desktop window never gets WM_PAINT messages 
      * The real reason why is because Windows DesktopWndProc
      * does ValidateRgn inside WM_ERASEBKGND handler.
      */
 
-    pWnd = hwnd ? WIN_FindWndPtr( hwnd ) : pWndDesktop->child;
+    pWnd = hwnd ? WIN_FindWndPtr( hwnd ) : WIN_GetDesktop()->child;
 
     for ( ; pWnd ; pWnd = pWnd->next )
     {
index 1081c1d..3213c96 100644 (file)
@@ -41,7 +41,10 @@ HWND  WINPOS_GetActiveWindow(void)
 WINBOOL WINPOS_CreateInternalPosAtom()
 {
     LPSTR str = "SysIP";
-    atomInternalPos = (LPCSTR)(DWORD)GlobalAddAtomA(str);
+atomInternalPos ="SysIP";
+  //  atomInternalPos = (LPCSTR)(DWORD)GlobalAddAtomA(str);
+    //if ( atomInternalPos == NULL )
+//     atomInternalPos = (LPCSTR)(DWORD)GlobalFindAtom(str);
     return (atomInternalPos) ? TRUE : FALSE;
 }
 
index 03a40e3..00eaf3b 100644 (file)
@@ -27,6 +27,13 @@ DllMain(
                case DLL_PROCESS_ATTACH:
                        //WinStation = CreateWindowStationA(NULL,0,GENERIC_ALL,NULL);
                        //Desktop = CreateDesktopA(NULL,NULL,NULL,0,0,NULL);
+                       WINPOS_CreateInternalPosAtom();
+                       SYSCOLOR_Init();
+                       WIDGETS_Init();
+                       ICONTITLE_Init();
+                       DIALOG_Init();
+                       COMBO_Init();
+                       MENU_Init();
                        break;
                case DLL_THREAD_ATTACH:
                        break;
index a0cb579..64c7fa8 100644 (file)
@@ -10,9 +10,10 @@ int main(int argc, char **argv)
 {
        
 
-       
+       WINPOS_CreateInternalPosAtom();
        SYSCOLOR_Init();
         WIDGETS_Init();
+       ICONTITLE_Init();
        DIALOG_Init();
        COMBO_Init();
        MENU_Init();
index 5eadd16..2a55807 100644 (file)
@@ -6,8 +6,8 @@
 
 //#include <user32/heapdup.h>
 
-#define MDICREATESTRUCTA MDICREATESTRUCT
-#define MDICREATESTRUCTW MDICREATESTRUCT
+#define MDICREATESTRUCT MDICREATESTRUCT
+#define MDICREATESTRUCT MDICREATESTRUCT
 
 
 /**********************************************************************
@@ -124,7 +124,7 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam,
     {
     case WM_NCCREATE:
        {
-           CREATESTRUCTA *cs = (CREATESTRUCTA *)lParam;
+           CREATESTRUCT *cs = (CREATESTRUCT *)lParam;
            if (cs->lpszName) DEFWND_SetTextA( wndPtr, cs->lpszName );
            result = 1;
        }
@@ -191,7 +191,7 @@ LRESULT WINAPI DefWindowProcW( HWND hwnd, UINT msg, WPARAM wParam,
     {
     case WM_NCCREATE:
        {
-           CREATESTRUCTW *cs = (CREATESTRUCTW *)lParam;
+           CREATESTRUCT *cs = (CREATESTRUCT *)lParam;
            if (cs->lpszName) DEFWND_SetTextW( wndPtr, cs->lpszName );
            result = 1;
        }
@@ -303,10 +303,10 @@ INT WINPROC_MapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM *plparam
     case WM_NCCREATE:
     case WM_CREATE:
         {
-            CREATESTRUCTW *cs = (CREATESTRUCTW *)HeapAlloc( GetProcessHeap(), 0,
+            CREATESTRUCT *cs = (CREATESTRUCT *)HeapAlloc( GetProcessHeap(), 0,
                                                                 sizeof(*cs) );
             if (!cs) return -1;
-            *cs = *(CREATESTRUCTW *)*plparam;
+            *cs = *(CREATESTRUCT *)*plparam;
             if (HIWORD(cs->lpszName))
                 cs->lpszName = HEAP_strdupAtoW( GetProcessHeap(), 0,
                                                 (LPCSTR)cs->lpszName );
@@ -318,7 +318,7 @@ INT WINPROC_MapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM *plparam
         return 1;
     case WM_MDICREATE:
         {
-            MDICREATESTRUCTW *cs = HeapAlloc( GetProcessHeap(), 0, sizeof(MDICREATESTRUCT) );
+            MDICREATESTRUCT *cs = HeapAlloc( GetProcessHeap(), 0, sizeof(MDICREATESTRUCT) );
             if (!cs) return -1;
             *cs = *(MDICREATESTRUCT *)*plparam;
             if (HIWORD(cs->szClass))
@@ -410,7 +410,7 @@ void WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
     case WM_NCCREATE:
     case WM_CREATE:
         {
-            CREATESTRUCTW *cs = (CREATESTRUCTW *)lParam;
+            CREATESTRUCT *cs = (CREATESTRUCT *)lParam;
             if (HIWORD(cs->lpszName))
                 HeapFree( GetProcessHeap(), 0, (LPVOID)cs->lpszName );
             if (HIWORD(cs->lpszClass))
@@ -421,7 +421,7 @@ void WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
 
     case WM_MDICREATE:
         {
-            MDICREATESTRUCTW *cs = (MDICREATESTRUCTW *)lParam;
+            MDICREATESTRUCT *cs = (MDICREATESTRUCT *)lParam;
             if (HIWORD(cs->szTitle))
                 HeapFree( GetProcessHeap(), 0, (LPVOID)cs->szTitle );
             if (HIWORD(cs->szClass))
@@ -522,10 +522,10 @@ INT WINPROC_MapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM *plparam
     case WM_NCCREATE:
     case WM_CREATE:
         {
-            CREATESTRUCTA *cs = (CREATESTRUCTA *)HeapAlloc( GetProcessHeap(), 0,
+            CREATESTRUCT *cs = (CREATESTRUCT *)HeapAlloc( GetProcessHeap(), 0,
                                                                 sizeof(*cs) );
             if (!cs) return -1;
-            *cs = *(CREATESTRUCTA *)*plparam;
+            *cs = *(CREATESTRUCT *)*plparam;
             if (HIWORD(cs->lpszName))
                 cs->lpszName  = HEAP_strdupWtoA( GetProcessHeap(), 0,
                                                  (LPCWSTR)cs->lpszName );
@@ -537,10 +537,10 @@ INT WINPROC_MapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM *plparam
         return 1;
     case WM_MDICREATE:
         {
-            MDICREATESTRUCTA *cs =
-                (MDICREATESTRUCTA *)HeapAlloc( GetProcessHeap(), 0, sizeof(*cs) );
+            MDICREATESTRUCT *cs =
+                (MDICREATESTRUCT *)HeapAlloc( GetProcessHeap(), 0, sizeof(*cs) );
             if (!cs) return -1;
-            *cs = *(MDICREATESTRUCTA *)*plparam;
+            *cs = *(MDICREATESTRUCT *)*plparam;
             if (HIWORD(cs->szTitle))
                 cs->szTitle = HEAP_strdupWtoA( GetProcessHeap(), 0,
                                                (LPCWSTR)cs->szTitle );
@@ -643,7 +643,7 @@ void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
     case WM_NCCREATE:
     case WM_CREATE:
         {
-            CREATESTRUCTA *cs = (CREATESTRUCTA *)lParam;
+            CREATESTRUCT *cs = (CREATESTRUCT *)lParam;
             if (HIWORD(cs->lpszName))
                 HeapFree( GetProcessHeap(), 0, (LPVOID)cs->lpszName );
             if (HIWORD(cs->lpszClass))
@@ -654,7 +654,7 @@ void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
 
     case WM_MDICREATE:
         {
-            MDICREATESTRUCTA *cs = (MDICREATESTRUCTA *)lParam;
+            MDICREATESTRUCT *cs = (MDICREATESTRUCT *)lParam;
             if (HIWORD(cs->szTitle))
                 HeapFree( GetProcessHeap(), 0, (LPVOID)cs->szTitle );
             if (HIWORD(cs->szClass))