http://bugs.winehq.org/show_bug.cgi?id=9942
Summary: Powerpoint Viewer 2007 doesn't handle .pptx Product: Wine Version: 0.9.46. Platform: Other OS/Version: other Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: test AssignedTo: wine-bugs@winehq.org ReportedBy: Speedator@gmx.de
Tried this .pptx for example: "The Next Wave has arrived, but why should you care?"(http://www.microsoft.com/nz/events/techbrief/agenda.mspx). It is said that I need the Compatibility pack(which does not make sense, because this small app is expecially for this file-format and btw. it is not needed at Windows XP), so I installed it(http://www.microsoft.com/downloads/details.aspx?familyid=941B3470-3AE9-4AEE-...) without an issue. But it again wants this pack to be installed... .ppt-files run fine(tested a lot from different office-versions). The PP Viewer 2007 is installed with Windows XP-settings on gutsy.
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #1 from Julian W. Speedator@gmx.de 2007-10-07 11:29:42 --- Created an attachment (id=8443) --> (http://bugs.winehq.org/attachment.cgi?id=8443) output
http://bugs.winehq.org/show_bug.cgi?id=9942
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com Severity|enhancement |normal Status|UNCONFIRMED |NEW Component|test |wine-ole Ever Confirmed|0 |1 Keywords| |download Summary|Powerpoint Viewer 2007 |Powerpoint Viewer 2007 |doesn't handle .pptx |crashes opening .pptx files Target Milestone|--- |1.0.0
--- Comment #2 from Dan Kegel dank@kegel.com 2007-10-07 15:18:47 --- The log file you provided says: err:module:import_dll Library t2embed.dll (which is needed by L"C:\Programme\Microsoft Office\Office12\ppcnv.dll") not found This means the app needs t2embed.dll. This came with IE6, but also comes with Word Viewer 97. Word Viewer 97 is free to install, but it's a bit of a pain.
Here's a script that demonstrates how to install it all together:
# Download needed files test -f wordview.exe || wget http://downloads.pcworld.com/pub/new/business/word_processing/wordview.exe test -f PowerPointViewer.exe || wget http://download.microsoft.com/download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a... test -f Keynote.pptx || wget http://download.microsoft.com/download/4/D/E/4DE0D83D-7845-4FD1-9A8E-12F532E...
# Blow away wine directory, install, start viewer on example file rm -rf .wine wineprefixcreate cp wordview.exe .wine/drive_c/wvinstall.exe mv .wine/dosdevices/z: .wine/dosdevices/oldz cd .wine/drive_c wine wvinstall.exe cd ../.. mv .wine/dosdevices/oldz .wine/dosdevices/z: wine PowerPointViewer.exe while ! test -f .wine/drive_c/Program\ Files/Microsoft\ Office/Office12/PPTVIEW.EXE do sleep 1 done wine .wine/drive_c/Program\ Files/Microsoft\ Office/Office12/PPTVIEW.EXE Keynote.pptx
Unfortunately, after you go through all this trouble, you hit an OLE/RPC error:
fixme:rpc:NdrClientCall2 new correlation description not implemented fixme:rpc:NdrStubCall2 new correlation description not implemented fixme:rpc:calc_arg_size Unhandled type 1a fixme:ole:PropVariantCopy Invalid element type: 12l wine: Unhandled page fault on write access to 0x00000004 at address 0x7bc3fff3 (thread 0025), starting debugger...
Eventually, perhaps Wine will have to provide a copy of t2embed.dll. For now, let's say the first bug was the OLE error. The OLE error does not occur when loading a plain old .ppt file, I think.
Marking as target 1.0 per http://wiki.winehq.org/WineReleaseCriteria
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #3 from Dan Kegel dank@kegel.com 2007-10-07 15:20:12 --- Created an attachment (id=8452) --> (http://bugs.winehq.org/attachment.cgi?id=8452) Script reproducing the problem
Here's the script again as an attachment (since the lines were long and fragile).
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #4 from Dan Kegel dank@kegel.com 2008-03-30 19:53:59 --- Still happens with current wine, though instead of crashing I just get a heap error and a dialog box from the app.
http://bugs.winehq.org/show_bug.cgi?id=9942
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.0.0 |1.2.0
--- Comment #5 from Dan Kegel dank@kegel.com 2008-05-05 08:33:23 --- Older than 90 days, no change in 30 days, seems difficult or unlikely to fix by 1.0 -> deferring to 1.2.
http://bugs.winehq.org/show_bug.cgi?id=9942
Lukas Jirkovsky l.jirkovsky@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |l.jirkovsky@gmail.com
--- Comment #6 from Lukas Jirkovsky l.jirkovsky@gmail.com 2008-06-03 04:02:33 --- confirming with wine 1.0-rc3
http://bugs.winehq.org/show_bug.cgi?id=9942
Rob Shearman robertshearman@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ole |ole32
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #7 from Vijay Kamuju infyquest@gmail.com 2008-08-14 09:58:37 --- I tried but cannot install wordview in 1.1.2 it gets the following message and hangs up err:ntdll:RtlpWaitForCriticalSection section 0x7ef32c80 "syslevel.c: Win16Mutex" wait timed out in thread 0029, blocked by 002a, retrying (60 sec)
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #8 from Lei Zhang thestig@google.com 2008-08-14 13:16:16 --- I tried with wine-git, following Dan's recipe - Powerpoint just says: PowerPoint Viewer cannot open the file Keynote.pptx"
http://bugs.winehq.org/show_bug.cgi?id=9942
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com
--- Comment #9 from Austin English austinenglish@gmail.com 2008-09-09 21:12:27 --- (In reply to comment #8)
I tried with wine-git, following Dan's recipe - Powerpoint just says: PowerPoint Viewer cannot open the file Keynote.pptx"
Still present in git. Works fine in the full version, however.
http://bugs.winehq.org/show_bug.cgi?id=9942
Hin-Tak Leung htl10@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |htl10@users.sourceforge.net
--- Comment #10 from Hin-Tak Leung htl10@users.sourceforge.net 2008-10-19 20:54:52 --- wordviewer 2003 does seem to come with t2embed.dll any more.
http://bugs.winehq.org/show_bug.cgi?id=9942
Alexandre amaciel81@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |16530
http://bugs.winehq.org/show_bug.cgi?id=9942
Michiel de Bruijne m.debruijne@matrict.nl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |m.debruijne@matrict.nl
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #11 from Dan Kegel dank@kegel.com 2009-03-22 09:42:39 --- chrome seems to need t2embed.dll.
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #12 from Austin English austinenglish@gmail.com 2009-05-05 10:06:21 --- A stub t2embed.dll has been committed.
http://bugs.winehq.org/show_bug.cgi?id=9942
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de
--- Comment #13 from André H. nerv@dawncrow.de 2009-06-20 07:27:48 --- What function does it try to use?
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #14 from Austin English austinenglish@gmail.com 2009-06-23 00:26:31 --- Created an attachment (id=21960) --> (http://bugs.winehq.org/attachment.cgi?id=21960) +relay in git
I don't see any t2embed in the +relay...
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #15 from Austin English austinenglish@gmail.com 2009-06-23 00:33:57 --- Interestingly, if you cd to the office dir, then use 'wine PPTVIEW.EXE Z:\home\austin\Keynote.pptx', it starts to load the file, looping through the 'opening file' dialog forever.
http://bugs.winehq.org/show_bug.cgi?id=9942
Jeremy White jwhite@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jwhite@codeweavers.com Summary|Powerpoint Viewer 2007 |Powerpoint Viewer 2007 |crashes opening .pptx files |crashes opening | |Keynote.pptx
--- Comment #16 from Jeremy White jwhite@codeweavers.com 2009-10-16 00:08:15 --- As of Wine 1.1.31, the Powerpoint viewer largely installs and works; you can view simple .ppt files as well as simple .pptx files.
You cannot view the described Keynote.pptx, most likely due to missing functions in riched20.dll (CreateTextBoxLayout for starters).
Getting a native riched20 enables the viewing of Keynote.pptx.
Bug 14980 is related and of interest.
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #17 from Jeremy White jwhite@codeweavers.com 2009-10-16 21:41:57 --- Created an attachment (id=24178) --> (http://bugs.winehq.org/attachment.cgi?id=24178) Proposed patch to enable native dll installed in Office directory to load
This patch tries native on a dll when we've been given a specific file. It makes Powerpoint open and show this slide show for me. It is not obviously correct; taking to wine-devel for discussion.
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #18 from Jeremy White jwhite@codeweavers.com 2009-10-16 21:44:00 --- The real issue here is that we load *builtin* riched20 when given this call: Call KERNEL32.LoadLibraryA(0033c0a8 "C:\Program Files\Common Files\Microsoft Shared\office12\riched20.dll")
Arguably, we should load the custom riched dll that Microsoft has supplied rather than our builtin. Taking to wine-devel to make the argument part of arguably...
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #19 from Dan Kegel dank@kegel.com 2009-10-16 22:15:32 --- This happens with gdiplus and Visio, http://bugs.winehq.org/show_bug.cgi?id=9422#c29 and Office 2003/2007 and riched20: http://bugs.winehq.org/show_bug.cgi?id=14980 I sure would like to see it fixed...
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #20 from Jeremy White jwhite@codeweavers.com 2009-10-18 17:08:23 --- It's not as simple as it appears.
See the portion of the discussion here: http://www.winehq.org/pipermail/wine-devel/2009-October/079270.html
Apparently, some applications ship private versions of system dlls which function badly, and so we intentionally want to avoid them.
Alexandre is comfortable with accommodating this in specific cases, but he wants it quite narrow. He provides some further guidance in the thread referenced above. Dan also provides a bit of possibly useful guidance in this comments: http://bugs.winehq.org/show_bug.cgi?id=14980#c15
http://bugs.winehq.org/show_bug.cgi?id=9942
Rob Shearman robertshearman@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ole32 |richedit
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #21 from Saulius K. saulius2@gmail.com 2010-06-13 09:49:29 --- (In reply to Bug 14980 comment #15 from Dan Kegel 2009-02-27 13:37:24)
Alexandre suggests in http://www.winehq.org/pipermail/wine-devel/2009-February/073288.html that it would be ok for the loader to check the version of the native dll with the version of the builtin one, and use the native one if higher.
...
hModule = LoadLibraryExW(filename, 0, LOAD_LIBRARY_AS_DATAFILE); hRsrc = FindResourceW(hModule, MAKEINTRESOURCEW(VS_VERSION_INFO), MAKEINTRESOURCEW(VS_FILE_INFO)); len = SizeofResource(hModule, hRsrc); hMem = LoadResource(hModule, hRsrc); buf = LockResource(hMem); vffi = (VS_FIXEDFILEINFO*)VersionInfo32_Value((VS_VERSION_INFO_STRUCT32*)buf); verify that ( vffi->dwSignature == VS_FFI_SIGNATURE ) access vffi->dwFileVersionMS and vffi->dwFileVersionMS FreeResource(hMem);
(And summarizing mails)
On Sun, 18 Oct 2009, Alexandre Julliard wrote:
Jeremy White writes:
Alexandre Julliard wrote:
Dan Kegel writes:
OK, so even on an absolute path, we need to do a version check, and only use the bundled copy if it's newer than builtin? (That's what I thought you meant earlier.)
Yes, and even that may not be enough, it may have to be limited further to some very specific cases.
How do we go about identifying those specific cases? Should we start with a list of dlls (with one entry in the list - riched20)?
Only as a last recourse. We can most likely find better ways of addressing that specific problem, for example by having riched20 itself take care of it instead of doing it in the loader.
So it basically needs to put (pseudo-)code (from the Dan's comment) into the DllMain() for the bug to be fixed, right?
In such case we need to get the full pathname of native dll (to be loaded as builtin) in the DllMain() of the builtin version:
trace:module:load_builtin_dll Trying built-in L"C:\Program Files\Common Files\Microsoft Shared\office12\riched20.dll" warn:module:load_builtin_dll failed to load .so lib for builtin L"C:\Program Files\Common Files\Microsoft Shared\office12\riched20.dll": /usr/src/wine-git/.wine/dosdevices/ trace:module:load_builtin_dll Trying built-in L"riched20.dll" ... trace:module:load_builtin_callback loaded riched20.dll 0x1841b8 0x7dd00000 001c: load_dll( handle=0000, base=7dd00000, name=001841e0, size=303104, dbg_offset=0, dbg_size=0, filename=L"C:\windows\system32\riched20.dll" ) 001c: load_dll() = 0 trace:loaddll:load_builtin_dll Loaded L"C:\windows\system32\riched20.dll" at 0x7dd00000: builtin trace:module:MODULE_InitDLL (0x7dd00000 L"riched20.dll",WINE_PREATTACH,(nil)) - CALL trace:module:MODULE_InitDLL (0x7dd00000,WINE_PREATTACH,(nil)) - RETURN 1 trace:module:load_dll Loaded module L"C:\Program Files\Common Files\Microsoft Shared\office12\riched20.dll" (builtin) at 0x7dd00000 001c: close_handle( handle=014c ) 001c: close_handle() = 0 trace:module:process_attach (L"riched20.dll",(nil)) - START trace:module:MODULE_InitDLL (0x7dd00000 L"riched20.dll",PROCESS_ATTACH,(nil)) - CALL trace:module:GetModuleFileNameW L"C:\windows\system32\riched20.dll" err:richedit:DllMain dll_name: "C:\windows\system32\riched20.dll"
I see load_builtin_dll() saves the full pathname (we need) in a string called "path". Called 1st time the function fails, because "path" is PE image. Called 2nd time it already uses stripped name ("riched20.dll") and ignores "path" so the full pathname is lost in further action. We need to store, probably along with the "C:\windows\system32\riched20.dll".
I am stepping into someone's shoes :) and I fail to see which way is right to go.
Could the "path" be written into WINE_MODREF->ldr.FullDllName so in DllMain() one could check it? Then load_builtin_callback() could be hacked to accept combined names, eg. "C:\windows\system32\riched20.dll;riched20.dll". Or it could strip the name on it's own just by using some additional flag passed. Or w/o a flag, but by rewriting logic in load_dll() also a bit.
Or could PEB_LDR_DATA extended instead to store the "path"? Or maybe WINE_MODREF could go for it?
I didn't investigate further, so the last chapter is my speculation. And the bug belongs to Alexandre, I guess :)
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #22 from Saulius K. saulius2@gmail.com 2010-06-13 09:55:55 --- Ups: the line from the trace was added by me (for quick hand debugging purpose):
err:richedit:DllMain dll_name: "C:\windows\system32\riched20.dll"
http://bugs.winehq.org/show_bug.cgi?id=9942
Saulius K. saulius2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saulius2@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=9942
--- Comment #23 from Jeremy White jwhite@codeweavers.com 2010-06-14 15:13:12 --- The NSIS installer for Cake Poker also exhibits this problem; in it's case, it's doing a LoadLibrary(%TMPDIR%/version.dll).
http://bugs.winehq.org/show_bug.cgi?id=9942
butraxz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |butraxz@gmail.com
--- Comment #24 from butraxz@gmail.com 2012-05-17 14:59:39 CDT --- This bug has not been updated for two years. Is this still an issue i current (1.5.4) or newer wine ? You may also close this as abandoned if you feel that that this is issue is no longer relevant to you.
http://bugs.winehq.org/show_bug.cgi?id=9942
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #25 from Rosanne DiMesio dimesio@earthlink.net 2012-05-17 15:48:10 CDT --- The link to the sample PowerPoint in the original description is dead. I tested with Keynote.pptx. PowerPoint Viewer 2007 is actually PowerPoint Viewer 2003 with the Compatibility Pack applied, and it cannot open any pptx file because of bug 12209, but it does not crash trying. Tested in 1.5.4 without any overrides (not even riched20).
This bug has evolved so much it's difficult to tell what exactly it's supposed to be about. But the summary says it's a crash, which no longer happens, and the console output in current Wine does not include any mention of riched20 or t2embed.dll, so I'm going to mark this fixed.
http://bugs.winehq.org/show_bug.cgi?id=9942
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #26 from Alexandre Julliard julliard@winehq.org 2012-05-25 13:41:25 CDT --- Closing bugs fixed in 1.5.5.
http://bugs.winehq.org/show_bug.cgi?id=9942
Bug 9942 depends on bug 16530, which changed state.
Bug 16530 Summary: Power Point Viewer 2007 stops working http://bugs.winehq.org/show_bug.cgi?id=16530
What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID
https://bugs.winehq.org/show_bug.cgi?id=9942
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://web.archive.org/web | |/20061208145834/http://down | |load.microsoft.com/download | |/f/5/a/f5a3df76-d856-4a61-a | |6bd-722f52a5be26/PowerPoint | |Viewer.exe CC| |focht@gmx.net OS|other |Linux Hardware|Other |x86
--- Comment #27 from Anastasius Focht focht@gmx.net --- Hello folk,
adding stable links via Internet Archive for documentation.
https://web.archive.org/web/20061208145834/http://download.microsoft.com/dow...
https://web.archive.org/web/20101220190135/http://download.microsoft.com/dow...
https://web.archive.org/web/20130515202905/http://downloads.pcworld.com/pub/...
Regards