[Bug 21987] Acrobat 7 tryout installer complains: "This Postscript Driver or Windows Platform (Win9x/Me) not supported" (winspool.drv missing level 8/global default printer settings handling)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun May 6 07:05:21 CDT 2012
http://bugs.winehq.org/show_bug.cgi?id=21987
--- Comment #5 from Anastasius Focht <focht at gmx.net> 2012-05-06 07:05:21 CDT ---
Hello,
after commit:
http://source.winehq.org/git/wine.git/commitdiff/0cf0c28d168ffdb084b6a28386cfe6b667b755dd
the installer still shows the message.
--- snip ---
0015:Call
winspool.drv.GetPrinterA(00000001,00000008,00d955d0,000000e8,019ee84c)
ret=004d562a
...
0015:trace:winspool:GetPrinterW (0x1,8,0xd956c0,232,0x19ee84c)
0015:Call advapi32.RegCreateKeyW(80000002,f7218880
L"System\\CurrentControlSet\\Control\\Print\\Printers",019ee438) ret=f71ff906
...
0015:trace:winspool:GetPrinterW returning 1 needed = 232
0015:trace:winspool:convert_printerinfo_W_to_A (0xd955d0, 0xd956c0, 8, 232, 1)
0015:trace:winspool:convert_printerinfo_W_to_A (8) #0
...
0015:Call KERNEL32.WideCharToMultiByte(00000000,00000000,00d956c4 L"Adobe
PDF",ffffffff,00d957b0,00000020,00000000,00000000) ret=f71fd6b2
0015:Ret KERNEL32.WideCharToMultiByte() retval=0000000a ret=f71fd6b2
...
0015:Ret winspool.drv.GetPrinterA() retval=00000001 ret=004d562a
...
0015:Call user32.MessageBoxA(00000000,004d9e60 "This Postscript Driver or
Windows Platform (Win9x/Me) not supported",004d9ea4 "Setup Devmode",00000010)
ret=004d5778
--- snip ---
Debugging that custom action "SetupDeviceMode" reveals it expects private
driver data to be returned.
Annotated code snippet from custom action dll (SetupDeviceMode ->
CustomizeDevMode):
--- snip ---
...
.text:004D55F3 cmp [ebp+var_40], ebx
.text:004D55F6 lea eax, [ebp+pcbNeeded]
.text:004D55F9 push eax ; pcbNeeded
.text:004D55FA push ebx ; cbBuf
.text:004D55FB push ebx ; pPrinter
.text:004D55FC jnz short loc_4D562E
.text:004D55FE push 8 ; Level
.text:004D5600 push [ebp+hPrinter] ; hPrinter
.text:004D5603 call GetPrinterA ; get required buffer size
.text:004D5608 push [ebp+pcbNeeded] ; dwBytes
.text:004D560B push 40h ; uFlags
.text:004D560D call ds:GlobalAlloc
.text:004D5613 mov edi, eax
.text:004D5615 lea eax, [ebp+pcbNeeded]
.text:004D5618 push eax ; pcbNeeded
.text:004D5619 mov [ebp+pPrinter], edi
.text:004D561C push [ebp+pcbNeeded] ; cbBuf
.text:004D561F push edi ; pPrinter
.text:004D5620 push 8 ; Level
.text:004D5622 push [ebp+hPrinter] ; hPrinter
.text:004D5625 call GetPrinterA ; get level 8 data
.text:004D562A mov eax, [edi]
.text:004D562C jmp short loc_4D565D
...
.text:004D565D movzx edi, word ptr [eax+24h] ; dmSize
.text:004D5661 add edi, eax ; offset to private area
.text:004D5663 cmp word ptr [eax+22h], 500h ; dmDriverVersion > 0x500
.text:004D5669 mov [ebp+pDevModeInput], eax
.text:004D566C jbe _error_driver_os_unsupp
.text:004D5672 cmp edi, ebx
.text:004D5674 jz _error_driver_os_unsupp
.text:004D567A cmp word ptr [edi+96h], 10h ; priv_area+0x96 ??
.text:004D5682 jnz _error_driver_os_unsupp
.text:004D5688 cmp dword ptr [edi], 'VIRP' ; priv_area+0: 'PRIV'
.text:004D568E jnz _error_driver_os_unsupp
--- snip ---
For the "dmDriverVersion" field it expects > 0x500.
Next problems are fields in private driver data area.
Apparently this isn't handled in registry yet.
There are a couple of FIXME's related to winspool, some of them seem harmless
and some might contribute to failures.
--- snip ---
0015:Call winspool.drv.SetPrinterA(00000001,00000002,00d955d0,00000000)
ret=004d5407
...
0015:trace:winspool:SetPrinterW (0x1, 2, 0xd957b8, 0)
...
0015:fixme:winspool:SetPrinterW Unimplemented level 2
...
0015:Ret winspool.drv.SetPrinterA() retval=00000000 ret=004d5407
...
--- snip ---
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list