Win32 API 日本語リファレンス
ホームNetworkManagement.NetworkPolicyServer › ISdoMachine

ISdoMachine

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID479f6e75-49a2-11d2-8eca-00c04fc2f519継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 9

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT Attach(LPWSTR bstrComputerName)
bstrComputerNameLPWSTRin接続先コンピュータ名のBSTR。NULLでローカルコンピュータ。
vtbl 8 HRESULT GetDictionarySDO(IUnknown** ppDictionarySDO)
ppDictionarySDOIUnknown**out属性ディクショナリを表すSDOオブジェクトのIUnknownを受け取る。
vtbl 9 HRESULT GetServiceSDO(IASDATASTORE eDataStore, LPWSTR bstrServiceName, IUnknown** ppServiceSDO)
eDataStoreIASDATASTOREin対象データストアを示すIASDATASTORE列挙値。
bstrServiceNameLPWSTRin取得するサービス名のBSTR。
ppServiceSDOIUnknown**outサービス構成を表すSDOオブジェクトのIUnknownを受け取る。
vtbl 10 HRESULT GetUserSDO(IASDATASTORE eDataStore, LPWSTR bstrUserName, IUnknown** ppUserSDO)
eDataStoreIASDATASTOREin対象データストアを示すIASDATASTORE列挙値。
bstrUserNameLPWSTRin取得するユーザー名のBSTR。
ppUserSDOIUnknown**outユーザー情報を表すSDOオブジェクトのIUnknownを受け取る。
vtbl 11 HRESULT GetOSType(IASOSTYPE* eOSType)
eOSTypeIASOSTYPE*outコンピュータのOS種別を示すIASOSTYPE列挙値を受け取る。
vtbl 12 HRESULT GetDomainType(IASDOMAINTYPE* eDomainType)
eDomainTypeIASDOMAINTYPE*outコンピュータのドメイン種別を示すIASDOMAINTYPE列挙値を受け取る。
vtbl 13 HRESULT IsDirectoryAvailable(VARIANT_BOOL* boolDirectoryAvailable)
boolDirectoryAvailableVARIANT_BOOL*outActive Directoryが利用可能かを示すVARIANT_BOOLを受け取る。
vtbl 14 HRESULT GetAttachedComputer(LPWSTR* bstrComputerName)
bstrComputerNameLPWSTR*out現在アタッチしているコンピュータ名のBSTRを受け取る。
vtbl 15 HRESULT GetSDOSchema(IUnknown** ppSDOSchema)
ppSDOSchemaIUnknown**outSDOスキーマを表すオブジェクトのIUnknownを受け取る。

HSP用 COM定義

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

出力引数:
#define global IID_ISdoMachine "{479F6E75-49A2-11D2-8ECA-00C04FC2F519}"
#usecom global ISdoMachine IID_ISdoMachine "{E9218AE7-9E91-11D1-BF60-0080C7846BC0}"
#comfunc global ISdoMachine_Attach                7 wstr
#comfunc global ISdoMachine_GetDictionarySDO      8 sptr
#comfunc global ISdoMachine_GetServiceSDO         9 int,wstr,sptr
#comfunc global ISdoMachine_GetUserSDO            10 int,wstr,sptr
#comfunc global ISdoMachine_GetOSType             11 var
#comfunc global ISdoMachine_GetDomainType         12 var
#comfunc global ISdoMachine_IsDirectoryAvailable  13 var
#comfunc global ISdoMachine_GetAttachedComputer   14 var
#comfunc global ISdoMachine_GetSDOSchema          15 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。