Condividi tramite


Funzione MsiGetTargetPathA (msiquery.h)

La funzione MsiGetTargetPath restituisce il percorso di destinazione completo 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, MsiOpenPackageExo MsiOpenProduct.

[in] szFolder

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

[out] szPathBuf

Puntatore al buffer che riceve il percorso di destinazione completo con terminazione 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 TCHAR, senza includere il carattere Null di terminazione. In caso di restituzione di ERROR_SUCCESS, pcchPathBuf contiene il numero di TCHAR scritti nel buffer, senza includere il carattere Null di terminazione.

[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, senza includere il carattere Null di terminazione. Se szPathBuf non è sufficientemente grande, la funzione restituisce ERROR_MORE_DATA e archivia le dimensioni necessarie, senza includere il carattere Null di terminazione, nella variabile a cui punta pcchPathBuf.

Valore restituito

La funzione MsiGetTargetPath restituisce i valori seguenti:

Osservazioni

Se viene restituito ERROR_MORE_DATA, il parametro che è un puntatore restituisce le dimensioni del buffer necessario per contenere la stringa. Se viene restituito ERROR_SUCCESS, restituisce il numero di caratteri scritti nel buffer di stringa. È quindi 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, azione FileCoste 'azione 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 sui valori predefiniti. Per ottenere il percorso effettivo della directory di destinazione in questo caso, chiamare MsiProvideComponent per un componente che è 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 non riesce, è possibile ottenere informazioni estese sull'errore 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 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
piattaforma di destinazione Finestre
intestazione msiquery.h
libreria Msi.lib
dll Msi.dll

Vedere anche

Funzioni di posizione del programma di installazione

passaggio di Null come argomento delle funzioni di Windows Installer