ICameraUIControl
COM公式ドキュメント
カメラデバイス用のユーザーインターフェイスコントロールを有効にします。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
カメラのユーザーインターフェイスコントロールを表示します。
| pWindow | IUnknown* | in | ユーザーインターフェイスウィンドウへのポインター。 |
| mode | CameraUIControlMode | in | ユーザーインターフェイスをブラウズ可能な形式で表示するか、リニア形式で表示するかを指定します。 |
| selectionMode | CameraUIControlLinearSelectionMode | in | 選択モードを指定します。 |
| captureMode | CameraUIControlCaptureMode | in | 表示されるユーザーインターフェイスで、写真の撮影、ビデオの撮影、またはそのいずれかをユーザーに許可するかどうかを指定します。 |
| photoFormat | CameraUIControlPhotoFormat | in | 写真を撮影する際のフォーマットを指定します。使用可能なフォーマットには JPEG、PNG、JPEG XR があります。 |
| videoFormat | CameraUIControlVideoFormat | in | ビデオを撮影する際のフォーマットを指定します。使用可能なフォーマットには MP4 と WMV があります。 |
| bHasCloseButton | BOOL | in | ユーザーインターフェイスに閉じるボタンがある場合は TRUE、それ以外の場合は FALSE。 |
| pEventCallback | ICameraUIControlEventCallback* | inoptional | ダイアログのイベントコールバックへのポインター。このコールバックは、項目が撮影または削除されたとき、およびダイアログが開始、閉じられる、または中断されたときに呼び出されます。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ユーザーインターフェイスコントロールを閉じます。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ユーザーインターフェイスコントロールの中断をシミュレートします。
| pbDeferralRequired | BOOL* | out | 中断操作に延期が必要な場合は TRUE、それ以外の場合は FALSE。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ユーザーインターフェイスコントロールの再開をシミュレートします。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在のビューの種類を取得します。
| pViewType | CameraUIControlViewType* | out | UI が単一の項目を表示するか、項目のリストを表示するかを示す値。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
アクティブな撮影済み項目を取得します。
| pbstrActiveItemPath | LPWSTR* | outoptional | 現在アクティブな撮影済み項目へのパス。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
選択された項目を取得します。
| ppSelectedItemPaths | SAFEARRAY** | out | ユーザーインターフェイスで選択された撮影済み項目へのパスの配列。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
撮影済み項目を削除します。
| pszPath | LPWSTR | in | 削除する項目へのパス。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICameraUIControl "{B8733ADF-3D68-4B8F-BB08-E28A0BED0376}" #usecom global ICameraUIControl IID_ICameraUIControl "{16D5A2BE-B1C5-47B3-8EAE-CCBCF452C7E8}" #comfunc global ICameraUIControl_Show 3 sptr,int,int,int,int,int,int,sptr #comfunc global ICameraUIControl_Close 4 #comfunc global ICameraUIControl_Suspend 5 var #comfunc global ICameraUIControl_Resume 6 #comfunc global ICameraUIControl_GetCurrentViewType 7 var #comfunc global ICameraUIControl_GetActiveItem 8 var #comfunc global ICameraUIControl_GetSelectedItems 9 var #comfunc global ICameraUIControl_RemoveCapturedItem 10 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ICameraUIControl "{B8733ADF-3D68-4B8F-BB08-E28A0BED0376}" #usecom global ICameraUIControl IID_ICameraUIControl "{16D5A2BE-B1C5-47B3-8EAE-CCBCF452C7E8}" #comfunc global ICameraUIControl_Show 3 sptr,int,int,int,int,int,int,sptr #comfunc global ICameraUIControl_Close 4 #comfunc global ICameraUIControl_Suspend 5 sptr #comfunc global ICameraUIControl_Resume 6 #comfunc global ICameraUIControl_GetCurrentViewType 7 sptr #comfunc global ICameraUIControl_GetActiveItem 8 sptr #comfunc global ICameraUIControl_GetSelectedItems 9 sptr #comfunc global ICameraUIControl_RemoveCapturedItem 10 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。