Funzione MsiSetFeatureStateA (msiquery.h)
La funzione MsiSetFeatureState imposta una funzionalità su uno stato specificato.
Sintassi
UINT MsiSetFeatureStateA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[in] INSTALLSTATE iState
);
Parametri
[in] hInstall
Gestire l'installazione fornita a un'azione personalizzata DLL o ottenuta tramite MsiOpenPackage, MsiOpenPackageExo MsiOpenProduct.
[in] szFeature
Specifica il nome della funzionalità.
[in] iState
Specifica lo stato da impostare. Questo parametro può essere uno dei valori seguenti.
Valore restituito
La funzione msiSetFeatureState
Osservazioni
La funzione MsiSetFeatureState richiede una modifica nello stato di selezione di una funzionalità nella tabella Feature e nei relativi elementi figlio. A sua volta, lo stato dell'azione di tutti i componenti collegati ai record delle funzionalità modificate viene aggiornato in modo appropriato, in base allo stato di selezione della nuova funzionalità.
È necessario chiamare la funzione msiSetInstallLevel
Quando viene chiamato MsiSetFeatureState, il programma di installazione tenta di impostare lo stato di azione di ogni componente associato alla funzionalità specificata allo stato specificato. Tuttavia, esistono situazioni comuni in cui la richiesta non può essere completamente implementata. Ad esempio, se una funzionalità è associata a due componenti, componente A e componente B, tramite la tabella FeatureComponents e il componente A ha il msidbComponentAttributesLocalOnly attributo e componente B ha l'attributo msidbComponentAttributesSourceOnly attributo. In questo caso, se MsiSetFeatureState viene chiamato con uno stato richiesto di INSTALLSTATE_LOCAL o INSTALLSTATE_SOURCE, la richiesta non può essere completamente implementata per entrambi i componenti. In questo caso, entrambi i componenti sono attivati, con componente A impostato su Locale e componente B impostato su Origine.
Se più di una funzionalità è collegata a un singolo componente (uno scenario comune), lo stato dell'azione finale di tale componente viene determinato come segue:
- Se almeno una funzionalità richiede l'installazione locale del componente, la funzionalità viene installata con uno stato locale.
- Se almeno una funzionalità richiede che il componente venga eseguito dall'origine, la funzionalità viene installata con uno stato di origine.
- Se almeno una funzionalità richiede la rimozione del componente, lo stato dell'azione è assente.
Se la funzione non riesce, è possibile ottenere informazioni estese sull'errore usando MsiGetLastErrorRecord.
Nota
L'intestazione msiquery.h definisce MsiSetFeatureState 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
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 | Finestre |
intestazione |
msiquery.h |
libreria |
Msi.lib |
dll | Msi.dll |