Wine, WineLib and "Programming Applications for Windows"
Last updated: 2001/3/1
Description
This application demonstrates the use of alertable asynchronous
I/O by implementing a file copy operation.
Note that this example does not work on Windows 9x because Windows
9x does not support asynchronous I/O.
Wine tests
- Just like on Windows! Wine does not
support asynchronous I/O either, but returns a different
error code: ERROR_CALL_NOT_IMPLEMENTED (120) instead of
ERROR_NOT_SUPPORTED (50).
Winelib tests
Tested API
- KERNEL32
CloseHandle, CreateFileA, GetFileSize, GetLastError, GetModuleHandleA, GetStartupInfoA, ReadFileEx, SetLastError, SleepEx, WriteFileEx
- MSVCRT20
_XcptFilter, __getmainargs, __p__acmdln, __p__commode, __p__fmode, _controlfp, _except_handler3, _exit, _initterm, exit, vsprintf
- USER32
DialogBoxParamA, EnableWindow, EndDialog, GetDlgItem, GetWindowLongA, GetWindowTextA, LoadCursorA, LoadIconA, SendMessageA, SetClassLongA, SetCursor, SetDlgItemInt, SetWindowTextA
- comdlg32
GetOpenFileNameA
Last updated: 2001/3/1
Description
Demonstrates the use of FindXxxFile by performing a depth
traversal of the current drive's directory tree and displaying the
result in a list.
Wine tests
Winelib tests
Tested API
- KERNEL32
FindClose, FindFirstFileA, FindNextFileA, GetCurrentDirectoryA, GetModuleHandleA, GetStartupInfoA, SetCurrentDirectoryA
- MSVCRT20
_XcptFilter, __getmainargs, __p__acmdln, __p__commode, __p__fmode, _controlfp, _except_handler3, _exit, _initterm, exit, sprintf
- USER32
DialogBoxParamA, EndDialog, GetClientRect, GetDlgItem, GetWindowLongA, LoadIconA, SendMessageA, SetClassLongA, SetWindowPos
Last updated: 2001/3/1
Description
Enumerates the volumes, calls GetVolumeInformation on each of
them and displays the results in a dialog box.
If you have many drives you will notice that all may not be
displayed by the drop-down list. The workaaround is to use the
keyboard to scroll to the one you want.
Wine tests
- For FAT filesystems Windows 9x usually sets the flag
'FS_UNICODE_STORED_ON_DISK' but not Wine. This is probably
correct though since the Unix API probably does not allow Wine
to store Unicode on the filesystem.
- If you go on 'a:' but the floppy is not
mounted, you don't get the 'NO VOLUME INFO' error. Instead you
get a mixture of the floppy information, e.g. 'removable', and
that of the root filesystem, e.g. 'Free clusters'. The same
happens with the CD-ROM drive except that the 'Bytes/sector'
value is inconsistent with the other values.
- For a CDFS filesystem 'Component length'
is 255 like on Windows 95 instead of 110 like on Windows 98. I
suspect that the correct value is 110 and Windows 95 is
wrong.
- For CDFS filesystems the value of
'sectors/cluster' is 8 instead of 16 which is compensated by the
value of 'Clusters' which is double that of Windows.
- When the underlying filesystem is a Unix
filesystem we should set 'FS_CASE_SENSITIVE' in the information
returned by GetVolumeInformation. NT does that for NTFS. Maybe
we could even set 'FILE_SUPPORTS_SPARSE_FILES'.
- The disk serial number is not the same in Wine and in Windows.
As far as I know Wine has no way to access this serial number
so it returns the same serial number for all drives (unless
something is specified in the configuration file).
Winelib tests
Tested API
- KERNEL32
GetDiskFreeSpaceA, GetDriveTypeA, GetLogicalDriveStringsA, GetLogicalDrives, GetModuleHandleA, GetProcessHeap, GetStartupInfoA, GetVolumeInformationA, HeapAlloc, HeapFree, HeapSize
- MSVCRT20
_XcptFilter, __getmainargs, __p__acmdln, __p__commode, __p__fmode, _controlfp, _except_handler3, _exit, _initterm, exit, sprintf, strchr
- USER32
DialogBoxParamA, EndDialog, GetDlgItem, GetWindowLongA, GetWindowTextA, LoadIconA, SendMessageA, SetClassLongA, SetWindowTextA, wsprintfA
Last updated: 2001/3/1
Description
Demonstrates the use of the file change notification mechanism.
Wine tests
- The application freezes on startup.
Winelib tests
Tested API
- KERNEL32
FindClose, FindCloseChangeNotification, FindFirstChangeNotificationA, FindFirstFileA, FindNextChangeNotification, FindNextFileA, GetCurrentDirectoryA, GetLastError, GetModuleHandleA, GetStartupInfoA, SetCurrentDirectoryA
- MSVCRT20
_XcptFilter, __getmainargs, __p__acmdln, __p__commode, __p__fmode, _controlfp, _except_handler3, _exit, _initterm, exit, sprintf
- USER32
CreateDialogParamA, DestroyWindow, DispatchMessageA, EnableWindow, GetDlgItem, GetDlgItemTextA, GetFocus, GetWindowLongA, IsDialogMessageA, IsDlgButtonChecked, LoadIconA, MessageBoxA, MsgWaitForMultipleObjects, PeekMessageA, PostQuitMessage, SendMessageA, SetClassLongA, SetDlgItemInt, SetDlgItemTextA, SetFocus, TranslateMessage