Funzione MsiLocateComponentW (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 trovare il prodotto corretto per il chiamante. MsiGetComponentPath deve essere sempre chiamato quando possibile.

Sintassi

INSTALLSTATE MsiLocateComponentW(
  [in]      LPCWSTR szComponent,
  [out]     LPWSTR  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 terminante.

[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. Al termine della funzione MsiLocateComponent , la variabile puntata da pcchBuf contiene il conteggio dei caratteri non incluso il carattere Null di terminazione. Se le dimensioni del buffer passate 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.

Commenti

La funzione MsiLocateComponent 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 MsiLocateComponent 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