Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.536 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Adobe XI (Version 11.0.07) killt PDF-Anzeige über Active X Control

  Alt 27. Mai 2014, 18:46
Hallo und erst mal vielen Dank für den Hinweis.

Irgendwie bekommen ich es aber dennoch nicht hin. Bin so vorgegangen, wie in dem Link beschrieben, habe also zunächst diese Änderungen vorgenommen:

Delphi-Quellcode:
1) open AcroPDFLib_TLB.pas
2) add this

TAcroPDF = class(TOleControl)
...
protected
procedure CreateControl;...
//ADDED
function QueryInterface(const IID: TGUID; out Obj): HResult; override;
//ADDED

3) Added this in the implementation section:

function TAcroPDF.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
if IID = IServiceProvider then
Result := E_NOINTERFACE
else
inherited;
end;

4) re-build the package you are using and re-install it in the IDE
5) you should be good to go
Dann habe ich auch noch den folgenden Hinweis befolgt:

Zitat:
I used the suggestion on the Adobe forum where you create a new olectrlsAdobe .... but you have to rename the TOleControl class in the new unit. Compiled everything up and it works .... I can breath again
Habe also im Ergebnis eine angepasste "AcroPDFLib_TLB.pas" und eine neue "OleCtrlsAdobe.pas", welche die bisherige "VCL.OleCtrls.pas" ersetzt. In der neuen OleCtrlsAdobe.pas habe ich TOleControl umbenannt in TOleControlAdobe und habe das entsprechend in der "AcroPDFLib_TLB.pas" angepasst.

Dennoch erhalte ich zur Laufzeit den Fehler "OleSysError: Klasse nicht registriert".

In der Anlage habe ich mal die beiden Units beigefügt.
Was mache ich falsch?

Hinweis: Habe beim Import der Active-X-Komponente kein Package mit einer Komponente erzeugen lassen, sondern nur die Unit "AcroPDFLib_TLB.pas", die ich in mein Projekt eingebunden habe.
Angehängte Dateien
Dateityp: pas OleCtrlsAdobe.pas (86,4 KB, 27x aufgerufen)
Dateityp: pas AcroPDFLib_TLB.pas (36,3 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat