Condividi tramite


Funzione MsiLocateComponentA (msi.h)

La funzione MsiLocateComponent restituisce il percorso completo di un componente installato senza codice prodotto. Questa funzione tenta di determinare il prodotto usando MsiGetProductCode, ma non è garantito di trovare il prodotto corretto per il chiamante. msiGetComponentPath deve essere sempre chiamato quando possibile.

Sintassi

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

Parametri

[in] szComponent

Specifica l'ID componente del componente da individuare.

[out] lpPathBuf

Puntatore a una variabile che riceve il percorso del componente. La variabile include il carattere Null di terminazione.

[in, out] pcchBuf

Puntatore a una variabile che specifica le dimensioni, in caratteri, del buffer a cui punta il parametro lpPathBuf. Nell'input, si tratta delle dimensioni complete del buffer, incluso uno spazio per un carattere Null di terminazione. Dopo l'esito positivo della funzione MsiLocateComponent, la variabile a cui punta pcchBuf contiene il numero di caratteri che non includono il carattere Null di terminazione. Se le dimensioni del buffer passato sono troppo piccole, la funzione restituisce INSTALLSTATE_MOREDATA.

Se lpPathBuf è null, pcchBuf può essere Null.

Valore restituito

Valore Significato
INSTALLSTATE_NOTUSED
Il componente richiesto è disabilitato nel computer.
INSTALLSTATE_ABSENT
Il componente non è installato. Vedere la sezione Osservazioni.
INSTALLSTATE_INVALIDARG
Uno dei parametri della funzione non è valido.
INSTALLSTATE_LOCAL
Il componente viene installato localmente.
INSTALLSTATE_MOREDATA
Il buffer fornito era troppo piccolo.
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. Vedere la sezione Osservazioni.

Osservazioni

La funzione msiLocateComponent può 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 stata 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 oppure il relativo valore restituito non è stato controllato correttamente.

Nota

L'intestazione msi.h definisce MsiLocateComponent 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. Per informazioni sul Service Pack minimo di Windows richiesto da una versione di Windows Installer, vedere Requisiti di windows Run-Time.
piattaforma di destinazione Finestre
intestazione msi.h
libreria Msi.lib
dll Msi.dll

Vedere anche

funzioni di Component-Specific