summaryrefslogtreecommitdiffstats
path: root/views/accessibility/view_accessibility_wrapper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'views/accessibility/view_accessibility_wrapper.cc')
-rw-r--r--views/accessibility/view_accessibility_wrapper.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/views/accessibility/view_accessibility_wrapper.cc b/views/accessibility/view_accessibility_wrapper.cc
index 7e7f5a6..989c90a 100644
--- a/views/accessibility/view_accessibility_wrapper.cc
+++ b/views/accessibility/view_accessibility_wrapper.cc
@@ -4,6 +4,8 @@
#include "views/accessibility/view_accessibility_wrapper.h"
+#include "base/scoped_variant_win.h"
+
#include "views/accessibility/view_accessibility.h"
////////////////////////////////////////////////////////////////////////////////
@@ -43,6 +45,18 @@ STDMETHODIMP ViewAccessibilityWrapper::CreateDefaultInstance(REFIID iid) {
return E_NOINTERFACE;
}
+HRESULT ViewAccessibilityWrapper::Uninitialize() {
+ view_ = NULL;
+ if (accessibility_info_.get()) {
+ accessibility_info_->put_accValue(
+ ScopedVariant(kViewsUninitializeAccessibilityInstance), NULL);
+ ::CoDisconnectObject(accessibility_info_.get(), 0);
+ accessibility_info_ = NULL;
+ }
+
+ return S_OK;
+}
+
STDMETHODIMP ViewAccessibilityWrapper::GetInstance(REFIID iid,
void** interface_ptr) {
if (IID_IUnknown == iid || IID_IDispatch == iid || IID_IAccessible == iid) {