Metode IDropTarget::D ragEnter (oleidl.h)

Menunjukkan apakah penurunan dapat diterima, dan, jika demikian, efek penurunan.

Sintaks

HRESULT DragEnter(
  [in]      IDataObject *pDataObj,
  [in]      DWORD       grfKeyState,
  [in]      POINTL      pt,
  [in, out] DWORD       *pdwEffect
);

Parameter

[in] pDataObj

Penunjuk ke antarmuka IDataObject pada objek data. Objek data ini berisi data yang sedang ditransfer dalam operasi seret dan letakkan. Jika penurunan terjadi, objek data ini akan dimasukkan ke dalam target.

[in] grfKeyState

Status tombol pengubah papan ketik saat ini pada papan ketik. Nilai yang mungkin dapat berupa kombinasi dari salah satu bendera MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, dan MK_RBUTTON.

[in] pt

Struktur POINTL yang berisi koordinat kursor saat ini dalam koordinat layar.

[in, out] pdwEffect

Pada input, arahkan ke nilai parameter pdwEffect dari fungsi DoDragDrop . Saat kembali, harus berisi salah satu bendera DROPEFFECT , yang menunjukkan hasil operasi penghilangan.

Nilai kembali

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

Menampilkan kode Deskripsi
E_UNEXPECTED
Terjadi kesalahan tidak terduga.
E_INVALIDARG
Parameter pdwEffect adalah NULL pada input.
E_OUTOFMEMORY
Tidak tersedia cukup memori untuk operasi ini.

Keterangan

Anda tidak memanggil DragEnter secara langsung; sebaliknya fungsi DoDragDrop memanggilnya untuk menentukan efek penurunan pertama kali pengguna menyeret mouse ke jendela terdaftar dari target drop.

Untuk mengimplementasikan DragEnter, Anda harus menentukan apakah target dapat menggunakan data di objek data sumber dengan memeriksa tiga hal:

  • Format dan media yang ditentukan oleh objek data
  • Nilai input pdwEffect
  • Status kunci pengubah
Untuk memeriksa format dan media, gunakan penunjuk IDataObject yang diteruskan dalam parameter pDataObject untuk memanggil IDataObject::EnumFormatEtc sehingga Anda dapat menghitung struktur FORMATETC yang didukung objek data sumber. Kemudian panggil IDataObject::QueryGetData untuk menentukan apakah objek data dapat merender data pada target dengan memeriksa format dan media yang ditentukan untuk objek data.

Pada entri ke IDropTarget::D ragEnter, parameter pdwEffect diatur ke efek yang diberikan ke parameter pdwOkEffect dari fungsi DoDragDrop . Metode IDropTarget::D ragEnter harus memilih salah satu efek ini atau menonaktifkan penurunan.

Tombol pengubah berikut memengaruhi hasil penurunan.

Kombinasi Kunci Umpan Balik User-Visible Efek Jatuhkan
CTRL + SHIFT = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
Tidak ada kunci atau SHIFT Tidak ada DROPEFFECT_MOVE
 

Saat kembali, metode harus menulis efek, salah satu bendera DROPEFFECT, ke parameter pdwEffect . DoDragDrop kemudian mengambil parameter ini dan menulisnya ke parameter pdwEffect . Anda mengomunikasikan efek dropback ke sumber melalui DoDragDrop dalam parameter pdwEffect . Fungsi DoDragDrop kemudian memanggil IDropSource::GiveFeedback sehingga aplikasi sumber dapat menampilkan umpan balik visual yang sesuai kepada pengguna melalui jendela target.

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 oleidl.h

Lihat juga

DragEnter

IDropSource

IDropSourceNotify

IDropTarget

RegisterDragDrop

MencabutDragDrop