Win32 API 日本語リファレンス
ホームDevices.Sensors › ISensor

ISensor

COM
IID5fa08f80-2657-458e-af75-46f73fa6ac5c継承元IUnknown自前メソッド開始 vtbl3

メソッド 15

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetID(GUID* pID)
pIDGUID*outこのセンサーの一意な識別子(GUID)を受け取る出力先。
vtbl 4 HRESULT GetCategory(GUID* pSensorCategory)
pSensorCategoryGUID*outセンサーが属するカテゴリーを示すGUIDを受け取る出力先。位置・環境など。
vtbl 5 HRESULT GetType(GUID* pSensorType)
pSensorTypeGUID*outセンサーの種類を示すGUIDを受け取る出力先。加速度計・GPS等。
vtbl 6 HRESULT GetFriendlyName(LPWSTR* pFriendlyName)
pFriendlyNameLPWSTR*outユーザー向けの分かりやすいセンサー名を受け取る出力先。CoTaskMemFreeで解放する。
vtbl 7 HRESULT GetProperty(PROPERTYKEY* key, PROPVARIANT* pProperty)
keyPROPERTYKEY*in取得したいプロパティを識別するPROPERTYKEYへのポインター。
pPropertyPROPVARIANT*out取得したプロパティ値を格納するPROPVARIANTへのポインター。使用後PropVariantClearする。
vtbl 8 HRESULT GetProperties(IPortableDeviceKeyCollection* pKeys, IPortableDeviceValues** ppProperties)
pKeysIPortableDeviceKeyCollection*inoptional取得対象プロパティキー群を保持するコレクション。NULLを渡すと全プロパティを取得する。
ppPropertiesIPortableDeviceValues**out取得結果のキーと値の集合を受け取るIPortableDeviceValuesの出力先。
vtbl 9 HRESULT GetSupportedDataFields(IPortableDeviceKeyCollection** ppDataFields)
ppDataFieldsIPortableDeviceKeyCollection**outこのセンサーがサポートするデータフィールドのキー集合を受け取る出力先。
vtbl 10 HRESULT SetProperties(IPortableDeviceValues* pProperties, IPortableDeviceValues** ppResults)
pPropertiesIPortableDeviceValues*inoptional設定するプロパティのキーと値を保持するIPortableDeviceValues。
ppResultsIPortableDeviceValues**out各プロパティ設定の成否(HRESULT)を格納した結果集合を受け取る出力先。
vtbl 11 HRESULT SupportsDataField(PROPERTYKEY* key, VARIANT_BOOL* pIsSupported)
keyPROPERTYKEY*inサポート有無を問い合わせるデータフィールドのPROPERTYKEYへのポインター。
pIsSupportedVARIANT_BOOL*outサポートされていればVARIANT_TRUE、なければVARIANT_FALSEを受け取る出力先。
vtbl 12 HRESULT GetState(SensorState* pState)
pStateSensorState*outセンサーの現在の状態(SensorState列挙体。準備完了・アクセス拒否等)を受け取る出力先。
vtbl 13 HRESULT GetData(ISensorDataReport** ppDataReport)
ppDataReportISensorDataReport**out最新のセンサーデータを保持するISensorDataReportを受け取る出力先。
vtbl 14 HRESULT SupportsEvent(GUID* eventGuid, VARIANT_BOOL* pIsSupported)
eventGuidGUID*inサポート有無を問い合わせるイベント種別のGUIDへのポインター。
pIsSupportedVARIANT_BOOL*outイベントがサポートされていればVARIANT_TRUEを受け取る出力先。
vtbl 15 HRESULT GetEventInterest(GUID** ppValues, DWORD* pCount)
ppValuesGUID**out現在関心登録されているイベントGUIDの配列を受け取る出力先。CoTaskMemFreeで解放する。
pCountDWORD*out返されるイベントGUIDの個数を受け取る出力先。
vtbl 16 HRESULT SetEventInterest(GUID* pValues, DWORD count)
pValuesGUID*inoptional関心を登録するイベント種別を表すGUID配列へのポインター。
countDWORDinpValues配列に含まれるGUIDの個数を指定する。
vtbl 17 HRESULT SetEventSink(ISensorEvents* pEvents)
pEventsISensorEvents*inoptionalセンサーイベントの通知を受け取るISensorEventsコールバック。NULLでイベント受信を解除する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ISensor "{5FA08F80-2657-458E-AF75-46F73FA6AC5C}"
#usecom global ISensor IID_ISensor "{E97CED00-523A-4133-BF6F-D3A2DAE7F6BA}"
#comfunc global ISensor_GetID                   3 var
#comfunc global ISensor_GetCategory             4 var
#comfunc global ISensor_GetType                 5 var
#comfunc global ISensor_GetFriendlyName         6 var
#comfunc global ISensor_GetProperty             7 var,var
#comfunc global ISensor_GetProperties           8 sptr,sptr
#comfunc global ISensor_GetSupportedDataFields  9 sptr
#comfunc global ISensor_SetProperties           10 sptr,sptr
#comfunc global ISensor_SupportsDataField       11 var,var
#comfunc global ISensor_GetState                12 var
#comfunc global ISensor_GetData                 13 sptr
#comfunc global ISensor_SupportsEvent           14 var,var
#comfunc global ISensor_GetEventInterest        15 var,var
#comfunc global ISensor_SetEventInterest        16 var,int
#comfunc global ISensor_SetEventSink            17 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。