См. MSDN документы для функции LoadIFilter
- вы должны получить один из кодов ошибок, по крайней мере, в соответствии с этой страницей.
- E_ACCESSDENIED =
0x80070005
-
Функция была лишена доступа к файлу фильтра.
- E_HANDLE =
0x80070006
-
Функция обнаружила недопустимый дескриптор, возможно, из-за нехватки памяти.
- E_INVALIDARG =
0x80070057
-
Функция получила неверный параметр.
- E_OUTOFMEMORY =
0x8007000E
-
У функции не было достаточно памяти или других ресурсов для завершения операции.
- E_FAIL =
0x80000008
-
Функция обнаружила неизвестную ошибку.
(Кроме того, здесь указан полный набор постоянных значений здесь , что, кажется, намного длиннее, чем указано в MSDN.) Теперь интересно то, что ваш код ошибки соответствует 80004005
в шестнадцатеричном виде, которого нет ни на одной, ни на тех страницах. Я подозреваю, что pinvoke.net, возможно, ошибается, так как многие другие сайты (например, , это ) указывают это как E_FAIL
... не то, чтобы это все равно помогло. Извините за неокончательный ответ, но, возможно, он укажет вам хотя бы правильный путь.
Редактировать: Эта ошибка, похоже, была задокументирована в другом месте и вызывала много путаницы у многих людей, не имея простого решения. Кажется, что причина может быть одной из нескольких на самом деле ... Существуют различные предложения здесь и здесь , которые вы можете попробовать, но я не думаю, что смогу вам помочь более того, поскольку я никогда не сталкивался с этой ошибкой в этом контексте. В любом случае, удачи ...