Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › IDsAdminNotifyHandler

IDsAdminNotifyHandler

COM
IIDe4a2b8b3-5a18-11d2-97c1-00a0c9a06d2d継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IDsAdminNotifyHandler インターフェイスは、Active Directory の管理通知ハンドラーによって実装されます。

メソッド 4

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

vtbl 3 HRESULT Initialize(IDataObject* pExtraInfo, DWORD* puEventFlags)

通知ハンドラーを初期化するために呼び出されます。

pExtraInfoIDataObject*in予約済み。このパラメーターは NULL になります。
puEventFlagsDWORD*inout

通知ハンドラーが受け取るイベントを示すフラグのセットを受け取る ULONG 値へのポインター。これは、次の値のうち 1 つ以上の組み合わせを指定できます。このパラメーターがゼロを受け取った場合、通知ハンドラーはイベントを一切受け取りません。

DSA_NOTIFY_DEL

オブジェクトが削除されたときにハンドラーに通知します。

DSA_NOTIFY_REN

オブジェクトの名前が変更されたときにハンドラーに通知します。

DSA_NOTIFY_MOV

オブジェクトが移動されたときにハンドラーに通知します。

DSA_NOTIFY_PROP

プロパティが変更されたときにハンドラーに通知します。

DSA_NOTIFY_ALL

すべてのイベントに応じてハンドラーに通知します。

戻り値

メソッドが成功した場合は S_OK が返されます。メソッドが失敗した場合は、標準的な HRESULT 値が返されます。

vtbl 4 HRESULT Begin(DWORD uEvent, IDataObject* pArg1, IDataObject* pArg2, DWORD* puFlags, LPWSTR* pBstr)

IDsAdminNotifyHandler::Begin メソッドは、通知ハンドラーが要求したイベントが発生したときに呼び出されます。通知ハンドラーは、IDsAdminNotifyHandler::Initialize が呼び出されるときに、通知を受け取るイベントを指定します。

uEventDWORDin

発生しているイベントの種類を指定する値を格納します。これは、次の値のいずれかを指定できます。

DSA_NOTIFY_DEL

オブジェクトが削除されます。

DSA_NOTIFY_REN

オブジェクトの名前が変更されます。

DSA_NOTIFY_MOV

オブジェクトが別のコンテナーに移動されます。

DSA_NOTIFY_PROP

オブジェクトの 1 つ以上のプロパティが変更されます。

pArg1IDataObject*inIDataObject インターフェイスへのポインター。このインターフェイスは CFSTR_DSOBJECTNAMES クリップボード形式をサポートします。データオブジェクトの内容は、uEvent の値によって異なります。詳細については、「解説」を参照してください。
pArg2IDataObject*inIDataObject インターフェイスへのポインター。このインターフェイスは CFSTR_DSOBJECTNAMES クリップボード形式をサポートします。このパラメーターの値およびデータオブジェクトの内容は、uEvent の値によって異なります。詳細については、「解説」を参照してください。
puFlagsDWORD*inout

通知確認ダイアログボックスにおける通知ハンドラーの動作を変更するフラグのセットを受け取る ULONG 値へのポインター。これは、ゼロ、または次の値のうち 1 つ以上の組み合わせを指定できます。

DSA_NOTIFY_FLAG_ADDITIONAL_DATA

このフラグが設定されている場合、確認ダイアログボックス内のこの通知ハンドラーの項目が選択されます。このフラグが設定されていない場合、確認ダイアログボックス内のこの通知ハンドラーの項目は選択されません。

DSA_NOTIFY_FLAG_FORCE_ADDITIONAL_DATA

このフラグが設定されている場合、確認ダイアログボックス内のこの通知ハンドラーの項目は無効化され、ユーザーは選択状態を変更できません。

pBstrLPWSTR*inout通知ハンドラーの名前や説明を含む文字列を受け取る BSTR へのポインター。この文字列は確認ダイアログボックスに表示されます。この文字列は SysAllocString 関数を呼び出して割り当てる必要があります。呼び出し元は、この文字列が不要になったら解放する必要があります。このパラメーターが NULL または空の文字列を受け取った場合、通知ハンドラーは確認ダイアログボックスに追加されず、IDsAdminNotifyHandler::Notify は呼び出されません。

戻り値

メソッドが成功した場合は S_OK が返されます。メソッドが失敗した場合は、標準的な HRESULT 値が返されます。

解説(Remarks)

pArg1 および pArg2 の値と内容は、uEvent で示される処理対象のイベントによって異なります。次の一覧は、各イベントの種類ごとに pArg1pArg2 に格納される内容を説明しています。

uEvent pArg1 pArg2
DSA_NOTIFY_DEL 削除されたオブジェクトを格納します。 使用されません。NULL になります。
DSA_NOTIFY_REN オブジェクトの以前の名前を格納します。 オブジェクトの新しい名前を格納します。
DSA_NOTIFY_MOV オブジェクトの移動元のコンテナーを格納します。 オブジェクトの移動先のコンテナーを格納します。
DSA_NOTIFY_PROP プロパティが変更されたオブジェクトを格納します。 使用されません。NULL になります。
vtbl 5 HRESULT Notify(DWORD nItem, DWORD uFlags)

確認ダイアログボックスが表示され、確認ダイアログボックスで通知ハンドラーが選択された後、各オブジェクトに対して呼び出されます。

nItemDWORDinIDsAdminNotifyHandler::Begin メソッドで指定された DSOBJECTNAMES 構造体の aObjects メンバー内の項目のインデックスを格納します。
uFlagsDWORDin通知ハンドラーが IDsAdminNotifyHandler::Begin メソッドで指定したフラグを格納します。

戻り値

このメソッドの戻り値は無視されます。

vtbl 6 HRESULT End()

IDsAdminNotifyHandler::End メソッドは、通知イベントが発生した後に呼び出されます。このメソッドは、通知処理がキャンセルされた場合でも呼び出されます。

戻り値

このメソッドの戻り値は無視されます。

解説(Remarks)

このメソッドは、通知ハンドラーが IDsAdminNotifyHandler::Begin メソッドまたは IDsAdminNotifyHandler::Notify メソッド中に割り当てたメモリを解放する機会を提供します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDsAdminNotifyHandler "{E4A2B8B3-5A18-11D2-97C1-00A0C9A06D2D}"
#usecom global IDsAdminNotifyHandler IID_IDsAdminNotifyHandler "{}"
#comfunc global IDsAdminNotifyHandler_Initialize  3 sptr,var
#comfunc global IDsAdminNotifyHandler_Begin       4 int,sptr,sptr,var,var
#comfunc global IDsAdminNotifyHandler_Notify      5 int,int
#comfunc global IDsAdminNotifyHandler_End         6
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。