Поделиться через


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

OLE предоставляет реализацию специального типа моникера, называемого антимникера. Этот моникер используется в создании новых моникер-классов. Вы используете его в качестве обратного моникера, на который он состоит, эффективно отменяя этот моникер, в значительной степени так же, как оператор ".".

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

Анти-моникеры — это класс моникера, явно предназначенный для использования в качестве обратного. COM определяет именованную функцию CreateAntiMoniker, которая возвращает антимникер. Обычно эта функция используется для реализации метода IMoniker::Inverse.

Анти-моникер является лишь обратным для тех типов моникеров, которые реализуются для лечения анти-моникеров как обратный. Например, если вы хотите удалить последнюю часть составного моникера, не следует создавать анти-моникер и создавать его до конца составного. Вы не можете быть уверены, что последняя часть составного считает анти-моникер его обратным. Вместо этого следует вызвать IMoniker::Enum в составном моникере, указав FALSE в качестве первого параметра. При этом создается перечислитель, который возвращает моникеры компонента в обратном порядке. Используйте перечислитель, чтобы получить последнюю часть составного элемента и вызвать Inverse на этом моникере. Моникер, возвращенный Inverse, является тем, что необходимо удалить последнюю часть составного.

моникеров класса

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

Monikers

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

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