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 函式。 只要其中一個應用程式視窗可作為潛在的置放目標,請執行此動作:也就是說,當視窗在畫面上顯示為未遮蔽時。
呼叫 RegisterDragDrop 函式的應用程式線程必須是提取訊息,大概是藉由使用 NULLhWnd 參數呼叫 GetMessage 函式,因為 OLE 會在需要處理訊息的線程上建立視窗。 如果不符合此需求,則任何將物件拖曳到註冊為置放目標視窗的應用程式都會停止回應,直到目標應用程式關閉為止。
RegisterDragDrop 函式一次只會註冊一個視窗,因此您必須針對能夠接受已卸除物件的每個應用程式視窗呼叫它。
當滑鼠在 OLE 拖放作業期間傳遞目標視窗的未遮蔽部分時,DoDragDrop 函式會呼叫目前視窗的指定 IDropTarget::D ragOver 方法。 當卸除作業實際發生在指定的視窗中時,DoDragDrop 函式會呼叫
RegisterDragDrop 函式也會在 IDropTarget 指標上呼叫 IUnknown::AddRef 方法。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | ole2.h |
連結庫 | Ole32.lib |
DLL | Ole32.dll |