AcroPDFImpl64.dll crashes when PDF is accessed via ActiveX/Webbrowser Control x64
Following bug has been introduced with a recent Adobe Reader (or Windows?) update. It affects all our customers.
Steps to reproduce:
1. Create a 64 Bit C# application (32 Bit Works)
2. In the application, use ActiveX, or WebBrowser control and open/navigate to "C:\documentname.pdf"
Expected result: PDF shows up
Actual result: Screen stays gray. In the Windows Error Reporting you will see that AcroPDFImpl64.dll has crashed.
It is very important for us, because our customers rely on this functionality and our software product is currently not useable due to this bug.
Please contact me through email info at hickelsoft.de . Thank you very much!
Best regards,
Daniel Marschall
CEO of HickelSOFT
Name der fehlerhaften Anwendung: HsRunStarter.exe, Version: 8.0.0.0, Zeitstempel: 0x60d0a93a
Name des fehlerhaften Moduls: AcroPDFImpl64.dll_unloaded, Version: 21.5.20048.43252, Zeitstempel: 0x60b07ef8
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0000000000059f39
ID des fehlerhaften Prozesses: 0x1b7c
Startzeit der fehlerhaften Anwendung: 0x01d7680d15d9e38e
Pfad der fehlerhaften Anwendung: D:\CORA2012\BAP\bin\HsRunStarter.exe
Pfad des fehlerhaften Moduls: AcroPDFImpl64.dll
Berichtskennung: 7672e4f7-7674-4f1e-80dd-a7b7e4a8415a
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
-
Danilo Simões Bicas commented
Jesus Christ!!!!! How to fix this problem?????????
VS 2022 Pro + Acrobat Reader DC (22 or 19). App windows forms (platform: Any CPU/64).....NOT SHOW PDF FILE!!!!!!!
Just a windows black gray but not show the file!!!!!!!No one error message, no one error in Events Visualizer ......
-
Anonymous commented
@Bernhard
Adobe didn't change the manifest of this file since I first discovered this issue back in 2018.You could try my workaround which i posted here. But be careful with this registry setting, it can open a security hole to your system.
-
Bernhard Küpper commented
Windows 10 (x64) 20H2 with 2022-05 Cumulative Updates installed
Adobe Acrobat Reader DC (2022.001.20117, 64-bit)
I have a simple WinForms form where I added the Adobe PDF Reader COM component. It just initializes the component and loads a PDF. When I build in x86, the PDF is shown. When I build in x64, the application crashes with:
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
at System.Windows.Forms.SafeNativeMethods._TrackMouseEvent(TRACKMOUSEEVENT tme)
at System.Windows.Forms.Control.HookMouseEvent()
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)I have enable debugging for Acrobat and captured the logs with DebugView for both architectures (see attached files x86.log and x64.log).
How can I make x64 work?
Thanks,
Bernhard
-
Anonymous commented
We also try to use the Adobe PDF Reader ActiveX control in a 64-bit WPF app, but the app crashes every time when I try to move the cursor inside the control. The crash is caused by a BadImageFormatException when the CLR tries to load "comctl32.dll". The root cause of this problem is the embedded manifest in "AcroPDFImpl64.dll" which defines wrong values for processorArchitecture (X86).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Adobe Systems Inc.Acrobat.Adobe PDF Browser Control" type="win32"></assemblyIdentity>
<description>Adobe PDF Browser Control.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>If I change the "PreferExternalManifest" registry setting and provide my own manifest as external file with correct values for processorArchitecture (amd64), then there is no crash anymore.
But this change would have to much disadvantages to be usable in production environments.
Is it possible to provide a correct version with the next Acrobat Reader Update?
-
Robert Massart commented
This issue is worst than that actually.
C# and C++ 64-bit programs that use the (Adobe DC 64-bit) AcroPDF ActiveX fail similarly.
Only C# and C++ 32-bit programs that use (Adobe DC 64-bit) AcroPDF ActiveX will operate properly.
attached is are really simple C# program configured to run 64-bit that will demonstrate the failure.