Partager via


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

La méthode OpenModule ouvre un module de fusion Windows Installer en mode lecture seule. Un module doit être ouvert avant de pouvoir être fusionné avec une base de données d’installation. Pour plus d’informations, consultez la méthode OpenModule de l’objet Merge .

IMsmMerge2::OpenModule Mergemod.dll version 2.0 et ultérieures.

 
IMsmMerge::OpenModule Toutes les versions Mergemod.dll.

Syntaxe

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

Paramètres

[in] Path

Nom de fichier complet qui pointe vers un module de fusion. Un LPCWSTR peut être utilisé à la place d’un BSTR.

[in] Language

Un identificateur de langue (LANGID).

Valeur retournée

La fonction OpenModule retourne les valeurs suivantes.

Valeur Signification
E_ABORT
Le fichier spécifié est une base de données Windows Installer, mais n’est pas un module de fusion ( table ModuleSignature manquante).
ERROR_INSTALL_LANGUAGE_UNSUPPORTED en tant que HRESULT
La langue n’est pas prise en charge par le module.
ERROR_INSTALL_TRANSFORM_FAILURE en tant que HRESULT
La langue est prise en charge par le module, mais une erreur s’est produite lors de l’application de la transformation.
ERROR_OPEN_FAILED en tant que HRESULT
Impossible d’ouvrir le fichier en tant que base de données Windows Installer.
ERROR_TOO_MANY_OPEN_FILES en tant que HRESULT
Un module est déjà ouvert. Ferme d’abord le module actuel.
S_OK
La fonction a réussi.

Notes

Cette fonction ouvre le module de fusion en mode lecture seule (MSIDBOPEN_READONLY) et exclut les autres programmes de l’écriture dans le module de fusion jusqu’à ce que la fonction CloseModule soit appelée. Un module de fusion doit être ouvert avant de pouvoir être fusionné.

Le programme d’installation tente d’ouvrir le module dans la langue spécifiée par Language ou dans une langue plus générale. Par exemple, si 1033 est spécifié par la valeur Language , un module avec une langue par défaut 1033, 9 ou 0 est ouvert dans sa langue par défaut. La valeur Language 9 ouvre les modules dont la langue par défaut est 9 ou 0. Si la langue par défaut du module ne répond pas aux exigences spécifiées, une tentative est effectuée pour transformer le module en la langue demandée. En cas d’échec, le programme d’installation tente de transformer le module en langues de plus en plus générales, jusqu’à la langue neutre. Si aucune des transformations ne réussit, le module ne s’ouvre pas. Dans ce cas, une erreur est ajoutée à la liste d’erreurs de type msmErrorLanguageUnsupported et la fonction retourne ERROR_INSTALL_LANGUAGE_UNSUPPORTED en tant que HRESULT.

En cas d’erreur lors de la transformation du module dans la langue souhaitée, une erreur est créée de type msmErrorLanguageFailed et la fonction retourne ERROR_INSTALL_TRANSFORM_FAILURE en tant que HRESULT.

Pour plus d’informations, consultez la propriété Type de l’objet Error .

L’ouverture d’un module de fusion efface toutes les erreurs qui n’ont pas déjà été récupérées.

Spécifications

   
Client minimal pris en charge Mergemod.dll 1.0 ou version ultérieure
Plateforme cible Windows
En-tête mergemod.h
DLL Mergemod.dll

Voir aussi

Automatisation des modules de fusion