共用方式為


OREnumValue 函式

列舉離線登錄區中指定之開啟登錄機碼的值。 函式會在每次呼叫函式時,擷取指定索引鍵下一個值的資訊。

語法

DWORD OREnumValue(
  _In_        ORHKEY Handle,
  _In_        DWORD  dwIndex,
  _Out_       PWSTR  lpValueName,
  _Inout_     PDWORD lpcValueName,
  _Out_opt_   PDWORD lpType,
  _Out_opt_   PBYTE  lpData,
  _Inout_opt_ PDWORD lpcbData
);

參數

控制碼 [in]

離線登錄區中開啟登錄機碼的控制碼。

dwIndex [in]

要擷取之值的索引。 第一次呼叫函式時,此參數應該是零,然後針對後續呼叫遞增。

因為值未排序,所以任何新值都會有任意索引。 這表示函式可以依任何順序傳回值。

lpValueName [out]

緩衝區的指標,接收值的名稱做為 Null 終止字串。 這個緩衝區必須夠大,才能包含終止的 Null 字元。

如需詳細資訊,請參閱 登錄專案大小限制

lpcValueName [in, out]

變數的指標,指定 lpValueName 參數所指向的緩衝區大小,以字元表示。 當函式傳回時,變數會收到儲存在緩衝區中的字元數,不包括終止的 Null 字元。

lpType [out, 選擇性]

接收程式碼的變數指標,指出儲存在指定值中的資料類型。 如需可能的類型代碼清單,請參閱 登錄實數值型別。 如果不需要類型代碼, lpType 參數可以是 Null

lpData [out, 選擇性]

接收值專案資料的緩衝區指標。 如果不需要資料,此參數可以是 Null

如果 lpDataNulllusbData 為非Null,則函式會將資料的大小儲存在 lusbData所指向的變數中,以位元組為單位。 這可讓應用程式判斷為數據配置緩衝區的最佳方式。

lData [in, out, optional]

變數的指標,指定 lpData 參數所指向的緩衝區大小,以位元組為單位。 當函式傳回時,變數會接收儲存在緩衝區中的位元組數目。

只有當lpDataNull時,此參數才能為Null

如果資料具有REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ類型,則此大小會包含任何終止的 Null 字元或字元。 如需詳細資訊,請參閱<備註>。

如果 lpData 指定的緩衝區不夠大,無法保存資料,則函式會傳回ERROR_MORE_DATA,並將所需的緩衝區大小儲存在 lーData所指向的變數中。 在此情況下, lpData 的內容未定義。

傳回值

如果函式成功,傳回值會ERROR_SUCCESS。

如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。 您可以使用 FormatMessage 函式搭配 FORMAT_MESSAGE_FROM_SYSTEM 旗標來取得錯誤的泛型描述。

如果 lpData 緩衝區太小而無法接收值,則函式會傳回ERROR_MORE_DATA。

備註

若要列舉值,應用程式一開始應該呼叫 OREnumValue 函式, 並將 dwIndex 參數設定為零。 然後,應用程式應該遞增 dwIndex 並呼叫 OREnumValue 函式,直到函式傳回ERROR_NO_MORE_ITEMS) 為止,沒有其他值 (為止。

應用程式也可以在第一次呼叫函式時,將 dwIndex 設定為最後一個值的索引,並遞減索引,直到列舉具有索引 0 的值為止。 若要擷取最後一個值的索引,請使用 ORQueryInfoKey 函式。

使用 OREnumValue時,應用程式不應該呼叫任何可能會變更所查詢金鑰的離線登錄函式。

如果資料具有REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ類型,字串可能尚未以適當的 null 終止字元儲存。 因此,即使函式傳回ERROR_SUCCESS,應用程式也應該確保字串在使用之前已正確終止;否則,它可能會覆寫緩衝區。 (請注意,REG_MULTI_SZ字串應該有兩個 null 終止字元。)

若要判斷名稱和資料緩衝區的大小上限,請使用 ORQueryInfoKey 函式。

規格需求

需求
可轉散發套件
Windows 離線登錄程式庫 1.0 版或更新版本
標頭
Offreg.h
DLL
Offreg.dll

另請參閱

ORCreateKey

OREnumKey

OROpenKey

ORQueryInfoKey