次の方法で共有


IDeviceSpecificProperty::GetValue メソッド (devicetopology.h)

GetValue メソッドは、デバイス固有のプロパティの現在の値を取得します。

構文

HRESULT GetValue(
  [out] void  *pvValue,
        DWORD *pcbValue
);

パラメーター

[out] pvValue

メソッドがプロパティ値を書き込む呼び出し元によって割り当てられたバッファーへのポインター。

pcbValue

[inout]プロパティ値のサイズをバイト単位で指定する DWORD 変数へのポインター。 エントリの 場合、*pcbValue には呼び出し元によって割り当てられたバッファーのサイズが含まれます ( pvValueNULL の場合は 0)。 メソッドは、返す前に、バッファーに書き込まれたプロパティ値の実際のサイズ (バッファーが小さすぎる場合や pvValueNULL の場合は必要なサイズ) を書き込みます。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。

リターン コード 説明
E_POINTER
ポインター pcbValueNULL です
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
パラメーター pvValue が指すバッファーが小さすぎてプロパティ値を格納できません。または、 pvValueNULL で、プロパティ値のサイズが変数ではなく固定されています。 このマクロの詳細については、Windows SDK のドキュメントを参照してください。

解説

プロパティ値のサイズが固定ではなく変数の場合、呼び出し元はパラメーター pvValueNULL*pcbValue = 0 を指定して GetValue = を呼び出すことで、必要なバッファー サイズを取得できます。 メソッドは、必要なバッファー サイズを *pcbValue に書き込みます。 この情報を使用すると、呼び出し元は必要なサイズのバッファーを割り当て、 GetValue を 2 回目に呼び出してプロパティ値を取得できます。

呼び出し元によって割り当てられたバッファーが小さすぎてプロパティ値を保持できなければ、 GetValue は必要なバッファー サイズを *pcbValue に書き込み、エラー状態コードを返します。 この場合、 pvValue が指すバッファーに何も書き込みしません。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー devicetopology.h

関連項目

IDeviceSpecificProperty インターフェイス