This patch enables the w32lib wrapper to work with versions of Windows 98 (tested) and theoretically all other versions of Windows. If your program calls a function that is not available to your version of Windows your program will tell you that the function cannot be linked and then crash. You should check with WINDOWS_VERSION at the beginning of your program so your program can exit more nicely. To use this patch get into the directory above your winlib32 wrapper directory, rename your winlib32 wrapper directory to 007001, put a copy of this patch in that directory, and execute:· patch -p0 < win32lib_0_70_1forW9X.diff Shawn Pringle diff -u -r 007001orig\Include\changes.txt 007001\Include\changes.txt --- 007001orig\Include\changes.txt Sat Jun 16 04:31:08 2007 +++ 007001\Include\changes.txt Sat Oct 20 10:56:30 2007 @@ -4,6 +4,7 @@ -- This records, in brief, the major changes done to the source code. -- Where possible, the appropriate people are given credit as well. -- +--/li Fixed. The library was not compatible with Windows 9X machines. --/b> --/li Fixed. The Alt key was not reported in the shifts when combined with a non printable key. --/li Fixed. getMenuPosn() did not return a correct value for items spawning a submenu. diff -u -r 007001orig\Include\w32resources.ew 007001\Include\w32resources.ew --- 007001orig\Include\w32resources.ew Tue Jul 17 10:00:52 2007 +++ 007001\Include\w32resources.ew Sat Oct 20 10:38:46 2007 @@ -671,7 +671,7 @@ mem=w32new_memset() pNeeded = w32acquire_mem(mem,Long) - if xGetDefaultPrinter >0 then -- Win2K and later + if find(WINDOWS_VERSION[1],{ WIN_XP, WIN_UNKNOWN } ) != 0 then -- Win2K and later needed=64 -- some supposedly reasonable start value pBuffer = w32acquire_mem(mem,needed) poke4(pNeeded,needed) @@ -686,7 +686,7 @@ -- try again, now it will work rc = not w32Func(xGetDefaultPrinter,{pBuffer,pNeeded}) end if - elsif WINDOWS_VERSION<=WIN_ME then + elsif WINDOWS_VERSION[1] <= WIN_ME then pReturned = w32acquire_mem(mem,Long) -- first try to know how many bytes needed for pPInfo5 VOID = w32Func(xEnumPrinters, {PRINTER_ENUM_DEFAULT,NULL,5,0,0,pNeeded,pReturned})