I have an IFilter written in Delphi that I am trying to work under 64-bit Windows 7 Desktop Search.
Due to the fact that it is being developed in Delphi, I can only compile it as a 32-bit DLL.
To get around this, I am trying to write a 64-bit IFilter Dll in Visual C ++ that internally uses my 32-bit IFilter Com object using the DllSurogate technique described here .
I have everything that works OK under a test 64-bit console application. I can create an instance of my 64-bit shell, which internally creates a 32-bit IFilter object and delegates all calls to it. Then I can get the contents of my document.
The problem is that when I register with WDS, the 64-bit shell can no longer create a 32-bit object. CoCreateInstance returns "Server Runtime Error" (CO_E_SERVER_EXEC_FAILURE).
This is the one I am creating a 32-bit object on the side of the 64-bit shell
result = CoCreateInstance(clsid, 0, CLSCTX_LOCAL_SERVER , IID_IFilter, (LPVOID*)&m_pFilter);
Any idea why this is happening. Is this a limitation of restrictions with IFilters in WDS?
Thanks for any help with this.
Jamie source share