Метод IMsmMerge::OpenModule (mergemod.h)
Метод OpenModule открывает модуль слияния установщика Windows в режиме только для чтения. Модуль должен быть открыт, прежде чем его можно будет объединить с базой данных установки. Дополнительные сведения см. в статье Метод OpenModule объекта Merge .
IMsmMerge2::OpenModule Mergemod.dll версии 2.0 и более поздних.
Синтаксис
HRESULT OpenModule(
[in] const BSTR Path,
[in] const short Language
);
Параметры
[in] Path
Полное имя файла, указывающее на модуль слияния. Вместо BSTR можно использовать LPCWSTR.
[in] Language
Идентификатор языка (LANGID).
Возвращаемое значение
Функция OpenModule возвращает следующие значения.
Значение | Значение |
---|---|
|
Указанный файл является базой данных установщика Windows, но не является модулем слияния (отсутствует таблица ModuleSignature). |
|
Этот язык не поддерживается модулем. |
|
Язык поддерживается модулем, но произошла ошибка при применении преобразования. |
|
Не удалось открыть файл как базу данных установщика Windows. |
|
Модуль уже открыт. Сначала закрывает текущий модуль. |
|
Функция выполнена успешно. |
Комментарии
Эта функция открывает модуль слияния в режиме только для чтения (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 |