Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: base/base_drop_target.cc

Issue 4273: Fix some issues found looking at the code. I have made two posts about it:... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 12 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/base_drag_source.cc ('k') | base/event_recorder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <windows.h> 5 #include <windows.h>
6 #include <shlobj.h> 6 #include <shlobj.h>
7 7
8 #include "base/base_drop_target.h" 8 #include "base/base_drop_target.h"
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 11
12 /////////////////////////////////////////////////////////////////////////////// 12 ///////////////////////////////////////////////////////////////////////////////
13 13
14 IDropTargetHelper* BaseDropTarget::cached_drop_target_helper_ = NULL; 14 IDropTargetHelper* BaseDropTarget::cached_drop_target_helper_ = NULL;
15 15
16 BaseDropTarget::BaseDropTarget(HWND hwnd) 16 BaseDropTarget::BaseDropTarget(HWND hwnd)
17 : suspend_(false), 17 : current_data_object_(),
18 ref_count_(0), 18 hwnd_(hwnd),
19 hwnd_(hwnd) { 19 suspend_(false),
20 ref_count_(0) {
20 DCHECK(hwnd); 21 DCHECK(hwnd);
21 HRESULT result = RegisterDragDrop(hwnd, this); 22 HRESULT result = RegisterDragDrop(hwnd, this);
23 DCHECK(SUCCEEDED(result));
22 } 24 }
23 25
24 BaseDropTarget::~BaseDropTarget() { 26 BaseDropTarget::~BaseDropTarget() {
25 } 27 }
26 28
27 // static 29 // static
28 IDropTargetHelper* BaseDropTarget::DropHelper() { 30 IDropTargetHelper* BaseDropTarget::DropHelper() {
29 if (!cached_drop_target_helper_) { 31 if (!cached_drop_target_helper_) {
30 CoCreateInstance(CLSID_DragDropHelper, 0, CLSCTX_INPROC_SERVER, 32 CoCreateInstance(CLSID_DragDropHelper, 0, CLSCTX_INPROC_SERVER,
31 IID_IDropTargetHelper, 33 IID_IDropTargetHelper,
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 AddRef(); 125 AddRef();
124 return S_OK; 126 return S_OK;
125 } 127 }
126 128
127 ULONG BaseDropTarget::AddRef() { 129 ULONG BaseDropTarget::AddRef() {
128 return InterlockedIncrement(&ref_count_); 130 return InterlockedIncrement(&ref_count_);
129 } 131 }
130 132
131 ULONG BaseDropTarget::Release() { 133 ULONG BaseDropTarget::Release() {
132 if (InterlockedDecrement(&ref_count_) == 0) { 134 if (InterlockedDecrement(&ref_count_) == 0) {
133 ULONG copied_refcnt = ref_count_;
134 delete this; 135 delete this;
135 return copied_refcnt; 136 return 0U;
136 } 137 }
137 return ref_count_; 138 return ref_count_;
138 } 139 }
139 140
140 DWORD BaseDropTarget::OnDragEnter(IDataObject* data_object, 141 DWORD BaseDropTarget::OnDragEnter(IDataObject* data_object,
141 DWORD key_state, 142 DWORD key_state,
142 POINT cursor_position, 143 POINT cursor_position,
143 DWORD effect) { 144 DWORD effect) {
144 return DROPEFFECT_NONE; 145 return DROPEFFECT_NONE;
145 } 146 }
146 147
147 DWORD BaseDropTarget::OnDragOver(IDataObject* data_object, 148 DWORD BaseDropTarget::OnDragOver(IDataObject* data_object,
148 DWORD key_state, 149 DWORD key_state,
149 POINT cursor_position, 150 POINT cursor_position,
150 DWORD effect) { 151 DWORD effect) {
151 return DROPEFFECT_NONE; 152 return DROPEFFECT_NONE;
152 } 153 }
153 154
154 void BaseDropTarget::OnDragLeave(IDataObject* data_object) { 155 void BaseDropTarget::OnDragLeave(IDataObject* data_object) {
155 } 156 }
156 157
157 DWORD BaseDropTarget::OnDrop(IDataObject* data_object, 158 DWORD BaseDropTarget::OnDrop(IDataObject* data_object,
158 DWORD key_state, 159 DWORD key_state,
159 POINT cursor_position, 160 POINT cursor_position,
160 DWORD effect) { 161 DWORD effect) {
161 return DROPEFFECT_NONE; 162 return DROPEFFECT_NONE;
162 } 163 }
163 164
OLDNEW
« no previous file with comments | « base/base_drag_source.cc ('k') | base/event_recorder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698