Funzione MsiGetFeatureValidStatesW (msiquery.h)
La funzione MsiGetFeatureValidStates restituisce uno stato di installazione valido.
Sintassi
UINT MsiGetFeatureValidStatesW(
[in] MSIHANDLE hInstall,
[in] LPCWSTR szFeature,
[out] LPDWORD lpInstallStates
);
Parametri
[in] hInstall
Gestire l'installazione fornita a un'azione personalizzata DLL o ottenuta tramite MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct.
[in] szFeature
Specifica il nome della funzionalità.
[out] lpInstallStates
Riceve il percorso per contenere gli stati di installazione validi. Per ogni stato di installazione valido, il programma di installazione imposta pInstallState su una combinazione dei valori seguenti. Questo parametro non deve essere null.
Valore restituito
La funzione MsiGetFeatureValidStates restituisce i valori seguenti:
Commenti
Vedere Chiamata di funzioni di database da programmi.
La funzione MsiGetFeatureValidStates determina la validità dello stato eseguendo una query su tutti i componenti collegati alla funzionalità specificata senza tenere conto dello stato installato corrente di qualsiasi componente.
Gli stati validi possibili per una funzionalità vengono determinati come segue:
- Se la funzionalità non contiene componenti, sia INSTALLSTATE_LOCAL che INSTALLSTATE_SOURCE sono stati validi per la funzionalità.
- Se almeno un componente della funzionalità ha un attributo msidbComponentAttributesLocalOnly o msidbComponentAttributesOptional, INSTALLSTATE_LOCAL è uno stato valido per la funzionalità.
- Se almeno un componente della funzionalità ha un attributo msidbComponentAttributesSourceOnly o msidbComponentAttributesOptional, INSTALLSTATE_SOURCE è uno stato valido per la funzionalità.
- Se un file di un componente appartenente alla funzionalità viene patchato o da un'origine compressa, INSTALLSTATE_SOURCE non è incluso come stato valido per la funzionalità.
- INSTALLSTATE_ADVERTISE non è uno stato valido se la funzionalità non consente l'annuncio (msidbFeatureAttributesDisallowAdvertise) o la funzionalità richiede il supporto della piattaforma per l'annuncio (msidbFeatureAttributesNoUnsupportedAdvertise) e la piattaforma non lo supporta.
- INSTALLSTATE_ABSENT è uno stato valido per la funzionalità se i relativi attributi non includono msidbFeatureAttributesUIDisallowAbsent.
- Gli stati validi per le funzionalità figlio contrassegnate per seguire la funzionalità padre (msidbFeatureAttributesFollowParent) si basano sull'azione della funzionalità padre o sullo stato installato.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Se Feature1 ha attributi di valore 0 (favore locale) e Feature1 ha un componente con attributi di valore 0 (solo locale), il valore di dwValidStates dopo la chiamata è 14. Ciò indica che INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT e INSTALLSTATE_ADVERTISED sono stati validi per Feature1. L'istruzione condizionale seguente restituisce True se locale è uno stato valido per questa funzionalità.
( ( dwValidStates & ( 1 INSTALLSTATE_LOCAL ) ) ) = ( 1 <<<< INSTALLSTATE_LOCAL ) ) )
Se la funzione ha esito negativo, è possibile ottenere informazioni di errore estese usando MsiGetLastErrorRecord.
Nota
L'intestazione msiquery.h definisce MsiGetFeatureValidStates come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
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 |
Piattaforma di destinazione | Windows |
Intestazione | msiquery.h |
Libreria | Msi.lib |
DLL | Msi.dll |
Vedi anche
Funzioni di selezione del programma di installazione
Passaggio di Null come argomento delle funzioni di Windows Installer