Интерфейс IWSDDeviceHost (wsdhost.h)
Представляет устройство, совместимое с DPWS. Узел устройства объявит о своем присутствии в сети с помощью протокола WS-Discovery. Узел устройства также будет автоматически отвечать на запросы обнаружения и запросы метаданных.
Вызывающий объект может регистрировать пользовательские службы на узле устройства. Эти службы будут доступны в метаданных устройства, а службы будут доступны по сети. Сообщения, привязанные к этим службам, будут автоматически отправляться в объект службы.
Вызовите WSDCreateDeviceHost или WSDCreateDeviceHostAdvanced , чтобы создать объект, предоставляющий этот интерфейс.
Наследование
Интерфейс IWSDDeviceHost наследуется от интерфейса IUnknown . IWSDDeviceHost также имеет следующие типы членов:
Методы
Интерфейс IWSDDeviceHost содержит следующие методы.
IWSDDeviceHost::AddDynamicService Регистрирует объект службы для входящих запросов, но не добавляет службу в метаданные узла устройства. Используется для временных (динамических) служб. |
IWSDDeviceHost::Init Инициализирует экземпляр объекта IWSDDeviceHost. |
IWSDDeviceHost::RegisterPortType Регистрирует тип порта для входящих сообщений. |
IWSDDeviceHost::RegisterService Регистрирует объект службы для входящих запросов и добавляет службу в метаданные узла устройства. |
IWSDDeviceHost::RemoveDynamicService Отменяет регистрацию объекта службы, зарегистрированного с помощью AddDynamicService. |
IWSDDeviceHost::RetireService Отменяет регистрацию объекта службы, зарегистрированного с помощью RegisterService, и удаляет службу из метаданных узла устройства. |
IWSDDeviceHost::SetMetadata Задает метаданные для устройства, за исключением метаданных службы, определяемых пользователем. |
IWSDDeviceHost::SetServiceDiscoverable Определяет, объявляется ли служба с помощью WS-Discovery. |
IWSDDeviceHost::SignalEvent Уведомляет всех подписанных клиентов о том, что произошло событие. |
IWSDDeviceHost::Start Запускает узел устройства и публикует его с помощью сообщения WS-Discovery Hello. |
IWSDDeviceHost::Stop Отправляет сообщение WS-Discovery Bye и останавливает узел. |
IWSDDeviceHost::Terminate Завершает работу узла и освобождает все подключенные службы. |
Комментарии
После получения этого интерфейса приложение будет:
- Вызовите метод RegisterPortType , чтобы зарегистрировать все необходимые типы портов.
- Вызовите SetMetadata , чтобы описать устройство, и при необходимости вызовите RegisterService один или несколько раз для регистрации служб, описанных в метаданных узла службы.
- Вызовите метод Start , чтобы запустить узел устройства и опубликовать устройство с помощью WS-Discovery. После запуска узла устройства можно при необходимости:
- Вызовите AddDynamicService для служб, не описанных в метаданных узла службы (например, нерегламентированного задания печати).
- Вызовите RetireService , чтобы завершить действие в службе, активированной методом RegisterService , и отключить ее.
- Вызовите метод SignalEvent , чтобы указать, что уведомления должны отправляться для подписок, связанных с определенным событием.
- Вызовите метод Stop , чтобы завершить выполнение узла и завершить публикацию устройства.
Объект IWSDDeviceHost может предоставить объект для службы по запросу (с помощью обратного вызова уведомления) при вызове узла получает сообщение запроса, направленное на соответствующую службу.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | wsdhost.h (включая Wsdapi.h) |