В чем секрет понимания документации MSDN COM? - PullRequest
4 голосов
/ 18 февраля 2009

Я ищу "типичный" способ навигации MSDN, чтобы получить класс COM, чтобы делать то, что они хотят.

Пример проблемы: я ищу способ API разблокировать локальный файл (программно удалить зону / метку Интернета из файла).

Я нашел один пост на stackoverflow.com, в котором говорилось о clsid_persistentzoneidentifier. поэтому я искал в MSDN и получил http://msdn.microsoft.com/en-us/library/ms537029(VS.85).aspx. Что я ищу, так это то, что вы делаете после того, как они попадают на этот URL. Из этого места я не могу понять, какой должна быть последовательность операций. Как подключить этот IZoneIdentifier к IPersistFile? и т.д. Должно быть что-то базовое, чего мне не хватает в документации, связанной с COM. У MSDN есть интерфейсы и объекты, но нет ничего, что помогло бы мне визуализировать диаграмму «последовательности». Ничего, что могло бы заставить меня понять, какие COM-объекты принадлежат к одному и тому же классу. следовательно, может / или должно быть QueryInterfaced, и что должно быть CoCreated.

Ответы [ 2 ]

4 голосов
/ 18 февраля 2009

Документация для этого указывает на несколько вещей.

Во-первых, вы можете позвонить CoCreateInstance, передав CLSID_PersistentZoneIdentifier, чтобы получить реализацию этих двух интерфейсов:

Также сказано:

Используйте IPersistFile, чтобы прикрепить объект к целевому файлу и IZoneIdentifier исследовать или манипулировать зоной ID.

При этом вы можете посмотреть документацию по IPersistFile здесь:

http://msdn.microsoft.com/en-us/library/ms687223(VS.85).aspx

Это показывает, что существует Load метод , который вы хотите вызвать с именем файла, чтобы загрузить реализацию с подробной информацией о файле.

Оттуда вы можете вызвать QueryInterface в реализации IUnknown интерфейса , чтобы получить интерфейс IZoneIdentifier, а затем вызвать метод Remove , чтобы установить зону на локальный компьютер.

1 голос
/ 18 февраля 2009

Для этой цели, если это не очевидно из документации, я хотел бы найти примеры программ, в которых используются соответствующие API: либо с помощью Google, либо, возможно, из того, что из Microsoft SDK является подходящим.

Microsoft SDK, , например, этот , включает примеры программ.

...