Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 

Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte

  Alt 8. Mär 2006, 13:16


Folgende Prozedure löst mein Problem:
Delphi-Quellcode:
procedure RegisterTLB(FileName: String);
var
  WFileName, DocName: WideString;
  TypeLib: ITypeLib;
  LibAttr: PTLibAttr;
  DirBuffer: array[0..MAX_PATH] of char;
begin
  if ExtractFilePath(FileName) = 'then
  begin
    GetCurrentDirectory(SizeOf(DirBuffer), DirBuffer);
    FileName := '\' + FileName;
    FileName := DirBuffer + FileName;
  end;
  if not FileExists(FileName) then
    raise Exception.CreateFmt('Datei "%s" nicht gefunden. Registrierung fehlgeschlagen!', [FileName]);
  WFileName := FileName;
  OleCheck(LoadTypeLib(PWideChar(WFileName), TypeLib));
  OleCheck(TypeLib.GetLibAttr(LibAttr));
  try
    OleCheck(TypeLib.GetDocumentation(-1, nil, nil, nil, @DocName));
    DocName := ExtractFilePath(DocName);
    OleCheck(RegisterTypeLib(TypeLib, PWideChar(WFileName), PWideChar(DocName)));
  finally
    TypeLib.ReleaseTLibAttr(LibAttr);
  end;
end;
Damit kann ich zur Laufzeit die tlb registrieren. D.h. allerdings das ich die tlb mitliefern muss und bei der Installation registrieren muss. Danach kann ich die tlb aber wie löschen.

Nungut, Danke für eure Hilfe
  Mit Zitat antworten Zitat