Release 961208
Sun Dec 8 14:51:57 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [configure.in]
Added check to see if the compiler supports building a DLL when
the --with-dll option is used.
* [controls/listbox.c]
Don't send LBN_SELCHANGE too often.
Added WM_CHARTOITEM support.
* [Make.rules.in] [library/Makefile.in]
Build winestub.o and link it with Winelib programs.
* [objects/text.c]
Added support for '&&' in DrawText().
* [tools/build.c]
Added -o option.
Sat Dec 7 12:07:07 1996 Andrew Lewycky <plewycky@oise.utoronto.ca>
* [win32/thread.c]
GetCurrentThread(): return -2 (current thread pseudo-handle).
GetCurrentThreadId(): return GetCurrentTask().
* [objects/font.c] [if1632/gdi32.spec]
GetTextExtentPoint32{A,W}Buggy(): for future bug-compatibility.
* [win32/findfile.c]
FindClose(): ignore INVALID_HANDLE_VALUE (like Win95).
* [windows/hook.c] [include/hook.h] [if1632/user.spec]
[if1632/user32.spec] [windows/focus.c] [windows/message.c]
[windows/nonclient.c] [windows/win.c] [windows/winpos.c]
Hooks rewritten to support Win32.
* [misc/winsock.c]
WINSOCK_select(): need to put sockets with errors into exceptfds.
WINSOCK_socket(): fix error return.
* [windows/win.c]
SetWindowWord(): call SetParent on GWW_HWNDPARENT.
Wed Dec 4 22:03:05 1996 Andrew Taylor <andrew@riscan.com>
* [files/dos_fs.c]
Check if buf is NULL before copying string in GetFullPathName32A().
Wed Dec 4 21:40:59 1996 Robert Pouliot <krynos@clic.net>
* [graphics/wing.c] [if1632/wing.spec]
Implemented many WinG functions, but some don't seem to
work correctly (probably due to the one not done).
Wed Dec 4 03:38:25 1996 Lee Jaekil <juria@puma.kaitech.re.kr>
* [misc/main.c]
Implemented a few more of the SystemParametersInfo() cases.
Sun Dec 1 22:30:00 1996 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [controls/button.c]
Improved focus rectangle painting.
* [windows/dialog.c] [windows/defdlg.c]
Fixed IE3.0 problems with DWL_MSGRESULT.
Sun Dec 1 20:49:32 1996 Albrecht Kleine <kleine@ak.sax.de>
* [files/profile.c]
Changed error handling in PROFILE_SetString().
diff --git a/graphics/wing.c b/graphics/wing.c
index 4f3b29d..3bae489 100644
--- a/graphics/wing.c
+++ b/graphics/wing.c
@@ -5,19 +5,10 @@
*/
#include "gdi.h"
+#include "windows.h"
#include "stddebug.h"
#include "debug.h"
-/* I dunno if this structure can be put here... Maybe copyright, I'm no lawyer... */
-typedef enum WING_DITHER_TYPE
-{
- WING_DISPERSED_4x4,
- WING_DISPERSED_8x8,
-
- WING_CLUSTERED_4x4
-
-} WING_DITHER_TYPE;
-
/***********************************************************************
* WingCreateDC16 (WING.1001)
*/
@@ -33,8 +24,21 @@
*/
BOOL16 WinGRecommendDIBFormat16(BITMAPINFO *fmt)
{
- fprintf(stdnimp,"WinGRecommendDIBFormat: empty stub!\n");
- return 0;
+ HDC16 i=GetDC16(0);
+
+ fmt->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
+ fmt->bmiHeader.biWidth=0;
+ fmt->bmiHeader.biHeight=1; /* The important part */
+ fmt->bmiHeader.biPlanes=GetDeviceCaps(i, PLANES);
+ fmt->bmiHeader.biBitCount=GetDeviceCaps(i, BITSPIXEL);
+ fmt->bmiHeader.biCompression=BI_RGB;
+ fmt->bmiHeader.biSizeImage=0;
+ fmt->bmiHeader.biXPelsPerMeter=1000/25.4*GetDeviceCaps(i,LOGPIXELSX);
+ fmt->bmiHeader.biYPelsPerMeter=1000/25.4*GetDeviceCaps(i,LOGPIXELSY);
+ fmt->bmiHeader.biClrUsed=0;
+ fmt->bmiHeader.biClrImportant=0;
+ ReleaseDC16(0, i);
+ return 1;
}
/***********************************************************************
@@ -42,26 +46,82 @@
*/
HBITMAP16 WinGCreateBitmap16(HDC16 winDC, BITMAPINFO *header, void **bits)
{
- fprintf(stdnimp,"WinGCreateBitmap: empty stub! (expect failure)\n");
- *bits=0;
+ fprintf(stdnimp,"WinGCreateBitmap: almost empty stub! (expect failure)\n");
+ /* Assume RGB color */
+ if(bits==NULL)
+ return CreateDIBitmap(winDC, header, 0, bits, header, 0);
+ else
+ return CreateDIBitmap(winDC, header, 1, bits, header, 0);
return 0;
}
/***********************************************************************
+ * WinGGetDIBPointer16 (WING.1004)
+ */
+void* WinGGetDIBPointer16(HBITMAP16 bmap, BITMAPINFO *header)
+{
+ fprintf(stdnimp,"WinGGetDIBPointer16: empty stub!\n");
+ return NULL;
+}
+
+/***********************************************************************
+ * WinGGetDIBColorTable16 (WING.1005)
+ */
+UINT16 WinGGetDIBColorTable16(HDC16 winDC, UINT16 start, UINT16 numentry,
+ RGBQUAD* colors)
+{
+ return GetPaletteEntries(winDC, start, numentry, colors);
+}
+
+/***********************************************************************
+ * WinGSetDIBColorTable16 (WING.1006)
+ */
+UINT16 WinGSetDIBColorTable16(HDC16 winDC, UINT16 start, UINT16 numentry,
+ RGBQUAD* colors)
+{
+ return SetPaletteEntries(winDC, start, numentry, colors);
+}
+
+
+/***********************************************************************
* WinGCreateHalfTonePalette16 (WING.1007)
*/
HPALETTE16 WinGCreateHalfTonePalette16(void)
{
- fprintf(stdnimp,"WinGCreateHalfTonePalette: empty stub!\n");
+ fprintf(stdnimp,"WinGCreateHalfTonePalette16: empty stub!\n");
return 0;
}
/***********************************************************************
* WinGCreateHalfToneBrush16 (WING.1008)
*/
-HPALETTE16 WinGCreateHalfToneBrush16(HDC16 winDC, COLORREF col, WING_DITHER_TYPE type)
+HPALETTE16 WinGCreateHalfToneBrush16(HDC16 winDC, COLORREF col, INT16 dithertype)
{
- fprintf(stdnimp,"WinGCreateHalfToneBrush: empty stub!\n");
+ fprintf(stdnimp,"WinGCreateHalfToneBrush16: empty stub!\n");
return 0;
}
+/***********************************************************************
+ * WinGStretchBlt16 (WING.1009)
+ */
+BOOL16 WinGStretchBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, INT16 widDest,
+ INT16 heiDest, HDC16 srcDC, INT16 xSrc, INT16 ySrc,
+ INT16 widSrc, INT16 heiSrc)
+{
+
+ return StretchBlt16(destDC, xDest, yDest, widDest, heiDest, srcDC, xSrc, ySrc, widSrc, heiSrc, SRCCOPY);
+/* fprintf(stdnimp,"WinGStretchBlt16: empty stub!\n");*/
+/* return 0; */
+}
+
+/***********************************************************************
+ * WinGBitBlt16 (WING.1010)
+ */
+BOOL16 WinGBitBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, INT16 widDest,
+ INT16 heiDest, HDC16 srcDC, INT16 xSrc, INT16 ySrc)
+{
+ return BitBlt16(destDC, xDest, yDest, widDest, heiDest, srcDC, xSrc, ySrc, SRCCOPY);
+/* fprintf(stdnimp,"WinGBitBlt16: empty stub!\n");*/
+/* return 0;*/
+}
+