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

IWSDDeviceHost

COM
IID917fe891-3d13-4138-9809-934c8abeb12c継承元IUnknown自前メソッド開始 vtbl3

メソッド 12

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

vtbl 3 HRESULT Init(LPWSTR pszLocalId, IWSDXMLContext* pContext, IWSDAddress** ppHostAddresses, DWORD dwHostAddressCount)
pszLocalIdLPWSTRinデバイスホストを一意に識別するローカル ID を指定する。
pContextIWSDXMLContext*inoptionalXML 名前空間/型を保持する IWSDXMLContext を指定する。NULL 可。
ppHostAddressesIWSDAddress**inoptionalホストが待ち受けるアドレス IWSDAddress の配列を指定する。
dwHostAddressCountDWORDinoptionalppHostAddresses 配列の要素数を指定する。
vtbl 4 HRESULT Start(ULONGLONG ullInstanceId, WSD_URI_LIST* pScopeList, IWSDDeviceHostNotify* pNotificationSink)
ullInstanceIdULONGLONGinデバイスホストのインスタンス識別子を指定する。
pScopeListWSD_URI_LIST*inデバイスが属するスコープ URI リストを指定する。NULL 可。
pNotificationSinkIWSDDeviceHostNotify*inoptionalサービス要求の通知を受け取る IWSDDeviceHostNotify を指定する。
vtbl 5 HRESULT Stop()
vtbl 6 HRESULT Terminate()
vtbl 7 HRESULT RegisterPortType(WSD_PORT_TYPE* pPortType)
pPortTypeWSD_PORT_TYPE*inホストに登録するポート型(操作の集合)を記述する構造体を指定する。
vtbl 8 HRESULT SetMetadata(WSD_THIS_MODEL_METADATA* pThisModelMetadata, WSD_THIS_DEVICE_METADATA* pThisDeviceMetadata, WSD_HOST_METADATA* pHostMetadata, WSD_METADATA_SECTION_LIST* pCustomMetadata)
pThisModelMetadataWSD_THIS_MODEL_METADATA*inメーカー/モデル情報の ThisModel メタデータを指定する。NULL 可。
pThisDeviceMetadataWSD_THIS_DEVICE_METADATA*in個体識別情報の ThisDevice メタデータを指定する。NULL 可。
pHostMetadataWSD_HOST_METADATA*inoptionalホストおよびホスト配下サービスのメタデータを指定する。NULL 可。
pCustomMetadataWSD_METADATA_SECTION_LIST*inoptional追加のカスタムメタデータセクション一覧を指定する。NULL 可。
vtbl 9 HRESULT RegisterService(LPWSTR pszServiceId, IUnknown* pService)
pszServiceIdLPWSTRin登録するサービスの識別子を指定する。
pServiceIUnknown*inサービス実装を提供する IUnknown オブジェクトを指定する。
vtbl 10 HRESULT RetireService(LPWSTR pszServiceId)
pszServiceIdLPWSTRin登録解除(廃止)するサービスの識別子を指定する。
vtbl 11 HRESULT AddDynamicService(LPWSTR pszServiceId, LPWSTR pszEndpointAddress, WSD_PORT_TYPE* pPortType, WSDXML_NAME* pPortName, WSDXML_ELEMENT* pAny, IUnknown* pService)
pszServiceIdLPWSTRin追加する動的サービスの識別子を指定する。
pszEndpointAddressLPWSTRinoptionalサービスのエンドポイントアドレスを指定する。
pPortTypeWSD_PORT_TYPE*inoptionalサービスのポート型を記述する構造体を指定する。
pPortNameWSDXML_NAME*inoptionalポートに対応する名前 WSDXML_NAME を指定する。NULL 可。
pAnyWSDXML_ELEMENT*inoptionalサービスホスト情報に追加するカスタム XML 要素を指定する。NULL 可。
pServiceIUnknown*inoptionalサービス実装を提供する IUnknown オブジェクトを指定する。
vtbl 12 HRESULT RemoveDynamicService(LPWSTR pszServiceId)
pszServiceIdLPWSTRin削除する動的サービスの識別子を指定する。
vtbl 13 HRESULT SetServiceDiscoverable(LPWSTR pszServiceId, BOOL fDiscoverable)
pszServiceIdLPWSTRin探索可否を変更する対象サービスの識別子を指定する。
fDiscoverableBOOLinサービスを探索可能にするかどうかを示す真偽値である。
vtbl 14 HRESULT SignalEvent(LPWSTR pszServiceId, void* pBody, WSD_OPERATION* pOperation)
pszServiceIdLPWSTRinイベントを発行するサービスの識別子を指定する。
pBodyvoid*inoptionalイベントメッセージ本体データへのポインタである。
pOperationWSD_OPERATION*in発行するイベント操作を記述する WSD_OPERATION を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IWSDDeviceHost "{917FE891-3D13-4138-9809-934C8ABEB12C}"
#usecom global IWSDDeviceHost IID_IWSDDeviceHost "{}"
#comfunc global IWSDDeviceHost_Init                    3 wstr,sptr,sptr,int
#comfunc global IWSDDeviceHost_Start                   4 int64,var,sptr
#comfunc global IWSDDeviceHost_Stop                    5
#comfunc global IWSDDeviceHost_Terminate               6
#comfunc global IWSDDeviceHost_RegisterPortType        7 var
#comfunc global IWSDDeviceHost_SetMetadata             8 var,var,var,var
#comfunc global IWSDDeviceHost_RegisterService         9 wstr,sptr
#comfunc global IWSDDeviceHost_RetireService           10 wstr
#comfunc global IWSDDeviceHost_AddDynamicService       11 wstr,wstr,var,var,var,sptr
#comfunc global IWSDDeviceHost_RemoveDynamicService    12 wstr
#comfunc global IWSDDeviceHost_SetServiceDiscoverable  13 wstr,int
#comfunc global IWSDDeviceHost_SignalEvent             14 wstr,sptr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。