OREnumKey 函数

枚举脱机注册表配置单元中指定打开的注册表项的子项。 每次调用函数时,该函数都会检索有关一个子项的信息。

语法

DWORD OREnumKey(
  _In_        ORHKEY    Handle,
  _In_        DWORD     dwIndex,
  _Out_       PWSTR     lpName,
  _Inout_     PDWORD    lpcName,
  _Out_opt_   PWSTR     lpClass,
  _Inout_opt_ PDWORD    lpcClass,
  _Out_opt_   PFILETIME lpftLastWriteTime
);

参数

处理 [in]

脱机注册表配置单元中打开的注册表项的句柄。

dwIndex [in]

要检索的子项的索引。 对于对函数的第一次调用,此参数应为零,然后针对后续调用递增。

由于子项未排序,因此任何新子项都将具有任意索引。 这意味着该函数可以按任意顺序返回子项。

lpName [out]

指向接收子项名称(包括终止 null 字符)的缓冲区的指针。 函数仅将子项的名称(而不是完整键层次结构)复制到缓冲区。 如果该函数失败,则不会将任何信息复制到此缓冲区。

有关详细信息,请参阅 注册表元素大小限制

lpcName [in, out]

指向变量的指针,该变量指定 WCHAR 中的 lpName 参数指定的缓冲区的大小。 此大小应包括结尾的 null 字符。 如果函数成功, 则 lpcName 指向的变量包含缓冲区中存储的字符数,不包括终止 null 字符。

lpClass [out, optional]

指向接收枚举子项的以 null 结尾的类字符串的缓冲区的指针。 此参数可以为 NULL。

lpcClass [in, out, optional]

指向变量的指针,该变量指定 WCHAR 中的 lpClass 参数指定的缓冲区的大小。 大小应包含终止 null 字符。 如果函数成功, 则 lpcClass 包含缓冲区中存储的字符数,不包括终止 null 字符。 仅当 lpClassNULL 时,此参数才能为 NULL

lpftLastWriteTime [out, optional]

指向 FILETIME 结构的指针,该结构接收上次写入枚举子项的时间。 此参数可以为 NULL。

返回值

如果函数成功,则返回值为 ERROR_SUCCESS。

如果函数失败,则返回值为 Winerror.h 中定义的非零错误代码。 可以将 FormatMessage 函数与 FORMAT_MESSAGE_FROM_SYSTEM 标志结合使用来获取错误的常规说明。 可能的错误代码包括:

  • 如果 lpName 缓冲区太小而无法接收密钥的名称,则函数将返回ERROR_MORE_DATA。
  • 如果没有其他可用子项,该函数将返回ERROR_NO_MORE_ITEMS。

备注

若要枚举子项,应用程序最初应调用 OREnumKey 函数,并将 dwIndex 参数设置为零。 然后,应用程序应递增 dwIndex 参数并调用 OREnumKey ,直到没有更多子项 (这意味着函数返回ERROR_NO_MORE_ITEMS) 。

应用程序还可以在首次调用函数时将 dwIndex 设置为最后一个子项的索引,并递减索引,直到枚举索引为 0 的子项。 若要检索最后一个子项的索引,请使用 ORQueryInfoKey 函数。

当应用程序使用 OREnumKey 函数时,它不应调用任何可能会更改所枚举项的脱机注册表函数。

要求

要求
可再发行组件
Windows 脱机注册表库 1.0 或更高版本
标头
Offreg.h
DLL
Offreg.dll

另请参阅

ORCreateKey

ORDeleteKey

OROpenKey

ORQueryInfoKey