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 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 della dimensione completa 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.

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