Release 961222

Sun Dec 22 13:30:18 1996  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [graphics/metafiledrv/init.c] [graphisc/metafiledrv/mapping.c]
	Added mapping functions.

	* [if1632/gdi.spec] [objects/*.c] [include/windows.h]
	Added a lot of Win32 functions.

	* [memory/heap.c]
	Added HEAP_strdupAtoW and HEAP_strdupWtoA.

	* [misc/lstr.c] [memory/string.c]
	Moved OEM<->Ansi conversion to string.c. Fixed a couple of bugs.

	* [object/font.c]
	Avoid uppercasing font names.

	* [windows/hook.c]
	Set ds = ss before calling hook procedure.

Sat Dec 21 21:44:17 1996  Alex Korobka <alex@trantor.pharm.sunysb.edu>

	* [objects/color.c]
	Use colors allocated by other clients. 

	* [windows/caret.c]
	Set default blink time to 500.

	* [windows/win.c] [windows/event.c]
	Delete X context before XDestroyWindow().

	* [windows/keyboard.c]
	Fixed GetKeyState() once more.

Fri Dec 20 08:26:33 1996  Eric Youngdale <eric@sub2304.jic.com>

	* [debugger/*.c]
	Lots of built-in debugger improvements: parse Win32 EXEs debug
 	information, display local variables, source files and line
 	numbers, get symbols directly from the Wine executable, etc.

Tue Dec 17 22:39:42 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* [misc/winsock_async.c]
 	Extern declaration added for h_errno.

Tue Dec 17 21:29:34 1996  Albrecht Kleine  <kleine@ak.sax.de>

	* [windows/message.c]
	Added two more CBT hook calls: HCBT_CLICKSKIPPED/HCBT_KEYSKIPPED.
diff --git a/objects/bitmap.c b/objects/bitmap.c
index 0c535f5..791848d 100644
--- a/objects/bitmap.c
+++ b/objects/bitmap.c
@@ -13,7 +13,6 @@
 #include "dc.h"
 #include "bitmap.h"
 #include "heap.h"
-#include "string32.h"
 #include "stddebug.h"
 #include "debug.h"
 
@@ -88,6 +87,9 @@
     BITMAPOBJ * bmpObjPtr;
     HBITMAP16 hbitmap;
 
+    planes = (BYTE)planes;
+    bpp    = (BYTE)bpp;
+
     dprintf_gdi( stddeb, "CreateBitmap: %dx%d, %d colors\n", 
                  width, height, 1 << (planes*bpp) );
 
@@ -294,7 +296,7 @@
  */
 HBITMAP16 LoadBitmap16( HINSTANCE16 instance, SEGPTR name )
 {
-    HBITMAP16 hbitmap = 0;
+    HBITMAP32 hbitmap = 0;
     HDC32 hdc;
     HRSRC16 hRsrc;
     HGLOBAL16 handle;
@@ -323,8 +325,8 @@
     if ((hdc = GetDC32(0)) != 0)
     {
         char *bits = (char *)info + DIB_BitmapInfoSize( info, DIB_RGB_COLORS );
-        hbitmap = CreateDIBitmap( hdc, &info->bmiHeader, CBM_INIT,
-                                  bits, info, DIB_RGB_COLORS );
+        hbitmap = CreateDIBitmap32( hdc, &info->bmiHeader, CBM_INIT,
+                                    bits, info, DIB_RGB_COLORS );
         ReleaseDC32( 0, hdc );
     }
     FreeResource16( handle );
@@ -356,8 +358,8 @@
     if ((hdc = GetDC32(0)) != 0)
     {
         char *bits = (char *)info + DIB_BitmapInfoSize( info, DIB_RGB_COLORS );
-        hbitmap = CreateDIBitmap( hdc, &info->bmiHeader, CBM_INIT,
-                                  bits, info, DIB_RGB_COLORS );
+        hbitmap = CreateDIBitmap32( hdc, &info->bmiHeader, CBM_INIT,
+                                    bits, info, DIB_RGB_COLORS );
         ReleaseDC32( 0, hdc );
     }
     return hbitmap;
@@ -370,12 +372,12 @@
 HBITMAP32 LoadBitmap32A( HINSTANCE32 instance, LPCSTR name )
 {
     HBITMAP32 res;
-    if (!HIWORD(name)) res = LoadBitmap32W(instance,(LPWSTR)name);
+    if (!HIWORD(name)) res = LoadBitmap32W( instance, (LPWSTR)name );
     else
     {
-        LPWSTR uni = STRING32_DupAnsiToUni(name);
-        res = LoadBitmap32W(instance,uni);
-        free(uni);
+        LPWSTR uni = HEAP_strdupAtoW( GetProcessHeap(), 0, name );
+        res = LoadBitmap32W( instance, uni );
+        HeapFree( GetProcessHeap(), 0, uni );
     }
     return res;
 }