Je reçois l'adresse d'une fonction COM en chargeant la bibliothèque de types (TLB) et en itérant sur les types en utilisant ITypeLib
et ITypeInfo
. Après avoir appelé la fonction AddressOfMember
de ITypeInfo Je suis face à l'exception suivante:Pourquoi une exception s'est produite lors de l'obtention de l'adresse de la fonction COM?
System.Runtime.InteropServices.COMException (0x800288BD): type de module incorrect pour l'opération. (Exception de HRESULT: 0x800288BD (TYPE_E_BADMODULEKIND)) à System.Runtime.InteropServices.ComTypes.ITypeInfo.AddressOfMember (memid Int32, INVOKEKIND invKind, IntPtr & ppv).
Comment puis-je me débarrasser de cette exception?
Etes-vous sûr que l'interface sur laquelle vous essayez d'obtenir l'adresse supporte la liaison vtable? – tyranid
Je lui ai donné IDispatch interface double implémentée COM composant échoue toujours. Plus sur Mes toutes les interfaces héritées de IUnknown et quand GetNames (..) m'a donné "QueryInterface", il a échoué ici aussi et ici FUNCDESC.memid (certains par exemple 1245781) semblait faux. Je suis étrange tout ce qui est énuméré correctement avec ITypeInfo et toutes les autres structures mais AddressOfMember ne parvient pas à livrer l'adresse – Usman
Je pense que tous les composants COM liés à IUnknown sont vtabled binded. – Usman