Указатели Моникеры

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

Предположим, например, у приложения есть объект, который не имеет постоянного представления. Как правило, если клиенту приложения требуется доступ к объекту, можно просто передать клиенту указатель на объект. Однако предположим, что ваш клиент ожидает моникера. Объект не может быть идентифицирован с моникером файла, так как он не хранится в файле, а также с моникером элемента, так как он не содержится в другом объекте.

Вместо этого приложение может создать моникер указателя, который является моникером, который просто содержит указатель внутри и передать его клиенту. Клиент может относиться к этому моникеру, как и к любому другому. Однако, когда клиент вызывает IMoniker::BindToObject на моникере указателя, код моникера не проверка запущенной таблице объектов (ROT) или загружает ничего из хранилища. Вместо этого код моникера просто вызывает QueryInterface на указатель, хранящийся внутри моникера.

Указатели моникеры позволяют объектам, существующим только в активном или работающем состоянии, участвовать в операциях моникера и использоваться клиентами-моникерами. Одним из важных различий между моникерами указателей и другими классами моникеров является то, что указатели моникеров нельзя сохранить в постоянном хранилище. При вызове метода IMoniker::Save возвращается ошибка. Это означает, что указатели моникеры полезны только в специализированных ситуациях. Вы можете использовать функцию CreatePointerMoniker , если необходимо использовать моникер указателя.

Анти-Моникеры

Моникеры классов

Составные моникеры

Моникеры файлов

Моникеры элементов