MsiGetSourcePathA-Funktion (msiquery.h)
Die MsiGetSourcePath-Funktion gibt den vollständigen Quellpfad für einen Ordner in der Verzeichnistabelle zurück.
Syntax
UINT MsiGetSourcePathA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFolder,
[out] LPSTR szPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Parameter
[in] hInstall
Behandeln Sie die Installation, die für eine benutzerdefinierte DLL-Aktion bereitgestellt wird oder über MsiOpenPackage, MsiOpenPackageEx oder MsiOpenProduct abgerufen wird.
[in] szFolder
Eine null-beendete Zeichenfolge, die einen Datensatz der Verzeichnistabelle angibt. 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" befinden.
[out] szPathBuf
Zeiger auf den Puffer, der den null beendeten vollständigen Quellpfad empfängt. Versuchen Sie nicht, die Größe des Puffers zu ermitteln, indem Sie für szPathBuf einen 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 beendeten Nullzeichens. Bei der Rückgabe von ERROR_SUCCESS enthält pcchPathBuf die Anzahl der TCHARs, die in den Puffer geschrieben wurden, nicht einschließlich des beendeten Nullzeichens.
[in, out] pcchPathBuf
Zeiger auf die Variable, die die Größe des Puffers in TCHARs angibt, auf die die Variable szPathBuf verweist. Wenn die Funktion ERROR_SUCCESS zurückgibt, enthält diese Variable die Größe der in szPathBuf kopierten 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 Nullzeichens, in der Variablen, die von pcchPathBuf verweist.
Rückgabewert
Die MsiGetSourcePath-Funktion gibt die folgenden Werte zurück:
Hinweise
Bevor Sie diese Funktion aufrufen, muss das Installationsprogramm zuerst die Aktion "CostInitialize", "FileCost"-Aktion und "CostFinalize" ausführen. Weitere Informationen finden Sie unter Aufrufen von Datenbankfunktionen aus Programmen.
Wenn ERROR_MORE_DATA zurückgegeben wird, gibt der Parameter, der ein Zeiger ist, die Größe des Puffers, der zum Halten der Zeichenfolge erforderlich ist. Wenn ERROR_SUCCESS zurückgegeben wird, gibt es die Anzahl der Zeichen, 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.
Wenn die Funktion fehlschlägt, können Sie erweiterte Fehlerinformationen mithilfe von MsiGetLastErrorRecord abrufen.
Hinweis
Der msiquery.h-Header definiert MsiGetSourcePath als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der codierungsneutralen Aliase mit Code, der nicht codierungsneutral ist, kann zu Übereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Installer 5.0 auf 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 | Windows |
Kopfzeile | msiquery.h |
Bibliothek | Msi.lib |
DLL | Msi.dll |
Weitere Informationen
Übergeben von Null als Argument von Windows Installer-Funktionen