Witam. Mimo poszukiwań w sieci muszę się zwrócić z prośba o pomoc. Muszę się dobrać do interface'u pewnego programu, który udostępnia obiekty COM. Wygenerowałem plik o nazwie fvW_TLB.pas i udało mi się połączyć z serwerem i wyświetlić ikony na mapie. Problem polega na tym jak zaimplementować (a właściwie "przykryć") procedury i funkcje zawarte w ICallback. kawałek kodu
Sekcja uses:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fvw_TLB, ComObj, StdCtrls, ExtCtrls, Mask, Sockets,
IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, IdSocketHandle, Math, Buttons,
ComCtrls;
Zmienne:
Var
MyLayer: fvw_TLB.Layer;
aVar: OleVariant;
LayerHandle: Integer;
IconHandle: Integer;
No i kawałek kodu:
begin
aVar := CreateComObject(fvw_TLB.CLASS_Layer) as IDispatch;
MyLayer := fvw_TLB.CoLayer.Create;
MyLayer.RegisterWithMapServer('Falcon Data Feed',Self.Handle,aVar);
LayerHandle := MyLayer.CreateLayer('Falcon Data Feed');
Jak teraz np. jak zaimplementować taką procedurkę:
ICallback = interface(IDispatch)
['{8D8FF1EB-C50D-473F-B223-757BE2280F5D}']
procedure GetHelpText(layer_handle: Integer; object_handle: Integer; var help_text: WideString); safecall;
...itd
Jest jeszcze coś takiego:
ICallbackDisp = dispinterface
['{8D8FF1EB-C50D-473F-B223-757BE2280F5D}']
Im więcej czytam o tych COM -owych rozwiązaniach tym bardziej się zniechęcam. Może jakaś strona z konkretnymi przykładami?