|  | // 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_ |