Release 970215
Sat Feb 15 11:59:17 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [*/*]
Converted a lot of functions to Win32 types.
Removed HWND type.
Fri Feb 14 15:09:19 1997 Onno Hovers <onno@stack.nl>
* [memory/global.c]
Implemented GMEM_MOVEABLE blocks for Win32.
Fri Feb 14 00:24:39 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [loader/task.c] [windows/queue.c]
Do not read X events while in the intertask SendMessage().
* [misc/lstr.c]
Fixed CharPrev32A().
* [windows/hook.c] [include/hook.h]
Restored broken WH_CALLWNDPROC functionality for dialogs, etc...
* [windows/win.c] [windows/defwnd.c] [windows/mdi.c]
[windows/event.c] [controls/edit.c]
Added WIN_ISWIN32 flag to windows created by Win32 calls.
Several new Win32 messages are sent when this flag is on.
* [msdos/dosmem.c] [memory/global.c]
Some changes in DOS memory allocation.
Fri Feb 7 21:46:03 1997 Andrew Taylor <andrew@riscan.com>
* [win32/security.c]
Added SID manipulation functions.
* [include/debug.h]
Added debugging class "security".
Fri Feb 7 20:46:33 1997 Robert Pouliot <krynos@clic.net>
* [debugger/msc.c] [debugger/source.c]
[documentation/wine_os2.txt] [loader/signal.c]
Some more changes for OS/2. Doesn't work yet.
Fri Feb 7 09:31:17 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [scheduler/process.c]
Added ExpandEnvironmentStrings*.
* [misc/ntdll.c] [include/ntdll.h]
Added some new functions.
* [objects/cursoricon.c]
CURSORICON_LoadHandler: check against some bizarre out of memory
conditions.
* [windows/mdi.c]
Fixed DefFrameProc32*, added TranslateMDISysAccel32.
Wed Feb 5 01:31:05 1997 John Zero <john@globe.graphisoft.hu>
* [resources/sysres_Hu.rc] [misc/ole2nls.c] [misc/main.c]
[programs/progman/Hu.rc] [programs/winhelp/Hu.rc]
Added Hungarian language support.
diff --git a/objects/metafile.c b/objects/metafile.c
index 0174c92..d5dcf12 100644
--- a/objects/metafile.c
+++ b/objects/metafile.c
@@ -55,10 +55,18 @@
/******************************************************************
- * GetMetafile GDI.124 By Kenny MacDonald 30 Nov 94
+ * GetMetafile16 (GDI.124)
*/
+HMETAFILE16 GetMetaFile16( LPCSTR lpFilename )
+{
+ return GetMetaFile32A( lpFilename );
+}
-HMETAFILE16 GetMetaFile(LPSTR lpFilename)
+
+/******************************************************************
+ * GetMetafile32A (GDI32.197)
+ */
+HMETAFILE32 GetMetaFile32A( LPCSTR lpFilename )
{
HMETAFILE16 hmf;
METAHEADER *mh;
@@ -73,17 +81,21 @@
hmf = GlobalAlloc16(GMEM_MOVEABLE, MFHEADERSIZE);
mh = (METAHEADER *)GlobalLock16(hmf);
- if (!mh) {
+ if (!mh)
+ {
GlobalFree16(hmf);
return 0;
}
- if ((hFile = _lopen32(lpFilename, OF_READ)) == HFILE_ERROR32) {
+ if ((hFile = _lopen32(lpFilename, OF_READ)) == HFILE_ERROR32)
+ {
GlobalFree16(hmf);
return 0;
}
- if (_lread32(hFile, (char *)mh, MFHEADERSIZE) == HFILE_ERROR32) {
+ if (_lread32(hFile, (char *)mh, MFHEADERSIZE) == HFILE_ERROR32)
+ {
+ _lclose32( hFile );
GlobalFree16(hmf);
return 0;
}
@@ -93,20 +105,25 @@
hmf = GlobalReAlloc16(hmf,size,GMEM_MOVEABLE);
mh = (METAHEADER *)GlobalLock16(hmf);
- if (!mh) {
+ if (!mh)
+ {
+ _lclose32( hFile );
GlobalFree16(hmf);
return 0;
}
if (_lread32(hFile, (char*)mh + mh->mtHeaderSize * 2,
- size - mh->mtHeaderSize * 2) == HFILE_ERROR32) {
+ size - mh->mtHeaderSize * 2) == HFILE_ERROR32)
+ {
+ _lclose32( hFile );
GlobalFree16(hmf);
return 0;
}
_lclose32(hFile);
- if (mh->mtType != 1) {
+ if (mh->mtType != 1)
+ {
GlobalFree16(hmf);
return 0;
}
@@ -118,10 +135,31 @@
/******************************************************************
- * CopyMetafile GDI.151 Niels de Carpentier, April 1996
+ * GetMetafile32W (GDI32.199)
+ */
+HMETAFILE32 GetMetaFile32W( LPCWSTR lpFilename )
+{
+ LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFilename );
+ HMETAFILE32 ret = GetMetaFile32A( p );
+ HeapFree( GetProcessHeap(), 0, p );
+ return ret;
+}
+
+
+/******************************************************************
+ * CopyMetaFile16 (GDI.151)
*/
-HMETAFILE16 CopyMetaFile(HMETAFILE16 hSrcMetaFile, LPCSTR lpFilename)
+HMETAFILE16 CopyMetaFile16( HMETAFILE16 hSrcMetaFile, LPCSTR lpFilename )
+{
+ return CopyMetaFile32A( hSrcMetaFile, lpFilename );
+}
+
+
+/******************************************************************
+ * CopyMetaFile32A (GDI32.23)
+ */
+HMETAFILE32 CopyMetaFile32A( HMETAFILE32 hSrcMetaFile, LPCSTR lpFilename )
{
HMETAFILE16 handle = 0;
METAHEADER *mh;
@@ -146,6 +184,7 @@
_lclose32(hFile);
if (i == -1)
return 0;
+ /* FIXME: return value */
}
else /* memory based metafile */
{
@@ -158,12 +197,25 @@
return handle;
}
+
+/******************************************************************
+ * CopyMetaFile32W (GDI32.24)
+ */
+HMETAFILE32 CopyMetaFile32W( HMETAFILE32 hSrcMetaFile, LPCWSTR lpFilename )
+{
+ LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFilename );
+ HMETAFILE32 ret = CopyMetaFile32A( hSrcMetaFile, p );
+ HeapFree( GetProcessHeap(), 0, p );
+ return ret;
+}
+
+
/******************************************************************
* IsValidMetaFile (GDI.410)
* (This is not exactly what windows does, see "Undoc Win")
*/
-BOOL IsValidMetaFile(HMETAFILE16 hmf)
+BOOL16 IsValidMetaFile(HMETAFILE16 hmf)
{
BOOL resu=FALSE;
METAHEADER *mh = (METAHEADER *)GlobalLock16(hmf);
@@ -179,82 +231,19 @@
}
-#if 0
/******************************************************************
- * CloseMetafile GDI.126
+ * PlayMetafile16 (GDI.123)
*/
-
-HMETAFILE16 CloseMetaFile(HDC16 hdc)
+BOOL16 PlayMetaFile16( HDC16 hdc, HMETAFILE16 hmf )
{
- DC *dc;
- METAHEADER *mh;
- HMETAFILE16 hmf;
- HFILE hFile;
- METAFILEDRV_PDEVICE *physDev;
-
- dprintf_metafile(stddeb,"CloseMetaFile\n");
-
- if (!(dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC))) return 0;
-
- physDev = (METAFILEDRV_PDEVICE *)dc->physDev;
- mh = (METAHEADER *)GlobalLock16( physDev->hMetafile );
-
- /* Construct the end of metafile record - this is documented
- * in SDK Knowledgebase Q99334.
- */
-
- if (!MF_MetaParam0(dc, META_EOF))
- {
- DeleteDC32( hdc );
- return 0;
- }
-
- if (mh->mtType == 1) /* disk based metafile */
- {
- hFile = mh->mtNoParameters;
- mh->mtNoParameters = 0;
- if (_llseek(hFile, 0L, 0) == -1)
- {
- DeleteDC32( hdc );
- return 0;
- }
- if (_lwrite32(hFile, (char *)mh, MFHEADERSIZE) == -1)
- {
- DeleteDC32( hdc );
- return 0;
- }
- _lclose(hFile);
- }
-
- hmf = physDev->hMetafile;
- GlobalUnlock16( hmf );
- physDev->hMetafile = 0; /* So it won't be deleted */
- DeleteDC32( hdc );
- return hmf;
+ return PlayMetaFile32( hdc, hmf );
}
/******************************************************************
- * DeleteMetafile GDI.127
+ * PlayMetafile32 (GDI32.265)
*/
-
-BOOL DeleteMetaFile(HMETAFILE16 hmf)
-{
- METAHEADER *mh = (METAHEADER *)GlobalLock16(hmf);
-
- if (!mh)
- return FALSE;
-
- GlobalFree16(hmf);
- return TRUE;
-}
-#endif
-
-/******************************************************************
- * PlayMetafile GDI.123
- */
-
-BOOL PlayMetaFile(HDC16 hdc, HMETAFILE16 hmf)
+BOOL32 PlayMetaFile32( HDC32 hdc, HMETAFILE32 hmf )
{
METAHEADER *mh = (METAHEADER *)GlobalLock16(hmf);
METARECORD *mr;
@@ -592,7 +581,7 @@
/* W. Magro: Some new metafile operations. Not all debugged. */
case META_CREATEPALETTE:
MF_AddHandle(ht, nHandles,
- CreatePalette((LPLOGPALETTE)mr->rdParam));
+ CreatePalette16((LPLOGPALETTE)mr->rdParam));
break;
case META_SETTEXTALIGN:
@@ -600,15 +589,15 @@
break;
case META_SELECTPALETTE:
- SelectPalette(hdc, *(ht->objectHandle + *(mr->rdParam+1)),*(mr->rdParam));
+ SelectPalette16(hdc, *(ht->objectHandle + *(mr->rdParam+1)),*(mr->rdParam));
break;
case META_SETMAPPERFLAGS:
- SetMapperFlags(hdc, *(mr->rdParam));
+ SetMapperFlags16(hdc, *(mr->rdParam));
break;
case META_REALIZEPALETTE:
- RealizePalette(hdc);
+ RealizePalette16(hdc);
break;
case META_ESCAPE:
@@ -735,7 +724,7 @@
/******************************************************************
- * GetMetaFileBits by William Magro, 19 Sep 1995
+ * GetMetaFileBits (GDI.159)
*
* Trade in a meta file object handle for a handle to the meta file memory
*/
@@ -748,11 +737,10 @@
}
/******************************************************************
- * SetMetaFileBits by William Magro, 19 Sep 1995
+ * SetMetaFileBits (GDI.160)
*
* Trade in a meta file memory handle for a handle to a meta file object
*/
-
HMETAFILE16 SetMetaFileBits( HGLOBAL16 hMem )
{
dprintf_metafile(stddeb,"SetMetaFileBits: hmf out: %04x\n", hMem);