ISensorClassExtension::P ostEvent メソッド (sensorsclassextension.h)

ISensorClassExtension::P ostEvent メソッドは、センサー クラス拡張機能で 1 つ以上のドライバー イベントを発生させます。

構文

HRESULT PostEvent(
  LPWSTR                          pwszSensorID,
  IPortableDeviceValuesCollection *pEventCollection
);

パラメーター

pwszSensorID

ドライバーがイベントを発生させるセンサーの ID を含む LPWSTR。

pEventCollection

ポストされるイベントとその関連データの一覧を含む IPortableDeviceValuesCollection インターフェイスへのポインター。

戻り値

このメソッドは HRESULT を返します。 使用可能な値には、次のいずれかの値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK メソッドが成功しました。
S_FALSE メソッドは成功しましたが、現在、クライアント プログラムはイベントにサブスクライブされていません。 クライアントがサブスクライブされていない場合は、イベントを投稿しないでください。
E_INVALIDARG イベント コレクションが空でした。
E_POINTER 必要なポインター引数が NULL でした。
HRESULT_FROM_WIN32(ERROR_CAN_NOT_COMPLETE) クラス拡張機能が初期化されていません。
HRESULT_FROM_WIN32(ERROR_INTERNAL_DB_CORRUPTION シリアル化エラーが発生しました。
HRESULT_FROM_WIN32(ERROR_OBJECT_NOT_FOUND) 現在、イベントにサブスクライブされているクライアント プログラムはありません。 クライアントがサブスクライブされていない場合は、イベントを投稿しないでください。

注釈

センサー クラス拡張機能は、これらのイベントを Sensor API と Location API に転送し、クライアント プログラムでイベントを発生させます。

pEventCollection を介して渡されるコレクションには、1 つ以上のイベントを含めることができます。 1 つの IPortableDeviceValues オブジェクトを使用して、各イベントとその関連データを表します。 イベントとデータ型のプラットフォーム定義 PROPERTYKEYは、sensors.h で定義されます。

このメソッドによって返される各 IPortableDeviceValues オブジェクトには、 SENSOR_CATEGORY_ALLで説明されているように、タイム スタンプが含まれている必要があります。

センサー クラス拡張機能は、このメソッドによって提供されるすべての PROPVARIANT 構造体を解放する役割を担います。

イベントの種類を指定するには、SENSOR_EVENT_PARAMETER_EVENT_ID PROPERTYKEY を適切な GUID 値と共に使用します。

イベント スレッドを作成するクラスの例については、「センサー イベントの発生」を参照してください。

IPortableDeviceValuesIPortableDeviceValuesCollection については、「Windows ポータブル デバイス」を参照してください。

メモ センサー クラス拡張機能は、センサー クラス拡張機能に渡す PROPVARIANT に対して PropVariantClear を呼び出します。
 
ISensorClassExtension::P ostStateChange を呼び出して、状態変更イベントを発生させます。

要件

要件
対象プラットフォーム Windows
ヘッダー sensorsclassextension.h
Library SensorsClassExtension.lib

こちらもご覧ください

ISensorClassExtension