次の方法で共有


IWiaPropertyStorage::GetPropertyAttributes メソッド (wia_xp.h)

IWiaPropertyStorage::GetPropertyAttributes メソッドは、指定されたプロパティ セットのアクセス権と有効な値の情報を取得します。

構文

HRESULT GetPropertyAttributes(
  [in]  ULONG          cpspec,
  [in]  PROPSPEC []    rgpspec,
  [out] ULONG []       rgflags,
  [out] PROPVARIANT [] rgpropvar
);

パラメーター

[in] cpspec

種類: ULONG

クエリするプロパティ属性の数を指定します。

[in] rgpspec

型: PROPSPEC[]

デバイス情報プロパティ定数の配列を指定します。 配列内の各定数は、クエリするプロパティを選択します。

[out] rgflags

型: ULONG[]

rgpspec 配列で指定された各プロパティのプロパティ属性記述子を受け取る配列。 配列内の各要素は、ビットごとの OR 演算と組み合わせた 1 つ以上の記述子値です。

[out] rgpropvar

型: PROPVARIANT[]

pPROPSPEC 配列で指定された各プロパティのプロパティ属性記述子を受け取る配列。 詳細については、「 PROPVARIANT」を参照してください。

戻り値

型: HRESULT

このメソッドは、次のいずれかの値または標準の COM エラー コードを返します。

戻り値 説明
S_OK このメソッドは成功しました。
S_FALSE 指定されたプロパティ名が存在しません。 属性は取得されませんでした。
STG_E_ACCESSDENIED アプリケーションがプロパティ ストリームにアクセスできないか、ストリームが既に開いている可能性があります。
STG_E_INSUFFICIENTMEMORY 操作を完了させるための十分なメモリがありません。
ERROR_NOT_SUPPORTED プロパティの種類はサポートされていません。
STG_E_INVALIDPARAMETER 1 つ以上のパラメーターが無効です。 1 つ以上の PROPSPEC 構造体に無効なデータが含まれています。
STG_E_INVALIDPOINTER このメソッドに渡される 1 つ以上のポインターが無効です。
ERROR_NO_UNICODE_TRANSLATION Unicode から ANSI または ANSI から Unicode への変換に失敗しました。

注釈

このメソッドは、プロパティ アクセス権と有効なプロパティ値の両方を取得します。 アクセス権は、プロパティが読み取り可能か書き込み可能か、またはその両方かを報告します。 有効なプロパティ値は、値の範囲、値のリスト、またはフラグ値のグループとして指定されます。 詳細については、「 プロパティ属性」を参照してください。

プロパティアクセス権フラグに WIA_PROP_NONE ビットが設定されている場合、このプロパティに有効な値情報は使用できません。 バイナリ データ型を持つ読み取り専用のプロパティとプロパティは、 WIA_PROP_NONE ビット セットを持つプロパティの例です。

プロパティに有効な値の範囲がある場合は、このメソッドの完了時に rgpropvar パラメーターを使用して決定できます。 ppvValidValues パラメーターは、PROPVARIANT 構造体の配列を指定します。

たとえば、プロパティ範囲が VT_VECTOR | として指定されている場合VT_UI4、範囲情報は構造体メンバーを介して取得できます

rgpropvar[n].caul.pElems[range_specifier]

ここで、n は検査されるプロパティのインデックス番号であり、range_specifierは次のいずれかです。

範囲指定子 意味
WIA_RANGE_MAX プロパティを設定できる最大値。
WIA_RANGE_MIN プロパティを設定できる最小値。
WIA_RANGE_NOM 通常または既定のプロパティ値。
WIA_RANGE_STEP プロパティ値間のインクリメントまたはデクリメント。
 

プロパティに有効な値のリストがある場合、アプリケーションは、このメソッドの終了時に ppvValidValues パラメーターを使用して値を決定します。

たとえば、プロパティ範囲が VT_VECTOR | として指定されている場合VT_UI4、有効なプロパティ値の一覧は構造体メンバーを通じて取得できます

rgpropspecValues[n].caul.pElems[list_specifier]

ここで、n は検査されるプロパティのインデックス番号であり、list_specifierは次のいずれかです。

範囲指定子 意味
WIA_LIST_COUNT 名目値を除くリスト要素の合計数。
WIA_LIST_NOM プロパティの名目上の値。
WIA_LIST_VALUES 最初の値のインデックス番号。
 

また、プログラムでは ppvValidValues パラメーターを 使用して、有効なフラグ値を取得します。 たとえば、プロパティ フラグが VT_UI4 として指定されている場合、有効なフラグ値は構造体メンバーを使用して決定できます

rgpropspec[n].caul.pElems[flag_specifier]

ここで、n は検査されるプロパティのインデックス番号であり、flag_specifierは次のいずれかです。

範囲指定子 意味
WIA_FLAG_NOM プロパティの名目値。
WIA_FLAG_NUM_ELEMS 名目値を除くリスト要素の合計数。
WIA_FLAG_VALUES 有効なすべてのフラグ ビットが設定されているすべての値。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wia_xp.h (Wia.h を含む)
Library Wiaguid.lib
[DLL] Wiaservc.dll

こちらもご覧ください

IPropertyStorage

IWiaPropertyStorage