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()13 UIATextProvider::UIATextProvider()
14     : editable_(false) {}
15 
~UIATextProvider()16 UIATextProvider::~UIATextProvider() {
17 }
18 
19 // static
CreateTextProvider(const string16 & value,bool editable,IUnknown ** provider)20 bool 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)43 HRESULT UIATextProvider::GetSelection(SAFEARRAY** ret) {
44   return E_NOTIMPL;
45 }
46 
GetVisibleRanges(SAFEARRAY ** ret)47 HRESULT UIATextProvider::GetVisibleRanges(SAFEARRAY** ret) {
48   return E_NOTIMPL;
49 }
50 
RangeFromChild(IRawElementProviderSimple * child,ITextRangeProvider ** ret)51 HRESULT UIATextProvider::RangeFromChild(IRawElementProviderSimple* child,
52                                         ITextRangeProvider** ret) {
53   return E_NOTIMPL;
54 }
55 
RangeFromPoint(struct UiaPoint point,ITextRangeProvider ** ret)56 HRESULT UIATextProvider::RangeFromPoint(struct UiaPoint point,
57                                         ITextRangeProvider** ret) {
58   return E_NOTIMPL;
59 }
60 
get_DocumentRange(ITextRangeProvider ** ret)61 HRESULT UIATextProvider::get_DocumentRange(ITextRangeProvider** ret) {
62   return E_NOTIMPL;
63 }
64 
get_SupportedTextSelection(enum SupportedTextSelection * ret)65 HRESULT UIATextProvider::get_SupportedTextSelection(
66     enum SupportedTextSelection* ret) {
67   return E_NOTIMPL;
68 }
69 
70 }  // namespace win
71 }  // namespace base
72