Я использую сборку .Net2.0 в Delphi 6 через COM. Один из методов в одном из интерфейсов возвращает IEnumerable. Пока я импортирую mscorlib.tlb, расположенный в
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
, я могу получить доступ к интерфейсам IEnumerable и IEnumerator в Delphi 6. Вот часть, где IEnumerable определен в mscorlib_TLB.pas:
// *********************************************************************//
// 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, возникает исключение «Интерфейс не поддерживается».
Кто-нибудь сталкивался с этой или похожей проблемой раньше? Как это можно решить?