IDsAdminCreateObj
COM公式ドキュメント
アプリケーションまたはコンポーネントが、指定したオブジェクトクラスの作成ウィザードをプログラムから起動するために使用します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IDsAdminCreateObj::Initialize メソッドは、オブジェクトが作成されるコンテナー、作成するオブジェクトのクラス、および必要に応じてコピー元となるソースオブジェクトに関するデータを使用して、IDsAdminCreateObj オブジェクトを初期化します。
| pADsContainerObj | IADsContainer* | in | オブジェクトが作成されるコンテナーを表す IADsContainer インターフェイスへのポインター。このパラメーターを NULL にすることはできません。 |
| pADsCopySource | IADs* | in | コピー元となるオブジェクトの IADs インターフェイスへのポインター。新しいオブジェクトを別のオブジェクトからコピーしない場合、このパラメーターは NULL になります。コピー操作は user オブジェクトに対してのみサポートされます。 |
| lpszClassName | LPWSTR | in | 作成するオブジェクトクラスの LDAP 名を格納する WCHAR 文字列へのポインター。このパラメーターを NULL にすることはできません。サポートされる値は次のとおりです: "user"、"computer"、"printQueue"、"group"、"contact"。 |
戻り値
メソッドが成功した場合、 S_OK が返されます。メソッドが失敗した場合、OLE 定義のエラーコードが返されます。
解説(Remarks)
IDsAdminCreateObj::CreateModal を呼び出す前に、IDsAdminCreateObj::Initialize メソッドを呼び出す必要があります。
IDsAdminCreateObj::CreateModal メソッドは、オブジェクト作成ウィザードを表示し、新しく作成されたオブジェクトを返します。IDsAdminCreateObj::CreateModal を呼び出す前に、IDsAdminCreateObj::Initialize メソッドを呼び出す必要があります。
| hwndParent | HWND | in | ウィザードのオーナーのウィンドウハンドルを格納します。この値を NULL にすることはできません。親ウィンドウが利用できない場合は、GetDesktopWindow 関数の結果を使用してください。 |
| ppADsObj | IADs** | out | 新しく作成されたオブジェクトを受け取る IADs インターフェイスポインターへのポインター。オブジェクト作成ウィザードが失敗またはキャンセルされた場合、このパラメーターは NULL を受け取ります。呼び出し側は、このインターフェイスが不要になったら解放する必要があります。このオブジェクトが不要な場合、このパラメーターは NULL でもかまいません。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
OLE 定義のエラーコード、または次のいずれかの値を返します。
解説(Remarks)
ユーザーがオブジェクト作成ウィザードをキャンセルした場合、このメソッドは S_FALSE を返します。ppADsObj が NULL でない場合、ppADsObj は NULL 値を受け取ります。このため、ppADsObj が有効かどうかを判断するために SUCCEEDED マクロを使用することは避けるべきです。インターフェイスポインターを使用する前に、必ず ppADsObj の内容が NULL でない値であることをテストしてください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDsAdminCreateObj "{53554A38-F902-11D2-82B9-00C04F68928B}"
#usecom global IDsAdminCreateObj IID_IDsAdminCreateObj "{E301A009-F901-11D2-82B9-00C04F68928B}"
#comfunc global IDsAdminCreateObj_Initialize 3 sptr,sptr,wstr
#comfunc global IDsAdminCreateObj_CreateModal 4 sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。