我有一個用Delphi編寫的IFilter,我試圖在64位Windows 7桌面搜索下工作。從64位IFilter使用32位Com對象
由於它是在Delphi中開發的,我只能將它編譯爲32位DLL。
要解決這個問題,我想在Visual C++中編寫一個64位IFilter DLL,它在內部使用我的32位IFilter Com對象,使用DllSurogate技術概述了here。
我已經在測試64位控制檯應用程序下正常工作。我可以創建一個64位包裝器的實例,它在內部創建32位IFilter對象並將所有調用委託給它。然後我可以檢索我的文檔的內容。
問題是,當我註冊的是WDS的64位包裝器不能再創建32位對象。 CoCreateInstance返回'服務器執行失敗'(CO_E_SERVER_EXEC_FAILURE)。
這是我是誰創造了側面的32位對象的64位包裝
result = CoCreateInstance(clsid, 0, CLSCTX_LOCAL_SERVER , IID_IFilter, (LPVOID*)&m_pFilter);
任何想法,爲什麼發生這種情況。 WDS中的IFilters是否具有權限限制?
感謝您的任何幫助。
你(或其他人)知道SQL Server和SharePoint是否有相同的限制嗎?我現在無法測試它們,並且無法在Google上找到任何信息。我主要爲SharePoint做這些事情,也許有一些希望!否則,我需要重新考慮它 – Jamie 2010-09-28 21:27:53