5#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_PLATFORM_HANDLER_H_
6#define FLUTTER_SHELL_PLATFORM_WINDOWS_PLATFORM_HANDLER_H_
18#include "rapidjson/document.h"
22class FlutterWindowsEngine;
23class ScopedClipboardInterface;
33class PlatformHandler {
35 explicit PlatformHandler(
36 BinaryMessenger* messenger,
37 FlutterWindowsEngine*
engine,
38 std::optional<std::function<std::unique_ptr<ScopedClipboardInterface>()>>
39 scoped_clipboard_provider = std::nullopt);
52 std::optional<WPARAM> wparam,
53 std::optional<LPARAM> lparam,
62 std::string_view
key);
72 const std::string&
text,
76 const std::string& sound_type,
89 std::optional<WPARAM> wparam,
90 std::optional<LPARAM> lparam,
98 std::optional<WPARAM> wparam,
99 std::optional<LPARAM> lparam,
100 const rapidjson::Document* result,
111 WNDCLASS RegisterWindowClass();
114 void HandleMethodCall(
121 LPARAM const lparam)
noexcept;
124 std::unique_ptr<MethodChannel<rapidjson::Document>> channel_;
129 HWND window_handle_ =
nullptr;
134 std::function<std::unique_ptr<ScopedClipboardInterface>()>
135 scoped_clipboard_provider_;
158 virtual std::variant<std::wstring, int>
GetString() = 0;
virtual std::variant< std::wstring, int > GetString()=0
virtual int SetString(const std::wstring string)=0
virtual bool HasString()=0
virtual int Open(HWND window)=0
virtual ~ScopedClipboardInterface()
G_BEGIN_DECLS G_MODULE_EXPORT FlMethodCall * method_call
G_BEGIN_DECLS GBytes * message
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)