COM経由でDelphi 6で.Net2.0アセンブリを使用しています。インターフェイスの 1 つのメソッドの 1 つが IEnumerable を返します。にある mscorlib.tlb をインポートする限り、
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
、Delphi 6 では IEnumerable と IEnumerator の両方のインターフェイスにアクセスできます。mscorlib_TLB.pas で IEnumerable が定義されている部分は次のとおりです。
// *********************************************************************//
// Interface: IEnumerable
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {496B0ABE-CDEE-11D3-88E8-00902754C43A}
// *********************************************************************//
IEnumerable = interface(IDispatch)
['{496B0ABE-CDEE-11D3-88E8-00902754C43A}']
function GetEnumerator: IEnumVARIANT; safecall;
end;
GetEnumerator メソッドの戻り値は IEnumerator ではなく、IEnumerator にキャストしようとすると、「インターフェイスがサポートされていません」という例外がスローされます。
以前にこれまたは同様の問題に遭遇した人はいますか? どうすれば解決できますか?