Condividi tramite


Funzione MsiProvideComponentA (msi.h)

La funzione MsiProvideComponent restituisce il percorso completo del componente, eseguendo qualsiasi installazione necessaria. Questa funzione richiede l'origine, se necessario e incrementa il conteggio di utilizzo per la funzionalità.

Sintassi

UINT MsiProvideComponentA(
  [in]      LPCSTR  szProduct,
  [in]      LPCSTR  szFeature,
  [in]      LPCSTR  szComponent,
  [in]      DWORD   dwInstallMode,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Parametri

[in] szProduct

Specifica il codice prodotto per il prodotto che contiene la funzionalità con il componente necessario.

[in] szFeature

Specifica l'ID funzionalità della funzionalità con il componente necessario.

[in] szComponent

Specifica il codice componente del componente necessario.

[in] dwInstallMode

Definisce la modalità di installazione. Questo parametro può avere uno dei valori seguenti.

Valore Significato
INSTALLMODE_DEFAULT
Specificare il componente ed eseguire qualsiasi installazione necessaria per fornire il componente. Se manca il file chiave di un componente nella funzionalità richiesta o un elemento padre della funzionalità, reinstallare la funzionalità usando MsiReinstallFeature con i flag seguenti impostati: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA e REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Specificare il componente solo se la funzionalità esiste. In caso contrario, restituire ERROR_FILE_NOT_FOUND.

Questa modalità verifica che il file di chiave del componente esista.

INSTALLMODE_NODETECTION
Specificare il componente solo se la funzionalità esiste. In caso contrario, restituire ERROR_FILE_NOT_FOUND.

Questa modalità controlla solo che il componente sia registrato e non verifichi che il file di chiave del componente esista.

combinazione dei flag REINSTALLMODE
Chiamare MsiReinstallFeature per reinstallare la funzionalità usando questo parametro per il parametro dwReinstallMode e quindi specificare il componente.
INSTALLMODE_NOSOURCERESOLUTION
Specificare il componente solo se lo stato di installazione della funzionalità è INSTALLSTATE_LOCAL. Se lo stato di installazione della funzionalità è INSTALLSTATE_SOURCE, restituire ERROR_INSTALL_SOURCE_ABSENT. In caso contrario, restituire ERROR_FILE_NOT_FOUND. Questa modalità controlla solo che il componente sia registrato e non verifichi che il file di chiave esista.

[out] lpPathBuf

Puntatore a una variabile che riceve il percorso del componente. Questo parametro può essere null.

[in, out] pcchPathBuf

Puntatore a una variabile che specifica le dimensioni, in caratteri, del buffer a cui punta il parametro lpPathBuf . Nell'input si tratta della dimensione completa del buffer, incluso uno spazio per un carattere Null di terminazione. Se il buffer passato è troppo piccolo, il conteggio restituito non include il carattere Null di terminazione.

Se lpPathBuf è null, pcchBuf può essere null.

Valore restituito

Valore Significato
ERROR_BAD_CONFIGURATION
I dati di configurazione sono danneggiati.
ERROR_FILE_NOT_FOUND
La funzionalità è assente o interrotta. questo errore viene restituito per dwInstallMode = INSTALLMODE_EXISTING.
ERROR_INSTALL_FAILURE
Operazione di installazione non riuscita.
ERROR_INSTALL_NOTUSED
Il componente richiesto è disabilitato nel computer.
ERROR_INVALID_PARAMETER
Alla funzione è stato passato un parametro non valido.
ERROR_SUCCESS
La funzione è stata completata correttamente.
ERROR_UNKNOWN_FEATURE
L'ID funzionalità non identifica una funzionalità nota.
ERROR_UNKNOWN_PRODUCT
Il codice prodotto non identifica un prodotto noto.
INSTALLSTATE_UNKNOWN
Un prodotto non riconosciuto o un nome di funzionalità è stato passato alla funzione.
ERROR_MORE_DATA
Viene restituito l'overflow del buffer.
ERROR_INSTALL_SOURCE_ABSENT
Impossibile rilevare un'origine.
 

Per altre informazioni, vedere Messaggi di errore visualizzati.

Commenti

Dopo l'esito positivo della funzione MsiProvideComponent , il parametro pcchPathBuf contiene la lunghezza della stringa in lpPathBuf.

La funzione MsiProvideComponent combina le funzionalità di MsiUseFeature, MsiConfigureFeature e MsiGetComponentPath. È possibile usare la funzione MsiProvideComponent per semplificare la sequenza chiamante. Tuttavia, poiché questa funzione incrementa il conteggio di utilizzo, usarlo con cautela per evitare conteggi di utilizzo non accurati. La funzione MsiProvideComponent offre anche una minore flessibilità rispetto alla serie di singole chiamate.

Se l'applicazione viene ripristinata da una situazione imprevista, l'applicazione probabilmente ha già chiamato MsiUseFeature e ha incrementato il numero di utilizzo. In questo caso, l'applicazione deve chiamare MsiConfigureFeature anziché MsiProvideComponent per evitare di incrementare nuovamente il conteggio.

L'opzione INSTALLMODE_EXISTING non può essere utilizzata in combinazione con il flag REINSTALLMODE.

Le funzionalità con componenti contenenti un file danneggiato o la versione errata di un file devono essere reinstallate in modo esplicito dall'utente o tramite la chiamata dell'applicazione MsiReinstallFeature.

Nota

L'intestazione msi.h definisce MsiProvideComponent 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

Vedi anche

Funzioni specifiche dei componenti

Installazioni multiple-package