Win32 API 日本語リファレンス
ホームDevices.Enumeration.Pnp › IUPnPRegistrar

IUPnPRegistrar

COM
IID204810b6-73b2-11d4-bf42-00b0d0118b56継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT RegisterDevice(LPWSTR bstrXMLDesc, LPWSTR bstrProgIDDeviceControlClass, LPWSTR bstrInitString, LPWSTR bstrContainerId, LPWSTR bstrResourcePath, INT nLifeTime, LPWSTR* pbstrDeviceIdentifier)
bstrXMLDescLPWSTRin登録するデバイスのXML記述文書(テンプレート)。
bstrProgIDDeviceControlClassLPWSTRinデバイス制御クラスのProgID。
bstrInitStringLPWSTRinデバイス初期化時に渡す初期化文字列。
bstrContainerIdLPWSTRinデバイスを関連付けるコンテナID(GUID文字列)。
bstrResourcePathLPWSTRinアイコン等リソースファイルのパス。
nLifeTimeINTinSSDPアドバタイズの有効期間(秒単位)。
pbstrDeviceIdentifierLPWSTR*out登録後のデバイス識別子を受け取るBSTR出力先。
vtbl 4 HRESULT RegisterRunningDevice(LPWSTR bstrXMLDesc, IUnknown* punkDeviceControl, LPWSTR bstrInitString, LPWSTR bstrResourcePath, INT nLifeTime, LPWSTR* pbstrDeviceIdentifier)
bstrXMLDescLPWSTRin登録する実行中デバイスのXML記述文書。
punkDeviceControlIUnknown*inデバイス制御オブジェクトのIUnknownポインタ。
bstrInitStringLPWSTRinデバイス初期化時に渡す初期化文字列。
bstrResourcePathLPWSTRinアイコン等リソースファイルのパス。
nLifeTimeINTinSSDPアドバタイズの有効期間(秒単位)。
pbstrDeviceIdentifierLPWSTR*out登録後のデバイス識別子を受け取るBSTR出力先。
vtbl 5 HRESULT RegisterDeviceProvider(LPWSTR bstrProviderName, LPWSTR bstrProgIDProviderClass, LPWSTR bstrInitString, LPWSTR bstrContainerId)
bstrProviderNameLPWSTRin登録するデバイスプロバイダーの名前。
bstrProgIDProviderClassLPWSTRinプロバイダークラスのProgID。
bstrInitStringLPWSTRinプロバイダー初期化時に渡す初期化文字列。
bstrContainerIdLPWSTRinプロバイダーを関連付けるコンテナID(GUID文字列)。
vtbl 6 HRESULT GetUniqueDeviceName(LPWSTR bstrDeviceIdentifier, LPWSTR bstrTemplateUDN, LPWSTR* pbstrUDN)
bstrDeviceIdentifierLPWSTRin対象を識別するデバイス識別子。
bstrTemplateUDNLPWSTRinテンプレート内で使われたUDNプレースホルダ。
pbstrUDNLPWSTR*out実際に割り当てられた一意デバイス名(UDN)を受け取る出力先。
vtbl 7 HRESULT UnregisterDevice(LPWSTR bstrDeviceIdentifier, BOOL fPermanent)
bstrDeviceIdentifierLPWSTRin登録解除するデバイスの識別子。
fPermanentBOOLinTRUEで永続的に削除、FALSEで一時的に無効化する。
vtbl 8 HRESULT UnregisterDeviceProvider(LPWSTR bstrProviderName)
bstrProviderNameLPWSTRin登録解除するデバイスプロバイダーの名前。

HSP用 COM定義

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

出力引数:
#define global IID_IUPnPRegistrar "{204810B6-73B2-11D4-BF42-00B0D0118B56}"
#usecom global IUPnPRegistrar IID_IUPnPRegistrar "{204810B9-73B2-11D4-BF42-00B0D0118B56}"
#comfunc global IUPnPRegistrar_RegisterDevice            3 wstr,wstr,wstr,wstr,wstr,int,var
#comfunc global IUPnPRegistrar_RegisterRunningDevice     4 wstr,sptr,wstr,wstr,int,var
#comfunc global IUPnPRegistrar_RegisterDeviceProvider    5 wstr,wstr,wstr,wstr
#comfunc global IUPnPRegistrar_GetUniqueDeviceName       6 wstr,wstr,var
#comfunc global IUPnPRegistrar_UnregisterDevice          7 wstr,int
#comfunc global IUPnPRegistrar_UnregisterDeviceProvider  8 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。