Announcement

Collapse
No announcement yet.

IntraWeb und ActiveX-Server (COM/DCOM)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IntraWeb und ActiveX-Server (COM/DCOM)

    Wenn ich in der Ereignisbehandlung einer IntraWeb-Komponente versuche auf einen ActiveX-Server zuzugreifen erhaltich beim create der Co-Klasse folgende Exception: CoInitialize wurde nicht aufgerufen

    <pre>
    procedure TformMain.IWButton1Click(Sender: TObject);
    var
    Profile : IProfile;
    begin
    Profile := CoProfile.Create();
    Profile.open( 'd:\' + editName.Text, false, pdtFile );
    Profile := nil;
    end;
    </pre>

    Was mache ich falsch?

  • #2
    CoInitialize aufrufen?

    <pre>
    uses
    ActiveX;

    procedure TformMain.IWButton1Click(Sender: TObject);
    var
    Profile : IProfile;
    begin
    CoInitialize(nil);
    try
    Profile := CoProfile.Create();
    Profile.open( 'd:\' + editName.Text, false, pdtFile );
    Profile := nil;
    finally
    CoUninitialize;
    end;
    end;
    </pre>

    In einer normalen Delphi-Anwendung wird im Application.Initialize immer ein CoInitialize durchgeführt. Ich denke diesen Aufruf spart sich die Intraweb-Application, da es sehr oft nicht benötigt wird.

    Falls Du es öfters benötigst, kanst Du es ja beim Starten der Anwendung durchführen und erst beim Beenden der Anwendung wieder CoUninitialize aufrufen

    Comment

    Working...
    X