Hi,
Ich hab folgendes Problem: Ich hab hier eine relativ alte AddinDesignerObjects_TLB.pas und wollte die auf den aktuellsten Stand bringen, also hab ich unter Projekt->Typbibliothek den Punkt "Microsoft Add-In Designer (Version 1.0)" gewählt und "
Unit anlegen" gewählt. Soweit kein Problem. Will ich dann aber kompilieren, kommt in TAddinDesigner.InvokeEvent ein Compilierfehler: Typen stimmen nicht.
Auszug aus der _TLB.pas:
Delphi-Quellcode:
procedure TAddinDesigner.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
begin
case DispID of
-1: Exit; // DISPID_UNKNOWN
1: if Assigned(FOnConnection) then
FOnConnection(Self,
Params[0] {const IDispatch},
Params[1] {ext_ConnectMode},
Params[2] {const IDispatch},
{??PSafeArray}
PSafeArray(OleVariant((TVarData(Params[3]).VPointer)^))
{var ??PSafeArray OleVariant});
2: if Assigned(FOnDisconnection) then
FOnDisconnection(Self,
Params[0] {ext_DisconnectMode},
{??PSafeArray}OleVariant((TVarData(Params[1]).VPointer)^) {var ??PSafeArray OleVariant});
3: if Assigned(FOnAddInsUpdate) then
FOnAddInsUpdate(Self, {??PSafeArray}OleVariant((TVarData(Params[0]).VPointer)^) {var ??PSafeArray OleVariant});
4: if Assigned(FOnStartupComplete) then
FOnStartupComplete(Self, {??PSafeArray}OleVariant((TVarData(Params[0]).VPointer)^) {var ??PSafeArray OleVariant});
5: if Assigned(FOnBeginShutdown) then
FOnBeginShutdown(Self, {??PSafeArray}OleVariant((TVarData(Params[0]).VPointer)^) {var ??PSafeArray OleVariant});
end; {case DispID}
end;
Nach PSafeArray kann nicht gecastet werden, wie müsste das also entsprechend aussehen, dass das funktioniert?
Gruß