IPhotoAcquireItem
COM公式ドキュメント
IPhotoAcquireItem インターフェイスは、デバイスから取得されるアイテムを操作するためのメソッドを提供します。
メソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetItemName メソッドは、アイテムのファイル名を取得します。
| pbstrItemName | LPWSTR* | out | アイテムの名前を格納する文字列へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
ファイル名は表示名と拡張子で構成されます。これは、Windows の フォルダー オプション ダイアログ ボックスで 登録されている拡張子は表示しない の設定がオンになっている場合でも同様です。
GetThumbnail メソッドは、アイテムに対して提供されるサムネイルを取得します。
| sizeThumbnail | SIZE | in | サムネイルのサイズを指定します。 |
| phbmpThumbnail | HBITMAP* | out | サムネイル ビットマップへのハンドルを指定します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
GetProperty メソッドは、アイテムのプロパティの値を取得します。
| key | PROPERTYKEY* | in | プロパティのキーを指定します。 |
| pv | PROPVARIANT* | out | プロパティ値を格納するプロパティ バリアントへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
シェル オブジェクトであるアイテムの場合、SetProperty を使用してプロパティが設定または更新されていなければ、このメソッドはアイテムが提供する IPropertyStore オブジェクトに処理を委ねます。
SetProperty メソッドは、アイテムのプロパティを設定します。
| key | PROPERTYKEY* | in | 設定するプロパティのキーを指定します。 |
| pv | PROPVARIANT* | in | プロパティに設定する値を格納するプロパティ バリアントへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
プロパティはメモリに格納されますが、ファイルには書き込まれません。
GetStream メソッドは、アイテムの内容を格納する読み取り専用のストリームを取得します。
| ppStream | IStream** | out | ファイルの内容を格納したストリーム オブジェクトを返します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
CanDelete メソッドは、アイテムを削除できるかどうかを示します。
| pfCanDelete | BOOL* | out | TRUE に設定されている場合にアイテムを削除できることを示すフラグへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
Delete メソッドは、アイテムを削除します。
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
アイテムを削除できるかどうかを判断するには、先に CanDelete を呼び出します。
GetSubItemCount メソッドは、アイテムに含まれるサブアイテムの数を取得します。
| pnCount | DWORD* | out | サブアイテムの数を格納する整数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
エラーが発生した場合、pnCount は NULL に設定されます。
GetSubItemAt メソッドは、サブアイテムのインデックスを指定して、アイテムのサブアイテムを取得します。
| nItemIndex | DWORD | in | アイテムのインデックスを格納する整数。 |
| ppPhotoAcquireItem | IPhotoAcquireItem** | out | 指定したインデックスにある IPhotoAcquireItem オブジェクトを返します。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
指定したインデックスにアイテムが見つからない場合、ppPhotoAcquireItem は NULL に設定されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPhotoAcquireItem "{00F21C97-28BF-4C02-B842-5E4E90139A30}" #usecom global IPhotoAcquireItem IID_IPhotoAcquireItem "{}" #comfunc global IPhotoAcquireItem_GetItemName 3 var #comfunc global IPhotoAcquireItem_GetThumbnail 4 int,sptr #comfunc global IPhotoAcquireItem_GetProperty 5 var,var #comfunc global IPhotoAcquireItem_SetProperty 6 var,var #comfunc global IPhotoAcquireItem_GetStream 7 sptr #comfunc global IPhotoAcquireItem_CanDelete 8 var #comfunc global IPhotoAcquireItem_Delete 9 #comfunc global IPhotoAcquireItem_GetSubItemCount 10 var #comfunc global IPhotoAcquireItem_GetSubItemAt 11 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPhotoAcquireItem "{00F21C97-28BF-4C02-B842-5E4E90139A30}" #usecom global IPhotoAcquireItem IID_IPhotoAcquireItem "{}" #comfunc global IPhotoAcquireItem_GetItemName 3 sptr #comfunc global IPhotoAcquireItem_GetThumbnail 4 int,sptr #comfunc global IPhotoAcquireItem_GetProperty 5 sptr,sptr #comfunc global IPhotoAcquireItem_SetProperty 6 sptr,sptr #comfunc global IPhotoAcquireItem_GetStream 7 sptr #comfunc global IPhotoAcquireItem_CanDelete 8 sptr #comfunc global IPhotoAcquireItem_Delete 9 #comfunc global IPhotoAcquireItem_GetSubItemCount 10 sptr #comfunc global IPhotoAcquireItem_GetSubItemAt 11 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。