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

ISdoMachine

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

公式ドキュメント

ISdoMachine インターフェイスは、SDO コンピューターへのアタッチ、SDO コンピューターに関する情報の取得、および他の SDO オブジェクトのインターフェイスの取得に使用します。

メソッド 9

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

vtbl 7 HRESULT Attach(LPWSTR bstrComputerName)

Attach メソッドは、SDO コンピューターにアタッチします。SDO コンピューターへのアタッチは、SDO API を使用してそのコンピューターを管理するための最初の手順です。

bstrComputerNameLPWSTRinアタッチ先のコンピューター名を格納した BSTR 変数を指定します。このパラメーターが NULL 文字列を指定した場合は、ローカルコンピューターにアタッチされます。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

すでにコンピューターがアタッチされている場合、戻り値は E_FAIL です。

このメソッドは、次のいずれかのエラーコードを返すこともあります。

解説(Remarks)

すでにコンピューターがアタッチされているかどうかを判断するには、 ISdoMachine::GetAttachedComputer メソッドを使用します。

vtbl 8 HRESULT GetDictionarySDO(IUnknown** ppDictionarySDO)

GetDictionarySDO メソッドは、属性ディクショナリ SDO のインターフェイスを取得します。

ppDictionarySDOIUnknown**outISdoDictionary へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

このメソッドを呼び出す前に、 ISdoMachine::Attach メソッドを使用して SDO コンピューターにアタッチしてください。

vtbl 9 HRESULT GetServiceSDO(IASDATASTORE eDataStore, LPWSTR bstrServiceName, IUnknown** ppServiceSDO)

GetServiceSDO メソッドは、指定したサービスの Server Data Object (SDO) を取得します。

eDataStoreIASDATASTOREinIASDATASTORE 列挙型の値を 指定します。
bstrServiceNameLPWSTRin

サービス名を格納した BSTR を指定します。 このパラメーターは次のいずれかの値です。

"IAS"

Network Policy Server

注意 Internet Authentication Service (IAS) は、Windows Server 2008 以降 Network Policy Server に 名称変更されました。

"RemoteAccess"

リモートアクセスサーバー

ppServiceSDOIUnknown**outIUnknown インターフェイスポインターを指す ポインターへのポインターです。この IUnknown インターフェイスの QueryInterface メソッドを使用して、 ISdoServiceControl オブジェクトの IDispatch インターフェイスを取得します。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

このメソッドを呼び出す前に、 ISdoMachine::Attach メソッドを使用して SDO コンピューターにアタッチしてください。

このメソッドのパラメーターはいずれも NULL にできません。

vtbl 10 HRESULT GetUserSDO(IASDATASTORE eDataStore, LPWSTR bstrUserName, IUnknown** ppUserSDO)

GetUserSDO メソッドは、指定したユーザーの Server Data Object (SDO) へのインターフェイスを取得します。

eDataStoreIASDATASTOREinIASDATASTORE 列挙型の値を 指定します。
bstrUserNameLPWSTRinユーザー名を格納した BSTR を 指定します。名前は Lightweight Directory Access Protocol (LDAP) 形式、または Security Accounts Manager (SAM) 形式で指定できます。
ppUserSDOIUnknown**outIUnknown インターフェイスポインターを指す ポインターへのポインターです。この IUnknown インターフェイスの QueryInterface メソッドを使用して、 指定したユーザーの ISdo オブジェクトへの IDispatch インターフェイスを取得します。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

このメソッドを呼び出す前に、 ISdoMachine::Attach メソッドを使用して SDO コンピューターにアタッチしてください。

SDO コンピューターにディレクトリが存在する場合、 ISdoMachine::GetUserSDO は自動的に IASDATASTOREDATA_STORE_LOCAL ではなく DATA_STORE_DIRECTORY の値を使用します。

パラメーターはいずれも NULL にできません。

vtbl 11 HRESULT GetOSType(IASOSTYPE* eOSType)

GetOSType メソッドは、SDO コンピューターで実行されているオペレーティングシステムの種類を取得します。

eOSTypeIASOSTYPE*outSDO コンピューターのオペレーティングシステムの種類を受け取る IASOSTYPE 変数へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

このメソッドを呼び出す前に、 ISdoMachine::Attach メソッドを使用して SDO コンピューターにアタッチしてください。

vtbl 12 HRESULT GetDomainType(IASDOMAINTYPE* eDomainType)

GetDomainType は、SDO コンピューターが所属するドメインの種類を取得します。

eDomainTypeIASDOMAINTYPE*outSDO コンピューターが所属するドメインの種類を受け取る IASDOMAINTYPE 変数へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

このメソッドを呼び出す前に、 ISdoMachine::Attach メソッドを使用して SDO コンピューターにアタッチしてください。

vtbl 13 HRESULT IsDirectoryAvailable(VARIANT_BOOL* boolDirectoryAvailable)

IsDirectoryAvailable メソッドは、SDO コンピューターで Active Directory サービスが利用可能かどうかを調べます。

boolDirectoryAvailableVARIANT_BOOL*outActive Directory が利用可能かどうかを示します。Active Directory が利用可能な場合、このパラメーターは TRUE です。それ以外の場合は FALSE です。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードです。

解説(Remarks)

このメソッドを呼び出す前に、 ISdoMachine::Attach メソッドを使用して SDO コンピューターにアタッチしてください。

重要 現在の実装では常に VARIANT_FALSE を返します。
vtbl 14 HRESULT GetAttachedComputer(LPWSTR* bstrComputerName)

GetAttachedComputer メソッドは、現在 SDO コンピューターとしてアタッチされているコンピューターの名前を取得します。

bstrComputerNameLPWSTR*out現在アタッチされている SDO コンピューターの名前を受け取る BSTR へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

現在アタッチされているコンピューターがない場合、戻り値は E_FAIL です。

このメソッドは、次のいずれかのエラーコードを返すこともあります。

解説(Remarks)

GetAttachedComputerBSTR 変数のメモリを割り当てます。 呼び出し側アプリケーションは、 SysFreeString を呼び出してこのメモリを解放する必要があります。

vtbl 15 HRESULT GetSDOSchema(IUnknown** ppSDOSchema)
ppSDOSchemaIUnknown**outSDOスキーマを表すオブジェクトのIUnknownを受け取る。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

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 不要)。