Adobe PDF preview handler 64-bit fix

[Update 25/Jan/2010: Fix tool updated: Now corrects problem with 64-bit Office 2010. Thanks to Winfried Pohl for providing the extra step!]
[Update 15/Dec/2009: Added an automated fix tool which fixes the problem at the click of a button.]
[Update 15/Sep/2009: Added extra info that helps in some scenarios.]
[Update 11/Sep/2009: Added another rendering bug in the preview handler to the Hey, Adobe... list.]

Contents:

Introduction:

This page contains a simple fix for Adobe's PDF preview handler on 64-bit versions of Windows.

Preview handlers are lightweight components which let you view various file types within programs like Windows Explorer (in Windows Vista and Windows 7), Outlook 2007 and Directory Opus (via my bundled plugin).

Adobe Reader comes with Adobe's PDF preview handler but the installer has a mistake which means the preview handler does not work on 64-bit systems. People have been complaining about this for over two years with no official response as of September December 2009 January 2010.

It turns out the problem can be fixed via a simple registry change. The change is described below and a small program which performs the fix is also provided for your convenience.

(Update: Months have passed since I discovered the fix and Adobe still haven't corrected their installer. Having ignored the problem for over two years Adobe seem intent on ignoring the solution as well. That's despite me doing the research for them, giving away the fix for free and having hundreds of grateful people confirm that it works. What a useless company.)

Adobe PDF preview handler working on a 64-bit system

Automatic fix tool (updated 25/Jan/2010):

I wrote a program to automate the fix, taking care of all the details (e.g. differences between Windows 7 clean vs upgrade installs).

Details of the fix are still provided below, for those who wish to make the changes by hand, but using the program is recommended for most people, especially less technical people.

Download the tool:

(Interested programmers may also download the C++ source code: Reader_x64_fixer_1100_source.zip (94 KB) (PGP Sig))

This program was written in my spare time and is given away for free. I wrote it due to the popularity of the fix, to help non-technical people, and to celebrate Adobe ignoring the problem for another three months even though the solution was given to them on a plate. I hope this helps more people.

Adobe Reader preview handler x64 fixer screenshot

The tool:

  • Tells you if anything needs fixing and offers to fix things if so.
  • Understands differences between XP, Vista, Windows 7 and upgrade installs.
  • Requests elevation via UAC.
  • Checks that you're using 64-bit Windows.
  • Checks that Adobe Reader is installed.
  • Checks that Adobe Reader's preview handler is associated with PDF files. (If not you'll be asked if you want to associate it. This does not affect what happens when you double-click PDF files; use the Open-With menu for that.)
  • Checks that Adobe Reader's preview handler is registered under both the 32-bit and 64-bit registry (the latter is required for it to work under 64-bit Office 2010).
  • Allows you to undo the fix. (Only the fix itself. If you changed the association and want to go back then you'll usually have to reinstall or repair-install your alternative viewer.)
  • Does not need to be installed or uninstalled and, other than the fix itself, leaves nothing behind.
  • Is digitally signed so you can detect if it has been tampered with. (Thanks to GPSoftware for signing the exe for me.)

Additional notes:

  • You may need to re-apply the fix if you update or re-install Adobe Reader, unless Adobe get around to fixing their installer.

  • The fix does not make PDF thumbnails work. Fixing that is possible but also a lot more work. (It needs either Adobe to get off their backsides and release 64-bit components or for someone like me to build a 64-to-32-bit bridge that allows 64-bit Explorer to talk to Adobe's 32-bit dinosaur DLLs. Building such a thing would take a few days and isn't something I personally care about so I'm not planning on doing it. If you really want/need it and would be willing to pay me to write it, though, get in touch.)

  • The fix is only needed on 64-bit versions of Windows that have Adobe Reader installed. There's no need for the fix on 32-bit versions of Windows. If you're not sure what you have use Start -> Control Panel -> System and Security -> System and look at the reported system type.

  • If you are using a pre-release version of Office 2010 64-bit: The fix should now work for you as well. Download the 25/Jan/2010 update if you ran an earlier version. (Seems like the problem with 64-bit Office 2010 isn't Adobe's fault for once; the Office beta only seems to check in the 64-bit registry and should also be looking in the 32-bit registry like other preview handler hosts do. Maybe it'll be fixed when Office 2010 goes RTM.)

  • The fix requires Administrator access (UAC elevation) because it modifies values below HKEY_LOCAL_MACHINE in the registry.

  • What the fix does is explicitly documented (screenshot) in Microsoft's guidelines on registering preview handlers so it shouldn't cause any problems.

  • You do not need to apply the fix to make PDF viewing work in newer versions of Directory Opus. My bundled viewer plugin has a workaround built-in.

  • The fix affects Windows Explorer and Outlook but not Internet Explorer. IE uses the full Adobe Reader, not the preview handler, and Adobe Reader has a problem with IE8 and/or Windows 7 where it opens a standalone window for PDF files even if it's configured to display PDFs in the browser. The fix won't affect that.

  • Users on earlier versions of Opus may run into the same problem that affects IE8 and/or Windows 7. Update to Opus 9.1.3.4 or above.

Tool history:

  • v1.1.0.0 (25/Jan/2010): Added fix for problem with 64-bit Office 2010. Thanks to Winfried Pohl for providing the extra step!

  • v1.0.0.1 (15/Dec/2009): Initial release.

Making the fix by hand:

Details of the fix for people who are curious or would rather do things by hand than use an automated tool:

  • First, read all of the section above about the tool. Most of the information also applies to doing the fix by hand.

  • Open RegEdit and go to:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{DC6EFB56-9CFA-464D-8880-44885D7DC193}

    If it doesn't exist then you may not have Adobe Reader installed in the first place. Or Adobe may have changed the way they install it. Or you may be on 32-bit Windows. Or you may be on 64-bit Windows but have run the 32-bit version of RegEdit.exe by mistake.

  • There should be an existing AppID value, incorrectly set to {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}

  • Change the AppID value to {534A1E02-D58F-44f0-B58B-36CBED287C7C}

    Adobe PDF preview handler registry fix

    (This old .reg file (PGP sig) will do that part for you, but not what comes next.)

  • Now see if the same registry path exists but without the Wow6432Node part. If it does exist, make the same change as before. If it doesn't exist then that's fine and you can skip this part.

    (This second area will exist if Adobe Reader was installed on Windows Vista. That includes Vista machines which were later upgraded to Windows 7. I think it's due to changes in the way 32-bit registry redirection works in Windows 7. If you have both values you need to change both; if you only have one you only need to change that one.)

  • If you are using 64-bit Office 2010 then the second area (without the Wow6432Node) must exist for the preview handler to work. Copy the registry keys/values there if it doesn't exist. Or just use the automated tool above as it will do this for you.

  • If you have/had another PDF preview handler installed, such as FoxIt or PDF-XChange, then whichever handler was installed last will usually be the one which is used. Uninstalling preview handlers does not always put back the previous ones; instead, do a repair install or a re-install of the preview handler you wish to use so that it takes over the PDF preview handler registration. You can also do this by editing the PDF file-type in the registry. The tool above takes care of this and all the other issues so use that if you get stuck.

Hey, Adobe...

There are a few other things wrong with your PDF preview handler that should be fixed:

  • It doesn't correctly respond to IPreviewHandler::TranslateAccelerator or call IPreviewHandlerFrame::TranslateAccelerator in response. In particular, it swallows tab key presses when it has focus, breaking tab cycling in the host application.

  • Calls to IPreviewHandler::SetFocus and IPreviewHandler::QueryFocus always fail.

  • If the PDF preview handler receives its first WM_MOUSEWHEEL messages when it doesn't have the focus then it will start to draw blank pages instead of the document contents while its scrollbar will often change size to indicate a long document only has a few pages.

  • UPDATE 11/Sep/2009: If the PDF preview handler is scrolled by rapidly pushing the cursor or page up/down keys, it can draw blanks as well. (Screenshot.)

  • When the PDF preview handler has the focus it draws an ugly dotted-line border around its toolbar at the bottom. It looks like it thinks it's in ActiveX design mode or something. (Zoomed-in screenshot.)

  • Not a bug but it'd be nice if it had a simple text-search feature, please.

Rant:

  • It's constant excitement, maintaining working Adobe PDF support and cleaning up Adobe's mess all the time, let me tell you!

    Directory Opus uses my bundled plugin as a bridge for various third-party viewers, including Adobe Reader if it's installed. I made earlier versions use the full Adobe Reader by default. I had to write a 64-to-32-bit ActiveX proxy process to make the Adobe Reader and Flash viewers work within 64-bit Opus. A lot of effort due to Adobe being so lax at producing 64-bit components. Adobe Reader was originally used instead of the preview handler because of various issues with the preview handler.

    Then Windows 7 came out and Adobe Reader embedding was completely broken. (That could be Microsoft's fault but my bet is it's Adobe's.) So I worked around the preview handler issues, including the main one this page is about, and that is now the default in Opus.

    I wish I could bill Adobe for my time fixing their mess. The ridiculous thing is that whenever we've tried to officially inform Adobe of bugs in their code (like blindly calling through a null pointer after a failed QueryInterface), bugs which we've found and worked around for ourselves but which may cause problems for other people, they've asked us to pay them for a support contract. WTF? Who is supporting whom here, exactly?

    I don't think "CS" stands for "Creative Suite" anymore; I'm fairly sure it is actually the favourite word of Deadwood's Mr. Wu...

    (And yet, I keep giving them so much money.)

    (This is not to mention the constant stream of security issues in Adobe Reader and Adobe Flash, Adobe management thinking that releasing patches every three months is a fast response (faster than when they were even more useless, maybe, but not fast enough when their software is the #1 malware vector for the last year or two), the way the Flash and Reader update checkers do a terrible job of informing people of updates even when they are critical, the way you have to update Flash in each browser separately, the way Adobe try to make you install a download manager that's probably as big as the thing it actually downloads (which isn't big enough to warrant a download manager, either way), the way you download the Reader installer on a new machine then run the updater to find there's a MONTHS OLD update that they couldn't be bothered to package into the main installer despite the fact the update is blatantly the same size and overall content as the main installer, the still-unfixed bugs in Reader and Photoshop under Windows 7 (e.g. when maximizing with Aero), the foolish decision to add JavaScript to PDF for even more security issues (as if a file format only suited to storing legacy paper-based documents really needed interactivity given the obvious risks that come with JavaScript even with good programmers/management). Heck, even the latest version of Photoshop (CS4), the one Adobe app I actually like, has taken a nose-dive in terms of its UI. Sigh. What is wrong with that company? Okay, they didn't write iTunes or Lotus Notes, but they're getting close...)

    ...Anyway, FoxIt and the FoxIt preview handler also work in Office/IE/Explorer/Opus, if you prefer them. (Personally, as much as I hate the company, I find Adobe's font rendering easier to read.) PDF-XChange works, too, though I only discovered it recently and haven't used it much.

Thank you:

  • The post and discussion about the original version of this fix at Ed Bott's Windows Expertise unearthed further useful information and caveats on different Windows installs. That information has been incorporated into the fix tool and this page. Credit to Ed and the commenters on his blog for their help.

  • Winfried Pohl gets the credit for discovering the extra step needed to fix the preview handler under 64-bit Office 2010. Thanks, Winfried!

  • Thanks to all the people who took the time to e-mail me to say thanks themselves, and for confirming that the fix worked for them. It's great to know that so many people have found the fix useful.