Freigeben über


MsiGetTargetPathW-Funktion (msiquery.h)

Die MsiGetTargetPath--Funktion gibt den vollständigen Zielpfad für einen Ordner in der Verzeichnistabellezurück.

Syntax

UINT MsiGetTargetPathW(
  [in]      MSIHANDLE hInstall,
  [in]      LPCWSTR   szFolder,
  [out]     LPWSTR    szPathBuf,
  [in, out] LPDWORD   pcchPathBuf
);

Parameter

[in] hInstall

Behandeln Sie die Installation, die für eine benutzerdefinierte DLL-Aktion bereitgestellt wird, oder erhalten Sie über MsiOpenPackage, MsiOpenPackageEx-oder MsiOpenProduct-.

[in] szFolder

Eine mit Null beendete Zeichenfolge, die einen Datensatz der Verzeichnistabelleangibt. Wenn das Verzeichnis ein Stammverzeichnis ist, kann dies ein Wert aus der Spalte "DefaultDir" sein. Andernfalls muss es sich um einen Wert aus der Spalte "Verzeichnis" sein.

[out] szPathBuf

Zeigen Sie auf den Puffer, der den vollständigen Null-Zielpfad empfängt. Versuchen Sie nicht, die Größe des Puffers zu ermitteln, indem Sie für szPathBufeinen Nullwert (Wert=0) übergeben. Sie können die Größe des Puffers abrufen, indem Sie eine leere Zeichenfolge übergeben (z. B. ""). Die Funktion gibt dann ERROR_MORE_DATA zurück und pcchPathBuf enthält die erforderliche Puffergröße in TCHARs, nicht einschließlich des endenden Nullzeichens. Bei Rückgabe von ERROR_SUCCESS enthält pcchPathBuf- die Anzahl der TCHARs, die in den Puffer geschrieben wurden, nicht einschließlich des endenden NULL-Zeichens.

[in, out] pcchPathBuf

Zeiger auf die Variable, die die Größe in TCHARsangibt, des Puffers, auf den die Variable verweist, szPathBuf Wenn die Funktion ERROR_SUCCESS zurückgibt, enthält diese Variable die Größe der in szPathBufkopierten Daten, nicht einschließlich des endenden Nullzeichens. Wenn szPathBuf- nicht groß genug ist, gibt die Funktion ERROR_MORE_DATA zurück und speichert die erforderliche Größe, nicht einschließlich des endenden NULL-Zeichens, in der Variablen, auf die durch pcchPathBufverweist.

Rückgabewert

Die MsiGetTargetPath--Funktion gibt die folgenden Werte zurück:

Bemerkungen

Wenn ERROR_MORE_DATA zurückgegeben wird, gibt der Parameter, der ein Zeiger ist, die Größe des Puffers an, der zum Halten der Zeichenfolge erforderlich ist. Wenn ERROR_SUCCESS zurückgegeben wird, gibt sie die Anzahl der Zeichen an, die in den Zeichenfolgenpuffer geschrieben wurden. Daher können Sie die Größe des Puffers abrufen, indem Sie eine leere Zeichenfolge (z. B. "") für den Parameter übergeben, der den Puffer angibt. Versuchen Sie nicht, die Größe des Puffers zu ermitteln, indem Sie einen Nullwert (Wert=0) übergeben.

Vor dem Aufrufen dieser Funktion muss das Installationsprogramm zuerst die CostInitialize-Aktion, FileCost-Aktionund CostFinalize-Aktionausführen. Weitere Informationen finden Sie unter Aufrufen von Datenbankfunktionen aus Programme.

MsiGetTargetPath gibt den Standardpfad des im Paket erstellten Zielverzeichnisses zurück, wenn der aktuelle Speicherort des Ziels für eine Installation nicht verfügbar ist. Wenn beispielsweise während einer Wartungsinstallation ein Zielverzeichnis an einem Netzwerkspeicherort nicht verfügbar ist, setzt das Installationsprogramm die Zielverzeichnispfade auf ihre Standardwerte zurück. Um den tatsächlichen Pfad des Zielverzeichnisses in diesem Fall abzurufen, rufen Sie MsiProvideComponent für eine Komponente auf, die bekanntermaßen zuvor im durchsuchten Verzeichnis installiert wurde, und legen Sie dwInstallMode- auf INSTALLMODE_NODETECTION fest.

Weitere Informationen finden Sie unter Aufrufen von Datenbankfunktionen aus Programmen.

Wenn die Funktion fehlschlägt, können Sie erweiterte Fehlerinformationen mithilfe MsiGetLastErrorRecordabrufen.

Anmerkung

Der msiquery.h-Header definiert MsiGetTargetPath als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP
Zielplattform- Fenster
Header- msiquery.h
Library Msi.lib
DLL- Msi.dll

Siehe auch

Installationsprogramm-Standortfunktionen

Übergeben von Null als Argument von Windows Installer-Funktionen