Release 960611
Tue Jun 11 15:20:43 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [debugger/break.c] [loader/signal.c]
Fixed breakpoints in 32-bit code.
* [include/windows.h]
Added many more Win32 versions of standard structures.
* [include/winreg.h] [misc/registry.c]
Moved private types into registry.c.
* [memory/string.c] (New file)
Moved most string functions from misc/lstr.c; added Win32 version
of all functions.
* [misc/wsprintf.c]
Implemented Win32 wsprintf functions.
* [objects/bitmap.c]
Implemented Win32 bitmap functions.
* [windows/dialog.c]
Don't set dialog procedure before the controls are created. This
avoids a crash in Winhelp.
Tue Jun 11 14:10:06 1996 Martin von Loewis <loewis@informatik.hu-berlin.de>
* [controls/menu.c] [if1632/user.spec] [windows/message.c]
Replace PeekMessage with PeekMessage16.
* [if1632/kernel32.spec][misc/main.c]
GetVersion32,GetVersionEx32A,GetVersionEx32W: new functions.
MAIN_ParseVersion: new function, new command line option -winver.
GetVersion: modified to take command line argument into account.
* [if1632/kernel32.spec] [win32/process.c]
FreeLibrary32: new function.
TlsAlloc: initialize Tls to zero.
InterlockedIncrement,InterlockedDecrement,InterlockedExchange: new
functions.
* [if1632/kernel32.spec]
SetErrorMode,GetActiveWindow: new relays to existing functions.
* [if1632/kernel32.spec][win32/user32.c]
PeekMessage32A,PeekMessage32W: new functions.
* [include/struct32.h][include/windows.h]
Moved MSG32 to windows.h.
Renamed MSG to MSG16.
Modified prototypes to use MSG16
* [include/winbase.h]
OSVERSIONINFO32A,OSVERSIONINFO32W: new structures.
Sun Jun 9 20:53:30 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [if1632/Makefile.in] [loader/builtin.c]
version.dll,lz32.dll added.
* [include/lzexpand.h] [if1632/lz32.spec] [if1632/lzexpand.spec]
[misc/lzexpand.c]
lz32.dll added.
Modified to new function naming standard.
* [include/ver.h] [if1632/ver.spec] [if1632/version.spec] [misc/ver.c]
version.dll added (win32 version of ver.dll).
Modified to new function naming standard.
Use registry to look up a LOCALE langids too.
(VerInstallFile,VerFindFile still stubs)
Fri Jun 7 20:40:20 1996 Albrecht Kleine <kleine@ak.sax.de>
* [files/file.c]
Added a warning if GetTempFileName() gets a bad drive parameter.
* [misc/commdlg.c]
Changed file listbox color to gray in SaveFile dialog
(just like Windows does this).
diff --git a/objects/gdiobj.c b/objects/gdiobj.c
index 81c1c16..ddf0a21 100644
--- a/objects/gdiobj.c
+++ b/objects/gdiobj.c
@@ -299,12 +299,12 @@
/***********************************************************************
- * GetObject (GDI.82)
+ * GetObject16 (GDI.82)
*/
-int GetObject( HANDLE handle, int count, LPSTR buffer )
+INT16 GetObject16( HANDLE16 handle, INT16 count, LPVOID buffer )
{
GDIOBJHDR * ptr = NULL;
- dprintf_gdi(stddeb, "GetObject: %04x %d %p\n", handle, count, buffer );
+ dprintf_gdi(stddeb, "GetObject16: %04x %d %p\n", handle, count, buffer );
if (!count) return 0;
if ((handle >= FIRST_STOCK_HANDLE) && (handle <= LAST_STOCK_HANDLE))
@@ -320,7 +320,7 @@
case BRUSH_MAGIC:
return BRUSH_GetObject( (BRUSHOBJ *)ptr, count, buffer );
case BITMAP_MAGIC:
- return BITMAP_GetObject( (BITMAPOBJ *)ptr, count, buffer );
+ return BITMAP_GetObject16( (BITMAPOBJ *)ptr, count, buffer );
case FONT_MAGIC:
return FONT_GetObject( (FONTOBJ *)ptr, count, buffer );
case PALETTE_MAGIC:
@@ -331,6 +331,46 @@
/***********************************************************************
+ * GetObject32A (GDI32.204)
+ */
+INT32 GetObject32A( HANDLE32 handle, INT32 count, LPVOID buffer )
+{
+ GDIOBJHDR * ptr = NULL;
+ dprintf_gdi(stddeb, "GetObject32A: %08x %d %p\n", handle, count, buffer );
+ if (!count) return 0;
+
+ if ((handle >= FIRST_STOCK_HANDLE) && (handle <= LAST_STOCK_HANDLE))
+ ptr = StockObjects[handle - FIRST_STOCK_HANDLE];
+ else
+ ptr = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle );
+ if (!ptr) return 0;
+
+ switch(ptr->wMagic)
+ {
+ case BITMAP_MAGIC:
+ return BITMAP_GetObject32( (BITMAPOBJ *)ptr, count, buffer );
+ case PEN_MAGIC:
+ case BRUSH_MAGIC:
+ case FONT_MAGIC:
+ case PALETTE_MAGIC:
+ fprintf( stderr, "GetObject32: magic %04x not implemented\n",
+ ptr->wMagic );
+ break;
+ }
+ return 0;
+}
+
+
+/***********************************************************************
+ * GetObject32W (GDI32.206)
+ */
+INT32 GetObject32W( HANDLE32 handle, INT32 count, LPVOID buffer )
+{
+ return GetObject32A( handle, count, buffer );
+}
+
+
+/***********************************************************************
* SelectObject (GDI.45)
*/
HANDLE SelectObject( HDC hdc, HANDLE handle )
@@ -397,8 +437,8 @@
};
int i, retval = 0;
- LOGPEN *pen;
- LOGBRUSH *brush = NULL;
+ LOGPEN16 *pen;
+ LOGBRUSH16 *brush = NULL;
dprintf_gdi( stddeb, "EnumObjects: %04x %d %08lx %08lx\n",
hdc, nObjType, (DWORD)lpEnumFunc, lParam );
@@ -406,7 +446,7 @@
{
case OBJ_PEN:
/* Enumerate solid pens */
- if (!(pen = SEGPTR_NEW(LOGPEN))) break;
+ if (!(pen = SEGPTR_NEW(LOGPEN16))) break;
for (i = 0; i < sizeof(solid_colors)/sizeof(solid_colors[0]); i++)
{
pen->lopnStyle = PS_SOLID;
@@ -424,7 +464,7 @@
case OBJ_BRUSH:
/* Enumerate solid brushes */
- if (!(brush = SEGPTR_NEW(LOGBRUSH))) break;
+ if (!(brush = SEGPTR_NEW(LOGBRUSH16))) break;
for (i = 0; i < sizeof(solid_colors)/sizeof(solid_colors[0]); i++)
{
brush->lbStyle = BS_SOLID;