如何在Delphi上创建RTD客户端?我不知道如何开始,我需要像Excel电子表格一样获取值,例如
=RTD("gartle.rtd",,"YahooFinanceWatchList","AAPL","Open")发布于 2014-11-06 21:32:05
它是这样写的:http://support.microsoft.com/kb/285339为了给Excel提供一个RTL服务器,你需要实现IRtdServer接口,通过这个逻辑,你应该能够使用默认的COM方法自己实例化一个现有的实现。(YMMV)
发布于 2014-11-07 03:47:59
正如Stijn提到的,您需要创建一个实现IRtdServer的COM自动化对象。这方面的Delphi声明如下:
// *********************************************************************//
// Interface: IRTDUpdateEvent
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {A43788C1-D91B-11D3-8F39-00C04F3651B8}
// *********************************************************************//
IRTDUpdateEvent = interface(IDispatch)
['{A43788C1-D91B-11D3-8F39-00C04F3651B8}']
procedure UpdateNotify; safecall;
function Get_HeartbeatInterval: Integer; safecall;
procedure Set_HeartbeatInterval(plRetVal: Integer); safecall;
procedure Disconnect; safecall;
property HeartbeatInterval: Integer read Get_HeartbeatInterval write Set_HeartbeatInterval;
end;
// *********************************************************************//
// Interface: IRtdServer
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {EC0E6191-DB51-11D3-8F3E-00C04F3651B8}
// *********************************************************************//
IRtdServer = interface(IDispatch)
['{EC0E6191-DB51-11D3-8F3E-00C04F3651B8}']
function ServerStart(const CallbackObject: IRTDUpdateEvent): Integer; safecall;
function ConnectData(TopicID: Integer; var Strings: PSafeArray; var GetNewValues: WordBool): OleVariant; safecall;
function RefreshData(var TopicCount: Integer): PSafeArray; safecall;
procedure DisconnectData(TopicID: Integer); safecall;
function Heartbeat: Integer; safecall;
procedure ServerTerminate; safecall;
end;https://stackoverflow.com/questions/26778448
复制相似问题