Анти-Моникеры
OLE предоставляет реализацию специального типа моникера, называемого анти-моникером. Этот моникер используется в создании новых моникер-классов. Вы используете его в качестве обратного моникера, на который он состоит, эффективно отменяя этот моникер, в значительной степени так же, как оператор ".".
Необходимо иметь доступ к анти-моникеру, так как после создания составного моникера невозможно удалить части моникера, если, например, объект перемещается. Вместо этого вы используете антимникер для удаления одного или нескольких записей из составного моникера.
Анти-моникеры — это класс моникера, явно предназначенный для использования в качестве обратного. COM определяет функцию CreateAntiMoniker , которая возвращает анти-моникер. Обычно эта функция используется для реализации метода IMoniker::Inverse .
Анти-моникер является лишь обратным для тех типов моникеров, которые реализуются для лечения анти-моникеров как обратный. Например, если вы хотите удалить последнюю часть составного моникера, не следует создавать анти-моникер и создавать его до конца составного. Вы не можете быть уверены, что последняя часть составного считает анти-моникер его обратным. Вместо этого следует вызвать IMoniker::Enum в составном монике, указав false в качестве первого параметра. При этом создается перечислитель, который возвращает моникеры компонента в обратном порядке. Используйте перечислитель для получения последней части составного элемента и вызова Inverse на этом моникере. Моникер, возвращенный Inverse , является то, что необходимо удалить последнюю часть составного.