SHLoadIndirectString-Funktion (shlwapi.h)
Extrahiert eine angegebene Textressource, wenn diese Ressource in Form einer indirekten Zeichenfolge angegeben wird (eine Zeichenfolge, die mit dem Symbol "@" beginnt).
Syntax
LWSTDAPI SHLoadIndirectString(
[in] PCWSTR pszSource,
[out] PWSTR pszOutBuf,
[in] UINT cchOutBuf,
void **ppvReserved
);
Parameter
[in] pszSource
Typ: PCWSTR
Ein Zeiger auf einen Puffer, der die indirekte Zeichenfolge enthält, aus der die Ressource abgerufen wird. Diese Zeichenfolge sollte mit dem Symbol "@" beginnen und eines der im Abschnitt Hinweise beschriebenen Formulare verwenden. Diese Funktion akzeptiert erfolgreich eine Zeichenfolge, die nicht mit einem @-Symbol beginnt, aber die Zeichenfolge wird einfach unverändert an pszOutBuf übergeben.
[out] pszOutBuf
Typ: PWSTR
Ein Zeiger auf einen Puffer, der die Textressource empfängt, wenn diese Funktion erfolgreich zurückgegeben wird. Sowohl pszOutBuf als auch pszSource können auf denselben Puffer verweisen. In diesem Fall wird die ursprüngliche Zeichenfolge überschrieben.
[in] cchOutBuf
Typ: UINT
Die Größe des Puffers, auf den pszOutBuf in Zeichen verweist.
ppvReserved
Typ: void**
Nicht verwendet; auf NULL festgelegt.
Rückgabewert
Typ: HRESULT
Wenn diese Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Eine indirekte Zeichenfolge kann in mehreren Formen bereitgestellt werden, von denen jede ihre eigene Interpretation hat:
-
Dateiname und Ressourcen-ID ""-Syntax @filename, Ressource """
Die Zeichenfolge wird aus der Datei mit dem Namen extrahiert, wobei der Ressourcenwert als Locator verwendet wird. Wenn der Ressourcenwert 0 oder höher ist, wird die Zahl zum Index der Zeichenfolge in der Binärdatei. Wenn die Zahl negativ ist, wird sie zu einer Ressourcen-ID. Die abgerufene Zeichenfolge wird in den Ausgabepuffer kopiert, und die Funktion gibt S_OK zurück.
-
Dateiname und Ressourcen-ID mit der Versionsmodifizierersyntax "'" @filename,Ressource; v2 """
Dieses Formular kann verwendet werden, wenn eine Ressource geändert wird, aber weiterhin denselben Index oder dieselbe ID wie die alte Ressource verwendet. Ohne einen Versionsmodifizierer erkennt der MUI-Cache (Multilingual User Interface) nicht, dass sich die Ressource geändert hat und wird nicht aktualisiert. Durch Anfügen des Versionsmodifizierers wird der Wert als neue Ressource betrachtet und dem Cache hinzugefügt. Beachten Sie, dass es empfohlen wird, eine neue ID oder einen neuen Index für eine neue Ressource zu verwenden und einen Versionsmodifizierer nur dann zu verwenden, wenn dies nicht möglich ist.
-
PRI-Dateipfad und Ressourcen-ID ''' Syntax @{PRIFilepath?resource} '''
Der Paketressourcenindex (Pri) ist ein in Windows 8 eingeführtes Binärformat, das indizierte Ressourcen oder Verweise auf Ressourcen enthält. Die PRI-Datei wird als Teil des Pakets einer App gebündelt. Weitere Informationen zu PRI-Dateien finden Sie unter Erstellen und Abrufen von Ressourcen in Windows Store-Apps.
Die Zeichenfolge wird aus der PRI-Datei mit dem Namen extrahiert, wobei die Ressource als Locator verwendet wird. Die abgerufene Zeichenfolge wird in den Ausgabepuffer kopiert, und die Funktion gibt S_OK zurück. Die Zeichenfolge wird basierend auf der aktuellen Shell-Umgebung oder ResourceContext extrahiert.
Ein Beispiel für diesen Typ indirekter Zeichenfolgen ist hier gezeigt.
@{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
-
Paketname und Ressourcen-ID ''' Syntax @{PackageFullName?resource} '''
Die Zeichenfolge wird aus der Datei Resources.pri extrahiert, die im Stammverzeichnis der App des durch PackageFullName identifizierten Pakets gespeichert ist, wobei die Ressource als Locator verwendet wird. Die abgerufene Zeichenfolge wird in den Ausgabepuffer kopiert, und die Funktion gibt S_OK zurück. Die Zeichenfolge wird basierend auf der Umgebung der App oder ResourceContext extrahiert.
Hinweis Diese Zeichenfolge muss auf ein Paket verweisen, das für den aktuellen Benutzer installiert ist. Andernfalls schlägt der Aufruf fehl.@{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
In diesem nächsten Beispiel gibt der vollqualifizierte Verweisname einen Namespace an, auf den die Suche beschränkt werden soll.
@{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlwapi.h |
Bibliothek | Shlwapi.lib |
DLL | Shlwapi.dll (Version 5.5 oder höher) |