Index: trunk/src/user32/.cvsignore
===================================================================
--- trunk/src/user32/.cvsignore	(revision 1425)
+++ trunk/src/user32/.cvsignore	(revision 1425)
@@ -0,0 +1,4 @@
+user32.lrf
+user32exp.def
+resource.asm
+
Index: trunk/src/user32/Makefile
===================================================================
--- trunk/src/user32/Makefile	(revision 1424)
+++ trunk/src/user32/Makefile	(revision 1425)
@@ -1,3 +1,3 @@
-# $Id: Makefile,v 1.34 1999-10-23 10:21:43 sandervl Exp $
+# $Id: Makefile,v 1.35 1999-10-23 23:04:31 sandervl Exp $
 
 #
@@ -19,4 +19,6 @@
 CXXFLAGS = $(CXXFLAGS) -I$(PDWIN32_INCLUDE)
 
+RC = $(PDWIN32_TOOLS)\wrc
+RCFLAGS = -s -I. -I$(CPPMAIN)\include -I$(PDWIN32_INCLUDE) -I$(PDWIN32_INCLUDE)\win
 
 TARGET = user32
@@ -34,6 +36,6 @@
         oslibutil.obj oslibmsg.obj dib.obj oslibdos.obj win32wmdichild.obj \
         winprop.obj wingdi.obj oslibgdi.obj winaccel.obj win32wbasepos.obj \
-        nativerc.obj oslibres.obj dummy.obj oslibmenu.obj dc.obj timer.obj \
-        caret.obj \
+        oslibres.obj dummy.obj oslibmenu.obj dc.obj timer.obj \
+        caret.obj resource.obj \
         windlgmsg.obj windlg.obj win32wdesktop.obj
 
@@ -42,5 +44,5 @@
 
 
-$(TARGET).dll: $(OBJS) $(TARGET).def $(TARGET).res $(TARGET).lrf
+$(TARGET).dll: $(OBJS) $(TARGET).def $(TARGET).lrf
 !ifdef DEBUG
 #	icc -Si -Ti -Ge- -Ss+ -W3 -Gm+ /B"/noe /NOD /NOFREE" @$(TARGET).lrf
@@ -49,5 +51,4 @@
 	ilink /map  /noe /NOD /NoLogo /FREE @$(TARGET).lrf
 !endif
-        rc $(TARGET).res $(TARGET).dll
         $(CP) $@ $(PDWIN32_BIN)
 
@@ -65,7 +66,4 @@
 <<keep
 
-$(TARGET).res:
-        rc -r user32.rc user32.res
-
 $(TARGET).lib: $(TARGET)exp.def
         $(IMPLIB) $(IMPLIBFLAGS) $@ $(TARGET)exp.def
@@ -75,4 +73,9 @@
         $(IMPDEF) $** $@
 
+
+resource.asm: user32.rc 
+    $(RC) $(RCFLAGS) -o resource.asm user32.rc 
+
+resource.obj: resource.asm
 
 user32.obj: user32.cpp $(PDWIN32_INCLUDE)\wndproc.h \
@@ -88,5 +91,5 @@
 defwndproc.obj: defwndproc.cpp syscolor.h win32wmdiclient.h win32wbase.h win32wnd.h win32dlg.h
 hooks.obj: hooks.cpp hooks.h
-initterm.obj: initterm.cpp $(PDWIN32_INCLUDE)\spy.h pmwindow.h heapshared.h
+initterm.obj: initterm.cpp $(PDWIN32_INCLUDE)\spy.h pmwindow.h heapshared.h initterm.h
 uitools.obj: uitools.cpp win32wbase.h
 unknown.obj: unknown.cpp
@@ -96,12 +99,10 @@
 
 controls.obj: controls.cpp controls.h win32wmdiclient.h win32dlg.h win32wdesktop.h
-button.obj: button.cpp $(PDWIN32_INCLUDE)\win\button.h
-static.obj: static.cpp $(PDWIN32_INCLUDE)\win\static.h
+button.obj: button.cpp $(PDWIN32_INCLUDE)\win\button.h initterm.h
+static.obj: static.cpp $(PDWIN32_INCLUDE)\win\static.h initterm.h
 scroll.obj: scroll.cpp $(PDWIN32_INCLUDE)\win\scroll.h win32wbase.h oslibwin.h
 listbox.obj: listbox.cpp $(PDWIN32_INCLUDE)\win\combo.h
-combo.obj: combo.cpp $(PDWIN32_INCLUDE)\win\combo.h
+combo.obj: combo.cpp $(PDWIN32_INCLUDE)\win\combo.h initterm.h
 edit.obj: edit.cpp $(PDWIN32_INCLUDE)\win\combo.h
-
-nativerc.obj: nativerc.cpp
 
 msgbox.obj:    msgbox.cpp
Index: trunk/src/user32/USER32.DEF
===================================================================
--- trunk/src/user32/USER32.DEF	(revision 1424)
+++ trunk/src/user32/USER32.DEF	(revision 1425)
@@ -1,3 +1,3 @@
-; $Id: USER32.DEF,v 1.15 1999-10-22 18:11:41 sandervl Exp $
+; $Id: USER32.DEF,v 1.16 1999-10-23 23:04:32 sandervl Exp $
 
 ;Created by BLAST for IBM's compiler
@@ -628,6 +628,4 @@
 ; Wine helper function
     GetSysColorPen              = _GetSysColorPen@4              @2002
-; COMCTL32 helper functions
-    NativeLoadBitmap           = _NativeLoadBitmap@8         @2005
 
     Win32ToOS2Handle__FUl      = Win32ToOS2Handle__15Win32BaseWindowFUl @2006
Index: trunk/src/user32/button.cpp
===================================================================
--- trunk/src/user32/button.cpp	(revision 1424)
+++ trunk/src/user32/button.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: button.cpp,v 1.13 1999-10-20 06:38:08 sandervl Exp $ */
+/* $Id: button.cpp,v 1.14 1999-10-23 23:04:32 sandervl Exp $ */
 /* File: button.cpp -- Button type widgets
  *
@@ -17,4 +17,5 @@
 #include "button.h"
 #include <misc.h>
+#include "initterm.h"
 
 //Prototypes
@@ -128,10 +129,7 @@
   {
     BITMAP bmp;
-    HINSTANCE hinst;
-
-    //CB: Open32 hack to load our own bitmap
-    hinst = LoadLibraryA("USER32.DLL");
-    hbitmapCheckBoxes = NativeLoadBitmap(hinst,MAKEINTRESOURCEA(OBM_CHECKBOXES));
-    FreeLibrary(hinst);
+
+    hbitmapCheckBoxes = LoadBitmapA(hInstanceUser32, MAKEINTRESOURCEA(OBM_CHECKBOXES));
+    GetObjectA( hbitmapCheckBoxes, sizeof(bmp), &bmp );
     if (GetObjectA(hbitmapCheckBoxes,sizeof(bmp),&bmp))
     {
Index: trunk/src/user32/combo.cpp
===================================================================
--- trunk/src/user32/combo.cpp	(revision 1424)
+++ trunk/src/user32/combo.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: combo.cpp,v 1.8 1999-10-21 12:19:26 sandervl Exp $ */
+/* $Id: combo.cpp,v 1.9 1999-10-23 23:04:33 sandervl Exp $ */
 /*
  * Combo controls
@@ -15,4 +15,5 @@
 #include "controls.h"
 #include "combo.h"
+#include "initterm.h"
 
   /* bits in the dwKeyData */
@@ -60,10 +61,8 @@
   {
     BOOL      bRet = FALSE;
-    HINSTANCE hinst;
-
-    //CB: Open32 hack to load our own bitmap
-    hinst = LoadLibraryA("USER32.DLL");
-    hComboBmp = NativeLoadBitmap(0,MAKEINTRESOURCEA(OBM_COMBO));
-    FreeLibrary(hinst);
+
+//SvL: Combo bitmap is invalid
+    hComboBmp = LoadBitmapA(0, MAKEINTRESOURCEA(OBM_COMBO));
+//    hComboBmp = LoadBitmapA(hInstanceUser32, MAKEINTRESOURCEA(OBM_COMBO));
     if(hComboBmp)
     {
@@ -165,7 +164,4 @@
 {
   RECT windowRect;
-
-  //SvL: Doesn't work for us
-  return;
 
   GetWindowRect(CB_HWND(lphc), &windowRect);
@@ -1721,5 +1717,6 @@
        }
        ReleaseCapture();
-       SetCapture(lphc->hWndLBox);
+//SvL: Don't set the capture here. Otherwise other controls don't respond the first time!
+//       SetCapture(lphc->hWndLBox);
    }
 
Index: trunk/src/user32/edit.cpp
===================================================================
--- trunk/src/user32/edit.cpp	(revision 1424)
+++ trunk/src/user32/edit.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: edit.cpp,v 1.6 1999-10-20 06:38:09 sandervl Exp $ */
+/* $Id: edit.cpp,v 1.7 1999-10-23 23:04:33 sandervl Exp $ */
 /*
  *      Edit control
@@ -14,6 +14,4 @@
 /*
  *      please read EDIT.TODO (and update it when you change things)
-  CB:
-   - OS/2 menu not implemented (WM_CONTEXTMENU)
  */
 
@@ -2670,5 +2668,4 @@
 static void EDIT_WM_ContextMenu(HWND hwnd, EDITSTATE *es, HWND hwndBtn, INT x, INT y)
 {
-//CB: implement native menu!
         HMENU menu = LoadMenuA(GetModuleHandleA("USER32"), "EDITMENU");
         HMENU popup = GetSubMenu(menu, 0);
Index: trunk/src/user32/initterm.cpp
===================================================================
--- trunk/src/user32/initterm.cpp	(revision 1424)
+++ trunk/src/user32/initterm.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: initterm.cpp,v 1.12 1999-10-20 16:27:00 cbratschi Exp $ */
+/* $Id: initterm.cpp,v 1.13 1999-10-23 23:04:34 sandervl Exp $ */
 
 /*
@@ -41,4 +41,5 @@
 #include "win32wdesktop.h"
 #include "syscolor.h"
+#include "initterm.h"
 
 /*-------------------------------------------------------------------*/
@@ -54,6 +55,10 @@
 void CDECL _ctordtorInit( void );
 void CDECL _ctordtorTerm( void );
+
+ //Win32 resource table (produced by wrc)
+ extern DWORD _Resource_PEResTab;
 }
 
+DWORD hInstanceUser32 = 0;
 
 /****************************************************************************/
@@ -83,5 +88,6 @@
          CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
 
-         if(RegisterLxDll(hModule, 0, 0) == FALSE)
+	 hInstanceUser32 = RegisterLxDll(hModule, 0, (PVOID)&_Resource_PEResTab);
+         if(hInstanceUser32 == 0)
                 return 0UL;
 
Index: trunk/src/user32/initterm.h
===================================================================
--- trunk/src/user32/initterm.h	(revision 1425)
+++ trunk/src/user32/initterm.h	(revision 1425)
@@ -0,0 +1,17 @@
+/* $Id: initterm.h,v 1.1 1999-10-23 23:05:05 sandervl Exp $ */
+
+/*
+ * Win32 icon conversion functions for OS/2
+ *
+ * Copyright 1998 Sander van Leeuwen
+ *
+ *
+ * Project Odin Software License can be found in LICENSE.TXT
+ *
+ */
+#ifndef __INITTERM_H__
+#define __INITTERM_H__
+
+extern DWORD hInstanceUser32;
+
+#endif //__INITTERM_H__
Index: trunk/src/user32/loadres.cpp
===================================================================
--- trunk/src/user32/loadres.cpp	(revision 1424)
+++ trunk/src/user32/loadres.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: loadres.cpp,v 1.9 1999-10-14 19:31:29 sandervl Exp $ */
+/* $Id: loadres.cpp,v 1.10 1999-10-23 23:04:35 sandervl Exp $ */
 
 /*
@@ -34,4 +34,5 @@
     if(winres == NULL) {
         dprintf(("LoadStringA NOT FOUND from %X, id %d buffersize %d\n", hinst, wID, cchBuffer));
+        *lpBuffer = 0;
         return 0;
     }
@@ -61,4 +62,5 @@
     if(winres == NULL) {
         dprintf(("LoadStringW NOT FOUND from %X, id %d buffersize %d\n", hinst, wID, cchBuffer));
+        *lpBuffer = 0;
         return 0;
     }
@@ -328,5 +330,5 @@
         hBitmap = O32_LoadBitmap(hinst, lpszBitmap);
   }
-  else {
+  if(!hBitmap) {
         hBitmap = LoadBitmapA(hinst, lpszBitmap, 0, 0, 0);
   }
@@ -345,5 +347,5 @@
         hBitmap = O32_LoadBitmap(hinst, (LPCSTR)lpszBitmap);
   }
-  else {
+  if(!hBitmap) {
         if(HIWORD(lpszBitmap) != 0) {
                  lpszBitmap = (LPWSTR)UnicodeToAsciiString((LPWSTR)lpszBitmap);
@@ -368,5 +370,8 @@
  HANDLE hRet = 0;
 
-  dprintf(("LoadImageA NOT COMPLETE (%d,%d)\n", cxDesired, cyDesired));
+  if(HIWORD(lpszName)) {
+  	dprintf(("LoadImageA NOT COMPLETE %x %s %d (%d,%d)\n", hinst, lpszName, uType, cxDesired, cyDesired));
+  }
+  else 	dprintf(("LoadImageA NOT COMPLETE %x %x %d (%d,%d)\n", hinst, lpszName, uType, cxDesired, cyDesired));
 
   if (fuLoad & LR_DEFAULTSIZE) {
Index: trunk/src/user32/oslibwin.cpp
===================================================================
--- trunk/src/user32/oslibwin.cpp	(revision 1424)
+++ trunk/src/user32/oslibwin.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: oslibwin.cpp,v 1.34 1999-10-22 18:11:45 sandervl Exp $ */
+/* $Id: oslibwin.cpp,v 1.35 1999-10-23 23:04:35 sandervl Exp $ */
 /*
  * Window API wrappers for OS/2
@@ -512,12 +512,4 @@
     WinQueryWindowPos(hFrame, &swpFrame);
 
-    if ( fuFlags & SWP_NOADJUST) {
-        WinQueryWindowPos(WinWindowFromID(hFrame, FID_CLIENT), &swpClient);
-        x  = swpClient.x;
-        cx = swpClient.cx;
-        y  = swpClient.y;
-        cy = swpClient.cy;
-    }
-
     if(fuFlags & (SWP_MOVE | SWP_SIZE))
     {
@@ -709,4 +701,94 @@
          }
       }
+
+      if (flags & SWP_SIZE)
+      {
+         if (cy != pswpOld->cy)
+            flags |= SWP_MOVE;
+      }
+      else
+      {
+         cx = pswpOld->cx;
+         cy = pswpOld->cy;
+      }
+      y  = parentHeight - y - cy;
+
+
+       if ((pswpOld->x == x) && (pswpOld->y == y))
+         flags &= ~SWP_MOVE;
+
+      if ((pswpOld->cx == cx) && (pswpOld->cy == cy))
+         flags &= ~SWP_SIZE;
+   }
+
+   pswp->fl               = flags;
+   pswp->cy               = cy;
+   pswp->cx               = cx;
+   pswp->x                = x;
+   pswp->y                = y;
+   pswp->hwndInsertBehind = hWinAfter;
+   pswp->hwnd             = hWindow;
+   pswp->ulReserved1      = 0;
+   pswp->ulReserved2      = 0;
+}
+//******************************************************************************
+//Position in screen coordinates
+//******************************************************************************
+void OSLibMapWINDOWPOStoSWPFrame(PWINDOWPOS pwpos, PSWP pswp, PSWP pswpOld, HWND hParent, HWND hFrame)
+{
+ BOOL fCvt = FALSE;
+
+   HWND hWnd            = pwpos->hwnd;
+   HWND hWndInsertAfter = pwpos->hwndInsertAfter;
+   long x               = pwpos->x;
+   long y               = pwpos->y;
+   long cx              = pwpos->cx;
+   long cy              = pwpos->cy;
+   UINT fuFlags         = pwpos->flags;
+   ULONG parentHeight;
+   POINTL point;
+
+   HWND  hWinAfter;
+   ULONG flags = 0;
+   HWND  hWindow = hWnd ? (HWND)hWnd : HWND_DESKTOP;
+
+   if (hWndInsertAfter == HWND_TOPMOST_W)
+//      hWinAfter = HWND_TOPMOST;
+      hWinAfter = HWND_TOP;
+   else if (hWndInsertAfter == HWND_NOTOPMOST_W)
+//      hWinAfter = HWND_NOTOPMOST;
+      hWinAfter = HWND_TOP;
+   else if (hWndInsertAfter == HWND_TOP_W)
+      hWinAfter = HWND_TOP;
+   else if (hWndInsertAfter == HWND_BOTTOM_W)
+      hWinAfter = HWND_BOTTOM;
+   else
+      hWinAfter = (HWND) hWndInsertAfter;
+
+   if (!(fuFlags & SWP_NOSIZE_W    )) flags |= SWP_SIZE;
+   if (!(fuFlags & SWP_NOMOVE_W    )) flags |= SWP_MOVE;
+   if (!(fuFlags & SWP_NOZORDER_W  )) flags |= SWP_ZORDER;
+   if (  fuFlags & SWP_NOREDRAW_W  )  flags |= SWP_NOREDRAW;
+   if (!(fuFlags & SWP_NOACTIVATE_W)) flags |= SWP_ACTIVATE;
+   if (  fuFlags & SWP_SHOWWINDOW_W)  flags |= SWP_SHOW;
+   if (  fuFlags & SWP_HIDEWINDOW_W)  flags |= SWP_HIDE;
+   if (  fuFlags & SWP_NOSENDCHANGING_W) flags |= SWP_NOADJUST;
+
+   if (flags & (SWP_MOVE | SWP_SIZE))
+   {
+      point.x = x;
+      point.y = y;
+
+      if(hParent) {
+            parentHeight = OSLibGetWindowHeight(hParent);
+
+            point.y = ScreenHeight - point.y - cy;
+            WinMapWindowPoints(HWND_DESKTOP, hParent, &point, 1);
+            point.y = parentHeight - point.y - cy;
+      }
+      else  parentHeight = ScreenHeight;
+
+      x  = point.x;
+      y  = point.y;
 
       if (flags & SWP_SIZE)
Index: trunk/src/user32/oslibwin.h
===================================================================
--- trunk/src/user32/oslibwin.h	(revision 1424)
+++ trunk/src/user32/oslibwin.h	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: oslibwin.h,v 1.19 1999-10-22 18:11:46 sandervl Exp $ */
+/* $Id: oslibwin.h,v 1.20 1999-10-23 23:04:36 sandervl Exp $ */
 /*
  * Window API wrappers for OS/2
@@ -250,4 +250,5 @@
 void  OSLibMapSWPtoWINDOWPOSFrame(PSWP pswp, struct tagWINDOWPOS *pwpos, PSWP pswpOld, HWND hParent, HWND hFrame);
 void  OSLibMapWINDOWPOStoSWP(struct tagWINDOWPOS *pwpos, PSWP pswp, PSWP pswpOld, HWND hParent, HWND hFrame);
+void  OSLibMapWINDOWPOStoSWPFrame(PWINDOWPOS pwpos, PSWP pswp, PSWP pswpOld, HWND hParent, HWND hFrame);
 
 HWND  OSLibWinBeginEnumWindows(HWND hwnd);
Index: trunk/src/user32/pmframe.cpp
===================================================================
--- trunk/src/user32/pmframe.cpp	(revision 1424)
+++ trunk/src/user32/pmframe.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: pmframe.cpp,v 1.10 1999-10-23 10:21:43 sandervl Exp $ */
+/* $Id: pmframe.cpp,v 1.11 1999-10-23 23:04:36 sandervl Exp $ */
 /*
  * Win32 Frame Managment Code for OS/2
@@ -27,4 +27,6 @@
 #define PMFRAMELOG
 
+//******************************************************************************
+//******************************************************************************
 VOID Draw3DRect(HPS hps,RECTL rect,LONG colorBR,LONG colorTL)
 {
@@ -47,5 +49,6 @@
   GpiLine(hps,&point);
 }
-
+//******************************************************************************
+//******************************************************************************
 VOID DeflateRect(RECTL *rect)
 {
@@ -55,5 +58,6 @@
   rect->yBottom++;
 }
-
+//******************************************************************************
+//******************************************************************************
 VOID DrawFrame(HPS hps,RECTL *rect,Win32BaseWindow *win32wnd)
 {
@@ -73,5 +77,6 @@
     DeflateRect(rect);
     Draw3DRect(hps,*rect,clrLight,clrBlack);
-  } else if (dwExStyle & WS_EX_DLGMODALFRAME_W)
+  }
+  else if (dwExStyle & WS_EX_DLGMODALFRAME_W)
   {
     Draw3DRect(hps,*rect,clrBlack,clrLight);
@@ -80,8 +85,10 @@
     DeflateRect(rect);
     Draw3DRect(hps,*rect,clrLight,clrLight);
-  } else if (dwExStyle & WS_EX_STATICEDGE_W)
+  }
+  else if (dwExStyle & WS_EX_STATICEDGE_W)
   {
     Draw3DRect(hps,*rect,clrWhite,clrDark);
-  } else if (dwExStyle & WS_EX_WINDOWEDGE_W);
+  }
+  else if (dwExStyle & WS_EX_WINDOWEDGE_W);
   else if (dwStyle & WS_BORDER_W)
   {
@@ -91,5 +98,6 @@
   DeflateRect(rect);
 }
-
+//******************************************************************************
+//******************************************************************************
 BOOL CanDrawSizeBox(Win32BaseWindow *win32wnd)
 {
@@ -98,5 +106,6 @@
           && win32wnd->getHorzScrollHandle() && WinQueryWindow(win32wnd->getHorzScrollHandle(),QW_PARENT) == win32wnd->getOS2FrameWindowHandle());
 }
-
+//******************************************************************************
+//******************************************************************************
 VOID GetSizeBox(Win32BaseWindow *win32wnd,RECTL *rect)
 {
@@ -110,5 +119,6 @@
   rect->yBottom = swpHorz.y;
 }
-
+//******************************************************************************
+//******************************************************************************
 BOOL InSizeBox(Win32BaseWindow *win32wnd,POINTS *points)
 {
@@ -126,5 +136,6 @@
   return FALSE;
 }
-
+//******************************************************************************
+//******************************************************************************
 VOID DrawSizeBox(HPS hps,RECTL rect)
 {
@@ -156,5 +167,36 @@
   }
 }
-
+//******************************************************************************
+//******************************************************************************
+void DrawActivate(Win32BaseWindow *win32wnd, HWND hwnd)
+{
+    if (!win32wnd->isChild())
+    {
+        if (CanDrawSizeBox(win32wnd))
+        {
+          HPS hps;
+          RECTL rect;
+
+          GetSizeBox(win32wnd,&rect);
+          hps = WinGetClipPS(hwnd,0,PSF_CLIPCHILDREN | PSF_CLIPSIBLINGS);
+          DrawSizeBox(hps,rect);
+          WinReleasePS(hps);
+
+        }
+    }
+    else
+    {
+        HPS hps;
+        RECTL rect;
+
+        WinQueryWindowRect(hwnd,&rect);
+        rect.xRight = rect.xRight-rect.xLeft;
+        rect.yTop = rect.yTop-rect.yBottom;
+        rect.xLeft = rect.yBottom = 0;
+        hps = WinGetClipPS(hwnd,0,PSF_CLIPCHILDREN | PSF_CLIPSIBLINGS);
+        DrawFrame(hps,&rect,win32wnd);
+        WinReleasePS(hps);
+    }
+}
 //******************************************************************************
 //Win32 frame message handler
@@ -180,5 +222,5 @@
   switch(msg)
   {
-#if 0
+#if 1
     case WM_ADJUSTWINDOWPOS:
     {
@@ -186,13 +228,13 @@
       SWP      swpOld;
       WINDOWPOS wp;
-      ULONG     parentHeight = 0;
-      HWND      hParent = NULLHANDLE, hFrame = NULLHANDLE, hwndAfter;
-
-        dprintf(("PMFRAME: WM_ADJUSTWINDOWPOS %x %x %x (%d,%d) (%d,%d)", hwnd, pswp->hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
+      HWND      hParent = NULLHANDLE, hwndAfter;
+
+        dprintf(("PMFRAME: WM_ADJUSTWINDOWPOS %x %x %x (%d,%d) (%d,%d)", win32wnd->getWindowHandle(), pswp->hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
 
         if ((pswp->fl & (SWP_SIZE | SWP_MOVE | SWP_ZORDER)) == 0)
             goto RunDefFrameProc;
+
         if(!win32wnd->CanReceiveSizeMsgs()) {
-            goto RunDefFrameProc;
+            break;
         }
 
@@ -208,6 +250,5 @@
         }
         hwndAfter = pswp->hwndInsertBehind;
-        hFrame = win32wnd->getOS2FrameWindowHandle();
-        OSLibMapSWPtoWINDOWPOSFrame(pswp, &wp, &swpOld, hParent, hFrame);
+        OSLibMapSWPtoWINDOWPOSFrame(pswp, &wp, &swpOld, hParent, hwnd);
 
         wp.hwnd = win32wnd->getWindowHandle();
@@ -219,11 +260,11 @@
         if(win32wnd->MsgPosChanging((LPARAM)&wp) == 0)
         {//app or default window handler changed wp
-            dprintf(("OS2: WM_ADJUSTWINDOWPOS, app changed windowpos struct"));
+            dprintf(("PMFRAME: WM_ADJUSTWINDOWPOS, app changed windowpos struct"));
             dprintf(("%x (%d,%d), (%d,%d)", pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
-            OSLibMapWINDOWPOStoSWP(&wp, pswp, &swpOld, hParent, hFrame);
+            OSLibMapWINDOWPOStoSWPFrame(&wp, pswp, &swpOld, hParent, hwnd);
             dprintf(("%x (%d,%d), (%d,%d)", pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
             pswp->fl |= SWP_NOADJUST;
             pswp->hwndInsertBehind = hwndAfter;
-            pswp->hwnd = hFrame;
+            pswp->hwnd = hwnd;
 
             RestoreOS2TIB();
@@ -233,4 +274,148 @@
     }
 
+    case WM_WINDOWPOSCHANGED:
+    {
+      PSWP      pswp   = (PSWP)mp1;
+      SWP       swpOld = *(pswp + 1);
+      WINDOWPOS wp;
+      HWND      hParent = NULLHANDLE;
+      LONG      yDelta = pswp->cy - swpOld.cy;
+      LONG      xDelta = pswp->cx - swpOld.cx;
+
+        dprintf(("PMFRAME: WM_WINDOWPOSCHANGED (%x) %x %x (%d,%d) (%d,%d)", mp2, win32wnd->getWindowHandle(), pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
+
+        RestoreOS2TIB();
+        rc = OldFrameProc(hwnd,msg,mp1,mp2);
+        SetWin32TIB();
+
+        if ((pswp->fl & (SWP_SIZE | SWP_MOVE | SWP_ZORDER)) == 0)
+            goto PosChangedEnd;
+
+        if(!win32wnd->CanReceiveSizeMsgs())
+            goto PosChangedEnd;
+
+        if(pswp->fl & (SWP_MOVE | SWP_SIZE)) {
+            if (win32wnd->isChild()) {
+                if(win32wnd->getParent()) {
+                        hParent = win32wnd->getParent()->getOS2WindowHandle();
+                }
+                else    goto PosChangedEnd; //parent has just been destroyed
+            }
+        }
+        OSLibMapSWPtoWINDOWPOSFrame(pswp, &wp, &swpOld, hParent, hwnd);
+
+        //delta is difference between old and new client height
+        yDelta = swpOld.cy - win32wnd->getWindowHeight();
+
+        win32wnd->setWindowRect(wp.x, wp.y, wp.x+wp.cx, wp.y+wp.cy);
+        win32wnd->setClientRect(swpOld.x, swpOld.y, swpOld.x + swpOld.cx, swpOld.y + swpOld.cy);
+
+        wp.hwnd = win32wnd->getWindowHandle();
+        if ((pswp->fl & SWP_ZORDER) && (pswp->hwndInsertBehind > HWND_BOTTOM))
+        {
+           Win32BaseWindow *wndAfter = Win32BaseWindow::GetWindowFromOS2Handle(pswp->hwndInsertBehind);
+           if(wndAfter) wp.hwndInsertAfter = wndAfter->getWindowHandle();
+        }
+
+        if (yDelta != 0 || xDelta != 0)
+        {
+            HENUM henum = WinBeginEnumWindows(WinWindowFromID(pswp->hwnd, FID_CLIENT));
+            SWP swp[10];
+            int i = 0;
+            HWND hwnd;
+
+            while ((hwnd = WinGetNextWindow(henum)) != NULLHANDLE)
+            {
+#if 0
+                if (mdiClient )
+                {
+                  continue;
+                }
+#endif
+                WinQueryWindowPos(hwnd, &(swp[i]));
+
+#ifdef DEBUG
+                Win32BaseWindow *window = Win32BaseWindow::GetWindowFromOS2Handle(hwnd);
+                dprintf(("ENUMERATE %x delta %d (%d,%d) (%d,%d) %x", (window) ? window->getWindowHandle() : hwnd,
+                         yDelta, swp[i].x, swp[i].y, swp[i].cx, swp[i].cy, swp[i].fl));
+#endif
+
+                if(swp[i].y != 0) {
+                    //child window at offset <> 0 from client area -> offset now changes
+                    swp[i].y  += yDelta;
+                    swp[i].fl &= ~(SWP_NOREDRAW);
+                }
+                //else child window with the same start coorindates as the client area
+                //The app should resize it.
+
+               if (i == 9)
+                {
+                    WinSetMultWindowPos(GetThreadHAB(), swp, 10);
+                    i = 0;
+                }
+                else
+                {
+                    i++;
+                }
+            }
+
+            WinEndEnumWindows(henum);
+
+            if (i)
+               WinSetMultWindowPos(GetThreadHAB(), swp, i);
+        }
+        if (yDelta != 0)
+        {
+            POINT pt;
+            if(GetCaretPos (&pt) == TRUE)
+            {
+                pt.y -= yDelta;
+                SetCaretPos (pt.x, pt.y);
+            }
+        }
+        win32wnd->MsgPosChanged((LPARAM)&wp);
+
+PosChangedEnd:
+        return rc;
+    }
+#if 0
+    case WM_ENABLE:
+        dprintf(("PMFRAME: WM_ENABLE %x", win32wnd->getWindowHandle()));
+        win32wnd->MsgEnable(SHORT1FROMMP(mp1));
+        goto RunDefFrameProc;
+
+    case WM_SHOW:
+        dprintf(("PMFRAME: WM_SHOW %x %d", win32wnd->getWindowHandle(), mp1));
+        win32wnd->MsgShow((ULONG)mp1);
+        goto RunDefFrameProc;
+
+    case WM_ACTIVATE:
+    {
+      HWND hwndActivate = (HWND)mp2;
+      BOOL fMinimized = FALSE;
+
+        dprintf(("PMFRAME: WM_ACTIVATE %x %x", hwnd, hwndActivate));
+        if(WinQueryWindowULong(hwndActivate, OFFSET_WIN32PM_MAGIC) != WIN32PM_MAGIC) {
+                //another (non-win32) application's window
+                //set to NULL (allowed according to win32 SDK) to avoid problems
+                hwndActivate = NULL;
+        }
+        if(WinQueryWindowULong(hwnd, QWL_STYLE) & WS_MINIMIZED)
+        {
+           fMinimized = TRUE;
+        }
+
+        win32wnd->MsgActivate(SHORT1FROMMP(mp1), fMinimized, Win32BaseWindow::OS2ToWin32Handle(hwndActivate));
+
+        RestoreOS2TIB();
+        MRESULT rc = OldFrameProc(hwnd,msg,mp1,mp2);
+        DrawActivate(win32wnd, hwnd);
+        return rc;
+    }
+#else
+    case WM_ACTIVATE:
+        DrawActivate(win32wnd, hwnd);
+        goto RunDefFrameProc;
+#endif
 #else
     case WM_ADJUSTWINDOWPOS:
@@ -242,4 +427,12 @@
       if(wndchild && wndchild->isChild())
       {
+#if 0
+       SWP swp = *pswp;
+
+        MRESULT rc = OldFrameProc(hwnd, msg, mp1, mp2);
+        pswp->x = swp.x;
+        pswp->y = swp.y;
+        pswp->fl = swp.fl;
+#endif
         dprintf(("PMFRAME: WM_ADJUSTWINDOWPOS %x %x %x (%d,%d) (%d,%d)", hwnd, pswp->hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
         RestoreOS2TIB();
@@ -249,4 +442,7 @@
     }
 
+    case WM_ACTIVATE:
+        DrawActivate(win32wnd, hwnd);
+        goto RunDefFrameProc;
 #endif
 
@@ -265,5 +461,6 @@
         RestoreOS2TIB();
         return (MRESULT)TRUE;
-      } else if (win32wnd->isChild()) goto RunDefWndProc;
+      }
+      else if (win32wnd->isChild()) goto RunDefWndProc;
       else goto RunDefFrameProc;
 
@@ -277,5 +474,6 @@
         RestoreOS2TIB();
         return (MRESULT)TRUE;
-      } else if (win32wnd->isChild()) goto RunDefWndProc;
+      }
+      else if (win32wnd->isChild()) goto RunDefWndProc;
       else goto RunDefFrameProc;
 
@@ -288,7 +486,7 @@
       else goto RunDefFrameProc;
 
-    case WM_ACTIVATE:
+    case WM_PAINT:
       #ifdef PMFRAMELOG
-       dprintf(("PMFRAME: WM_ACTIVATE"));
+       dprintf(("PMFRAME: WM_PAINT"));
       #endif
       if (!win32wnd->isChild())
@@ -311,13 +509,14 @@
           RestoreOS2TIB();
           return res;
-        } else goto RunDefFrameProc;
-      } else
+        }
+        else goto RunDefFrameProc;
+      }
+      else
       {
-        MRESULT res;
+        RECTL rect;
         HPS hps;
-        RECTL rect;
-
-        RestoreOS2TIB();
-        res = OldFrameProc(hwnd,msg,mp1,mp2);
+
+        RestoreOS2TIB();
+        OldFrameProc(hwnd,msg,mp1,mp2);
         SetWin32TIB();
 
@@ -331,49 +530,4 @@
 
         RestoreOS2TIB();
-        return res;
-      }
-
-    case WM_PAINT:
-      #ifdef PMFRAMELOG
-       dprintf(("PMFRAME: WM_PAINT"));
-      #endif
-      if (!win32wnd->isChild())
-      {
-        if (CanDrawSizeBox(win32wnd))
-        {
-          MRESULT res;
-          HPS hps;
-          RECTL rect;
-
-          RestoreOS2TIB();
-          res = OldFrameProc(hwnd,msg,mp1,mp2);
-          SetWin32TIB();
-
-          GetSizeBox(win32wnd,&rect);
-          hps = WinGetClipPS(hwnd,0,PSF_CLIPCHILDREN | PSF_CLIPSIBLINGS);
-          DrawSizeBox(hps,rect);
-          WinReleasePS(hps);
-
-          RestoreOS2TIB();
-          return res;
-        } else goto RunDefFrameProc;
-      } else
-      {
-        RECTL rect;
-        HPS hps;
-
-        RestoreOS2TIB();
-        OldFrameProc(hwnd,msg,mp1,mp2);
-        SetWin32TIB();
-
-        WinQueryWindowRect(hwnd,&rect);
-        rect.xRight = rect.xRight-rect.xLeft;
-        rect.yTop = rect.yTop-rect.yBottom;
-        rect.xLeft = rect.yBottom = 0;
-        hps = WinGetClipPS(hwnd,0,PSF_CLIPCHILDREN | PSF_CLIPSIBLINGS);
-        DrawFrame(hps,&rect,win32wnd);
-        WinReleasePS(hps);
-
-        RestoreOS2TIB();
         return (MRESULT)0;
       }
Index: trunk/src/user32/pmwindow.cpp
===================================================================
--- trunk/src/user32/pmwindow.cpp	(revision 1424)
+++ trunk/src/user32/pmwindow.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: pmwindow.cpp,v 1.42 1999-10-23 16:45:20 cbratschi Exp $ */
+/* $Id: pmwindow.cpp,v 1.43 1999-10-23 23:04:37 sandervl Exp $ */
 /*
  * Win32 Window Managment Code for OS/2
@@ -29,8 +29,8 @@
 #include "oslibmsg.h"
 #include "dc.h"
-#include "timer.h"
 #include <thread.h>
 #include <wprocess.h>
-#include <caret.h>
+#include "caret.h"
+#include "timer.h"
 
 HMQ  hmq = 0;                             /* Message queue handle         */
@@ -248,9 +248,9 @@
         break;
 
-#if 1
+#if 0
     case WM_ADJUSTWINDOWPOS:
     {
       PSWP     pswp = (PSWP)mp1;
-      SWP      swpOld;
+      SWP      swpOld, swpNew;
       WINDOWPOS wp;
       ULONG     parentHeight = 0;
@@ -291,16 +291,15 @@
             dprintf(("OS2: WM_ADJUSTWINDOWPOS, app changed windowpos struct"));
             dprintf(("%x (%d,%d), (%d,%d)", pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
-            OSLibMapWINDOWPOStoSWP(&wp, pswp, &swpOld, hParent, hFrame);
-            dprintf(("%x (%d,%d), (%d,%d)", pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy));
-            pswp->fl |= SWP_NOADJUST;
-            pswp->hwndInsertBehind = hwndAfter;
-            pswp->hwnd = hFrame;
-
-            WinSetMultWindowPos(GetThreadHAB(), pswp, 1);
+            OSLibMapWINDOWPOStoSWP(&wp, &swpNew, &swpOld, hParent, hFrame);
+            dprintf(("%x (%d,%d), (%d,%d)", swpNew.fl, swpNew.x, swpNew.y, swpNew.cx, swpNew.cy));
+            swpNew.fl |= SWP_NOADJUST;
+            swpNew.hwndInsertBehind = hwndAfter;
+            swpNew.hwnd = hFrame;
+
+            WinSetMultWindowPos(GetThreadHAB(), &swpNew, 1);
             return (MRESULT)0;
         }
         break;
     }
-#endif
 
     case WM_WINDOWPOSCHANGED:
@@ -316,5 +315,4 @@
 
         if ((pswp->fl & (SWP_SIZE | SWP_MOVE | SWP_ZORDER)) == 0) break;
-        if (!win32wnd->CanReceiveSizeMsgs())    break;
 
         if(pswp->fl & (SWP_MOVE | SWP_SIZE)) {
@@ -326,5 +324,7 @@
             }
         }
-        OSLibMapSWPtoWINDOWPOS(pswp, &wp, &swpOld, hParent, hwnd);
+        OSLibMapSWPtoWINDOWPOS(pswp, &wp, &swpOld, hParent, win32wnd->getOS2FrameWindowHandle());
+
+        if (!win32wnd->CanReceiveSizeMsgs())    break;
 
         win32wnd->setWindowRect(wp.x, wp.y, wp.x+wp.cx, wp.y+wp.cy);
@@ -398,22 +398,5 @@
         goto RunDefWndProc;
     }
-
-    case WM_SIZE:
-    {
-        dprintf(("OS2: WM_SIZE (%d,%d) (%d,%d)", SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), SHORT1FROMMP(mp1), SHORT2FROMMP(mp2)));
-        break;
-    }
-
-    case WM_OWNERPOSCHANGE:
-    {
-        dprintf(("OS2: WM_OWNERPOSCHANGE"));
-        goto RunDefWndProc;
-    }
-
-    case WM_CALCVALIDRECTS:
-    {
-        dprintf(("OS2: WM_CALCVALIDRECTS"));
-        goto RunDefWndProc;
-    }
+#endif
 
     case WM_ACTIVATE:
@@ -438,4 +421,23 @@
         break;
     }
+
+    case WM_SIZE:
+    {
+        dprintf(("OS2: WM_SIZE (%d,%d) (%d,%d)", SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), SHORT1FROMMP(mp1), SHORT2FROMMP(mp2)));
+        break;
+    }
+
+    case WM_OWNERPOSCHANGE:
+    {
+        dprintf(("OS2: WM_OWNERPOSCHANGE"));
+        goto RunDefWndProc;
+    }
+
+    case WM_CALCVALIDRECTS:
+    {
+        dprintf(("OS2: WM_CALCVALIDRECTS"));
+        goto RunDefWndProc;
+    }
+
     case WM_FOCUSCHANGE:
         dprintf(("OS2: WM_FOCUSCHANGE %x", hwnd));
Index: trunk/src/user32/scroll.cpp
===================================================================
--- trunk/src/user32/scroll.cpp	(revision 1424)
+++ trunk/src/user32/scroll.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: scroll.cpp,v 1.13 1999-10-23 16:45:21 cbratschi Exp $ */
+/* $Id: scroll.cpp,v 1.14 1999-10-23 23:04:38 sandervl Exp $ */
 /*
  * Scrollbar control
@@ -17,4 +17,5 @@
 #include "win32wbase.h"
 #include "oslibwin.h"
+#include "initterm.h"
 
 static BOOL bitmapsLoaded = FALSE;
@@ -104,23 +105,18 @@
 static void SCROLL_LoadBitmaps(void)
 {
-    HINSTANCE hinst;
-
     if (bitmapsLoaded) return;
 
-    //CB: Open32 hack to load our own bitmap
-    hinst = LoadLibraryA("USER32.DLL");
-    hUpArrow  = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_UPARROW) );
-    hDnArrow  = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_DNARROW) );
-    hLfArrow  = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_LFARROW) );
-    hRgArrow  = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_RGARROW) );
-    hUpArrowD = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_UPARROWD) );
-    hDnArrowD = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_DNARROWD) );
-    hLfArrowD = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_LFARROWD) );
-    hRgArrowD = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_RGARROWD) );
-    hUpArrowI = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_UPARROWI) );
-    hDnArrowI = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_DNARROWI) );
-    hLfArrowI = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_LFARROWI) );
-    hRgArrowI = NativeLoadBitmap( hinst, MAKEINTRESOURCEA(OBM_RGARROWI) );
-    FreeLibrary(hinst);
+    hUpArrow  = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_UPARROW) );
+    hDnArrow  = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_DNARROW) );
+    hLfArrow  = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_LFARROW) );
+    hRgArrow  = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_RGARROW) );
+    hUpArrowD = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_UPARROWD) );
+    hDnArrowD = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_DNARROWD) );
+    hLfArrowD = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_LFARROWD) );
+    hRgArrowD = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_RGARROWD) );
+    hUpArrowI = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_UPARROWI) );
+    hDnArrowI = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_DNARROWI) );
+    hLfArrowI = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_LFARROWI) );
+    hRgArrowI = LoadBitmapA( hInstanceUser32, MAKEINTRESOURCEA(OBM_RGARROWI) );
 
     bitmapsLoaded = TRUE;
Index: trunk/src/user32/user32.rc
===================================================================
--- trunk/src/user32/user32.rc	(revision 1424)
+++ trunk/src/user32/user32.rc	(revision 1425)
@@ -1,10 +1,40 @@
-/* $Id: user32.rc,v 1.1 1999-09-15 23:19:37 sandervl Exp $ */
+/* $Id: user32.rc,v 1.2 1999-10-23 23:04:38 sandervl Exp $ */
 /* converted from WINE */
 
+#include "winuser.h"
+#include "odinrsrc.h"
+
 /* Button */
 
 #define OBM_CHECKBOXES      32759
 
-BITMAP OBM_CHECKBOXES "checkboxes.bmp"
+OBM_CHECKBOXES BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 56 00 00 00 40 00'
+'00 00 38 00 00 00 27 00 00 00 01 00 01 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF'
+'FF 00 00 00 00 00 00 03 FF E0 00 3F FE 00 00 02'
+'AA A0 00 3F FE 00 00 03 55 60 00 35 56 00 00 02'
+'AA A0 00 3A AE 00 00 03 55 60 00 35 56 00 00 02'
+'AA A0 00 3A AE 00 00 03 55 60 00 35 56 00 00 02'
+'AA A0 00 3A AE 00 00 03 55 60 00 35 56 00 00 02'
+'AA A0 00 3A AE 00 00 03 55 60 00 35 56 00 00 02'
+'AA A0 00 3F FE 00 00 03 FF E0 00 3F FE 00 07 00'
+'1C 00 70 01 C0 00 18 C0 63 01 FC 07 F0 00 20 20'
+'80 83 8E 0E 38 00 40 11 1C 46 03 1D DC 00 40 11'
+'3E 46 03 1B EC 00 80 0A 7F 2C 01 B7 F6 00 80 0A'
+'7F 2C 01 B7 F6 00 80 0A 7F 2C 01 B7 F6 00 40 11'
+'3E 46 03 1B EC 00 40 11 1C 46 03 1D DC 00 20 20'
+'80 83 8E 0E 38 00 18 C0 63 01 FC 07 F0 00 07 00'
+'1C 00 70 01 C0 00 FF FB FF EF FF BF FE 00 80 0B'
+'00 6F FF BF FE 00 80 0A 80 AC 01 B8 0E 00 80 0A'
+'41 2C 01 B4 16 00 80 0A 22 2C 01 B2 26 00 80 0A'
+'14 2C 01 B1 46 00 80 0A 08 2C 01 B0 86 00 80 0A'
+'14 2C 01 B1 46 00 80 0A 22 2C 01 B2 26 00 80 0A'
+'41 2C 01 B4 16 00 80 0A 80 AC 01 B8 0E 00 80 0B'
+'00 6F FF BF FE 00 FF FB FF EF FF BF FE 00'
+}
 
 /* Scroll */
@@ -15,8 +45,107 @@
 #define OBM_UPARROWI        32737
 
-BITMAP OBM_LFARROWI "lfarrowi.bmp"
-BITMAP OBM_RGARROWI "rgarrowi.bmp"
-BITMAP OBM_DNARROWI "dnarrowi.bmp"
-BITMAP OBM_UPARROWI "uparrowi.bmp"
+OBM_LFARROWI BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 7F 7F 7F 00 00 00 00 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00 21 11 11 11 11 11'
+'11 11 20 00 00 00 23 11 11 11 11 11 11 11 20 00'
+'00 00 23 00 00 00 00 00 00 11 20 00 00 00 23 00'
+'00 00 03 00 00 11 20 00 00 00 23 00 00 00 13 00'
+'00 11 20 00 00 00 23 00 00 01 10 33 30 11 20 00'
+'00 00 23 00 00 11 11 11 30 11 20 00 00 00 23 00'
+'01 11 11 11 30 11 20 00 00 00 23 00 00 11 11 11'
+'00 11 20 00 00 00 23 00 00 01 13 00 00 11 20 00'
+'00 00 23 00 00 00 13 00 00 11 20 00 00 00 23 00'
+'00 00 00 00 00 11 20 00 00 00 23 00 00 00 00 00'
+'00 11 20 00 00 00 23 00 00 00 00 00 00 11 20 00'
+'00 00 23 33 33 33 33 33 33 31 20 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00'
+}
+
+OBM_RGARROWI BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 7F 7F 7F 00 00 00 00 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00 21 11 11 11 11 11'
+'11 11 20 00 00 00 23 11 11 11 11 11 11 11 20 00'
+'00 00 23 00 00 00 00 00 00 11 20 00 00 00 23 00'
+'00 00 03 00 00 11 20 00 00 00 23 00 00 00 13 30'
+'00 11 20 00 00 00 23 00 00 33 11 33 00 11 20 00'
+'00 00 23 00 01 11 11 13 30 11 20 00 00 00 23 00'
+'01 11 11 11 00 11 20 00 00 00 23 00 01 11 11 10'
+'00 11 20 00 00 00 23 00 00 00 11 00 00 11 20 00'
+'00 00 23 00 00 00 10 00 00 11 20 00 00 00 23 00'
+'00 00 00 00 00 11 20 00 00 00 23 00 00 00 00 00'
+'00 11 20 00 00 00 23 00 00 00 00 00 00 11 20 00'
+'00 00 23 33 33 33 33 33 33 31 20 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00'
+}
+
+OBM_DNARROWI BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 7F 7F 7F 00 00 00 00 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00 21 11 11 11 11 11'
+'11 11 20 00 00 00 23 11 11 11 11 11 11 11 20 00'
+'00 00 23 00 00 00 00 00 00 11 20 00 00 00 23 00'
+'00 00 03 00 00 11 20 00 00 00 23 00 00 00 13 30'
+'00 11 20 00 00 00 23 00 00 01 11 33 00 11 20 00'
+'00 00 23 00 00 11 11 13 30 11 20 00 00 00 23 00'
+'01 11 11 11 00 11 20 00 00 00 23 00 00 01 11 30'
+'00 11 20 00 00 00 23 00 00 01 11 30 00 11 20 00'
+'00 00 23 00 00 01 11 00 00 11 20 00 00 00 23 00'
+'00 00 00 00 00 11 20 00 00 00 23 00 00 00 00 00'
+'00 11 20 00 00 00 23 00 00 00 00 00 00 11 20 00'
+'00 00 23 33 33 33 33 33 33 31 20 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00'
+}
+
+OBM_UPARROWI BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 7F 7F 7F 00 00 00 00 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00 21 11 11 11 11 11'
+'11 11 20 00 00 00 23 11 11 11 11 11 11 11 20 00'
+'00 00 23 00 00 00 00 00 00 11 20 00 00 00 23 00'
+'00 00 33 30 00 11 20 00 00 00 23 00 00 01 11 30'
+'00 11 20 00 00 00 23 00 00 01 11 30 00 11 20 00'
+'00 00 23 00 03 31 11 03 30 11 20 00 00 00 23 00'
+'01 11 11 11 00 11 20 00 00 00 23 00 00 11 11 10'
+'00 11 20 00 00 00 23 00 00 01 11 00 00 11 20 00'
+'00 00 23 00 00 00 10 00 00 11 20 00 00 00 23 00'
+'00 00 00 00 00 11 20 00 00 00 23 00 00 00 00 00'
+'00 11 20 00 00 00 23 00 00 00 00 00 00 11 20 00'
+'00 00 23 33 33 33 33 33 33 31 20 00 00 00 22 22'
+'22 22 22 22 22 22 20 00 00 00'
+}
 
 #define OBM_LFARROWD        32740
@@ -25,8 +154,107 @@
 #define OBM_UPARROWD        32743
 
-BITMAP OBM_LFARROWD "lfarrowd.bmp"
-BITMAP OBM_RGARROWD "rgarrowd.bmp"
-BITMAP OBM_DNARROWD "dnarrowd.bmp"
-BITMAP OBM_UPARROWD "uparrowd.bmp"
+OBM_LFARROWD BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 01 00 00 00 10 00 00 00 12 00 00 00 11 00'
+'00 00 10 00 00 00 12 00 00 01 11 11 10 00 10 00'
+'00 00 12 00 00 11 11 11 10 00 10 00 00 00 12 00'
+'00 01 11 11 10 00 10 00 00 00 12 00 00 00 11 00'
+'00 00 10 00 00 00 12 00 00 00 01 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 00 00 00 00 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 22 22 22 22 22 22 22 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
+
+OBM_RGARROWD BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 01 00 00 00 10 00 00 00 12 00 00 00 01 10'
+'00 00 10 00 00 00 12 00 00 11 11 11 00 00 10 00'
+'00 00 12 00 00 11 11 11 10 00 10 00 00 00 12 00'
+'00 11 11 11 00 00 10 00 00 00 12 00 00 00 01 10'
+'00 00 10 00 00 00 12 00 00 00 01 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 00 00 00 00 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 22 22 22 22 22 22 22 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
+
+OBM_DNARROWD BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 01 00 00 00 10 00 00 00 12 00 00 00 11 10'
+'00 00 10 00 00 00 12 00 00 01 11 11 00 00 10 00'
+'00 00 12 00 00 11 11 11 10 00 10 00 00 00 12 00'
+'00 00 11 10 00 00 10 00 00 00 12 00 00 00 11 10'
+'00 00 10 00 00 00 12 00 00 00 11 10 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 00 00 00 00 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 22 22 22 22 22 22 22 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
+
+OBM_UPARROWD BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 11 10 00 00 10 00 00 00 12 00 00 00 11 10'
+'00 00 10 00 00 00 12 00 00 00 11 10 00 00 10 00'
+'00 00 12 00 00 11 11 11 10 00 10 00 00 00 12 00'
+'00 01 11 11 00 00 10 00 00 00 12 00 00 00 11 10'
+'00 00 10 00 00 00 12 00 00 00 01 00 00 00 10 00'
+'00 00 12 00 00 00 00 00 00 00 10 00 00 00 12 00'
+'00 00 00 00 00 00 10 00 00 00 12 00 00 00 00 00'
+'00 00 10 00 00 00 12 00 00 00 00 00 00 00 10 00'
+'00 00 12 22 22 22 22 22 22 22 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
 
 #define OBM_LFARROW         32750
@@ -35,8 +263,107 @@
 #define OBM_UPARROW         32753
 
-BITMAP OBM_LFARROW "lfarrow.bmp"
-BITMAP OBM_RGARROW "rgarrow.bmp"
-BITMAP OBM_DNARROW "dnarrow.bmp"
-BITMAP OBM_UPARROW "uparrow.bmp"
+OBM_LFARROW BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 22 22 22 22 22'
+'22 22 10 00 00 00 13 22 22 22 22 22 22 22 10 00'
+'00 00 13 00 00 00 00 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 10 00'
+'00 22 10 00 00 00 13 00 00 01 10 00 00 22 10 00'
+'00 00 13 00 00 11 11 11 00 22 10 00 00 00 13 00'
+'01 11 11 11 00 22 10 00 00 00 13 00 00 11 11 11'
+'00 22 10 00 00 00 13 00 00 01 10 00 00 22 10 00'
+'00 00 13 00 00 00 10 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 00 00'
+'00 22 10 00 00 00 13 00 00 00 00 00 00 22 10 00'
+'00 00 13 33 33 33 33 33 33 32 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
+
+OBM_RGARROW BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 22 22 22 22 22'
+'22 22 10 00 00 00 13 22 22 22 22 22 22 22 10 00'
+'00 00 13 00 00 00 00 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 10 00'
+'00 22 10 00 00 00 13 00 00 00 11 00 00 22 10 00'
+'00 00 13 00 01 11 11 10 00 22 10 00 00 00 13 00'
+'01 11 11 11 00 22 10 00 00 00 13 00 01 11 11 10'
+'00 22 10 00 00 00 13 00 00 00 11 00 00 22 10 00'
+'00 00 13 00 00 00 10 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 00 00'
+'00 22 10 00 00 00 13 00 00 00 00 00 00 22 10 00'
+'00 00 13 33 33 33 33 33 33 32 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
+
+OBM_DNARROW BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 22 22 22 22 22'
+'22 22 10 00 00 00 13 22 22 22 22 22 22 22 10 00'
+'00 00 13 00 00 00 00 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 10 00'
+'00 22 10 00 00 00 13 00 00 01 11 00 00 22 10 00'
+'00 00 13 00 00 11 11 10 00 22 10 00 00 00 13 00'
+'01 11 11 11 00 22 10 00 00 00 13 00 00 01 11 00'
+'00 22 10 00 00 00 13 00 00 01 11 00 00 22 10 00'
+'00 00 13 00 00 01 11 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 00 00'
+'00 22 10 00 00 00 13 00 00 00 00 00 00 22 10 00'
+'00 00 13 33 33 33 33 33 33 32 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
+
+OBM_UPARROW BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 8E 00 00 00 40 00'
+'00 00 11 00 00 00 11 00 00 00 01 00 04 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 BF BF'
+'BF 00 00 00 00 00 7F 7F 7F 00 FF FF FF 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00 12 22 22 22 22 22'
+'22 22 10 00 00 00 13 22 22 22 22 22 22 22 10 00'
+'00 00 13 00 00 00 00 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 01 11 00'
+'00 22 10 00 00 00 13 00 00 01 11 00 00 22 10 00'
+'00 00 13 00 00 01 11 00 00 22 10 00 00 00 13 00'
+'01 11 11 11 00 22 10 00 00 00 13 00 00 11 11 10'
+'00 22 10 00 00 00 13 00 00 01 11 00 00 22 10 00'
+'00 00 13 00 00 00 10 00 00 22 10 00 00 00 13 00'
+'00 00 00 00 00 22 10 00 00 00 13 00 00 00 00 00'
+'00 22 10 00 00 00 13 00 00 00 00 00 00 22 10 00'
+'00 00 13 33 33 33 33 33 33 32 10 00 00 00 11 11'
+'11 11 11 11 11 11 10 00 00 00'
+}
 
 /* Combo */
@@ -44,6 +371,15 @@
 #define OBM_COMBO           32738
 
-BITMAP OBM_COMBO "combo.bmp"
-
+OBM_COMBO BITMAP LOADONCALL DISCARDABLE
+{
+'42 4D 4E 00 00 00 00 00 00 00 56 00 00 00 40 00'
+'00 00 07 00 00 00 09 00 00 00 01 00 01 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
+'00 00 FF FF FF 00 00 00 00 00 FE 00 00 00 EE 00'
+'00 00 C6 00 00 00 82 00 00 00 00 00 00 00 C6 00'
+'00 00 C6 00 00 00 C6 00 00 00'
+}
 /* Edit */
 
@@ -55,13 +391,52 @@
 #define EM_SETSEL            0x00b1
 
-MENU 100
+EDITMENU MENU LOADONCALL MOVEABLE DISCARDABLE
+{
+	POPUP ""
+	BEGIN
+		MENUITEM "&Undo", EM_UNDO
+		MENUITEM SEPARATOR
+		MENUITEM "Cu&t", WM_CUT
+		MENUITEM "&Copy", WM_COPY
+		MENUITEM "&Paste", WM_PASTE
+		MENUITEM "&Delete", WM_CLEAR
+		MENUITEM SEPARATOR
+		MENUITEM "Select &All", EM_SETSEL
+	END
+}
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+1 VERSIONINFO
+ FILEVERSION ODIN_FILEVERSION
+ PRODUCTVERSION ODIN_PRODUCTVERSION
+ FILEFLAGSMASK 0x3fL
+ FILEFLAGS 0xaL
+ FILEOS 0x10001L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
 BEGIN
-  MENUITEM "~Undo", EM_UNDO
-  MENUITEM SEPARATOR
-  MENUITEM "Cu~t", WM_CUT
-  MENUITEM "~Copy", WM_COPY
-  MENUITEM "~Paste", WM_PASTE
-  MENUITEM "~Delete", WM_CLEAR
-  MENUITEM SEPARATOR
-  MENUITEM "Select ~All", EM_SETSEL
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904E4"
+        BEGIN
+            VALUE "Comments", "Odin32 System Dll\0"
+            VALUE "CompanyName", "Odin Team\0"
+            VALUE "FileDescription", "Generic Example Application\0"
+            VALUE "FileVersion", "0.0\0"
+            VALUE "InternalName", "Odin32 - USER32\0"
+            VALUE "LegalCopyright", "Copyright (C) 1999\0"
+            VALUE "LegalTrademarks", "\0"
+            VALUE "OriginalFilename", "\0"
+            VALUE "ProductName", "Odin32 - USER32\0"
+            VALUE "ProductVersion", "1.0\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+	VALUE "Translation", 0x409, 0x04E4
+    END
 END
Index: trunk/src/user32/user32exp.def
===================================================================
--- trunk/src/user32/user32exp.def	(revision 1424)
+++ trunk/src/user32/user32exp.def	(revision 1425)
@@ -576,4 +576,3 @@
     GetOS2Callback__15Win32WindowProcFv       @2001
     _GetSysColorPen@4                         @2002
-    _NativeLoadBitmap@8                       @2005
     Win32ToOS2Handle__FUl                     @2006
Index: trunk/src/user32/win32wbase.cpp
===================================================================
--- trunk/src/user32/win32wbase.cpp	(revision 1424)
+++ trunk/src/user32/win32wbase.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: win32wbase.cpp,v 1.61 1999-10-23 16:45:23 cbratschi Exp $ */
+/* $Id: win32wbase.cpp,v 1.62 1999-10-23 23:04:38 sandervl Exp $ */
 /*
  * Win32 Window Base Class for OS/2
@@ -633,7 +633,8 @@
   if ((dwStyle & (WS_CAPTION | WS_CHILD)) == WS_CAPTION )
   {
-        if (cs->hMenu) SetMenu(cs->hMenu);
-        else
-        {
+        if (cs->hMenu) {
+            SetMenu(cs->hMenu);
+        }
+        else {
                 if (windowClass->getMenuNameA()) {
                         cs->hMenu = LoadMenuA(cs->hInstance, windowClass->getMenuNameA());
Index: trunk/src/user32/win32wbase.h
===================================================================
--- trunk/src/user32/win32wbase.h	(revision 1424)
+++ trunk/src/user32/win32wbase.h	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: win32wbase.h,v 1.33 1999-10-23 16:45:24 cbratschi Exp $ */
+/* $Id: win32wbase.h,v 1.34 1999-10-23 23:04:39 sandervl Exp $ */
 /*
  * Win32 Window Base Class for OS/2
@@ -149,5 +149,5 @@
          BOOL   ShowWindow(ULONG nCmdShow);
          BOOL   SetWindowPos(HWND hwndInsertAfter, int x, int y, int cx, int cy, UINT fuFlags);
-         BOOL   SetWindowPlacement(WINDOWPLACEMENT *winpos);
+	 BOOL   SetWindowPlacement(WINDOWPLACEMENT *winpos);
          BOOL   DestroyWindow();
          HWND   SetActiveWindow();
@@ -219,7 +219,7 @@
        ULONG getBorderHeight() { return borderHeight; };
 
-static  void  NC_AdjustRectInner(LPRECT rect, DWORD style, DWORD exStyle);
-static  void  NC_AdjustRectOuter(LPRECT rect, DWORD style, BOOL menu, DWORD exStyle);
-static  BOOL  WindowNeedsWMBorder( DWORD style, DWORD exStyle );
+static	void  NC_AdjustRectInner(LPRECT rect, DWORD style, DWORD exStyle);
+static	void  NC_AdjustRectOuter(LPRECT rect, DWORD style, BOOL menu, DWORD exStyle);
+static	BOOL  WindowNeedsWMBorder( DWORD style, DWORD exStyle );
 
        PVOID getOldWndProc() { return pOldWndProc; }
@@ -304,5 +304,5 @@
 #ifndef OS2_INCLUDED
         void  GetMinMaxInfo(POINT *maxSize, POINT *maxPos, POINT *minTrack, POINT *maxTrack );
-        LONG  HandleWindowPosChanging(WINDOWPOS *winpos);
+	LONG  HandleWindowPosChanging(WINDOWPOS *winpos);
         LONG  HandleSysCommand(WPARAM wParam, POINT *pt32);
 
Index: trunk/src/user32/window.cpp
===================================================================
--- trunk/src/user32/window.cpp	(revision 1424)
+++ trunk/src/user32/window.cpp	(revision 1425)
@@ -1,3 +1,3 @@
-/* $Id: window.cpp,v 1.23 1999-10-22 18:11:50 sandervl Exp $ */
+/* $Id: window.cpp,v 1.24 1999-10-23 23:04:39 sandervl Exp $ */
 /*
  * Win32 window apis for OS/2
@@ -738,5 +738,5 @@
 BOOL WIN32API AdjustWindowRectEx( PRECT rect, DWORD style, BOOL menu, DWORD exStyle)
 {
-    dprintf(("AdjustWindowRectEx %x %x %d (%d,%d)(%d,%d)\n", style, exStyle, menu, rect->right, rect->top, rect->left, rect->bottom));
+    dprintf(("AdjustWindowRectEx %x %x %d (%d,%d)(%d,%d)\n", style, exStyle, menu, rect->left, rect->top, rect->right, rect->bottom));
 
     /* Correct the window style */
@@ -752,5 +752,5 @@
     Win32BaseWindow::NC_AdjustRectInner( rect, style, exStyle );
 
-    dprintf(("AdjustWindowRectEx returned (%d,%d)(%d,%d)\n", rect->right, rect->top, rect->left, rect->bottom));
+    dprintf(("AdjustWindowRectEx returned (%d,%d)(%d,%d)\n", rect->left, rect->top, rect->right, rect->bottom));
     return TRUE;
 }
@@ -942,5 +942,5 @@
     PRECT rcl;
 
-    dprintf(("USER32:  ClientToScreen\n"));
+    dprintf(("ClientToScreen (%d,%d)\n", pt->x, pt->y));
     if (!hwnd) {
         SetLastError(ERROR_INVALID_PARAMETER);
@@ -957,4 +957,5 @@
     OSLibWinMapWindowPoints (wnd->getOS2WindowHandle(), OSLIB_HWND_DESKTOP, (OSLIBPOINT *)pt, 1);
     pt->y = ScreenHeight - pt->y;
+    dprintf(("ClientToScreen returned (%d,%d)\n", pt->x, pt->y));
     return (TRUE);
 }
