Condividi tramite


Funzione SHLoadIndirectString (shlwapi.h)

Estrae una risorsa di testo specificata quando viene specificata la risorsa sotto forma di stringa indiretta (stringa che inizia con il simbolo '@').

Sintassi

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

Parametri

[in] pszSource

Tipo: PCWSTR

Puntatore a un buffer contenente la stringa indiretta da cui verrà recuperata la risorsa. Questa stringa deve iniziare con il simbolo '@' e utilizzare una delle maschere descritte nella sezione Osservazioni. Questa funzione accetterà correttamente una stringa che non inizia con un simbolo '@', ma la stringa verrà semplicemente passata invariata a pszOutBuf.

[out] pszOutBuf

Tipo: PWSTR

Puntatore a un buffer che, quando questa funzione viene restituita correttamente, riceve la risorsa di testo. Sia pszOutBuf che pszSource possono puntare allo stesso buffer, nel qual caso la stringa originale verrà sovrascritta.

[in] cchOutBuf

Tipo: UINT

Dimensioni del buffer a cui punta pszOutBuf, in caratteri.

ppvReserved

Tipo: void**

Non utilizzato; impostare su NULL.

Valore restituito

Tipo: HRESULT

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Una stringa indiretta può essere fornita in diverse forme, ognuna delle quali ha una propria interpretazione:

  • Sintassi del nome file e dell'ID risorsa ''' @filename,risorsa '''

    La stringa viene estratta dal file denominato, usando il valore della risorsa come localizzatore. Se il valore della risorsa è zero o maggiore, il numero diventa l'indice della stringa nel file binario. Se il numero è negativo, diventa un ID risorsa. La stringa recuperata viene copiata nel buffer di output e la funzione restituisce S_OK.

  • Nome file e ID risorsa con una sintassi del modificatore di versione ''' @filename,risorsa; v2 '''

    Questo modulo può essere usato quando una risorsa viene modificata, ma usa comunque lo stesso indice o ID della risorsa precedente. Senza un modificatore di versione, la cache MUI (Multilingual User Interface) non riconoscerà che la risorsa è stata modificata e non verrà aggiornata. Aggiungendo il modificatore della versione, il valore viene visualizzato come una nuova risorsa e viene aggiunto alla cache. Si noti che è consigliabile usare un nuovo ID o un nuovo indice per una nuova risorsa e usare un modificatore di versione solo quando non è possibile.

  • Percorso file PRI e sintassi dell'ID risorsa ''' @{PRIFilepath?resource} '''

    Package Resource Index (PRI) è un formato binario introdotto in Windows 8 che contiene risorse indicizzate o riferimenti alle risorse. Il file PRI viene incluso nel pacchetto di un'app. Per altre informazioni sui file pri, vedi Creazione e recupero di risorse nelle app di Windows Store.

    La stringa viene estratta dal file pri denominato , usando la risorsa come localizzatore. La stringa recuperata viene copiata nel buffer di output e la funzione restituisce S_OK. La stringa viene estratta in base all'ambiente Shell corrente o a ResourceContext.

    Di seguito è riportato un esempio di questo tipo di stringa indiretta.

    
    @{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
  • Sintassi nome pacchetto e ID risorsa ''' @{PackageFullName?resource} '''

    La stringa viene estratta dal file Resources.pri archiviato nella directory radice dell'app del pacchetto identificato da PackageFullName, usando la risorsa come localizzatore. La stringa recuperata viene copiata nel buffer di output e la funzione restituisce S_OK. La stringa viene estratta in base all'ambiente dell'app o a ResourceContext.

    Nota Questa stringa deve fare riferimento a un pacchetto installato per l'utente corrente. In caso contrario, la chiamata avrà esito negativo.
     
    Di seguito è riportato un esempio di questo tipo di stringa indiretta. In questo esempio il nome di riferimento è completo, ma non contiene alcuno spazio dei nomi , ad esempio "resources". Lo stack di distribuzione espande il nome per cercarlo in tutti gli spazi dei nomi.
    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
    

    In questo esempio seguente, il nome di riferimento completo specifica uno spazio dei nomi a cui limitare la ricerca.

    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
Se la stringa non è una stringa indiretta, la stringa viene copiata direttamente senza apportare modifiche a pszOutBuf e la funzione restituisce S_OK.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlwapi.h
Libreria Shlwapi.lib
DLL Shlwapi.dll (versione 5.5 o successiva)