| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOWS_REGISTRY_H_ |
| #define FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOWS_REGISTRY_H_ |
| |
| #include <Windows.h> |
| |
| #include "flutter/fml/macros.h" |
| |
| namespace flutter { |
| |
| /// A utility class to encapsulate interaction with the Windows registry. |
| /// By encapsulating this in a class, we can mock out this functionality |
| /// for unit testing. |
| class WindowsRegistry { |
| public: |
| WindowsRegistry() = default; |
| virtual ~WindowsRegistry() = default; |
| |
| // Parameters and return values of this method match those of RegGetValue |
| // See: |
| // https://learn.microsoft.com/windows/win32/api/winreg/nf-winreg-reggetvaluew |
| virtual LSTATUS GetRegistryValue(HKEY hkey, |
| LPCWSTR key, |
| LPCWSTR value, |
| DWORD flags, |
| LPDWORD type, |
| PVOID data, |
| LPDWORD data_size) const; |
| |
| private: |
| FML_DISALLOW_COPY_AND_ASSIGN(WindowsRegistry); |
| }; |
| |
| } // namespace flutter |
| |
| #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOWS_REGISTRY_H_ |