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 |