2009-02-18 5 views
4

Я ищу «типичный» способ навигации по MSDN, чтобы получить класс COM, чтобы делать то, что он хочет.В чем секрет понимания документации 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, adn, который должен быть CoCreated.

ответ

1

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

Microsoft SDKs, for example this one, включают примеры программ.

4

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

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

Он также говорит:

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

Это, как говорится, вы можете посмотреть документацию для IPersistFile здесь:

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

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

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

Смежные вопросы