IPropertyDescription
COM公式ドキュメント
個々のプロパティ記述の詳細を列挙および取得するメソッドを公開します。(IPropertyDescription)
解説(Remarks)
実装するタイミング
このインターフェイスは実装しないでください。システムには IPropertyDescription の実装が 1 つだけ存在し、それは Shell によって提供されます。このインターフェイスを取得するには、PSGetPropertyDescription、PSGetPropertyDescriptionByName、または IPropertyDescriptionList::GetAt を呼び出します。
システム内の各プロパティに対して、プロパティ記述は 1 つだけ存在します。
メソッド 21
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
プロパティの一意の識別子として機能する構造体を取得します。
| pkey | PROPERTYKEY* | out | このメソッドが返るとき、PROPERTYKEY 構造体へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の propertyDescription 要素に由来します。
ローカライズされた名前に関係なく、システムがプロパティを識別するために使用する、大文字と小文字を区別する名前を取得します。
| ppszName | LPWSTR* | out | このメソッドが返るとき、プロパティの正規名を null で終わる Unicode 文字列として指すポインターのアドレスが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の propertyDescription 要素の name 属性に由来します。
ppszName が参照する文字列が不要になったときに CoTaskMemFree を使用して解放するのは、呼び出し側アプリケーションの責任です。
プロパティのバリアント型を取得します。
| pvartype | WORD* | out | このメソッドが返るとき、プロパティの型を示す VARTYPE へのポインターが格納されます。プロパティが複数値を持つ場合、指し示される値は VT_VECTOR マスク(VT_VECTOR を VARTYPE と OR したもの)になります。指定できるバリアント型は次のとおりです。 VT_NULL値は任意の型を取ることができます。型変換は行われません。型を取得できない場合、このメソッドは既定値として VT_NULL を取得します。 VT_LPWSTR文字列 VT_BOOLブール値 VT_UI1バイト VT_I216 ビット符号付き整数 VT_UI216 ビット符号なし整数 VT_I432 ビット符号付き整数 VT_UI432 ビット符号なし整数 VT_I864 ビット符号付き整数 VT_UI864 ビット符号なし整数 VT_R8倍精度浮動小数点数 VT_FILETIMEFILETIME 構造体 VT_CLSIDGUID VT_BLOB種類の指定されないバイナリデータ VT_UNKNOWNIUnknown を実装するオブジェクト VT_STREAMIStream を実装するオブジェクト |
戻り値
型: HRESULT
このメソッドは常に S_OK を返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の typeInfo 要素の type 属性に由来します。
任意の UI に表示されるプロパティの表示名を取得します。
| ppszName | LPWSTR* | out | プロパティの名前を null で終わる Unicode 文字列として指すポインターのアドレスが格納されます。 |
戻り値
型: HRESULT
次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 表示名が取得されました。 | |
| ppszDisplayName パラメーターが NULL です。 | |
| メモリの割り当てに失敗しました。 |
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の labelInfo 要素の singularLabel 属性および pluralLabel 属性に由来します。
ppszDisplayName が参照する文字列が不要になったときに CoTaskMemFree を使用して解放するのは、呼び出し側アプリケーションの責任です。
各種ダイアログボックスにホストされる編集コントロールで使用されるテキストを取得します。
| ppszInvite | LPWSTR* | out | このメソッドが返るとき、入力を促すテキストを保持する null で終わる Unicode バッファーを指すポインターのアドレスが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の labelInfo 要素の invitationText 属性に由来します。
pszInvite が参照する文字列が不要になったときに CoTaskMemFree を使用して解放するのは、呼び出し側アプリケーションの責任です。
プロパティの用途と機能を表すフラグのセットを取得します。
| mask | PROPDESC_TYPE_FLAGS | in | 取得する型フラグを指定するマスクです。PROPDESC_TYPE_FLAGS 定数の値の組み合わせです。すべての型フラグを取得するには、PDTF_MASK_ALL を渡します。 |
| ppdtFlags | PROPDESC_TYPE_FLAGS* | out | このメソッドが返るとき、ビットごとの PROPDESC_TYPE_FLAGS 値で構成される値へのポインターが格納されます。 |
戻り値
型: HRESULT
常に S_OK を返します。
解説(Remarks)
プロパティ記述インスタンスが PSGetPropertyDescription または PSGetPropertyDescriptionByName から取得されたものである場合、これらのフラグはプロパティ記述を定義する .propdesc ファイルに由来します。
インスタンスが GetAt から取得されたものである場合、型フラグは .propdesc ファイルに由来し、特定の proplist の影響を受けることがあります。つまり、あるプロパティ記述インスタンスから取得したフラグが、別のインスタンス(いずれも同じプロパティを参照)から取得したフラグとわずかに異なる場合があります。
型フラグの詳細については、プロパティの .propdesc ファイル内の typeInfo 要素の canGroupBy、canStackBy、isInnate、multipleValues、isGroup、isTreeProperty、isViewable、isQueryable、includeInFullTextQuery の各属性を参照してください。
プロパティのビューを制御する現在のフラグのセットを取得します。
| ppdvFlags | PROPDESC_VIEW_FLAGS* | out | このメソッドが返るとき、次のフラグの 1 つ以上を含む値へのポインターが格納されます。有効な値については PROPDESC_VIEW_FLAGS を参照してください。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
リストビューにおけるプロパティの既定の列幅を取得します。
| pcxChars | DWORD* | out | 列幅の値(文字数単位)へのポインターです。 |
戻り値
型: HRESULT
常に S_OK を返します。
解説(Remarks)
このメソッドが取得する値は、元々はプロパティの .propdesc ファイル内の displayInfo 要素の defaultColumnWidth 属性を通じて設定されます。
.propdesc ファイルに値が設定されていない場合、またはメソッドが失敗した場合、pcxChars が指す値は 20 文字になります。
プロパティの表示に使用される現在のデータ型を取得します。
| pdisplaytype | PROPDESC_DISPLAYTYPE* | out | 表示型を示す値へのポインターが格納されます。次のいずれかの値です。 PDDT_STRING (0x00000000) (0)値は文字列として表示されます。 PDDT_NUMBER (0x00000001) (1)値は整数として表示されます。 PDDT_BOOLEAN (0x00000002) (2)値はブール値として表示されます。 PDDT_DATETIME (0x00000003) (3)値は日付と時刻として表示されます。 PDDT_ENUMERATED (0x00000004) (4)値は列挙型のリストとして表示されます。 この型を扱うには IPropertyDescription::GetEnumTypeList を使用します。 |
戻り値
型: HRESULT
常に S_OK を返します。
解説(Remarks)
このメソッドが取得する値は、元々はプロパティの .propdesc ファイル内の displayInfo 要素の displayType 属性を通じて設定されます。
このフラグを使用するインターフェイスまたは API がプロパティをどのように扱うべきかを表す列状態フラグを取得します。
| pcsFlags | DWORD* | out | このメソッドが返るとき、列状態フラグへのポインターが格納されます。有効な値については SHCOLSTATE を参照してください。 |
戻り値
型: HRESULT
常に S_OK を返します。
解説(Remarks)
このメソッドが取得する値は、元々はプロパティの .propdesc ファイル内の displayInfo 要素の displayType 属性を通じて設定されます。
ビューがプロパティでグループ化されるときに使用されるグループ化方法を取得し、グループ化の種類を取得します。
| pgr | PROPDESC_GROUPING_RANGE* | out | グループ化の種類を示すフラグ値へのポインターを受け取ります。指定できる値は次のとおりです。 PDGR_DISCRETE個々の値を表示します。 PDGR_ALPHANUMERIC静的な英数字の範囲を表示します。 PDGR_SIZE静的なサイズの範囲を表示します。 PDGR_DYNAMIC動的に作成される範囲を表示します。 PDGR_DATE月と年のグループを表示します。 PDGR_PERCENTパーセントのグループを表示します。 PDGR_ENUMERATEDIPropertyDescription::GetEnumTypeList によって返されるパーセントのグループを表示します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の typeInfo 要素の groupingRange 属性に由来します。
プロパティ記述の相対記述の種類を取得します。
| prdt | PROPDESC_RELATIVEDESCRIPTION_TYPE* | out | このメソッドが返るとき、相対記述の種類の値へのポインターが格納されます。有効な値については PROPDESC_RELATIVEDESCRIPTION_TYPE を参照してください。 |
戻り値
型: HRESULT
常に S_OK を返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の displayInfo 要素の relativeDescriptionType 属性に由来します。
プロパティ記述で指定された方法で 2 つのプロパティ値を比較します。2 つのプロパティの比較結果を表す 2 つの表示文字列を返します。
| propvar1 | PROPVARIANT* | in | 1 つ目のプロパティの型と値を格納する PROPVARIANT 構造体への参照です。 |
| propvar2 | PROPVARIANT* | in | 2 つ目のプロパティの型と値を格納する PROPVARIANT 構造体への参照です。 |
| ppszDesc1 | LPWSTR* | out | このメソッドが返るとき、1 つ目のプロパティを 2 つ目のプロパティと比較する記述文字列を指すポインターのアドレスが格納されます。文字列は null で終わります。 |
| ppszDesc2 | LPWSTR* | out | このメソッドが返るとき、2 つ目のプロパティを 1 つ目のプロパティと比較する記述文字列を指すポインターのアドレスが格納されます。文字列は null で終わります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、プロパティの .propdesc ファイル内の displayInfo 要素の relativeDescriptionType 属性の影響を受けます。
ppszDesc1 および ppszDesc2 が不要になったときに CoTaskMemFree を使用して解放するのは、呼び出し側アプリケーションの責任です。
並べ替えの選択肢の具体的な表現を示す、プロパティの現在の並べ替え記述フラグを取得します。
| psd | PROPDESC_SORTDESCRIPTION* | out | このメソッドが返るとき、ユーザーが利用できる並べ替えの種類を示す次のフラグの 1 つ以上の値へのポインターが格納されます。表示されている文字列は英語版のみであることに注意してください。他のロケールではローカライズされた文字列が使用されます。 PDSD_GENERAL既定値。"Sort going up"、"Sort going down" PDSD_A_Z"A on top"、"Z on top" PDSD_LOWEST_HIGHEST"Lowest on top"、"Highest on top" PDSD_SMALLEST_BIGGEST"Smallest on top"、"Largest on top" PDSD_OLDEST_NEWEST"Oldest on top"、"Newest on top" |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する設定は、プロパティの .propdesc ファイル内の labelInfo 要素の sortDescription 属性を通じて設定されます。
現在の並べ替え順序を表す、ローカライズされた表示文字列を取得します。
| fDescending | BOOL | in | ppszDescription が文字列 "Z on top" を参照する場合は TRUE、文字列 "A on top" を参照する場合は FALSE です。 |
| ppszDescription | LPWSTR* | out | このメソッドが返るとき、並べ替えの記述を null で終わる Unicode 文字列として指すポインターのアドレスが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する文字列は、プロパティの .propdesc ファイル内の labelInfo 要素の sortDescription 属性に設定されたフラグによって決まります。
ppszDescription が不要になったときに解放するのは、呼び出し側アプリケーションの責任です。
UI で複数の項目が選択されているときにプロパティ値がどのように表示されるかを表す値を取得します。
| paggtype | PROPDESC_AGGREGATION_TYPE* | out | このメソッドが返るとき、集約の種類を示す値へのポインターが格納されます。PROPDESC_AGGREGATION_TYPE を参照してください。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが取得する情報は、プロパティの .propdesc ファイル内の typeInfo 要素の aggregationType 属性に由来します。
クエリビルダー UI にプロパティを表示するときに使用する条件の種類と既定の条件演算を取得します。これは、このプロパティに対して表示される述語条件(たとえば、等しい、より小さい、含む)のリストに影響します。
| pcontype | PROPDESC_CONDITION_TYPE* | out | 条件の種類を示す値へのポインターです。 |
| popDefault | CONDITION_OPERATION* | out | このメソッドが返るとき、既定の条件演算を示す値へのポインターが格納されます。 |
戻り値
型: HRESULT
常に S_OK を返します。
解説(Remarks)
詳細については、プロパティの .propdesc ファイル内の typeInfo 要素の conditionType 属性を参照してください。
プロパティに指定できる値を列挙するために使用できる IPropertyEnumTypeList のインスタンスを取得します。
| riid | GUID* | in | ppv を通じて取得するインターフェイスの IID への参照です。通常は IID_IShellItem です。 |
| ppv | void** | out | このメソッドが成功して返るとき、riid で要求されたインターフェイスポインターが格納されます。通常は IPropertyEnumTypeList です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
プロパティ記述に従って、値を正規の値に変換します。
| ppropvar | PROPVARIANT* | inout | 入力時には、元の値を格納する PROPVARIANT 構造体へのポインターが格納されています。このメソッドが返るとき、正規の値が格納されます。 |
戻り値
型: HRESULT
失敗コードが INPLACE_S_TRUNCATED または E_INVALIDARG でない場合、値の型からプロパティ記述の型への変換ができなかったことを意味し、PROPVARIANT 構造体はクリアされています。
返される可能性のある結果には次のものがあります。
| 戻り値 | 説明 |
|---|---|
| 関数は成功しました。ppropvar で指定されたプロパティ値は、現在正規形になっています。 | |
| ppropvar で指定されたプロパティ値は、現在切り詰められた正規形になっています。 | |
| ppropvar パラメーターが無効です。PROPVARIANT 構造体はクリアされています。 |
解説(Remarks)
詳細については、プロパティの .propdesc ファイル内の typeInfo 要素の type 属性を参照してください。
ほとんどのプロパティ記述は、その値が使用すると想定される型を指定します。たとえば、System.Title のプロパティ記述は、System.Title の値が VT_LPWSTR を使用するべきであることを指定します。このメソッドは値をこの型に変換し、その結果を正規形に変換します。
重要な点として、このメソッドが失敗した場合、入力された PROPVARIANT 構造体に対して既に PropVariantClear が呼び出されています。このメソッドが成功した場合にのみ、構造体が不要になったときに ppropvar に対して PropVariantClear を呼び出す責任が呼び出し側アプリケーションにあります。
このメソッドが実行する変換は、IPropertyStore::GetValue および IPropertyStore::SetValue の呼び出し時にプロパティシステムによっても実行されます。アプリケーションは、変換の実行をプロパティシステムに任せることも、このメソッドを使用してアプリケーションが選択したタイミングで変換を実行することもできます。
変換は次のように 4 つのステップで実行されます。
- 次の値は
VT_EMPTYに変換されます。VT_NULL型の値。VT_LPWSTR, VT_BSTR、またはVT_LPSTR型で、ポインターが NULL である値。VT_LPWSTR, VT_BSTR、またはVT_LPSTR型で、空、またはすべてが空白で構成される値。VT_FILETIME型で、1601/01/02 の午前 0 時より前の値。
- ステップ 1 の後で値が
VT_EMPTY型でない場合、プロパティ記述で指定された型に変換されます。プロパティ記述の型は IPropertyDescription::GetPropertyType を使用して取得できます。プロパティスキーマがプロパティ記述の型にどのように影響するかについては、typeInfo を参照してください。変換は次のように実行されます。VT_LPWSTR, VT_BSTR、またはVT_LPSTR型の値は、InitPropVariantFromStringAsVector を使用してVT_VECTOR | VT_LPWSTRに変換されます。- その他のすべての変換は PropVariantChangeType を使用して実行されます。
- ステップ 2 と 3 の後、値はその型に基づいて正規形に変換されます。正規形を次の表にまとめます。
値の型 正規形 VT_EMPTY常に正規形です。 VT_LPWSTR- 先頭または末尾に空白がありません。文字列は空ではありません。文字列は NULL ではありません。たとえば
L"Alice"です。 - これがツリープロパティである場合(つまり typeInfo 要素の
isTreeProperty属性が TRUE である場合)、先頭または末尾にスラッシュ (/) があってはならず、テキストとスラッシュの間に空白があってはならず、連続する 2 つのスラッシュ (/) があってはなりません。たとえばL"Friend/Bob"です。 - 変換により不要な文字が削除され、内容がなかった場合は
VT_EMPTYになります。
VT_VECTOR | VT_LPWSTR- ベクター内の各文字列は、上記の
VT_LPWSTRの規則に従う必要があります。さらに、ベクターには重複がなく、null ポインターがあってはなりません。 - これがツリープロパティである場合、いずれの値も別の値の先祖であってはなりません。たとえば
L"Friend"は L"Friend/Bob" の先祖です。 - 内容がない場合、変換により重複と先祖の文字が削除され、
VT_EMPTYになります。
- 先頭または末尾に空白がありません。文字列は空ではありません。文字列は NULL ではありません。たとえば
- 該当する場合、値はプロパティ記述の型の列挙に対して検査されます。次の検査が適用されます。
列挙の種類 値の型 正規形 離散または範囲 VT_EMPTY常に正規形 離散 VT_LPWSTR文字列は、プロパティに許可された列挙文字列のいずれかと一致します。比較では大文字と小文字は区別されません。一致しない場合、値を VT_EMPTYに変換します。離散 数値 数値は、プロパティに許可された列挙値のいずれかと一致します。一致しない場合、値を VT_EMPTYに変換します。離散 VT_VECTOR | VT_LPWSTRベクター内の各文字列は、プロパティに許可された列挙文字列のいずれかと一致します。比較では大文字と小文字は区別されません。一致しない場合、その文字列をベクターから削除します。結果のベクターが空になった場合、値を VT_EMPTYに変換します。離散 VT_VECTOR |数値ベクター内の各数値は、プロパティに許可された列挙値のいずれかと一致します。一致しない場合、その数値をベクターから削除します。結果のベクターが空になった場合、値を VT_EMPTYに変換します。範囲 VT_LPWSTR文字列は、プロパティに許可された範囲内に存在します。比較では大文字と小文字が区別されます。存在しない場合、値を VT_EMPTYに変換します。範囲 数値 数値は、プロパティに許可された範囲内に存在します。存在しない場合、値を VT_EMPTY に変換します。 範囲 VT_VECTOR | VT_LPWSTRベクター内の各文字列は、プロパティに許可された範囲内に存在します。比較では大文字と小文字が区別されます。存在しない場合、その文字列をベクターから削除します。結果のベクターが空になった場合、値を VT_EMPTYに変換します。範囲 VT_VECTOR| 数値ベクター内の各数値は、プロパティに許可された範囲内に存在します。存在しない場合、その数値をベクターから削除します。結果のベクターが空になった場合、値を VT_EMPTY に変換します。
プロパティ値の、書式設定された Unicode 文字列表現を取得します。(IPropertyDescription.FormatForDisplay)
| propvar | PROPVARIANT* | in | プロパティの型と値を格納する PROPVARIANT 構造体への参照です。 |
| pdfFlags | PROPDESC_FORMAT_FLAGS | in | プロパティ文字列の書式を示す PROPDESC_FORMAT_FLAGS フラグの 1 つ以上で、ビットごとの値または複数の値です。 |
| ppszDisplay | LPWSTR* | out | 表示テキストを格納する null で終わる Unicode 文字列を指すポインターのアドレスです。 - cchText [out]型: DWORD 終端の NULL を含む、pszText のバッファーの長さ(WCHAR 単位)です。最大サイズは 0x8000 (32K) です。 - key [in]型: REFPROPERTYKEY プロパティを識別する、要求されたプロパティキーへの参照です。PROPERTYKEY を参照してください。 - pszText [out]型: LPWSTR* このメソッドが返るとき、書式設定された値が null で終わる Unicode 文字列として格納されます。呼び出し側アプリケーションはバッファーのメモリを割り当てる必要があり、pszText で指定された文字列が不要になったときに CoTaskMemFree を使用して解放する必要があります。 |
戻り値
型: HRESULT
次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 文字列は切り詰められることなくコピーされ、null で終端されました。この文字列は、入力文字列が空である場合や、空でない値が空文字列に書式設定された場合に、空で返されることがあります。 | |
| VT_EMPTY によって空文字列が生じました。 | |
| pszText パラメーターが NULL です。 | |
| 空き領域が不足したためコピー操作が失敗しました。宛先バッファーは、理想的な結果の切り詰められたバージョンを格納するように変更され、null で終端されます。 |
解説(Remarks)
IPropertyDescription::FormatForDisplay を呼び出す前に、CoInitialize または OleInitialize を使用して Component Object Model (COM) を初期化する必要があります。
成功した場合、このメソッドは指定された PROPERTYKEY と 1 つ以上の PROPDESC_FORMAT_FLAGS に対するプロパティ値の、書式設定された Unicode 文字列表現を取得します。
このメソッドの目的は、データをユーザーへの表示に適した文字列に変換することです。値は、現在のロケール、ユーザーの言語、PROPDESC_FORMAT_FLAGS、およびプロパティキーで指定されたプロパティ記述に従って書式設定されます。プロパティ記述スキーマが値の書式設定にどのように影響するかについては、displayInfo、stringFormat、booleanFormat、numberFormat、NMDATETIMEFORMAT、enumeratedList を参照してください。通常、PROPDESC_FORMAT_FLAGS は、プロパティ記述で規定された書式を変更するために使用されます。
出力文字列には Unicode の方向制御文字を含めることができます。これらの非スペーシング文字は Unicode 双方向アルゴリズムに影響を与え、左から右 (LTR) の言語が右から左 (RTL) のウィンドウに描画される場合やその逆の場合でも、値が正しく表示されるようにします。これらの文字には次のものが含まれます。"\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".
次のプロパティは特別な書式を使用し、PROPDESC_FORMAT_FLAGS の影響を受けません(挙げられている例は現在のロケールが英語に設定されている場合の文字列です。通常、注記のある場合を除き、出力はローカライズされます)。
| プロパティ | 書式 |
|---|---|
| System.FileAttributes | 次のファイル属性が文字に変換され、連結されて文字列が作成されます(たとえば、0x1801 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE) の値は "RCO" に変換されます)。
|
| System.Photo.ISOSpeed | たとえば "ISO-400" です。 |
| System.Photo.ShutterSpeed |
APEX 値は、次の式を使用して露出時間に変換されます。
たとえば "2 sec." または "1/125 sec." です。 |
| System.Photo.ExposureTime | たとえば "2 sec." または "1/125 sec." です。 |
| System.Photo.Aperture |
APEX 値は、次の式を使用して F 値に変換されます。
たとえば "f/5.6" です。 |
| System.Photo.FNumber | たとえば "f/5.6" です。 |
| System.Photo.SubjectDistance | たとえば "15 m" または "250 mm" です。 |
| System.Photo.FocalLength | たとえば "50 mm" です。 |
| System.Photo.FlashEnergy | たとえば "500 bpcs" です。 |
| System.Photo.ExposureBias | たとえば "-2 step"、" 0 step"、"+3 step" です。 |
| System.Computer.DecoratedFreeSpace | たとえば "105 MB free of 13.2 GB" です。 |
| System.ItemType | たとえば "Application" または "JPEG Image" です。 |
| System.ComputerName | たとえば "LITWARE05 (this computer)" または "testbox07" です。 |
プロパティ記述の定義に従って、プロパティが正規であるかどうかを示す値を取得します。
| propvar | PROPVARIANT* | in | プロパティの型と値を格納する PROPVARIANT 構造体への参照です。 |
戻り値
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPropertyDescription "{6F79D558-3E96-4549-A1D1-7D75D2288814}" #usecom global IPropertyDescription IID_IPropertyDescription "{}" #comfunc global IPropertyDescription_GetPropertyKey 3 var #comfunc global IPropertyDescription_GetCanonicalName 4 var #comfunc global IPropertyDescription_GetPropertyType 5 var #comfunc global IPropertyDescription_GetDisplayName 6 var #comfunc global IPropertyDescription_GetEditInvitation 7 var #comfunc global IPropertyDescription_GetTypeFlags 8 int,var #comfunc global IPropertyDescription_GetViewFlags 9 var #comfunc global IPropertyDescription_GetDefaultColumnWidth 10 var #comfunc global IPropertyDescription_GetDisplayType 11 var #comfunc global IPropertyDescription_GetColumnState 12 var #comfunc global IPropertyDescription_GetGroupingRange 13 var #comfunc global IPropertyDescription_GetRelativeDescriptionType 14 var #comfunc global IPropertyDescription_GetRelativeDescription 15 var,var,var,var #comfunc global IPropertyDescription_GetSortDescription 16 var #comfunc global IPropertyDescription_GetSortDescriptionLabel 17 int,var #comfunc global IPropertyDescription_GetAggregationType 18 var #comfunc global IPropertyDescription_GetConditionType 19 var,var #comfunc global IPropertyDescription_GetEnumTypeList 20 var,sptr #comfunc global IPropertyDescription_CoerceToCanonicalValue 21 var #comfunc global IPropertyDescription_FormatForDisplay 22 var,int,var #comfunc global IPropertyDescription_IsValueCanonical 23 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPropertyDescription "{6F79D558-3E96-4549-A1D1-7D75D2288814}" #usecom global IPropertyDescription IID_IPropertyDescription "{}" #comfunc global IPropertyDescription_GetPropertyKey 3 sptr #comfunc global IPropertyDescription_GetCanonicalName 4 sptr #comfunc global IPropertyDescription_GetPropertyType 5 sptr #comfunc global IPropertyDescription_GetDisplayName 6 sptr #comfunc global IPropertyDescription_GetEditInvitation 7 sptr #comfunc global IPropertyDescription_GetTypeFlags 8 int,sptr #comfunc global IPropertyDescription_GetViewFlags 9 sptr #comfunc global IPropertyDescription_GetDefaultColumnWidth 10 sptr #comfunc global IPropertyDescription_GetDisplayType 11 sptr #comfunc global IPropertyDescription_GetColumnState 12 sptr #comfunc global IPropertyDescription_GetGroupingRange 13 sptr #comfunc global IPropertyDescription_GetRelativeDescriptionType 14 sptr #comfunc global IPropertyDescription_GetRelativeDescription 15 sptr,sptr,sptr,sptr #comfunc global IPropertyDescription_GetSortDescription 16 sptr #comfunc global IPropertyDescription_GetSortDescriptionLabel 17 int,sptr #comfunc global IPropertyDescription_GetAggregationType 18 sptr #comfunc global IPropertyDescription_GetConditionType 19 sptr,sptr #comfunc global IPropertyDescription_GetEnumTypeList 20 sptr,sptr #comfunc global IPropertyDescription_CoerceToCanonicalValue 21 sptr #comfunc global IPropertyDescription_FormatForDisplay 22 sptr,int,sptr #comfunc global IPropertyDescription_IsValueCanonical 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。