Wine, WineLib and "Programming Windows 95"
Last updated: 2003/5/4
Description
The left part shows one button of each kind and the right part displays
the messages received when you click/double-click on these buttons. Note
that the ownerdrawn button is not fully implemented.
Wine tests
- The last button, an ownerdraw button, is invisible
because it is drawn on a white background instead of a grey one like all
the others. See the windows snapshot.
See bug
#54.
- The messages check out.
Winelib tests
Tested API
- GDI32
GetStockObject, GetTextMetricsA, SelectObject, SetBkMode, TextOutA
- KERNEL32
CloseHandle, ExitProcess, FlushFileBuffers, FreeEnvironmentStringsA, FreeEnvironmentStringsW, GetACP, GetCPInfo, GetCommandLineA, GetEnvironmentStrings, GetEnvironmentStringsW, GetFileType, GetLastError, GetModuleFileNameA, GetModuleHandleA, GetOEMCP, GetProcAddress, GetStartupInfoA, GetStdHandle, GetVersion, HeapAlloc, HeapCreate, HeapFree, LoadLibraryA, RtlUnwind, SetFilePointer, SetHandleCount, SetStdHandle, UnhandledExceptionFilter, WideCharToMultiByte, WriteFile
- USER32
BeginPaint, CreateWindowExA, DefWindowProcA, DispatchMessageA, EndPaint, GetDC, GetMessageA, InvalidateRect, LoadCursorA, LoadIconA, PostQuitMessage, RegisterClassExA, ReleaseDC, ScrollWindow, ShowWindow, TranslateMessage, UpdateWindow, ValidateRect, wsprintfA
Last updated: 2003/5/4
Description
Splits the window in two parts. The left part contains three scrollbars:
one for the red, one for the green and one for the blue. The right half
shows the resulting color.
Wine tests
- When I move the window around in managed mode the
scrollbars disappear. However they reappear when I resize the
window.
- The scrollbars normally have a grey border on the
sides. See this screenshot. In Wine there
is no border.
Winelib tests
Tested API
- GDI32
CreateSolidBrush, DeleteObject, GetStockObject, SetBkColor, SetTextColor
- KERNEL32
CloseHandle, ExitProcess, FlushFileBuffers, FreeEnvironmentStringsA, FreeEnvironmentStringsW, GetACP, GetCPInfo, GetCommandLineA, GetEnvironmentStrings, GetEnvironmentStringsW, GetFileType, GetLastError, GetModuleFileNameA, GetModuleHandleA, GetOEMCP, GetProcAddress, GetStartupInfoA, GetStdHandle, GetVersion, HeapAlloc, HeapCreate, HeapFree, LoadLibraryA, RtlUnwind, SetFilePointer, SetHandleCount, SetStdHandle, UnhandledExceptionFilter, WideCharToMultiByte, WriteFile
- USER32
CallWindowProcA, CreateWindowExA, DefWindowProcA, DispatchMessageA, GetDialogBaseUnits, GetKeyState, GetMessageA, GetSysColor, GetWindowLongA, InvalidateRect, LoadCursorA, LoadIconA, MoveWindow, PostQuitMessage, RegisterClassExA, SetClassLongA, SetFocus, SetRect, SetScrollPos, SetScrollRange, SetWindowLongA, SetWindowTextA, ShowWindow, TranslateMessage, UpdateWindow
Last updated: 2001/2/28
Description
Displays the names of the environment variables sorted alphabetically in
a listbox. Selecting one of them displays its value in a text label right
above.
Wine tests
Winelib tests
Tested API
- GDI32
GetTextMetricsA
- KERNEL32
CloseHandle, CompareStringA, CompareStringW, ExitProcess, FlushFileBuffers, FreeEnvironmentStringsA, FreeEnvironmentStringsW, GetACP, GetCPInfo, GetCommandLineA, GetEnvironmentStrings, GetEnvironmentStringsW, GetFileType, GetLastError, GetModuleFileNameA, GetModuleHandleA, GetOEMCP, GetProcAddress, GetStartupInfoA, GetStdHandle, GetVersion, HeapAlloc, HeapCreate, HeapFree, HeapReAlloc, LoadLibraryA, MultiByteToWideChar, RtlUnwind, SetEnvironmentVariableA, SetFilePointer, SetHandleCount, SetStdHandle, UnhandledExceptionFilter, WideCharToMultiByte, WriteFile
- USER32
CreateWindowExA, DefWindowProcA, DispatchMessageA, GetDC, GetMessageA, GetSystemMetrics, GetWindowLongA, LoadCursorA, LoadIconA, PostQuitMessage, RegisterClassExA, ReleaseDC, SendMessageA, SetFocus, SetWindowTextA, ShowWindow, TranslateMessage, UpdateWindow
Last updated: 2003/5/4
Description
Allows you to navigate the current disk using a listbox. Note that the
names are all 8.3 names. Double-clicking on a directory shows the contents
of this directory in the listbox. Double-clicking on a file displays as much
of the file as fits in the rest of the window.
Wine tests
- Works just like on Windows.
Winelib tests
Tested API
- GDI32
GetStockObject, GetTextMetricsA, SelectObject, SetBkColor, SetTextColor
- KERNEL32
CloseHandle, ExitProcess, FlushFileBuffers, FreeEnvironmentStringsA, FreeEnvironmentStringsW, GetACP, GetCPInfo, GetCommandLineA, GetCurrentDirectoryA, GetDriveTypeA, GetEnvironmentStrings, GetEnvironmentStringsW, GetFileType, GetFullPathNameA, GetLastError, GetModuleFileNameA, GetModuleHandleA, GetOEMCP, GetProcAddress, GetStartupInfoA, GetStdHandle, GetVersion, HeapAlloc, HeapCreate, HeapFree, LCMapStringA, LCMapStringW, LoadLibraryA, MultiByteToWideChar, OpenFile, RtlUnwind, SetCurrentDirectoryA, SetEnvironmentVariableA, SetFilePointer, SetHandleCount, SetStdHandle, UnhandledExceptionFilter, WideCharToMultiByte, WriteFile, _lclose, _lread
- USER32
BeginPaint, CallWindowProcA, CreateWindowExA, DefWindowProcA, DispatchMessageA, DrawTextA, EndPaint, GetDC, GetMessageA, GetParent, GetSysColor, GetSystemMetrics, GetWindowLongA, InvalidateRect, LoadCursorA, LoadIconA, PostQuitMessage, RegisterClassExA, ReleaseDC, SendMessageA, SetFocus, SetWindowLongA, SetWindowTextA, ShowWindow, TranslateMessage, UpdateWindow
Last updated: 2001/2/28
Description
This example implements two ownerdrawn buttons. These buttons decrease and
increase the size of the window by 10% respectively. There is a minimum
window size and once you reach it the window size will remain constant and
the window will shift to the right!
Wine tests
- Works just like on Windows.
Winelib tests
Tested API
- GDI32
GetStockObject, Polygon, SelectObject
- KERNEL32
CloseHandle, ExitProcess, FlushFileBuffers, FreeEnvironmentStringsA, FreeEnvironmentStringsW, GetACP, GetCPInfo, GetCommandLineA, GetEnvironmentStrings, GetEnvironmentStringsW, GetFileType, GetLastError, GetModuleFileNameA, GetModuleHandleA, GetOEMCP, GetProcAddress, GetStartupInfoA, GetStdHandle, GetVersion, HeapAlloc, HeapCreate, HeapFree, LoadLibraryA, RtlUnwind, SetFilePointer, SetHandleCount, SetStdHandle, UnhandledExceptionFilter, WideCharToMultiByte, WriteFile
- USER32
CreateWindowExA, DefWindowProcA, DispatchMessageA, DrawFocusRect, FillRect, FrameRect, GetDialogBaseUnits, GetMessageA, GetWindowRect, InvertRect, LoadCursorA, LoadIconA, MoveWindow, PostQuitMessage, RegisterClassExA, ShowWindow, TranslateMessage, UpdateWindow
Last updated: 2003/5/4
Description
This is a simple text editor with scrollbars, right-click menu offering
one-level undo, cut, copy, paste, delete and select all functionality. The
usual keyboard shortcuts also work (Ctrl-X, Ctrl-C, Ctrl-Ins,...)
Wine tests
- The bottom right corner normally shows the '/.'
resizing zone. It is not visible in Wine (I saw it some time ago on
other programs but it did not work anyway, was it removed because of
that?).
- In Windows there is a black border around the
edit area, but inside the scrollbars. In Wine this border goes around
the scrollbars but is actually partly hidden by them. See the
screenshot.
- Note that you may need to first add '$WINE_ROOT/dlls/x11drv' to the
path, so that wine can start wineclipsrv.
Winelib tests
Tested API
- GDI32
GetStockObject
- KERNEL32
CloseHandle, ExitProcess, FlushFileBuffers, FreeEnvironmentStringsA, FreeEnvironmentStringsW, GetACP, GetCPInfo, GetCommandLineA, GetEnvironmentStrings, GetEnvironmentStringsW, GetFileType, GetLastError, GetModuleFileNameA, GetModuleHandleA, GetOEMCP, GetProcAddress, GetStartupInfoA, GetStdHandle, GetVersion, HeapAlloc, HeapCreate, HeapFree, LoadLibraryA, RtlUnwind, SetFilePointer, SetHandleCount, SetStdHandle, UnhandledExceptionFilter, WideCharToMultiByte, WriteFile
- USER32
CreateWindowExA, DefWindowProcA, DispatchMessageA, GetMessageA, LoadCursorA, LoadIconA, MessageBoxA, MoveWindow, PostQuitMessage, RegisterClassExA, SetFocus, ShowWindow, TranslateMessage, UpdateWindow