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.
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 |
---|---|
|
Il file specificato è un database di Windows Installer, ma non è un modulo di tipo merge (tabella ModuleSignature mancante). |
|
La lingua non è supportata dal modulo. |
|
La lingua è supportata dal modulo, ma si è verificato un errore durante l'applicazione della trasformazione. |
|
Impossibile aprire il file come database di Windows Installer. |
|
Esiste già un modulo aperto. Chiude prima il modulo corrente. |
|
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 |