Я реализовал IFilter в качестве встроенного COM-сервера VC ++ ATL in-proc. Windows Search не будет его использовать - он создает экземпляр моего IFilter, а затем выполняет несколько вызовов QueryInterface (), а именно:
- IMarshal
- IStdMarshalInfo
- что-то с идентификатором интерфейса {4C1E39E1-E3E3-4296-AA86-EC938D896E92}
и пара других. Поскольку мой IFilter реализует только IFilter, IPersist и IPersistFile, большинство вызовов возвращают E_NOINTERFACE, поэтому Windows Search просто освобождает мой объект и ничего не делает.
Почему он запрашивает эти интерфейсы и как мне решить проблему?