terminal/src/types/IControlAccessibilityInfo.h
Leonard Hecker 95cc7d9625
Add noexcept to all FontInfo structs (#11640)
FontInfoBase and it's descendents are missing noexcept annotations, which
virally forces other code to not be noexcept as well during AuditMode checks.
Apart from adding noexcept, this commit also
* Passes std::wstring_view by reference.
* Pass the FillLegacyNameBuffer argument as a simple pointer-to-array,
  allowing us to fill the buffer with a single memcpy.
  (gsl::span's iterators inhibit any internal STL optimizations.)
* Move operator== declarations inside the class to reduce code size.

All other changes are an effect of the virality of noexcept.

This is an offshoot from #11623.

## Validation Steps Performed
* It still compiles ✔️
2021-10-29 14:08:41 +00:00

44 lines
1.4 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Licensed under the MIT license.
Module Name:
- IControlAccessibilityInfo.h
Abstract:
- This serves as the interface defining all information known by the control
hosting the terminal renderer that is needed for the UI Automation Tree.
Author(s):
- Zoey Riordan (zorio) Feb-2020
--*/
#pragma once
#include <wtypes.h>
namespace Microsoft::Console::Types
{
class IControlAccessibilityInfo
{
public:
virtual ~IControlAccessibilityInfo() = 0;
virtual COORD GetFontSize() const noexcept = 0;
virtual RECT GetBounds() const noexcept = 0;
virtual RECT GetPadding() const noexcept = 0;
virtual double GetScaleFactor() const noexcept = 0;
virtual void ChangeViewport(const SMALL_RECT NewWindow) = 0;
virtual HRESULT GetHostUiaProvider(IRawElementProviderSimple** provider) = 0;
protected:
IControlAccessibilityInfo() = default;
IControlAccessibilityInfo(const IControlAccessibilityInfo&) = default;
IControlAccessibilityInfo(IControlAccessibilityInfo&&) = default;
IControlAccessibilityInfo& operator=(const IControlAccessibilityInfo&) = default;
IControlAccessibilityInfo& operator=(IControlAccessibilityInfo&&) = default;
};
inline IControlAccessibilityInfo::~IControlAccessibilityInfo() {}
}