Funzione MsiOpenPackageExA (msi.h)

La funzione MsiOpenPackageEx apre un pacchetto da usare con le funzioni che accedono al database del prodotto. La funzione MsiCloseHandle deve essere chiamata con l'handle quando l'handle non è più necessario.

Nota Inizializzare COM nello stesso thread prima di chiamare la funzione MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct .

 

Sintassi

UINT MsiOpenPackageExA(
  [in]  LPCSTR    szPackagePath,
  [in]  DWORD     dwOptions,
  [out] MSIHANDLE *hProduct
);

Parametri

[in] szPackagePath

Percorso del pacchetto.

[in] dwOptions

Flag di bit per indicare se ignorare o meno lo stato del computer. Passare 0 (zero) per usare il comportamento MsiOpenPackage .

Costante Significato
MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE
1
Ignorare lo stato del computer durante la creazione dell'handle del prodotto.

[out] hProduct

Puntatore a una variabile che riceve l'handle del prodotto.

Valore restituito

Valore Significato
ERROR_BAD_CONFIGURATION
Le informazioni di configurazione sono danneggiate.
ERROR_INSTALL_FAILURE
Impossibile aprire il prodotto.
ERROR_INSTALL_REMOTE_PROHIBITED
Windows Installer non consente l'installazione da una connessione Desktop remoto.
ERROR_INVALID_PARAMETER
Alla funzione viene passato un parametro non valido.
ERROR_SUCCESS
La funzione viene completata correttamente.
 

Se questa funzione ha esito negativo, può restituire un codice di errore di sistema. Per altre informazioni, vedere Codici di errore di sistema.

Commenti

Per creare un handle di prodotto limitato indipendentemente dallo stato corrente della macchina e incapace di modificare lo stato corrente della macchina, usare MsiOpenPackageEx con MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE impostato in dwOptions.

Si noti che se dwOptions è MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE o 1, MsiOpenPackageEx ignora lo stato corrente del computer durante la creazione dell'handle di prodotto. Se il valore di dwOptions è 0, MsiOpenPackageEx corrisponde a MsiOpenPackage e crea un handle di prodotto che dipende dal fatto che il pacchetto specificato da szPackagePath sia già installato nel computer.

L'handle con restrizioni creato tramite MsiOpenPackageEx con MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE consente solo l'esecuzione di dialoghi, un subset delle azioni standard e azioni personalizzate che impostano le proprietà ( tipo di azione personalizzata 35, tipo di azione personalizzata 51 e tipo di azione personalizzata 19). L'handle con restrizioni impedisce l'uso di azioni personalizzate che eseguono librerie a collegamento dinamico, file eseguibili o script.

È possibile chiamare MsiDoAction nelle azioni standard seguenti usando l'handle con restrizioni. Tutte le altre azioni restituiscono ERROR_FUNCTION_NOT_CALLED se viene chiamato con l'handle con restrizioni.

La funzione MsiCloseHandle deve essere chiamata quando l'handle non è necessario.

Nota

L'intestazione msi.h definisce MsiOpenPackageEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP. Per informazioni sul Service Pack minimo di Windows richiesto da una versione di Windows Installer, vedere Windows Installer Run-Time Requirements .See the Windows Installer requirements for information about the minimum Windows Service Pack that is required by a Windows Installer version.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll