Freigeben über


IMsmMerge::OpenModule-Methode (mergemod.h)

Die OpenModule-Methode öffnet ein Windows Installer-Mergemodul im schreibgeschützten Modus. Ein Modul muss geöffnet werden, bevor es mit einer Installationsdatenbank zusammengeführt werden kann. Weitere Informationen finden Sie unter der OpenModule-Methode des Merge-Objekts .

IMsmMerge2::OpenModule Mergemod.dll Version 2.0 und höher.

 
IMsmMerge::OpenModule Alle Mergemod.dll Versionen.

Syntax

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

Parameter

[in] Path

Vollqualifizierter Dateiname, der auf ein Mergemodul verweist. Anstelle eines BSTR kann ein LPCWSTR verwendet werden.

[in] Language

Ein Sprachbezeichner (LANGID).

Rückgabewert

Die OpenModule-Funktion gibt die folgenden Werte zurück.

Wert Bedeutung
E_ABORT
Die angegebene Datei ist eine Windows Installer-Datenbank, aber kein Mergemodul (fehlende ModuleSignature-Tabelle).
ERROR_INSTALL_LANGUAGE_UNSUPPORTED als HRESULT
Die Sprache wird vom Modul nicht unterstützt.
ERROR_INSTALL_TRANSFORM_FAILURE als HRESULT
Die Sprache wird vom Modul unterstützt, aber beim Anwenden der Transformation ist ein Fehler aufgetreten.
ERROR_OPEN_FAILED als HRESULT
Die Datei konnte nicht als Windows Installer-Datenbank geöffnet werden.
ERROR_TOO_MANY_OPEN_FILES als HRESULT
Es ist bereits ein Modul geöffnet. Schließt zuerst das aktuelle Modul.
S_OK
Die Funktion wurde erfolgreich ausgeführt.

Hinweise

Diese Funktion öffnet das Mergemodul im schreibgeschützten Modus (MSIDBOPEN_READONLY) und schließt andere Programme vom Schreiben in das Mergemodul aus, bis die CloseModule-Funktion aufgerufen wird. Ein Mergemodul muss geöffnet werden, bevor es zusammengeführt werden kann.

Das Installationsprogramm versucht, das Modul in der durch Sprache angegebenen Sprache oder in einer allgemeineren Sprache zu öffnen. Wenn beispielsweise 1033 durch den Language-Wert angegeben wird, wird ein Modul mit der Standardsprache 1033, 9 oder 0 in seiner Standardsprache geöffnet. Ein Language-Wert von 9 öffnet Module mit einer Standardsprache von 9 oder 0. Wenn die Standardsprache des Moduls die angegebenen Anforderungen nicht erfüllt, wird versucht, das Modul in die angeforderte Sprache zu transformieren. Wenn dies fehlschlägt, versucht das Installationsprogramm, das Modul in immer allgemeinere Sprachen zu transformieren, bis hin zu sprachneutralen Sprachen. Wenn keine der Transformationen erfolgreich ist, kann das Modul nicht geöffnet werden. In diesem Fall wird der Fehlerliste vom Typ msmErrorLanguageUnsupported ein Fehler hinzugefügt, und die Funktion gibt ERROR_INSTALL_LANGUAGE_UNSUPPORTED als HRESULT zurück.

Wenn beim Transformieren des Moduls in die gewünschte Sprache ein Fehler auftritt, wird ein Fehler vom Typ msmErrorLanguageFailed erstellt, und die Funktion gibt ERROR_INSTALL_TRANSFORM_FAILURE als HRESULT zurück.

Weitere Informationen finden Sie in der Type-Eigenschaft des Error-Objekts .

Das Öffnen eines Mergemoduls löscht alle Fehler, die noch nicht abgerufen wurden.

Anforderungen

   
Unterstützte Mindestversion (Client) Mergemod.dll 1.0 oder höher
Zielplattform Windows
Kopfzeile mergemod.h
DLL Mergemod.dll

Weitere Informationen

Automatisierung für Mergemodule