P
penghua_47
Unregistered / Unconfirmed
GUEST, unregistred user!
这是我创建的一个com对象的类TD,支持两个接口ID和IC:
TD = class(TTypedComObject, ID,IC)
protected
function Method2: HResult; stdcall;//来自ID
function method1: HResult; stdcall;//来自IC
function queryinterface(const IID:TGUID;out obj):HResult;overload;
{Declare ID methods here}
private
pd:Iunknown;
pc:IC;
procedure initialize;override;
end;
现在我想重新使用queryinterface函数,所以把它重载!
但是在写下面的queryinterface函数代码时.老是报错,什么原因啊?
function TD.queryinterface(const IID: TGUID; out obj): HResult;
begin//IID_ID是一个TGUID的量
if (IID=IID_ID) then//报错
begin
obj:= (ID)self;//报错
((ID)self)._AddRef;//报错
end
else if (IID=IID_IC) then//报错
begin
pc.queryinterface(IID,obj);//报错
end
else
begin
obj:=nil;
end;
end;
急,在线等!!!小弟跪求高手们解答!!!
TD = class(TTypedComObject, ID,IC)
protected
function Method2: HResult; stdcall;//来自ID
function method1: HResult; stdcall;//来自IC
function queryinterface(const IID:TGUID;out obj):HResult;overload;
{Declare ID methods here}
private
pd:Iunknown;
pc:IC;
procedure initialize;override;
end;
现在我想重新使用queryinterface函数,所以把它重载!
但是在写下面的queryinterface函数代码时.老是报错,什么原因啊?
function TD.queryinterface(const IID: TGUID; out obj): HResult;
begin//IID_ID是一个TGUID的量
if (IID=IID_ID) then//报错
begin
obj:= (ID)self;//报错
((ID)self)._AddRef;//报错
end
else if (IID=IID_IC) then//报错
begin
pc.queryinterface(IID,obj);//报错
end
else
begin
obj:=nil;
end;
end;
急,在线等!!!小弟跪求高手们解答!!!