このコードでは:
TTest<IntfT: IInterface> = class
protected
fObj : TInterfacedObject;
public
function GetVal: IntfT;
end;
fObjをIntfTとして返すようにするには、GetVal関数をどのように実装しますか?
私はもう試した:
result := fObj as IntfT;
と
fObj.QueryInterface(IntfT,result);
と
result := fObj as IInterface;
しかし、何も機能していないようです。これはとても単純なことのように思えます、私は何かが欠けているに違いないと思い続けます。
何か案は?
編集
今私にとって最も有望に見えるのはQueryInterfaceです。現在、コンパイラはIntfTがGUIDではないと文句を言っており、適切なGUIDがあれば、すべてが満足できるという印象を受けます。この状況で機能するインターフェースタイプからIIDを取得する方法を知っている人はいますか?