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 谓词,例如 打开。 如果未使用此参数,请将此参数设置为 NULL

[out, optional] pszOut

类型:LPTSTR

指向用于返回所请求字符串的以 null 结尾的字符串的指针。 将此参数设置为 NULL 以检索所需的缓冲区大小。

[in, out] pcchOut

类型:DWORD*

指向一个值的指针,该值在条目中指定 pszOut 缓冲区中的字符数。 函数返回时,它将指向缓冲区中放置的字符数。

如果在 标志中设置了 ASSOCF_NOTRUNCATE 标志,pszOut 中指定的缓冲区太小,则函数将返回E_POINTER,并将该值设置为所需的缓冲区大小。

如果 pszOutNULL,则该函数将返回S_FALSE,pcchOut 指向所需的缓冲区大小。

返回值

类型:HRESULT

返回标准 COM 错误值,包括以下内容:

错误 意义
S_OK 成功。
E_POINTER pszOut 缓冲区太小,无法容纳整个字符串。
S_FALSE pszOutNULLpcchOut 包含所需的缓冲区大小。

言论

此函数是 IQueryAssociations 接口的包装器。 它旨在简化使用此接口的过程。 有关文件关联函数工作原理的进一步讨论,请参阅 IQueryAssociations

注意

shlwapi.h 标头将 AssocQueryStringByKey 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional、Windows XP [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 shlwapi.h
Shlwapi.lib
DLL Shlwapi.dll (版本 5.0 或更高版本)