1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use shared::minwindef::DWORD;
7 use shared::ntdef::HRESULT;
8 use shared::windef::POINTL;
9 use um::objidl::IDataObject;
10 use um::unknwnbase::{IUnknown, IUnknownVtbl};
11 pub const MK_ALT: DWORD = 20;
12 pub const DROPEFFECT_NONE: DWORD = 0;
13 pub const DROPEFFECT_COPY: DWORD = 1;
14 pub const DROPEFFECT_MOVE: DWORD = 2;
15 pub const DROPEFFECT_LINK: DWORD = 4;
16 pub const DROPEFFECT_SCROLL: DWORD = 0x80000000;
17 pub const DD_DEFSCROLLINSET: DWORD = 11;
18 pub const DD_DEFSCROLLDELAY: DWORD = 50;
19 pub const DD_DEFSCROLLINTERVAL: DWORD = 50;
20 pub const DD_DEFDRAGDELAY: DWORD = 200;
21 pub const DD_DEFDRAGMINDIST: DWORD = 2;
22 pub type LPDROPTARGET = *mut IDropTarget;
23 RIDL!{#[uuid(0x00000122, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
24 interface IDropTarget(IDropTargetVtbl): IUnknown(IUnknownVtbl) {
25     fn DragEnter(
26         pDataObj: *const IDataObject,
27         grfKeyState: DWORD,
28         pt: *const POINTL,
29         pdwEffect: *mut DWORD,
30     ) -> HRESULT,
31     fn DragOver(
32         grfKeyState: DWORD,
33         pt: *const POINTL,
34         pdwEffect: *mut DWORD,
35     ) -> HRESULT,
36     fn DragLeave() -> HRESULT,
37     fn Drop(
38         pDataObj: *const IDataObject,
39         grfKeyState: DWORD,
40         pt: *const POINTL,
41         pdwEffect: *mut DWORD,
42     ) -> HRESULT,
43 }}
44