Notre interface composant COM a la méthode suivante:tlbimp.exe convertit HWND à _RemotableHandle
HRESULT CreatePluginWindow([in] HWND hParent, [in] RECT* prcView);
Nous allons l'utiliser dans l'application .NET mais Interop pour cette interface est à la recherche comme ceci:
void CreatePluginWindow(ref interop.alfrontx._RemotableHandle hParent, ref interop.alfrontx.tagRECT prcView)
Selon mon enquête, il n'y a aucun moyen d'utiliser cette méthode sans code dangereux. Je ne voudrais pas changer l'interface COM pour utiliser autre chose que le type HWND pour hParent, car il est utilisé dans de nombreux composants C++. Je ne voudrais pas faire de changement dans interop car ils sont compilés automatiquement sur chaque build.
Existe-t-il un autre moyen de résoudre ce problème?
Merci pour la solution! Après avoir ajouté le drapeau j'ai des erreurs de compilation, dans wtypes.idl et objidl.idl (ils utilisent HWND et HICON). Mais je les ai déclarés au début de l'idl et j'espère que l'interop contient IntPtr au lieu de _RemotableHandle. – Emendz