Partager via


Fonction SHLoadIndirectString (shlwapi.h)

Extrait une ressource de texte spécifiée lorsqu’elle est donnée sous la forme d’une chaîne indirecte (chaîne qui commence par le symbole « @ »).

Syntaxe

LWSTDAPI SHLoadIndirectString(
  [in]  PCWSTR pszSource,
  [out] PWSTR  pszOutBuf,
  [in]  UINT   cchOutBuf,
        void   **ppvReserved
);

Paramètres

[in] pszSource

Type : PCWSTR

Pointeur vers une mémoire tampon qui contient la chaîne indirecte à partir de laquelle la ressource sera récupérée. Cette chaîne doit commencer par le symbole « @ » et utiliser l’un des formulaires décrits dans la section Remarques. Cette fonction accepte correctement une chaîne qui ne commence pas par un symbole « @ », mais la chaîne est simplement passée inchangée à pszOutBuf.

[out] pszOutBuf

Type : PWSTR

Pointeur vers une mémoire tampon qui, lorsque cette fonction retourne correctement, reçoit la ressource de texte. pszOutBuf et pszSource peuvent tous deux pointer vers la même mémoire tampon, auquel cas la chaîne d’origine est remplacée.

[in] cchOutBuf

Type : UINT

Taille de la mémoire tampon pointée par pszOutBuf, en caractères.

ppvReserved

Type : void**

Non utilisé ; défini sur NULL.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Une chaîne indirecte peut être fournie sous plusieurs formes, chacune ayant sa propre interprétation :

  • Syntaxe du nom de fichier et de l’ID de ressource ''' @filename,ressource '''

    La chaîne est extraite du fichier nommé, en utilisant la valeur de ressource comme localisateur. Si la valeur de la ressource est égale à zéro ou supérieure, le nombre devient l’index de la chaîne dans le fichier binaire. Si le nombre est négatif, il devient un ID de ressource. La chaîne récupérée est copiée dans la mémoire tampon de sortie et la fonction retourne S_OK.

  • Nom de fichier et ID de ressource avec une syntaxe de modificateur de version ''' @filename,ressource ; v2 '''

    Ce formulaire peut être utilisé lorsqu’une ressource est modifiée, mais utilise toujours le même index ou ID que l’ancienne ressource. Sans modificateur de version, le cache d’interface utilisateur multilingue (MUI) ne reconnaît pas que la ressource a changé et ne s’actualise pas. En ajoutant le modificateur de version, la valeur est considérée comme une nouvelle ressource et est ajoutée au cache. Notez qu’il est recommandé d’utiliser un nouvel ID ou un nouvel index pour une nouvelle ressource et d’utiliser un modificateur de version uniquement lorsque cela n’est pas possible.

  • Syntaxe du chemin du fichier PRI et de l’ID de ressource ''' @{PRIFilepath ?resource} '''

    L’index de ressource de package (PRI) est un format binaire introduit dans Windows 8 qui contient des ressources indexées ou des références à des ressources. Le fichier .pri est fourni dans le cadre du package d’une application. Pour plus d’informations sur les fichiers .pri, consultez Création et récupération de ressources dans les applications du Windows Store.

    La chaîne est extraite du fichier .pri nommé, en utilisant la ressource comme localisateur. La chaîne récupérée est copiée dans la mémoire tampon de sortie et la fonction retourne S_OK. La chaîne est extraite en fonction de l’environnement Shell actuel ou de ResourceContext.

    Un exemple de ce type de chaîne indirecte est présenté ici.

    
    @{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
  • Syntaxe du nom du package et de l’ID de ressource ''' @{PackageFullName ?resource} ''''

    La chaîne est extraite du fichier Resources.pri stocké dans le répertoire racine de l’application du package identifié par PackageFullName, en utilisant la ressource comme localisateur. La chaîne récupérée est copiée dans la mémoire tampon de sortie et la fonction retourne S_OK. La chaîne est extraite en fonction de l’environnement de l’application ou de ResourceContext.

    Note Cette chaîne doit faire référence à un package installé pour l’utilisateur actuel. Si ce n’est pas le cas, l’appel échoue.
     
    Un exemple de ce type de chaîne indirecte est présenté ici. Dans cet exemple, le nom de référence est complet, mais il ne contient aucun espace de noms (par exemple, « resources »). La pile de déploiement développe le nom pour le rechercher dans tous les espaces de noms.
    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
    

    Dans l’exemple suivant, le nom de référence complet spécifie un espace de noms auquel limiter la recherche.

    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
Si la chaîne n’est pas une chaîne indirecte, la chaîne est directement copiée sans modification de pszOutBuf et la fonction retourne S_OK.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlwapi.h
Bibliothèque Shlwapi.lib
DLL Shlwapi.dll (version 5.5 ou ultérieure)