Vielen Dank, aber daran liegt es nicht. Habe D2005 verwendet.
Hier mal ein Beispiel meiner Versuche mit dem Ereignis SessionLogout
aus der TLB:
Delphi-Quellcode:
_CallbackSessionLogout =
interface;
_CallbackSessionLogoutDisp =
dispinterface;
ISessionLogoutSubscriptionCallbackEvents =
dispinterface
_CallbackSessionLogout =
interface(IDispatch)
['
{C5F3FBC2-5ACE-37C2-A400-B146B40B9656}']
end;
_CallbackSessionLogoutDisp =
dispinterface
['
{C5F3FBC2-5ACE-37C2-A400-B146B40B9656}']
end;
ISessionLogoutSubscriptionCallbackEvents =
dispinterface
['
{D99CA617-21FD-345D-9936-C23238B7AB4F}']
procedure OnLogout;
dispid 1610743808; !!! diese Zeile fehlt
in der
unit vom PASTLWTR : 1.2 ???
end;
_SessionLogoutSubscription =
interface(IDispatch)
['
{8B4C37BD-43ED-3215-8259-968FD8102B81}']
function Get_ToString: WideString;
safecall;
function Equals(obj: OleVariant): WordBool;
safecall;
function GetHashCode: Integer;
safecall;
function GetType: _Type;
safecall;
procedure add_OnLogout(
const value: _CallbackSessionLogout);
safecall;
procedure remove_OnLogout(
const value: _CallbackSessionLogout);
safecall;
property ToString: WideString
read Get_ToString;
end;
_SessionLogoutSubscriptionDisp =
dispinterface
['
{8B4C37BD-43ED-3215-8259-968FD8102B81}']
property ToString: WideString
readonly dispid 0;
function Equals(obj: OleVariant): WordBool;
dispid 1610743809;
function GetHashCode: Integer;
dispid 1610743810;
function GetType: _Type;
dispid 1610743811;
procedure add_OnLogout(
const value: _CallbackSessionLogout);
dispid 1610743812;
procedure remove_OnLogout(
const value: _CallbackSessionLogout);
dispid 1610743813;
end;
CoCallbackSessionLogout =
class
class function Create: _CallbackSessionLogout;
class function CreateRemote(
const MachineName:
string): _CallbackSessionLogout;
end;
1. Versuch : Verwendung der von EventSinkImp generierten Event-Wrapper
Er erzeugt eine Klasse TCC_APIISessionLogoutSubscriptionCallbackEvents, die habe ich so bemüht wie es in der Hilfe gesagt wird -> Interface wird connected aber wenn es zum Ereignis kommen soll keine Reaktion.
Delphi-Quellcode:
te:=session.GetSessionLogoutSubscription;
test:=TCC_APIISessionLogoutSubscriptionCallbackEvents.Create(self);
test.OnLogout:=oncclogout;
test.Connect(te);
2. Versuch : direkte Programmierung wie bei
http://www.techvanguards.com/ beschrieben
Geht teilweise aber wenn es interessant wird können Klassen nicht gecastet werden oder Objekt nicht registriert und so Sachen
Ich vermute ja dass ich irgendwie die Methode add_OnLogout(const value: _CallbackSessionLogout); verwenden muss aber das endet mit besagten Fehlern
So, wenn jemand durch das Thema ist sollte er mit diesen Informationen zurechtkommen - lt. den Angaben diverser Delphi
COM Seiten ?!