summaryrefslogtreecommitdiffstats
path: root/app/win/drop_target.cc
diff options
context:
space:
mode:
Diffstat (limited to 'app/win/drop_target.cc')
-rw-r--r--app/win/drop_target.cc174
1 files changed, 0 insertions, 174 deletions
diff --git a/app/win/drop_target.cc b/app/win/drop_target.cc
deleted file mode 100644
index 6742e19..0000000
--- a/app/win/drop_target.cc
+++ /dev/null
@@ -1,174 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "app/win/drop_target.h"
-
-#include <shlobj.h>
-
-#include "base/logging.h"
-
-namespace app {
-namespace win {
-
-IDropTargetHelper* DropTarget::cached_drop_target_helper_ = NULL;
-int32 DropTarget::drag_identity_ = 0;
-
-DropTarget::DropTarget(HWND hwnd)
- : hwnd_(hwnd),
- suspended_(false),
- ref_count_(0) {
- DCHECK(hwnd);
- HRESULT result = RegisterDragDrop(hwnd, this);
- DCHECK(SUCCEEDED(result));
-}
-
-DropTarget::~DropTarget() {
-}
-
-// static
-IDropTargetHelper* DropTarget::DropHelper() {
- if (!cached_drop_target_helper_) {
- CoCreateInstance(CLSID_DragDropHelper, 0, CLSCTX_INPROC_SERVER,
- IID_IDropTargetHelper,
- reinterpret_cast<void**>(&cached_drop_target_helper_));
- }
- return cached_drop_target_helper_;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// DropTarget, IDropTarget implementation:
-
-HRESULT DropTarget::DragEnter(IDataObject* data_object,
- DWORD key_state,
- POINTL cursor_position,
- DWORD* effect) {
- // Tell the helper that we entered so it can update the drag image.
- IDropTargetHelper* drop_helper = DropHelper();
- if (drop_helper) {
- drop_helper->DragEnter(GetHWND(), data_object,
- reinterpret_cast<POINT*>(&cursor_position), *effect);
- }
-
- // You can't drag and drop within the same HWND.
- if (suspended_) {
- *effect = DROPEFFECT_NONE;
- return S_OK;
- }
-
- // Update the drag identity, skipping 0.
- if (++drag_identity_ == 0)
- ++drag_identity_;
-
- current_data_object_ = data_object;
- POINT screen_pt = { cursor_position.x, cursor_position.y };
- *effect = OnDragEnter(current_data_object_, key_state, screen_pt, *effect);
- return S_OK;
-}
-
-HRESULT DropTarget::DragOver(DWORD key_state,
- POINTL cursor_position,
- DWORD* effect) {
- // Tell the helper that we moved over it so it can update the drag image.
- IDropTargetHelper* drop_helper = DropHelper();
- if (drop_helper)
- drop_helper->DragOver(reinterpret_cast<POINT*>(&cursor_position), *effect);
-
- if (suspended_) {
- *effect = DROPEFFECT_NONE;
- return S_OK;
- }
-
- POINT screen_pt = { cursor_position.x, cursor_position.y };
- *effect = OnDragOver(current_data_object_, key_state, screen_pt, *effect);
- return S_OK;
-}
-
-HRESULT DropTarget::DragLeave() {
- // Tell the helper that we moved out of it so it can update the drag image.
- IDropTargetHelper* drop_helper = DropHelper();
- if (drop_helper)
- drop_helper->DragLeave();
-
- if (suspended_)
- return S_OK;
-
- OnDragLeave(current_data_object_);
-
- current_data_object_ = NULL;
- return S_OK;
-}
-
-HRESULT DropTarget::Drop(IDataObject* data_object,
- DWORD key_state,
- POINTL cursor_position,
- DWORD* effect) {
- // Tell the helper that we dropped onto it so it can update the drag image.
- IDropTargetHelper* drop_helper = DropHelper();
- if (drop_helper) {
- drop_helper->Drop(current_data_object_,
- reinterpret_cast<POINT*>(&cursor_position), *effect);
- }
-
- if (suspended_) {
- *effect = DROPEFFECT_NONE;
- return S_OK;
- }
-
- POINT screen_pt = { cursor_position.x, cursor_position.y };
- *effect = OnDrop(current_data_object_, key_state, screen_pt, *effect);
- return S_OK;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// DropTarget, IUnknown implementation:
-
-HRESULT DropTarget::QueryInterface(const IID& iid, void** object) {
- *object = NULL;
- if (IsEqualIID(iid, IID_IUnknown) || IsEqualIID(iid, IID_IDropTarget)) {
- *object = this;
- } else {
- return E_NOINTERFACE;
- }
- AddRef();
- return S_OK;
-}
-
-ULONG DropTarget::AddRef() {
- return ++ref_count_;
-}
-
-ULONG DropTarget::Release() {
- if (--ref_count_ == 0) {
- delete this;
- return 0U;
- }
- return ref_count_;
-}
-
-DWORD DropTarget::OnDragEnter(IDataObject* data_object,
- DWORD key_state,
- POINT cursor_position,
- DWORD effect) {
- return DROPEFFECT_NONE;
-}
-
-DWORD DropTarget::OnDragOver(IDataObject* data_object,
- DWORD key_state,
- POINT cursor_position,
- DWORD effect) {
- return DROPEFFECT_NONE;
-}
-
-void DropTarget::OnDragLeave(IDataObject* data_object) {
-}
-
-DWORD DropTarget::OnDrop(IDataObject* data_object,
- DWORD key_state,
- POINT cursor_position,
- DWORD effect) {
- return DROPEFFECT_NONE;
-}
-
-} // namespace win
-} // namespace app