AssocQueryStringByKeyA 函数 (shlwapi.h)
从注册表中从指定键开始搜索并检索与文件关联相关的字符串。
语法
LWSTDAPI AssocQueryStringByKeyA(
[in] ASSOCF flags,
[in] ASSOCSTR str,
[in] HKEY hkAssoc,
[in, optional] LPCSTR pszExtra,
[out, optional] LPSTR pszOut,
[in, out] DWORD *pcchOut
);
参数
[in] flags
类型: ASSOCF
可用于控制搜索的标志。 它可以是 ASSOCF 值的任意组合,但只能包含一个ASSOCF_INIT值。
[in] str
类型: ASSOCSTR
ASSOCSTR 值,该值指定要返回的字符串的类型。
[in] hkAssoc
类型: HKEY
将用作根键的键的 HKEY 值。 搜索仅在此键下方显示。
[in, optional] pszExtra
类型: LPCTSTR
指向可选的以 null 结尾的字符串的指针,其中包含有关字符串位置的其他信息。 它通常设置为 Shell 谓词,例如 open。 如果未使用此参数,请将此参数设置为 NULL 。
[out, optional] pszOut
类型: LPTSTR
指向以 null 结尾的字符串的指针,用于返回请求的字符串。 将此参数设置为 NULL 以检索所需的缓冲区大小。
[in, out] pcchOut
类型: DWORD*
指向值的指针,该值在输入时指定 pszOut 缓冲区中的字符数。 函数返回时,它指向放置在缓冲区中的字符数。
如果在标志中设置了ASSOCF_NOTRUNCATE标志,并且 pszOut 中指定的缓冲区太小,则函数将返回E_POINTER并将值设置为所需的缓冲区大小。
如果 pszOut 为 NULL,则该函数返回S_FALSE并且 pcchOut 指向所需的缓冲区大小。
返回值
类型: HRESULT
返回标准 COM 错误值,包括以下内容:
错误 | 含义 |
---|---|
S_OK | 成功。 |
E_POINTER | pszOut 缓冲区太小,无法容纳整个字符串。 |
S_FALSE | pszOut 为 NULL。 pcchOut 包含所需的缓冲区大小。 |
注解
此函数是 IQueryAssociations 接口的 包装器。 它旨在简化使用此接口的过程。 有关文件关联函数工作原理的进一步讨论,请参阅 IQueryAssociations。
注意
shlwapi.h 标头将 AssocQueryStringByKey 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shlwapi.h |
Library | Shlwapi.lib |
DLL | Shlwapi.dll (5.0 或更高版本) |