Metodo IMsmMerge::OpenModule (mergemod.h)

Il metodo OpenModule apre un modulo di merge di Windows Installer in modalità di sola lettura. Un modulo deve essere aperto prima che possa essere unito a un database di installazione. Per altre informazioni, vedere il metodo OpenModule dell'oggetto Merge .

IMsmMerge2::OpenModule Mergemod.dll versione 2.0 e versioni successive.

 
IMsmMerge::OpenModule Tutte le versioni Mergemod.dll.

Sintassi

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

Parametri

[in] Path

Nome file completo che punta a un modulo di tipo merge. Un LPCWSTR può essere usato al posto di una BSTR.

[in] Language

Identificatore della lingua (LANGID).

Valore restituito

La funzione OpenModule restituisce i valori seguenti.

Valore Significato
E_ABORT
Il file specificato è un database di Windows Installer, ma non è un modulo di tipo merge (tabella ModuleSignature mancante).
ERROR_INSTALL_LANGUAGE_UNSUPPORTED come HRESULT
La lingua non è supportata dal modulo.
ERROR_INSTALL_TRANSFORM_FAILURE come HRESULT
La lingua è supportata dal modulo, ma si è verificato un errore durante l'applicazione della trasformazione.
ERROR_OPEN_FAILED come HRESULT
Impossibile aprire il file come database di Windows Installer.
ERROR_TOO_MANY_OPEN_FILES come HRESULT
Esiste già un modulo aperto. Chiude prima il modulo corrente.
S_OK
Funzione completata.

Commenti

Questa funzione apre il modulo di tipo merge in modalità di sola lettura (MSIDBOPEN_READONLY) ed esclude altri programmi dalla scrittura al modulo di merge finché non viene chiamata la funzione CloseModule . Un modulo di tipo merge deve essere aperto prima che possa essere unito.

Il programma di installazione tenta di aprire il modulo nella lingua specificata dalla lingua o in qualsiasi lingua più generale. Se ad esempio 1033 viene specificato dal valore Language , un modulo con una lingua predefinita di 1033, 9 o 0 viene aperta nella lingua predefinita. Un valore lingua di 9 apre moduli con una lingua predefinita di 9 o 0. Se la lingua predefinita del modulo non soddisfa i requisiti specificati, viene eseguito un tentativo di trasformare il modulo nella lingua richiesta. In caso contrario, il programma di installazione tenta di trasformare il modulo in lingue sempre più generali, fino alla lingua neutrale. Se nessuna delle trasformazioni ha esito positivo, il modulo non riesce ad aprire. In questo caso, viene aggiunto un errore all'elenco di errori di tipo msmErrorLanguageUnsupported e la funzione restituisce ERROR_INSTALL_LANGUAGE_UNSUPPORTED come HRESULT.

Se si verifica un errore che trasforma il modulo nella lingua desiderata, viene creato un errore di tipo msmErrorLanguageFailed e la funzione restituisce ERROR_INSTALL_TRANSFORM_FAILURE come HRESULT.

Per altre informazioni, vedere la proprietà Type dell'oggetto Error .

L'apertura di un modulo di tipo merge cancella eventuali errori che non sono già stati recuperati.

Requisiti

   
Client minimo supportato Mergemod.dll 1.0 o versioni successive
Piattaforma di destinazione Windows
Intestazione mergemod.h
DLL Mergemod.dll

Vedi anche

Automazione del modulo di merge