Funzione MsiGetTargetPathA (msiquery.h)

La funzione MsiGetTargetPath restituisce il percorso completo di destinazione per una cartella nella tabella Directory.

Sintassi

UINT MsiGetTargetPathA(
  [in]      MSIHANDLE hInstall,
  [in]      LPCSTR    szFolder,
  [out]     LPSTR     szPathBuf,
  [in, out] LPDWORD   pcchPathBuf
);

Parametri

[in] hInstall

Gestire l'installazione fornita a un'azione personalizzata DLL o ottenuta tramite MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct.

[in] szFolder

Stringa con terminazione null che specifica un record della tabella Directory. Se la directory è una directory radice, questo può essere un valore dalla colonna DefaultDir. In caso contrario, deve essere un valore dalla colonna Directory.

[out] szPathBuf

Puntatore al buffer che riceve il percorso completo terminato null. Non tentare di determinare le dimensioni del buffer passando un valore Null (value=0) per szPathBuf. È possibile ottenere le dimensioni del buffer passando una stringa vuota (ad esempio ""). La funzione restituisce quindi ERROR_MORE_DATA e pcchPathBuf contiene le dimensioni del buffer necessarie in TCHARs, non incluso il carattere null terminante. Al ritorno di ERROR_SUCCESS, pcchPathBuf contiene il numero di TCHAR scritti nel buffer, non incluso il carattere null terminante.

[in, out] pcchPathBuf

Puntatore alla variabile che specifica le dimensioni, in TCHARs, del buffer a cui punta la variabile szPathBuf Quando la funzione restituisce ERROR_SUCCESS, questa variabile contiene le dimensioni dei dati copiati in szPathBuf, non incluso il carattere null terminante. Se szPathBuf non è abbastanza grande, la funzione restituisce ERROR_MORE_DATA e archivia le dimensioni necessarie, non incluso il carattere Null terminante, nella variabile a cui punta pcchPathBuf.

Valore restituito

La funzione MsiGetTargetPath restituisce i valori seguenti:

Commenti

Se viene restituito ERROR_MORE_DATA, il parametro che è un puntatore fornisce le dimensioni del buffer necessario per contenere la stringa. Se ERROR_SUCCESS viene restituito, fornisce il numero di caratteri scritti nel buffer di stringa. È pertanto possibile ottenere le dimensioni del buffer passando una stringa vuota (ad esempio "") per il parametro che specifica il buffer. Non tentare di determinare le dimensioni del buffer passando un valore Null (value=0).

Prima di chiamare questa funzione, il programma di installazione deve prima eseguire l'azione CostInitialize, l'azione FileCost e CostFinalize. Per altre informazioni, vedere Chiamata di funzioni di database da programmi.

MsiGetTargetPath restituisce il percorso predefinito della directory di destinazione creata nel pacchetto se il percorso corrente della destinazione non è disponibile per un'installazione. Ad esempio, se durante un'installazione di manutenzione una directory di destinazione in un percorso di rete non è disponibile, il programma di installazione reimposta i percorsi della directory di destinazione ai valori predefiniti. Per ottenere il percorso effettivo della directory di destinazione in questo caso chiamare MsiProvideComponent per un componente noto per essere stato installato in precedenza nella directory cercata e impostare dwInstallMode su INSTALLMODE_NODETECTION.

Per altre informazioni, vedere Chiamata di funzioni di database da programmi.

Se la funzione ha esito negativo, è possibile ottenere informazioni di errore estese usando MsiGetLastErrorRecord.

Nota

L'intestazione msiquery.h definisce MsiGetTargetPath 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
Piattaforma di destinazione Windows
Intestazione msiquery.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Funzioni percorso del programma di installazione

Passaggio di Null come argomento delle funzioni di Windows Installer