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


Функция MonikerCommonPrefixWith (objbase.h)

Создает новый моникер на основе общего префикса, который этот моникер (тот, который состоит из данных этого объекта моникера) совместно используется с другим моникером.

Эта функция предназначена для вызова только в реализациях IMoniker::CommonPrefixWith.

Синтаксис

HRESULT MonikerCommonPrefixWith(
  [in]  LPMONIKER pmkThis,
  [in]  LPMONIKER pmkOther,
  [out] LPMONIKER *ppmkCommon
);

Параметры

[in] pmkThis

Указатель на интерфейс IMoniker на одном из моникеров, для которого иском общий префикс; обычно моникер, в котором этот вызов используется для реализации IMoniker::CommonPrefixWith.

[in] pmkOther

Указатель на интерфейс IMoniker в моникере для сравнения с первым моникером.

[out] ppmkCommon

Адрес переменной указателя IMoniker*, которая получает указатель интерфейса на моникер на основе общего префикса pmkThis и pmkOther. При успешном выполнении функция вызывает AddRef для моникера, а вызывающий объект отвечает за вызов Release. При возникновении ошибки указанное значение указателя интерфейса равно NULL.

Возвращаемое значение

Эта функция может возвращать стандартные возвращаемые значения E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.

Код возврата Описание
S_OK
Существует общий префикс, который не является ни pmkThis, ни pmkOther.
MK_S_HIM
Весь моникер pmkOther является префиксом моникера pmkThis .
MK_S_ME
Весь моникер pmkThis является префиксом моникера pmkOther .
MK_S_US
PmkThis и pmkДругие моникеры равны.
MK_E_NOPREFIX
Моникеры не имеют общего префикса.
MK_E_NOTBINDABLE
Эта функция была вызвана на относительном моникере. Не имеет смысла принимать общий префикс относительных моникеров.

Комментарии

Реализация IMoniker::CommonPrefixWith должна сначала проверка, имеет ли другой моникер тип, который вы распознаете и обрабатываете особым образом. Если нет, следует вызвать monikerCommonPrefixWith, передав себя как pmkThis , а другой моникер как pmkOther. MonikerCommonPrefixWith правильно обрабатывает случаи, когда любой моникер является универсальным составным.

Эту функцию следует вызывать, только если pmkThis и pmkOther являются абсолютными моникерами (где абсолютный моникер — это либо файловый моникер, либо универсальный составной элемент, левый компонент которого является моникером файла, а моникер файла представляет абсолютный путь). Не вызывайте эту функцию для относительных моникеров.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objbase.h
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

IMoniker::CommonPrefixWith