Метод ISensorClassExtension::P ostEvent (sensorsclassextension.h)

Метод ISensorClassExtension::P ostEvent вызывает одно или несколько событий драйвера в расширении класса датчика.

Синтаксис

HRESULT PostEvent(
  LPWSTR                          pwszSensorID,
  IPortableDeviceValuesCollection *pEventCollection
);

Параметры

pwszSensorID

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) В настоящее время клиентские программы не подписаны на события. Не публикуйте события, если клиенты не подписаны.

Комментарии

Расширение класса датчика пересылает эти события в API датчика и API расположения, которые, в свою очередь, вызывают события в клиентских программах.

Коллекция, передаваемая через pEventCollection , может содержать одно или несколько событий. Представление каждого события и связанных с ним данных с помощью одного объекта IPortableDeviceValues . Определяемые платформой свойства PROPERTYKEYдля событий и типов данных определяются в sensors.h.

Каждый объект IPortableDeviceValues , возвращаемый этим методом, должен содержать метку времени, как описано в SENSOR_CATEGORY_ALL.

Расширение класса датчика отвечает за освобождение всех структур PROPVARIANT , предоставляемых этим методом.

Чтобы указать тип события, используйте SENSOR_EVENT_PARAMETER_EVENT_ID PROPERTYKEY с соответствующим значением GUID .

Пример класса, создающего поток событий, см. в разделе Вызов событий датчика.

IPortableDeviceValues и IPortableDeviceValuesCollection описаны в статье Переносные устройства Windows.

Примечание Расширение класса датчика вызовет PropVariantClear для PROPVARIANTs, передаваемого в расширение класса датчика.
 
Вызовите события изменения состояния, вызвав метод ISensorClassExtension::P ostStateChange.

Требования

Требование Значение
Целевая платформа Windows
Header sensorsclassextension.h
Библиотека SensorsClassExtension.lib

См. также раздел

ISensorClassExtension