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
);

parameters

句柄 [in]

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

dwIndex [in]

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

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

lpName [out]

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

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

lpcName [in, out]

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

lpClass [out, 可选]

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

lpcClass [in, out, optional]

指向指定 WCHARlpClass 参数指定的缓冲区大小的变量的指针。 大小应包含终止 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