source: trunk/doc/Open32.bugs@ 5120

Last change on this file since 5120 was 4600, checked in by sandervl, 25 years ago

* empty log message *

File size: 3.4 KB
RevLine 
[3811]1A list of Open32 bugs (under construction):
2
3- Key mapping problem. Cursor key messages (WM_KEYUP/DOWN) contain the wrong
4 OEM scancode (should be the same as the numeric keypad arrow keys)
5 Make that: extended key mappings are totally messed up
6- No support for CBS_OWNERDRAWFIXED or CBS_OWNERDRAWVARIABLE styles (COMBOBOX)
7- Crash if CBS_OWNERDRAWFIXED && !CBS_HASSTRINGS and sending CB_ADDSTRING with
8 attached item data (i.e. PERFMON sends 0,1,2,3,4 and PM treats this item data
9 as pointers)
10- Crash in PMWINX if the app isn't PM
11- Open32 isn't sending WM_NCCREATE msgs
12- HK_CBT hook not supported
13- HK_GETMESSAGE hook crashes in PMWINX
14- UpdateWindow sends a WM_ERASEBKGRND when it shouldn't
15- Open32 doesn't send a WM_ERASEBKGND when a window is activated
16- HeapCreate with dwMaximumSize == 0 seems to reserve only 64 kb memory
17 instead of 'unlimited'. Makes Win32 heaps impossible to use.
18- CreateDialogParamA can have a dlgproc set to NULL -> PMWINX crash
19- GetObject doesn't return the pointer to the bitmap data (always 0)
20- GetFileType returns FILE_TYPE_UNKNOWN for file handles
21- WriteFile with nrbytes = 0 should SetEndOfFile Open32 does not. (Notepad95)
22- GetDeviceCaps -> NT returns -1 when using 16 bits colors, NOT 65536!
23- File handles returned by _lopen & _lcreate are 32 bits; Windows returns
24 handles with only the least significant 16 bits filled.
25- Wrong calling convention for Win32 apis (_System instead of _stdcall or for
26 some apis _cdecl)
27- Wrong calling convention for callback handlers (_System instead of _stdcall)
28- Wrong calling convention for hook handlers (_System instead of _stdcall)
29- RegOpenKeyEx doesn't set the HKEY pointer (5th argument) to zero when an
30 error occurs. Some applications depend on this to do error checking.
31- RegSetValueA crashes in pmwinx.dll if the size parameter is 0 and the string
32 is very large.
33- CreateDIBSection does not flip bitmaps is vertical or horizonal size is
34 negative.
35- Default window message handlers (i.e. DefWindowProcA) don't properly support
36 some messages (i.e. WM_CTLCOLOR*)
37- GetSystemMetrics far from complete
38- SystemParametersInfoA incomplete
39- GetWindowLong returns 0xffff for GWL_ID. This should be 0xffffffff.
40- Open32 doesn't send any WM_PARENTNOTIFY messages
41- Open32 doesn't send WM_SETCURSOR or WM_MOUSEACTIVATE to parent windows
42- CS_SAVEBITS: window movements are slow, many repaints
43- SetROP2 with R2_XORPEN doesn't work. Example:
44 hOldPen = SelectObject (hdc, GetStockObject (BLACK_PEN));
45 oldRop = SetROP2 (hdc, R2_XORPEN);
46 MoveToEx (hdc, x, rect.top, NULL);
47 LineTo (hdc, x, rect.bottom);
48 SetROP2 (hdc, oldRop);
49 SelectObject (hdc, hOldPen);
50- FillRect uses the wrong color sometimes; see menu code (MENU_DrawMenuItem)
51- Wrong return values for GetDIBits & SetDIBitsToDevice
52 (nr of scan lines copied; not true/false)
53- SetDIBitsToDevice can't handle compressed bitmaps (presumably all other
54 bitmap apis as well)
[4600]55- Workaround added for bugs in Open32's SetDIBits; messes up colors for 1 bpp bitmaps
56 (reversing scanlines and calling SetBitmapBits works, but only if the all scanlines are updated!)
[3811]57
58Limitations:
59- No support for COMCTL32 controls.
60- Many Win32 apis not included.
61- Many apis have extensions in Win9x & NT 4 that are not supported.
62- No support for Win9x & NT 4 extended dialog styles.
63- Profile apis don't use ini files.
64
65General problem:
66- Can't extend Open32 easily without knowledge of internals
Note: See TracBrowser for help on using the repository browser.