Release 970305

Sun Mar  2 14:57:37 1997  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [*/*]
	Completed transition to new Win32 types.

	* [tools/build.c]
	Changed CallTo16_regs to take a CONTEXT argument.

	* [memory/virtual.c]
	Rewrote Virtual* functions. Implemented CreateFileMapping and
	OpenFileMapping. Broke MapViewOfFile ;-)

	* [win32/k32obj.c]
	Implemented named objects.

Sun Mar  2 00:33:21 1997  Mikolaj Zalewski <zmikolaj@free.polbox.pl>

	* [misc/ole2nls.c] [resources/sysres_Pl.c]
	Added Polish language support.

Sat Mar  1 13:31:25 1997  David Faure <david.faure@ifhamy.insa-lyon.fr>

	* [windows/keyboard.c]
	Wrote VkKeyScan and tested with Winword. Works ok except for dead
	chars.

Fri Feb 28 09:34:03 1997  John Harvey <john@division.co.uk>

	* [graphics/win16drv/font.c] [graphics/win16drv/init.c]
	  [graphics/win16drv/obects.c]
	Added start of SelectObject call for printer driver. Write should
	now run with the printer driver enabled.

Wed Feb 26 20:03:32 1997  Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>

	* [debugger/*.c]
	Re-added a disassembly command (list serves another functionality
	now).

	* [loader/pe_resource.c]
	Added # support.

	* [misc/ole2nls.c]
	GetStringType* added.

	* [objects/color.c]
	VGA16 fixes.

	* [windows/class.c]
	Look for global widget classes too in GetClassInfo32.

	* [windows/sysmetrics.c] [include/windows.h]
	Added Win32 sysmetrics.

Sat Feb 22 23:56:29 1997  Jukka Iivonen <iivonen@cc.helsinki.fi>

	* [documentation/languages]
	The fourth case updated.

	* [if1632/ntdll.spec]
	Added some is* and to* functions.

Sat Feb 22 23:05:47 1997  Morten Welinder  <terra@diku.dk>

	* [configure.in]
	Add tests for wait4 and waitpid.

	* [loader/signal.c]
	Clean up OS-dependent code.  I hope I got it right, :-)

	* [tools/wineconf]
	Recognise vfat file systems.  Ignore floppy drives specified in
	/etc/fstab.

	* [files/*]
	Fix function names in error messages.

Sat Feb 22 06:15:13 1997  Pablo Saratxaga <srtxg@chanae.stben.be>

	* [windows/keyboard.c] [windows/message.c]
	Support for more latin alphabet dead keys for iso-8859-{1,2,3,4,9}
	characters sets.

Fri Feb 21 20:37:50 1997  Huw D M Davies <h.davies1@physics.oxford.ac.uk>

	* [controls/edit.c]
	Fix incorrect arg order in LOCAL_Alloc() call.

Fri Feb 21 18:19:17 1997  Andrew Taylor  <andrew@riscan.com>

	* [multimedia/mmsystem.c] [multimedia/mcistring.c]
	Fixed bug related to device IDs returned by multimedia
	system.  Implemented mciGetDeviceID.

Sat Feb 15 00:58:19 1997  Jimen Ching  <jching@aloha.com>

	* [debugger/dbg.y]
	Do not dereference invalid expressions.
diff --git a/graphics/Makefile.in b/graphics/Makefile.in
index 5339596..ddb1129 100644
--- a/graphics/Makefile.in
+++ b/graphics/Makefile.in
@@ -1,4 +1,4 @@
-DEFS      = -D__WINE__ -DNO_TRANSITION_TYPES
+DEFS      = -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ..
 SRCDIR    = @srcdir@
diff --git a/graphics/metafiledrv/Makefile.in b/graphics/metafiledrv/Makefile.in
index ff538f2..b0cd835 100644
--- a/graphics/metafiledrv/Makefile.in
+++ b/graphics/metafiledrv/Makefile.in
@@ -1,4 +1,4 @@
-DEFS      = -D__WINE__ -DNO_TRANSITION_TYPES
+DEFS      = -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
diff --git a/graphics/win16drv/Makefile.in b/graphics/win16drv/Makefile.in
index ad71b99..0c408ad 100644
--- a/graphics/win16drv/Makefile.in
+++ b/graphics/win16drv/Makefile.in
@@ -1,4 +1,4 @@
-DEFS      = -D__WINE__ -DNO_TRANSITION_TYPES
+DEFS      = -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
@@ -8,6 +8,7 @@
 C_SRCS = \
 	font.c \
 	init.c \
+	objects.c \
 	text.c
 
 all: $(MODULE).o
diff --git a/graphics/win16drv/font.c b/graphics/win16drv/font.c
index 6edc8df..678ed90 100644
--- a/graphics/win16drv/font.c
+++ b/graphics/win16drv/font.c
@@ -8,6 +8,7 @@
 #include "windows.h"
 #include "win16drv.h"
 #include "gdi.h"
+#include "font.h"
 
 
 /***********************************************************************
@@ -71,3 +72,10 @@
 
     return TRUE;
 }
+
+HFONT32 WIN16DRV_FONT_SelectObject( DC * dc, HFONT32 hfont, FONTOBJ * font)
+{
+    /* TTD */
+    printf("In WIN16DRV_FONT_SelectObject\n");
+    return GetStockObject32(SYSTEM_FIXED_FONT);
+}
diff --git a/graphics/win16drv/init.c b/graphics/win16drv/init.c
index 3a9b742..fec0eb0 100644
--- a/graphics/win16drv/init.c
+++ b/graphics/win16drv/init.c
@@ -75,7 +75,7 @@
     NULL,                            /* pScaleViewportExtEx */
     NULL,                            /* pScaleWindowExtEx */
     NULL,                            /* pSelectClipRgn */
-    NULL,                            /* pSelectObject */
+    WIN16DRV_SelectObject,           /* pSelectObject */
     NULL,                            /* pSelectPalette */
     NULL,                            /* pSetBkColor */
     NULL,                            /* pSetBkMode */
@@ -690,8 +690,7 @@
     /* passing information on the available fonts */
     if (pLPD->paPrinterFonts == NULL)
     {
-	pfnCallback = GetProcAddress16(GetModuleHandle("GDI"), 
-				     (MAKEINTRESOURCE(158)));
+	pfnCallback = MODULE_GetEntryPoint( GetModuleHandle16("GDI"), 158 );
         
 	if (pfnCallback != NULL)
 	{
@@ -813,7 +812,7 @@
     if ((pLPD = FindPrinterDriverFromPDEVICE(lpDestDev)) != NULL)
     {
 	LONG lP1, lP4, lP5, lP7, lP8, lP9, lP10, lP11;  
-	WORD wP2, wP3, wP12;
+	WORD wP2, wP3, wP6, wP12;
         INT16 iP6;
 
 	SEGPTR SegPtr = pLPD->ThunkBufSegPtr;
@@ -945,7 +944,7 @@
 ExtractPQ(HPQ hPQ) 
 { 
     struct hpq *queue, *prev, *current, *currentPrev;
-    int key = 0, tag = -1;
+    int key, tag = -1;
     currentPrev = prev = NULL;
     queue = current = hpqueue;
     if (current)
@@ -1146,7 +1145,7 @@
 
     dprintf_win16drv(stddeb, "WriteDialog: %04x %04x \"%s\"\n", hJob,  cchMsg, lpMsg);
 
-    nRet = MessageBox16( 0, lpMsg, "Printing Error", MB_OKCANCEL);
+    nRet = MessageBox16(NULL, lpMsg, "Printing Error", MB_OKCANCEL);
     return nRet;
 }
 
diff --git a/graphics/win16drv/objects.c b/graphics/win16drv/objects.c
new file mode 100644
index 0000000..c865790
--- /dev/null
+++ b/graphics/win16drv/objects.c
@@ -0,0 +1,53 @@
+/*
+ * GDI objects
+ *
+ * Copyright 1993 Alexandre Julliard
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "bitmap.h"
+#include "brush.h"
+#include "font.h"
+#include "pen.h"
+#include "stddebug.h"
+#include "debug.h"
+
+
+extern HBITMAP32 WIN16DRV_BITMAP_SelectObject( DC * dc, HBITMAP32 hbitmap,
+                                             BITMAPOBJ * bmp );
+extern HBRUSH32 WIN16DRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush,
+                                           BRUSHOBJ * brush );
+extern HFONT32 WIN16DRV_FONT_SelectObject( DC * dc, HFONT32 hfont,
+                                         FONTOBJ * font );
+extern HPEN32 WIN16DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen );
+
+
+/***********************************************************************
+ *           X11DRV_SelectObject
+ */
+HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle )
+{
+    GDIOBJHDR *ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE );
+
+    if (!ptr) return 0;
+    dprintf_gdi(stddeb, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle );
+    
+    switch(ptr->wMagic)
+    {
+    case PEN_MAGIC:
+        fprintf(stderr, "WIN16DRV_SelectObject for PEN not implemented\n");
+        return 0;
+    case BRUSH_MAGIC:
+        fprintf(stderr, "WIN16DRV_SelectObject for BRUSH not implemented\n");
+        return 0;
+    case BITMAP_MAGIC:
+        fprintf(stderr, "WIN16DRV_SelectObject for BITMAP not implemented\n");
+        return 0;
+    case FONT_MAGIC:
+        return WIN16DRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr );	  
+    case REGION_MAGIC:
+	  return (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle );
+    }
+    return 0;
+}
diff --git a/graphics/x11drv/Makefile.in b/graphics/x11drv/Makefile.in
index 9001dad..daa860c 100644
--- a/graphics/x11drv/Makefile.in
+++ b/graphics/x11drv/Makefile.in
@@ -1,4 +1,4 @@
-DEFS      = -D__WINE__ -DNO_TRANSITION_TYPES
+DEFS      = -D__WINE__
 TOPSRCDIR = @top_srcdir@
 TOPOBJDIR = ../..
 SRCDIR    = @srcdir@
diff --git a/graphics/x11drv/bitmap.c b/graphics/x11drv/bitmap.c
index d0cc825..b302248 100644
--- a/graphics/x11drv/bitmap.c
+++ b/graphics/x11drv/bitmap.c
@@ -56,7 +56,8 @@
     if (!(dc->w.flags & DC_MEMORY)) return 0;
 
     if (dc->w.hVisRgn)
-       SetRectRgn(dc->w.hVisRgn, 0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight );
+       SetRectRgn32( dc->w.hVisRgn, 0, 0,
+                     bmp->bitmap.bmWidth, bmp->bitmap.bmHeight );
     else
     { 
        hrgn = CreateRectRgn32(0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight);