2009-03-25 5 views
0

J'utilise un assembly .Net2.0 dans Delphi 6 via COM. L'une des méthodes de l'une des interfaces renvoie IEnumerable. Tant que j'importation mscorlib.tlb situé dansIEnumerable.GetEnumerator() renvoie IEnumVariant dans Delphi 6

"C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727"

, je peux atteindre les deux interfaces IEnumerable et IEnumerator dans Delphi 6. Voici la partie où IEnumerable est défini dans 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; 

la valeur de retour de la méthode GetEnumerator est pas IEnumerator et lorsque je tente de le jeter à IEnumerator « Interface pas pris en charge » exception est levée.

Est-ce que quelqu'un a déjà rencontré ce problème ou un problème similaire? Comment peut-il être résolu?

Répondre