次の方法で共有


OREnumValue 関数

オフライン レジストリ ハイブで指定された開いているレジストリ キーの値を列挙します。 関数は、関数が呼び出されるたびに、指定されたキーの下にある 1 つの値の情報を取得します。

構文

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

パラメーター

ハンドル [入力]

オフライン レジストリ ハイブで開いているレジストリ キーへのハンドル。

dwIndex [in]

取得する値のインデックス。 このパラメーターは、関数の最初の呼び出しでは 0 で、その後の呼び出しではインクリメントする必要があります。

値は順序付けされないため、新しい値には任意のインデックスがあります。 これは、関数が任意の順序で値を返す可能性があることを意味します。

lpValueName [out]

値の名前を null で終わる文字列として受け取るバッファーへのポインター。 このバッファーは、終端の null 文字を含めるのに十分な大きさにする必要があります。

詳細については、「 レジストリ要素のサイズ制限」を参照してください。

lpcValueName [in, out]

lpValueName パラメーターによって指されるバッファーのサイズを文字で指定する変数へのポインター。 関数が戻ると、変数はバッファーに格納されている文字数を受け取りますが、終端の null 文字は含まれません。

lpType [out, optional]

指定した値に格納されているデータの種類を示すコードを受け取る変数へのポインター。 使用可能な型コードの一覧については、「 レジストリ値の型」を参照してください。 型コードが不要な場合、 lpType パラメーターは NULL にすることができます。

lpData [out, optional]

値エントリのデータを受け取るバッファーへのポインター。 データが不要な場合、このパラメーターは NULL にすることができます。

lpDataNULL、lpcbDataNULL 以外の場合、関数はデータのサイズをバイト単位で lpcbData が指す変数に格納します。 これにより、アプリケーションはデータのバッファーを割り当てる最適な方法を決定できます。

lpcbData [in, out, optional]

lpData パラメーターによって指されるバッファーのサイズをバイト単位で指定する変数へのポインター。 関数が戻ると、変数はバッファーに格納されているバイト数を受け取ります。

このパラメーターは、lpDataNULL の場合にのみ NULL にすることができます。

データにREG_SZ、REG_MULTI_SZ、またはREG_EXPAND_SZの型がある場合、このサイズには終端の null 文字または文字が含まれます。 詳細については、「解説」を参照してください。

lpData で指定されたバッファーがデータを保持するのに十分な大きさでない場合、関数は ERROR_MORE_DATAを返し、lpcbData が指す変数に必要なバッファー サイズを格納します。 この場合、 lpData の内容は未定義です。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。 FormatMessage 関数を FORMAT_MESSAGE_FROM_SYSTEM フラグと共に使用すると、エラーの一般的な説明を取得できます。

lpData バッファーが小さすぎて値を受け取れない場合、関数は ERROR_MORE_DATAを返します。

解説

値を列挙するには、dwIndex パラメーターを 0 に設定して、アプリケーションで最初に OREnumValue 関数を呼び出す必要があります。 その後、アプリケーションは dwIndex をインクリメントし、値がなくなった (関数がERROR_NO_MORE_ITEMSを返すまで) OREnumValue 関数を呼び出す必要があります。

また、アプリケーションでは、 dwIndex を関数の最初の呼び出しで最後の値のインデックスに設定し、インデックス 0 の値が列挙されるまでインデックスをデクリメントすることもできます。 最後の値のインデックスを取得するには、 ORQueryInfoKey 関数を使用します。

OREnumValue を使用している間は、クエリ対象のキーを変更する可能性があるオフライン レジストリ関数をアプリケーションで呼び出さないでください。

データにREG_SZ、REG_MULTI_SZ、またはREG_EXPAND_SZの型がある場合、文字列が適切な null 終端文字で格納されていない可能性があります。 したがって、関数がERROR_SUCCESSを返した場合でも、アプリケーションは文字列を使用する前に適切に終了するようにする必要があります。それ以外の場合は、バッファーが上書きされる可能性があります。 (REG_MULTI_SZ文字列には 2 つの null 終端文字が必要であることに注意してください)。

名前バッファーとデータ バッファーの最大サイズを確認するには、 ORQueryInfoKey 関数を使用します。

要件

要件
再頒布可能パッケージ
Windows オフライン レジストリ ライブラリ バージョン 1.0 以降
ヘッダー
Offreg.h
[DLL]
Offreg.dll

関連項目

ORCreateKey

OREnumKey

OROpenKey

ORQueryInfoKey