SHLoadIndirectString 函式 (shlwapi.h)

當以間接字串的形式指定該資源時,擷取指定的文字資源 (以 '@' 符號開頭的字串) 。

語法

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

參數

[in] pszSource

類型: PCWSTR

緩衝區的指標,其中包含要從中擷取資源的間接字串。 此字串應該以 『@' 符號開頭,並使用一節中討論的其中一個窗體。 此函式會成功接受不是以 『@』 符號開頭的字串,但字串只會未變更傳遞至 pszOutBuf

[out] pszOutBuf

類型: PWSTR

緩衝區的指標,當此函式成功傳回時,會收到文字資源。 pszOutBufpszSource 可以指向相同的緩衝區,在此情況下,將會覆寫原始字串。

[in] cchOutBuf

類型: UINT

pszOutBuf 所指向的緩衝區大小,以字元為單位。

ppvReserved

類型: void**

未使用;設定為 NULL

傳回值

類型: HRESULT

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

您可以以數種形式提供間接字串,每個形式都有自己的解譯:

  • 檔名和資源標識符 ''' 語法@filename,資源 '''

    字串會從名為 的檔案擷取,並使用 資源 值作為定位器。 如果資源值是零或更大,數位就會成為二進位檔案中字串的索引。 如果數位是負數,它會變成資源標識符。 擷取的字串會複製到輸出緩衝區,而函式會傳回S_OK。

  • 具有版本修飾 詞 ''' 語法的檔名和資源標識符,@filename,resource;v2 '''

    當資源變更,但仍使用與舊資源相同的索引或標識符時,可以使用此表單。 如果沒有版本修飾詞,多語系使用者介面 (MUI) 快取將無法辨識資源已變更且不會重新整理。 藉由附加版本修飾詞,值會顯示為新的資源,並新增至快取。 請注意,建議您針對新的資源使用新的標識碼或索引,而且只有在無法這麼做時才使用版本修飾詞。

  • PRI 檔案路徑和資源標識符 ''' 語法 @{PRIFilepath?resource} '''

    封裝資源索引 (PRI) 是 Windows 8 中引進的二進位格式,其中包含索引的資源或資源的參考。 .pri 檔案會配套為應用程式套件的一部分。 如需 .pri 檔案的詳細資訊,請參閱 在 Windows 市集應用程式中建立和擷取資源

    字串會使用 資源 作為定位器,從名為 的 .pri 檔案中擷取。 擷取的字串會複製到輸出緩衝區,而函式會傳回S_OK。 字串會根據目前的Shell環境或 ResourceContext進行擷取。

    此處顯示這種間接字串的範例。

    
    @{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
  • 套件名稱和資源標識符 ''' 語法 @{PackageFullName?resource} '''

    字串會從儲存在 PackageFullName 所識別套件之應用程式根目錄中的 Resources.pri 檔案擷取,並使用 資源 作為定位器。 擷取的字串會複製到輸出緩衝區,而函式會傳回S_OK。 字串會根據應用程式的環境或 ResourceContext 進行擷取。

    注意 此字串必須參考為目前使用者安裝的套件。 如果沒有,呼叫將會失敗。
     
    此處顯示這種間接字串的範例。 在此範例中,參考名稱是完整名稱,但不包含命名空間 (例如“resources”) 。 部署堆疊會展開名稱,以在所有命名空間中尋找它。
    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
    

    在下一個範例中,完整參考名稱會指定命名空間來限制查閱。

    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
如果字串不是間接字串,則會直接複製字串,而不會變更 為 pszOutBuf ,而且函式會傳回S_OK。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Shlwapi.dll (5.5 版或更新版本)