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


Метод IMsmMerge::OpenModule (mergemod.h)

Метод OpenModule открывает модуль слияния установщика Windows в режиме только для чтения. Модуль должен быть открыт, прежде чем его можно будет объединить с базой данных установки. Дополнительные сведения см. в статье Метод OpenModule объекта Merge .

IMsmMerge2::OpenModule Mergemod.dll версии 2.0 и более поздних.

 
IMsmMerge::OpenModule Все версии Mergemod.dll.

Синтаксис

HRESULT OpenModule(
  [in] const BSTR  Path,
  [in] const short Language
);

Параметры

[in] Path

Полное имя файла, указывающее на модуль слияния. Вместо BSTR можно использовать LPCWSTR.

[in] Language

Идентификатор языка (LANGID).

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

Функция OpenModule возвращает следующие значения.

Значение Значение
E_ABORT
Указанный файл является базой данных установщика Windows, но не является модулем слияния (отсутствует таблица ModuleSignature).
ERROR_INSTALL_LANGUAGE_UNSUPPORTED как HRESULT
Этот язык не поддерживается модулем.
ERROR_INSTALL_TRANSFORM_FAILURE как HRESULT
Язык поддерживается модулем, но произошла ошибка при применении преобразования.
ERROR_OPEN_FAILED как HRESULT
Не удалось открыть файл как базу данных установщика Windows.
ERROR_TOO_MANY_OPEN_FILES как HRESULT
Модуль уже открыт. Сначала закрывает текущий модуль.
S_OK
Функция выполнена успешно.

Комментарии

Эта функция открывает модуль слияния в режиме только для чтения (MSIDBOPEN_READONLY) и исключает другие программы из записи в модуль слияния до вызова функции CloseModule . Перед слиянием необходимо открыть модуль слияния.

Установщик пытается открыть модуль на языке, указанном в параметре Language, или на любом более общем языке. Например, если 1033 задано в значении Язык , модуль с языком по умолчанию 1033, 9 или 0 открывается на языке по умолчанию. Значение Языка 9 открывает модули с языком по умолчанию 9 или 0. Если язык модуля по умолчанию не соответствует указанным требованиям, выполняется попытка преобразовать модуль в запрошенный язык. Если это не удается, установщик пытается преобразовать модуль во все более общие языки, вплоть до нейтрального языка. Если ни одно из преобразований не завершается успешно, модуль не открывается. В этом случае в список ошибок типа msmErrorLanguageUnsupported добавляется ошибка, а функция возвращает ERROR_INSTALL_LANGUAGE_UNSUPPORTED как HRESULT.

При возникновении ошибки при преобразовании модуля в нужный язык создается ошибка типа msmErrorLanguageFailed и функция возвращает ERROR_INSTALL_TRANSFORM_FAILURE как HRESULT.

Дополнительные сведения см. в разделе Свойство Type объекта Error .

При открытии модуля слияния удаляются ошибки, которые еще не были получены.

Требования

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

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

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