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

Side by Side Diff: win8/test/ui_automation_client.cc

Issue 985853005: base: Remove operator& from ScopedVariant and ScopedPropVariant. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scoped-operator: prop-ptr Created 5 years, 9 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
« no previous file with comments | « win8/metro_driver/ime/text_service.cc ('k') | no next file » | 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "win8/test/ui_automation_client.h" 5 #include "win8/test/ui_automation_client.h"
6 6
7 #include <atlbase.h> 7 #include <atlbase.h>
8 #include <atlcom.h> 8 #include <atlcom.h>
9 #include <oleauto.h> 9 #include <oleauto.h>
10 #include <uiautomation.h> 10 #include <uiautomation.h>
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 HRESULT hr = S_OK; 308 HRESULT hr = S_OK;
309 base::win::ScopedVariant var; 309 base::win::ScopedVariant var;
310 310
311 hr = window->GetCachedPropertyValueEx(UIA_ClassNamePropertyId, TRUE, 311 hr = window->GetCachedPropertyValueEx(UIA_ClassNamePropertyId, TRUE,
312 var.Receive()); 312 var.Receive());
313 if (FAILED(hr)) { 313 if (FAILED(hr)) {
314 LOG(ERROR) << std::hex << hr; 314 LOG(ERROR) << std::hex << hr;
315 return; 315 return;
316 } 316 }
317 317
318 if (V_VT(&var) != VT_BSTR) { 318 if (V_VT(var.ptr()) != VT_BSTR) {
319 LOG(ERROR) << __FUNCTION__ << " class name is not a BSTR: " << V_VT(&var); 319 LOG(ERROR) << __FUNCTION__
320 << " class name is not a BSTR: " << V_VT(var.ptr());
320 return; 321 return;
321 } 322 }
322 323
323 base::string16 class_name(V_BSTR(&var)); 324 base::string16 class_name(V_BSTR(var.ptr()));
324 325
325 // Window class names are atoms, which are case-insensitive. 326 // Window class names are atoms, which are case-insensitive.
326 if (class_name.size() == class_name_.size() && 327 if (class_name.size() == class_name_.size() &&
327 std::equal(class_name.begin(), class_name.end(), class_name_.begin(), 328 std::equal(class_name.begin(), class_name.end(), class_name_.begin(),
328 base::CaseInsensitiveCompare<wchar_t>())) { 329 base::CaseInsensitiveCompare<wchar_t>())) {
329 RemoveWindowObserver(); 330 RemoveWindowObserver();
330 ProcessWindow(window); 331 ProcessWindow(window);
331 } 332 }
332 } 333 }
333 334
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 if (FAILED(result)) { 527 if (FAILED(result)) {
527 LOG(ERROR) << std::hex << result; 528 LOG(ERROR) << std::hex << result;
528 continue; 529 continue;
529 } 530 }
530 result = child_element->GetCachedPropertyValueEx(UIA_NamePropertyId, TRUE, 531 result = child_element->GetCachedPropertyValueEx(UIA_NamePropertyId, TRUE,
531 var.Receive()); 532 var.Receive());
532 if (FAILED(result)) { 533 if (FAILED(result)) {
533 LOG(ERROR) << std::hex << result; 534 LOG(ERROR) << std::hex << result;
534 continue; 535 continue;
535 } 536 }
536 if (V_VT(&var) != VT_BSTR) { 537 if (V_VT(var.ptr()) != VT_BSTR) {
537 LOG(ERROR) << __FUNCTION__ << " name is not a BSTR: " << V_VT(&var); 538 LOG(ERROR) << __FUNCTION__ << " name is not a BSTR: " << V_VT(var.ptr());
538 continue; 539 continue;
539 } 540 }
540 choices->push_back(base::string16(V_BSTR(&var))); 541 choices->push_back(base::string16(V_BSTR(var.ptr())));
541 var.Reset(); 542 var.Reset();
542 } 543 }
543 544
544 return result; 545 return result;
545 } 546 }
546 547
547 // Closes the element |window| by sending it an escape key. 548 // Closes the element |window| by sending it an escape key.
548 void UIAutomationClient::Context::CloseWindow( 549 void UIAutomationClient::Context::CloseWindow(
549 const base::win::ScopedComPtr<IUIAutomationElement>& window) { 550 const base::win::ScopedComPtr<IUIAutomationElement>& window) {
550 DCHECK(thread_checker_.CalledOnValidThread()); 551 DCHECK(thread_checker_.CalledOnValidThread());
551 552
552 // It's tempting to get the Window pattern from |window| and invoke its Close 553 // It's tempting to get the Window pattern from |window| and invoke its Close
553 // method. Unfortunately, this doesn't work. Sending an escape key does the 554 // method. Unfortunately, this doesn't work. Sending an escape key does the
554 // trick, though. 555 // trick, though.
555 HRESULT result = S_OK; 556 HRESULT result = S_OK;
556 base::win::ScopedVariant var; 557 base::win::ScopedVariant var;
557 558
558 result = window->GetCachedPropertyValueEx( 559 result = window->GetCachedPropertyValueEx(
559 UIA_NativeWindowHandlePropertyId, 560 UIA_NativeWindowHandlePropertyId,
560 TRUE, 561 TRUE,
561 var.Receive()); 562 var.Receive());
562 if (FAILED(result)) { 563 if (FAILED(result)) {
563 LOG(ERROR) << std::hex << result; 564 LOG(ERROR) << std::hex << result;
564 return; 565 return;
565 } 566 }
566 567
567 if (V_VT(&var) != VT_I4) { 568 if (V_VT(var.ptr()) != VT_I4) {
568 LOG(ERROR) << __FUNCTION__ 569 LOG(ERROR) << __FUNCTION__
569 << " window handle is not an int: " << V_VT(&var); 570 << " window handle is not an int: " << V_VT(var.ptr());
570 return; 571 return;
571 } 572 }
572 573
573 HWND handle = reinterpret_cast<HWND>(V_I4(&var)); 574 HWND handle = reinterpret_cast<HWND>(V_I4(var.ptr()));
574 575
575 uint32 scan_code = MapVirtualKey(VK_ESCAPE, MAPVK_VK_TO_VSC); 576 uint32 scan_code = MapVirtualKey(VK_ESCAPE, MAPVK_VK_TO_VSC);
576 PostMessage(handle, WM_KEYDOWN, VK_ESCAPE, 577 PostMessage(handle, WM_KEYDOWN, VK_ESCAPE,
577 MAKELPARAM(1, scan_code)); 578 MAKELPARAM(1, scan_code));
578 PostMessage(handle, WM_KEYUP, VK_ESCAPE, 579 PostMessage(handle, WM_KEYUP, VK_ESCAPE,
579 MAKELPARAM(1, scan_code | KF_REPEAT | KF_UP)); 580 MAKELPARAM(1, scan_code | KF_REPEAT | KF_UP));
580 } 581 }
581 582
582 UIAutomationClient::UIAutomationClient() 583 UIAutomationClient::UIAutomationClient()
583 : automation_thread_("UIAutomation") {} 584 : automation_thread_("UIAutomation") {}
(...skipping 27 matching lines...) Expand all
611 context_, 612 context_,
612 base::ThreadTaskRunnerHandle::Get(), 613 base::ThreadTaskRunnerHandle::Get(),
613 base::string16(class_name), 614 base::string16(class_name),
614 item_name, 615 item_name,
615 init_callback, 616 init_callback,
616 result_callback)); 617 result_callback));
617 } 618 }
618 619
619 } // namespace internal 620 } // namespace internal
620 } // namespace win8 621 } // namespace win8
OLDNEW
« no previous file with comments | « win8/metro_driver/ime/text_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698