Compartir a través de


Función SHLoadIndirectString (shlwapi.h)

Extrae un recurso de texto especificado cuando se proporciona ese recurso en forma de cadena indirecta (una cadena que comienza con el símbolo '@').

Sintaxis

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

Parámetros

[in] pszSource

Tipo: PCWSTR

Puntero a un búfer que contiene la cadena indirecta de la que se recuperará el recurso. Esta cadena debe comenzar con el símbolo '@' y usar uno de los formularios descritos en la sección Comentarios. Esta función aceptará correctamente una cadena que no comienza con un símbolo '@', pero la cadena se pasará simplemente sin cambios a pszOutBuf.

[out] pszOutBuf

Tipo: PWSTR

Puntero a un búfer que, cuando esta función vuelve correctamente, recibe el recurso de texto. Tanto pszOutBuf como pszSource pueden apuntar al mismo búfer, en cuyo caso se sobrescribirá la cadena original.

[in] cchOutBuf

Tipo: UINT

Tamaño del búfer al que apunta pszOutBuf, en caracteres.

ppvReserved

Tipo: void**

No utilizado; se establece en NULL.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Se puede proporcionar una cadena indirecta en varias formas, cada una de las cuales tiene su propia interpretación:

  • Nombre de archivo e id. de recurso ''' sintaxis @filename, recurso '''

    La cadena se extrae del archivo denominado, utilizando el valor de recurso como localizador. Si el valor del recurso es cero o mayor, el número se convierte en el índice de la cadena en el archivo binario. Si el número es negativo, se convierte en un identificador de recurso. La cadena recuperada se copia en el búfer de salida y la función devuelve S_OK.

  • Nombre de archivo e identificador de recurso con un modificador de versión ''' sintaxis @filename,recurso; v2 '''

    Este formulario se puede usar cuando se cambia un recurso, pero sigue usando el mismo índice o identificador que el recurso anterior. Sin un modificador de versión, la caché de la Interfaz de usuario multilingüe (MUI) no reconocerá que el recurso ha cambiado y no se actualizará. Al anexar el modificador de versión, el valor se ve como un nuevo recurso y se agrega a la memoria caché. Tenga en cuenta que se recomienda usar un nuevo identificador o índice para un nuevo recurso y usar un modificador de versión solo cuando no sea posible.

  • Ruta de acceso del archivo PRI e id. de recurso ''' sintaxis @{PRIFilepath?resource} '''

    El índice de recursos de paquete (PRI) es un formato binario introducido en Windows 8 que contiene recursos indexados o referencias a recursos. El archivo .pri se agrupa como parte del paquete de una aplicación. Para obtener más información sobre los archivos .pri, consulta Crear y recuperar recursos en aplicaciones de la Tienda Windows.

    La cadena se extrae del archivo .pri denominado , utilizando el recurso como localizador. La cadena recuperada se copia en el búfer de salida y la función devuelve S_OK. La cadena se extrae en función del entorno actual de Shell o ResourceContext.

    Aquí se muestra un ejemplo de este tipo de cadena indirecta.

    
    @{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
  • Nombre del paquete e id. de recurso ''' sintaxis @{PackageFullName?resource} '''

    La cadena se extrae del archivo Resources.pri almacenado en el directorio raíz de la aplicación del paquete identificado por PackageFullName, usando el recurso como localizador. La cadena recuperada se copia en el búfer de salida y la función devuelve S_OK. La cadena se extrae en función del entorno de la aplicación o ResourceContext.

    Nota Esta cadena debe hacer referencia a un paquete instalado para el usuario actual. Si no es así, se producirá un error en la llamada.
     
    Aquí se muestra un ejemplo de este tipo de cadena indirecta. En este ejemplo, el nombre de referencia es completo, pero no contiene ningún espacio de nombres (por ejemplo, "recursos"). La pila de implementación expande el nombre para buscarlo en todos los espacios de nombres.
    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
    

    En este ejemplo siguiente, el nombre de referencia completo especifica un espacio de nombres para limitar la búsqueda.

    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
Si la cadena no es una cadena indirecta, la cadena se copia directamente sin cambiar a pszOutBuf y la función devuelve S_OK.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Library Shlwapi.lib
Archivo DLL Shlwapi.dll (versión 5.5 o posterior)