Condividi tramite


Funzione MsiGetComponentPathA (msi.h)

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

Sintassi

INSTALLSTATE MsiGetComponentPathA(
  [in]      LPCSTR  szProduct,
  [in]      LPCSTR  szComponent,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchBuf
);

Parametri

[in] szProduct

Specifica il codice prodotto per il prodotto client.

[in] szComponent

Specifica l'ID componente del componente da individuare.

[out] lpPathBuf

Puntatore a una variabile 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 di sottochiave del Registro di sistema, è presente una barra rovesciata alla fine del percorso chiave. Se si tratta di un percorso chiave chiave valore del Registro di sistema, non esiste 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 del Registro di sistema numerico in questa tabella per distinguerle dai percorsi delle chiavi del Registro di sistema nei sistemi operativi a 32 bit. Ad esempio, un percorso 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.
 
Root Significato
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[in, out] pcchBuf

Puntatore a una variabile che specifica le dimensioni, in caratteri, del buffer a cui punta il parametro lpPathBuf . In input, questa è la dimensione completa del buffer, incluso uno spazio per un carattere null terminante. Se il buffer passato è troppo piccolo, il conteggio restituito non include il carattere null terminante.

Se lpPathBuf è null, pcchBuf può essere null.

Valore restituito

La funzione MsiGetComponentPath restituisce i valori seguenti.

Valore Significato
INSTALLSTATE_NOTUSED
Il componente richiesto è disabilitato nel computer.
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.

Commenti

Al termine dell'esito positivo della funzione MsiGetComponentPath , il parametro pcchBuf contiene la lunghezza della stringa in lpPathBuf.

La funzione MsiGetComponentPath 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 viene pubblicata. L'applicazione deve essere determinata in precedenza chiamando MsiQueryFeatureState o MsiEnumFeatures. L'applicazione effettua queste chiamate durante l'inizializzazione. Un'applicazione deve usare solo le 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 MsiGetComponentPath 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

   
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 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