Часто при отладке программы появляются сообщения вида:
fixme:shdocvw:Web Browser_ Query Interface? (0x3199770)->({00000019–0000–0000-c000–000000000046} 0x32ed80) interface not supported
Возникают подозрения, что программа может не работать из за отсутствия данного интерфеса.
Чтобы убрать это сообщение необходимо проверить должен ли возвращаться интерфейс из этого места. И если нет, то изменить FIXME на TRACE о том, что интерфейс не поддерживается.
Изначально предполагаем что интерфейс не поддерживается.
В тестах для данной dll должен быть файл с названием объекта, откуда и запрашивается интерфейс. В данном случае это dlls/shdocvw/tests/webbrowser.c
Там должна быть функция test_QueryInterface, в которой и находятся тесты на неподдерживаемые интерфейсы.
Добавляемый тест выглядит следующим образом:
Если тест показал, что интерфес всё же поддерживается. То придётся удалить этот тест, и добавить тест, показывающий, что интерфейс поддерживается.
Он будет выглядеть следующим образом (пример другого интерфейса, запрашиваемого из другого места):
Если интерфейс не поддерживается, то добавляем в соответсвующую функцию вызова (в данном случае это :Web Browser_ Query Interface) в соответствующее место TRACE:
Если интерфейс всё-же поддерживается то добавляется (в данном случае в HTMLDocument_QueryInterface):
Это для начала. А вообще хорошо бы в этом местре реализовать правильный возврат интерфейса.
Например: