Fungsi RegisterDragDrop (ole2.h)

Mendaftarkan jendela yang ditentukan sebagai jendela yang dapat menjadi target operasi seret dan letakkan OLE dan menentukan instans IDropTarget yang akan digunakan untuk operasi penghilangan.

Sintaks

HRESULT RegisterDragDrop(
  [in] HWND         hwnd,
  [in] LPDROPTARGET pDropTarget
);

Parameter

[in] hwnd

Tangani ke jendela yang bisa menjadi target untuk operasi seret dan letakkan OLE.

[in] pDropTarget

Arahkan ke antarmuka IDropTarget pada objek yang akan menjadi target operasi seret dan letakkan di jendela tertentu. Antarmuka ini digunakan untuk mengomunikasikan informasi seret dan letakkan OLE untuk jendela tersebut.

Nilai kembali

Fungsi ini mengembalikan S_OK pada keberhasilan. Nilai lain yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
DRAGDROP_E_INVALIDHWND
Handel tidak valid yang dikembalikan dalam parameter hwnd.
DRAGDROP_E_ALREADYREGISTERED
Jendela yang ditentukan telah didaftarkan sebagai target penghilangan.
E_OUTOFMEMORY
Memori untuk operasi tidak cukup.
 
Catatan Jika Anda menggunakan CoInitialize atau CoInitializeEx alih-alih OleInitialize untuk menginisialisasi COM, RegisterDragDrop akan selalu mengembalikan kesalahan E_OUTOFMEMORY.
 

Keterangan

Jika aplikasi Anda dapat menerima objek yang dihilangkan selama operasi seret dan letakkan OLE, Anda harus memanggil fungsi RegisterDragDrop . Lakukan ini setiap kali salah satu jendela aplikasi Anda tersedia sebagai target penurunan potensial; yaitu, ketika jendela tampak tidak terobskusi di layar.

Utas aplikasi yang memanggil fungsi RegisterDragDrop harus memompa pesan, mungkin dengan memanggil fungsi GetMessage dengan parameter hWndNULL, karena OLE membuat jendela pada utas yang memerlukan pesan yang diproses. Jika persyaratan ini tidak terpenuhi, maka aplikasi apa pun yang menyeret objek ke atas jendela yang terdaftar sebagai target penurunan akan macet sampai aplikasi target ditutup.

Fungsi RegisterDragDrop hanya mendaftarkan satu jendela pada satu waktu, jadi Anda harus memanggilnya untuk setiap jendela aplikasi yang mampu menerima objek yang dijatuhkan.

Saat mouse melewati bagian jendela target yang tidak terobsekuensi selama operasi seret dan letakkan OLE, fungsi DoDragDrop memanggil metode IDropTarget::D ragOver yang ditentukan untuk jendela saat ini. Ketika operasi penghilangan benar-benar terjadi di jendela tertentu, fungsi DoDragDrop memanggil IDropTarget::D rop.

Fungsi RegisterDragDrop juga memanggil metode IUnknown::AddRef pada pointer IDropTarget .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header ole2.h
Pustaka Ole32.lib
DLL Ole32.dll

Lihat juga

MencabutDragDrop