Article View: pl.comp.lang.delphi
Article #346854dispintertface - Jak się dostać do metod
From: mwitkowski2b
Date: Tue, 13 Nov 2018 22:16
Date: Tue, 13 Nov 2018 22:16
36 lines
2734 bytes
2734 bytes
(Delphi 2007)
Zaimportowałem pliki TLB, miedzy innymi mam taki DispInterface (fragment):
_ISearchSessionEvents = dispinterface
['{E421B6DF-86ED-47ED-8EFE-54D69BFA4D7D}']
...
procedure Progress(Progress: Integer; const pSearchSession: ISearchSession);
dispid 1;
...
procedure TrackAvailable(Type_: SearchTypeEnum; const pResult: ITrack; const
pSearchSession: ISearchSession); dispid 4;
...
end;
Jest to fragment API do obsługi kontrolki ActiveX. Kontrolka jest zainstalowana wszystko już działa. Muszę wykonać operację wykorzystującą ww. dispinterface. Metody Progress i TrackAvailable są wykonywane automatycznie w przypadku gdy poszukiwanie przyniesie oczekiwany efekt.
Nie wiem jak mam się do nich dostać? Mam przykłady w C#, gdzie te metody są podpięte do zdarzeń, ale muszę to przenieść do Delphi.
Nie można zrobić tak:
Interface2 = interface(_ISearchSessionEvents)
end;
ani tak:
Interface3 = class(TInterfacedObject, _ISearchSessionEvents)
end;
Próbowałem również podstawić swoją metodę np. MyTrackAvailable
procedure My_TimelineAvailable(Type_: SearchTypeEnum; const pResult: ITimeline; const pSearchSession: ISearchSession);
a potem w programie:
var
obi: _ISearchSessionEvents;
i dalej:
obi.TrackAvailable := My_TrackAvailable;
też nic z tego.
Proszę o wskazówkę, jak się dostać do tych metod żeby móc odczytać przesłąne do nich parametry z ich wnętrza?
Pozdrawiam
MW
Technical Details
Message-ID:
<6b30eb9c-c06f-40fd-8894-b7ee3c347c59@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.eu.feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!g188-v6no837518itg.0!news-out.google.com!y103-v6ni641ita.0!nntp.google.com!z5-v6no841305ite.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Received: by 2002:a24:21cd:: with SMTP id e196-v6mr4354201ita.23.1542147367232; Tue, 13 Nov 2018 14:16:07 -0800 (PST) X-Received: by 2002:aca:ad0a:: with SMTP id w10-v6mr10603oie.2.1542147367034; Tue, 13 Nov 2018 14:16:07 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.eu.feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!g188-v6no837518itg.0!news-out.google.com!y103-v6ni641ita.0!nntp.google.com!z5-v6no841305ite.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Tue, 13 Nov 2018 14:16:06 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.216.137.227; posting-account=E-z6ZwoAAACYsJZxZNjBCrM3zzyF6Vo_ NNTP-Posting-Host: 178.216.137.227 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <6b30eb9c-c06f-40fd-8894-b7ee3c347c59@googlegroups.com> Subject: dispintertface - Jak się dostać do metod From: mwitkowski2b@gmail.com Injection-Date: Tue, 13 Nov 2018 22:16:07 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit