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

Unified Diff: base/win/iunknown_impl.cc

Issue 8588036: Improve support for multiselect list box accessibility on Windows. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: base/win/iunknown_impl.cc
===================================================================
--- base/win/iunknown_impl.cc (revision 0)
+++ base/win/iunknown_impl.cc (revision 0)
@@ -0,0 +1,41 @@
+// Copyright (c) 2011 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 "base/win/iunknown_impl.h"
+
+namespace base {
+namespace win {
+
+IUnknownImpl::IUnknownImpl() {
+ ref_count_ = 1;
M-A Ruel 2011/11/29 22:12:33 See base/memory/ref_counted.cc. It's highly prefer
+}
+
+IUnknownImpl::~IUnknownImpl() {
+}
+
+ULONG STDMETHODCALLTYPE IUnknownImpl::AddRef() {
+ return base::AtomicRefCountIncAndReturnValue(&ref_count_);
+}
+
+ULONG STDMETHODCALLTYPE IUnknownImpl::Release() {
+ AtomicRefCount new_ref_count =
+ base::AtomicRefCountDecAndReturnValue(&ref_count_);
+ if (new_ref_count == 0)
+ delete this;
+ return new_ref_count;
+}
+
+STDMETHODIMP IUnknownImpl::QueryInterface(REFIID riid, void** ppv) {
+ if (riid == IID_IUnknown) {
+ *ppv = static_cast<IUnknown*>(this);
+ AddRef();
+ return S_OK;
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+} // namespace win
+} // namespace base

Powered by Google App Engine
This is Rietveld 408576698