J'ai un IFilter écrit en Delphi que j'essaie de faire fonctionner sous Windows 7 Desktop Search 64 bits.Utilisation d'un objet Com 32 bits à partir d'un IFilter 64 bits
Étant donné qu'il est développé en Delphi, je peux seulement compiler ceci comme une DLL 32 bits. Pour contourner ce problème, j'essaie d'écrire une DLL IFilter 64 bits dans Visual C++ qui utilise en interne mon objet 32bit IFilter Com en utilisant la technique DllSurogate décrite here.
J'ai tout cela fonctionne correctement sous une application de console de test 64 bits. Je peux créer une instance de mon wrapper 64 bits, qui crée en interne l'objet IFilter 32 bits et y délègue tous les appels. Je peux ensuite récupérer le contenu de mon document. Le problème est que lorsque j'enregistre avec WDS, l'encapsuleur 64 bits ne peut plus créer l'objet 32 bits. CoCreateInstance renvoie 'Echec de l'exécution du serveur' (CO_E_SERVER_EXEC_FAILURE).
Ce qui je suis en train de créer l'objet 32 bits à côté de l'enveloppe 64 bits
result = CoCreateInstance(clsid, 0, CLSCTX_LOCAL_SERVER , IID_IFilter, (LPVOID*)&m_pFilter);
Toute idée pourquoi cela se passe. Est-ce une limitation des autorisations avec IFilters dans WDS?
Merci pour toute aide à ce sujet.
Est-ce que vous (ou quelqu'un d'autre) savez si SQL Server et SharePoint ont les mêmes limitations? Je suis incapable de les tester en ce moment et je ne trouve aucune information sur Google. Je le fais principalement pour SharePoint, peut-être qu'il y a de l'espoir! Sinon, je dois repenser – Jamie