Share via


Método IMsmMerge::OpenModule (mergemod.h)

El método OpenModule abre un módulo de combinación de Windows Installer en modo de solo lectura. Se debe abrir un módulo para poder combinarlo con una base de datos de instalación. Para obtener más información, vea el método OpenModule del objeto Merge .

IMsmMerge2::OpenModule Mergemod.dll versión 2.0 y posteriores.

 
IMsmMerge::OpenModule Todas las versiones de Mergemod.dll.

Sintaxis

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

Parámetros

[in] Path

Nombre de archivo completo que apunta a un módulo de combinación. Se puede usar un LPCWSTR en lugar de un BSTR.

[in] Language

Un identificador de idioma (LANGID).

Valor devuelto

La función OpenModule devuelve los valores siguientes.

Valor Significado
E_ABORT
El archivo especificado es una base de datos de Windows Installer, pero no es un módulo de combinación (falta la tabla ModuleSignature).
ERROR_INSTALL_LANGUAGE_UNSUPPORTED como HRESULT
El módulo no admite el idioma.
ERROR_INSTALL_TRANSFORM_FAILURE como HRESULT
El módulo admite el idioma, pero se produjo un error al aplicar la transformación.
ERROR_OPEN_FAILED como HRESULT
No se pudo abrir el archivo como base de datos de Windows Installer.
ERROR_TOO_MANY_OPEN_FILES como HRESULT
Ya hay un módulo abierto. Cierra primero el módulo actual.
S_OK
La función se ha realizado correctamente.

Comentarios

Esta función abre el módulo de combinación en modo de solo lectura (MSIDBOPEN_READONLY) y excluye otros programas de escritura en el módulo de combinación hasta que se llame a la función CloseModule . Se debe abrir un módulo de combinación para poder combinarlo.

El instalador intenta abrir el módulo en el idioma especificado por Language o en cualquier idioma más general. Por ejemplo, si el valor idioma especifica 1033, se abre un módulo con un idioma predeterminado de 1033, 9 o 0 en su idioma predeterminado. Si el valor de Language es 9, los módulos se abren con los idiomas predeterminados 9 o 0. Si el idioma predeterminado del módulo no cumple los requisitos especificados, se intenta transformar el módulo en el idioma solicitado. Si se produce un error, el instalador intenta transformar el módulo en idiomas cada vez más generales, todo el camino hacia el idioma neutro. Si ninguna de las transformaciones se realiza correctamente, el módulo no se abre. En este caso, se agrega un error a la lista de errores de tipo msmErrorLanguageUnsupported y la función devuelve ERROR_INSTALL_LANGUAGE_UNSUPPORTED como HRESULT.

Si se produce un error al transformar el módulo en el idioma deseado, se crea un error de tipo msmErrorLanguageFailed y la función devuelve ERROR_INSTALL_TRANSFORM_FAILURE como HRESULT.

Para obtener más información, vea la propiedad Type del objeto Error .

Al abrir un módulo de combinación se borran los errores que aún no se han recuperado.

Requisitos

   
Cliente mínimo compatible Mergemod.dll 1.0 o posterior
Plataforma de destino Windows
Encabezado mergemod.h
Archivo DLL Mergemod.dll

Consulte también

Automatización de módulos de combinación