1 // Copyright (c) 2012 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 #include "ui/base/win/accessibility_misc_utils.h" 5 6 #include "base/logging.h" 7 #include "ui/base/win/atl_module.h" 8 9 namespace base { 10 namespace win { 11 12 // UIA TextProvider implementation. UIATextProvider()13UIATextProvider::UIATextProvider() 14 : editable_(false) {} 15 ~UIATextProvider()16UIATextProvider::~UIATextProvider() { 17 } 18 19 // static CreateTextProvider(const string16 & value,bool editable,IUnknown ** provider)20bool UIATextProvider::CreateTextProvider(const string16& value, 21 bool editable, 22 IUnknown** provider) { 23 // Make sure ATL is initialized in this module. 24 ui::win::CreateATLModuleIfNeeded(); 25 26 CComObject<UIATextProvider>* text_provider = NULL; 27 HRESULT hr = CComObject<UIATextProvider>::CreateInstance(&text_provider); 28 if (SUCCEEDED(hr)) { 29 DCHECK(text_provider); 30 text_provider->set_editable(editable); 31 text_provider->set_value(value); 32 text_provider->AddRef(); 33 *provider = static_cast<ITextProvider*>(text_provider); 34 return true; 35 } 36 return false; 37 } 38 39 // 40 // ITextProvider methods. 41 // 42 GetSelection(SAFEARRAY ** ret)43HRESULT UIATextProvider::GetSelection(SAFEARRAY** ret) { 44 return E_NOTIMPL; 45 } 46 GetVisibleRanges(SAFEARRAY ** ret)47HRESULT UIATextProvider::GetVisibleRanges(SAFEARRAY** ret) { 48 return E_NOTIMPL; 49 } 50 RangeFromChild(IRawElementProviderSimple * child,ITextRangeProvider ** ret)51HRESULT UIATextProvider::RangeFromChild(IRawElementProviderSimple* child, 52 ITextRangeProvider** ret) { 53 return E_NOTIMPL; 54 } 55 RangeFromPoint(struct UiaPoint point,ITextRangeProvider ** ret)56HRESULT UIATextProvider::RangeFromPoint(struct UiaPoint point, 57 ITextRangeProvider** ret) { 58 return E_NOTIMPL; 59 } 60 get_DocumentRange(ITextRangeProvider ** ret)61HRESULT UIATextProvider::get_DocumentRange(ITextRangeProvider** ret) { 62 return E_NOTIMPL; 63 } 64 get_SupportedTextSelection(enum SupportedTextSelection * ret)65HRESULT UIATextProvider::get_SupportedTextSelection( 66 enum SupportedTextSelection* ret) { 67 return E_NOTIMPL; 68 } 69 70 } // namespace win 71 } // namespace base 72