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.