RegisterDragDrop 関数 (ole2.h)
指定したウィンドウを OLE ドラッグ アンド ドロップ操作のターゲットとして登録し、ドロップ操作に使用する IDropTarget インスタンス
構文
HRESULT RegisterDragDrop(
[in] HWND hwnd,
[in] LPDROPTARGET pDropTarget
);
パラメーター
[in] hwnd
OLE ドラッグ アンド ドロップ操作のターゲットにすることができるウィンドウへのハンドル。
[in] pDropTarget
指定したウィンドウでのドラッグ アンド ドロップ操作のターゲットとなるオブジェクトの IDropTarget インターフェイスへのポインター。 このインターフェイスは、そのウィンドウの OLE ドラッグ アンド ドロップ情報を通信するために使用されます。
戻り値
この関数は、成功したS_OKを返します。 その他の使用可能な値は次のとおりです。
リターン コード | 形容 |
---|---|
|
hwnd パラメーターで返されたハンドルが無効です。 |
|
指定されたウィンドウは既にドロップ ターゲットとして登録されています。 |
|
操作のメモリが不足しています。 |
備考
OLE のドラッグ アンド ドロップ操作中にアプリケーションでドロップされたオブジェクトを受け入れる場合は、RegisterDragDrop 関数を呼び出す必要があります。 これは、アプリケーション ウィンドウの 1 つが潜在的なドロップ ターゲットとして使用できる場合に必ず行います。つまり、ウィンドウが画面で保護されていないように見える場合です。
RegisterDragDrop 関数を呼び出すアプリケーション スレッドは、おそらく、NULLhWnd パラメーターを使用して GetMessage 関数を呼び出すことによって、メッセージをポンプする必要があります。OLE は、処理されたメッセージを必要とするウィンドウをスレッドに作成するためです。 この要件が満たされていない場合、ドロップ ターゲットとして登録されているウィンドウの上にオブジェクトをドラッグするアプリケーションは、ターゲット アプリケーションが閉じるまでハングします。
RegisterDragDrop 関数は、一度に 1 つのウィンドウのみを登録するため、削除されたオブジェクトを受け入れることができるアプリケーション ウィンドウごとに呼び出す必要があります。
OLE のドラッグ アンド ドロップ操作中に、ターゲット ウィンドウのセキュリティで保護されていない部分をマウスで通過すると、DoDragDrop 関数は、現在のウィンドウに対して指定された IDropTarget::D ragOver メソッドを呼び出します。 特定のウィンドウでドロップ操作が実際に発生すると、
RegisterDragDrop 関数は、IDropTarget ポインターで IUnknown::AddRef メソッドも呼び出します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | ole2.h |
ライブラリ | Ole32.lib |
DLL | Ole32.dll |
関連項目
RevokeDragDrop の