Funzione MsiGetComponentPathExA (msi.h)

La funzione MsiGetComponentPathEx restituisce il percorso completo di un componente installato. Se il percorso della chiave per il componente è una chiave del Registro di sistema, la funzione restituisce la chiave del Registro di sistema.

Questa funzione estende la funzione MsiGetComponentPath esistente per consentire la ricerca di componenti tra account utente e contesti di installazione.

Sintassi

INSTALLSTATE MsiGetComponentPathExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szComponentCode,
  [in, optional]      LPCSTR            szUserSid,
  [in, optional]      MSIINSTALLCONTEXT dwContext,
  [out, optional]     LPSTR             lpOutPathBuffer,
  [in, out, optional] LPDWORD           pcchOutPathBuffer
);

Parametri

[in] szProductCode

Valore stringa con terminazione Null che specifica il GUID del codice prodotto di un'applicazione. La funzione ottiene il percorso dei componenti installati usati dall'applicazione.

[in] szComponentCode

Valore stringa con terminazione Null che specifica un GUID del codice del componente. La funzione ottiene il percorso di un componente installato con questo codice componente.

[in, optional] szUserSid

Valore stringa con terminazione Null che specifica l'identificatore di sicurezza (SID) per un utente nel sistema. La funzione ottiene i percorsi dei componenti installati delle applicazioni installate negli account utente identificati da questo SID. La speciale stringa SID s-1-1-0 (Everyone) specifica tutti gli utenti nel sistema. Se questo parametro è NULL, la funzione ottiene il percorso di un componente installato solo per l'utente attualmente connesso.

Tipo SID Significato
NULL
Specifica l'utente attualmente connesso.
SID utente
Specifica un utente specifico nel sistema. Un esempio di SID utente è "S-1-3-64-2415071341-1358098788-312745600-2561".
s-1-1-0
Specifica tutti gli utenti nel sistema.
 
Nota Non è possibile usare la speciale stringa SID s-1-5-18 (System) per cercare le applicazioni installate nel contesto di installazione per computer. L'impostazione del valore SID su s-1-5-18 restituisce ERROR_INVALID_PARAMETER. Quando dwContext è impostato solo su MSIINSTALLCONTEXT_MACHINE, szUserSid deve essere NULL.
 

[in, optional] dwContext

Flag che specifica il contesto di installazione. La funzione ottiene i percorsi dei componenti installati delle applicazioni installate nel contesto di installazione specificato. Questo parametro può essere una combinazione dei valori seguenti.

Contesto Significato
MSIINSTALLCONTEXT_USERMANAGED
1
Includere le applicazioni installate nel contesto di installazione gestita dall'utente.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Includere le applicazioni installate nel contesto di installazione per utente-non gestito.
MSIINSTALLCONTEXT_MACHINE
4
Includere le applicazioni installate nel contesto di installazione per computer. Quando dwInstallContext è impostato solo su MSIINSTALLCONTEXT_MACHINE , il parametro szUserSID deve essere NULL.

[out, optional] lpOutPathBuffer

Valore stringa che riceve il percorso del componente. Questo parametro può essere NULL. Se il componente è una chiave del Registro di sistema, le radici del Registro di sistema vengono rappresentate numericamente. Se si tratta di un percorso della sottochiave del Registro di sistema, è presente una barra rovesciata alla fine del percorso della chiave. Se si tratta di un percorso di chiave del valore del Registro di sistema, non è presente alcuna barra rovesciata alla fine. Ad esempio, un percorso del Registro di sistema in un sistema operativo a 32 bit di HKEY_CURRENT_USER\SOFTWARE\Microsoft viene restituito come "01:\SOFTWARE\Microsoft". Le radici del Registro di sistema restituite nei sistemi operativi a 32 bit sono definite come illustrato nella tabella seguente.

Nota Nei sistemi operativi a 64 bit, viene aggiunto un valore pari a 20 alle radici numeriche del Registro di sistema in questa tabella per distinguerle dai percorsi delle chiavi del Registro di sistema nei sistemi operativi a 32 bit. Ad esempio, un percorso della chiave del Registro di sistema di HKEY_CURRENT_USER\SOFTWARE\Microsoft viene restituito come "21:\SOFTWARE\Microsoft\", se il percorso del componente è una chiave del Registro di sistema in un sistema operativo a 64 bit.
 
Radice Significato
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[in, out, optional] pcchOutPathBuffer

Puntatore a una posizione che riceve le dimensioni del buffer, in TCHAR, a cui punta il parametro szPathBuf . Il valore in questa posizione deve essere impostato sul conteggio di TCHAR nella stringa, incluso il carattere Null di terminazione. Se le dimensioni del buffer sono troppo piccole, questo parametro riceve la lunghezza del valore stringa senza includere il carattere null di terminazione nel conteggio.

Valore restituito

La funzione MsiGetComponentPathEx restituisce i valori seguenti.

Valore Significato
INSTALLSTATE_NOTUSED
Il componente richiesto è disabilitato nel computer.
INSTALLSTATE_BADCONFIG
I dati di configurazione sono danneggiati.
INSTALLSTATE_ABSENT
Il componente non è installato.
INSTALLSTATE_INVALIDARG
Uno dei parametri della funzione non è valido.
INSTALLSTATE_LOCAL
Il componente viene installato localmente.
INSTALLSTATE_SOURCE
Il componente viene installato per l'esecuzione dall'origine.
INSTALLSTATE_SOURCEABSENT
L'origine del componente non è accessibile.
INSTALLSTATE_UNKNOWN
Il codice prodotto o l'ID componente è sconosciuto.
INSTALLSTATE_BROKEN
Il componente è danneggiato o parzialmente mancante in qualche modo e richiede il ripristino.

Commenti

La funzione MsiGetComponentPathEx potrebbe restituire INSTALLSTATE_ABSENT o INSTALL_STATE_UNKNOWN, per i motivi seguenti:

  • INSTALLSTATE_ABSENT

    L'applicazione non ha verificato correttamente che la funzionalità sia stata installata chiamando MsiUseFeature e, se necessario, MsiConfigureFeature.

  • INSTALLSTATE_UNKNOWN

    La funzionalità non è pubblicata. L'applicazione deve aver determinato questo valore in precedenza chiamando MsiQueryFeatureState o MsiEnumFeatures. L'applicazione effettua queste chiamate durante l'inizializzazione. Un'applicazione deve usare solo funzionalità note per la pubblicazione. Poiché INSTALLSTATE_UNKNOWN dovrebbe essere stato restituito anche da MsiUseFeature , msiUseFeature non è stato chiamato o il relativo valore restituito non è stato controllato correttamente.

Nota

L'intestazione msi.h definisce MsiGetComponentPathEx 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. Per informazioni sul Service Pack minimo di Windows Richiesto da una versione di Windows Installer, vedere i requisiti di Windows Installer Run-Time.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Funzioni specifiche del componente