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


Метод IMsmMerge2::MergeEx (mergemod.h)

Метод MergeEx выполняет слияние текущей базы данных и текущего модуля. Слияние присоединяет компоненты в модуле к функции, определяемой компонентом . Корень дерева каталогов модуля перенаправляется в расположение, заданное RedirectDir. Дополнительные сведения см. в статье Метод MergeEx объекта Merge .

Синтаксис

HRESULT MergeEx(
  [in] const BSTR Feature,
  [in] const BSTR RedirectDir,
  [in] IUnknown   *pConfiguration
);

Параметры

[in] Feature

Имя компонента в базе данных. Вместо BSTR можно использовать LPCWSTR.

[in] RedirectDir

Ключ записи в таблице Directory базы данных. Вместо BSTR можно использовать LPCWSTR. Этот параметр может иметь значение NULL или пустую строку.

[in] pConfiguration

Аргумент pConfiguration — это интерфейс, реализованный клиентом. Аргумент может иметь значение NULL. Наличие этого аргумента указывает на то, что клиентское средство может изменять настраиваемые модули слияния. Наличие этого аргумента не требует от клиента предоставления данных конфигурации для какого-либо конкретного настраиваемого элемента.

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

Этот метод может возвращать одно из этих значений.

Значение Значение
E_OUTOFMEMORY
В системе не хватает памяти и не удалось завершить операцию.
E_INVALIDARG
Один из аргументов недопустим.
E_FAIL
Слияние было остановлено из-за ошибки. Возможно, некоторые таблицы не были объединены. Дополнительные сведения см. в разделе "Примечания".
S_FALSE
Функция выполнена успешно, но произошли ошибки, и само слияние может быть недопустимым.
S_OK
Функция выполнена успешно.

Комментарии

Эта функция выполняет слияние текущей базы данных и текущего модуля. Корень дерева каталогов модуля перенаправляется в расположение, заданное RedirectDir. Если возникают какие-либо конфликты слияния, включая исключения, они помещаются в перечислитель ошибок для последующего извлечения, но не приводят к сбою слияния. Ошибки можно получить с помощью функции get_Errors . Сообщения об ошибках и информационные сообщения будут отправляться в текущий файл журнала.

После завершения слияния компоненты в модуле присоединяются к компоненту, определяемой компонентом . Эта функция уже должна существовать и не создана. Модуль может быть присоединен к дополнительным функциям с помощью функции Connect .

Изменения, внесенные в базу данных, не будут сохранены на диске, если только функция CloseDatabase не будет вызвана с параметром bCommit , равным TRUE.

Если слияние завершается сбоем из-за неправильной конфигурации модуля, функция возвращает E_FAIL. Сюда входят ошибки msmErrorType: msmErrorBadNullSubstitution, msmErrorBadSubstitutionType, msmErrorBadNullResponse, msmErrorMissingConfigItem и msmErrorDataRequestFailed. Эти ошибки приводят к немедленному прекращению слияния при возникновении ошибки. Объект ошибки по-прежнему добавляется в перечислитель, когда MergeEx возвращает E_FAIL. Дополнительные сведения об ошибках msmErrorType см. в разделе Функция get_Type (объект ошибки). Все остальные ошибки приводят к тому, что MergeEx возвращает S_FALSE и приводит к продолжению слияния.

Требования

   
Минимальная версия клиента Mergemod.dll 2.0 или более поздней версии
Целевая платформа Windows
Header mergemod.h
DLL Mergemod.dll

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

Автоматизация модуля слияния