SHLoadIndirectString 函数 (shlwapi.h)
以间接字符串的形式给定该资源时,提取指定的文本资源 (以“@”符号) 开头的字符串。
语法
LWSTDAPI SHLoadIndirectString(
[in] PCWSTR pszSource,
[out] PWSTR pszOutBuf,
[in] UINT cchOutBuf,
void **ppvReserved
);
参数
[in] pszSource
类型: PCWSTR
指向缓冲区的指针,该缓冲区包含将从中检索资源的间接字符串。 此字符串应以“@”符号开头,并使用“备注”部分中讨论的窗体之一。 此函数将成功接受一个不以“@”符号开头的字符串,但该字符串将直接传递给 pszOutBuf。
[out] pszOutBuf
类型: PWSTR
指向缓冲区的指针,当此函数成功返回时,该缓冲区接收文本资源。 pszOutBuf 和 pszSource 可以指向同一个缓冲区,在这种情况下,将覆盖原始字符串。
[in] cchOutBuf
类型: UINT
pszOutBuf 指向的缓冲区的大小(以字符为单位)。
ppvReserved
类型: void**
未使用;设置为 NULL。
返回值
类型: HRESULT
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
间接字符串可以采用多种形式提供,每种形式都有其自己的解释:
-
文件名和资源 ID “”语法 @filename,资源“”
字符串是从名为 的文件中提取的,使用 资源 值作为定位符。 如果资源值为零或更大,则数字将成为二进制文件中字符串的索引。 如果该数字为负数,则它将成为资源 ID。 检索到的字符串将复制到输出缓冲区,函数返回S_OK。
-
具有版本修饰符 “”语法的文件名和资源 ID @filename,resource;v2“”
当资源发生更改但仍使用与旧资源相同的索引或 ID 时,可以使用此形式。 如果没有版本修饰符,多语言用户界面 (MUI) 缓存将无法识别资源已更改且不会刷新。 通过追加版本修饰符,该值被视为新资源并添加到缓存中。 请注意,建议对新资源使用新 ID 或索引,并且仅在不可能时使用版本修饰符。
-
PRI 文件路径和资源 ID “”语法 @{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}
-
包名称和资源 ID “”语法 @{PackageFullName?resource} “””
字符串是从存储在 PackageFullName 标识的包的应用根目录中的 Resources.pri 文件中提取的,使用 资源 作为定位符。 检索到的字符串将复制到输出缓冲区,函数返回S_OK。 字符串是根据应用的环境或 ResourceContext 提取的。
注意 此字符串必须引用为当前用户安装的包。 否则,调用将失败。@{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}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlwapi.h |
Library | Shlwapi.lib |
DLL | Shlwapi.dll (版本 5.5 或更高版本) |