• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "ui/base/dragdrop/drag_source_win.h"
6 
7 namespace ui {
8 
DragSourceWin()9 DragSourceWin::DragSourceWin() : cancel_drag_(false) {
10 }
11 
QueryContinueDrag(BOOL escape_pressed,DWORD key_state)12 HRESULT DragSourceWin::QueryContinueDrag(BOOL escape_pressed, DWORD key_state) {
13   if (cancel_drag_)
14     return DRAGDROP_S_CANCEL;
15 
16   if (escape_pressed) {
17     OnDragSourceCancel();
18     return DRAGDROP_S_CANCEL;
19   }
20 
21   if (!(key_state & MK_LBUTTON)) {
22     OnDragSourceDrop();
23     return DRAGDROP_S_DROP;
24   }
25 
26   OnDragSourceMove();
27   return S_OK;
28 }
29 
GiveFeedback(DWORD effect)30 HRESULT DragSourceWin::GiveFeedback(DWORD effect) {
31   return DRAGDROP_S_USEDEFAULTCURSORS;
32 }
33 
QueryInterface(const IID & iid,void ** object)34 HRESULT DragSourceWin::QueryInterface(const IID& iid, void** object) {
35   *object = NULL;
36   if (IsEqualIID(iid, IID_IUnknown) || IsEqualIID(iid, IID_IDropSource)) {
37     *object = this;
38   } else {
39     return E_NOINTERFACE;
40   }
41   AddRef();
42   return S_OK;
43 }
44 
AddRef()45 ULONG DragSourceWin::AddRef() {
46   base::RefCountedThreadSafe<DragSourceWin>::AddRef();
47   return 0;
48 }
49 
Release()50 ULONG DragSourceWin::Release() {
51   base::RefCountedThreadSafe<DragSourceWin>::Release();
52   return 0;
53 }
54 
55 }  // namespace ui
56