次の方法で共有


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 つ以上のイベントを含めることができます。 IPortableDeviceValues オブジェクトを 1 つ 使用して、各イベントとその関連データを表します。 イベントとデータ型のプラットフォーム定義 PROPERTYKEYは sensors.h で定義されます。

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

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

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

イベント スレッドを作成するクラスの例については、「センサー イベントの発生

IPortableDeviceValues と IPortableDeviceValuesCollection については、Windows ポータブル デバイスに関する記事を参照してください。

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

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー sensorsclassextension.h
ライブラリ SensorsClassExtension.lib

関連項目

ISensorClassExtension