1 | #include "pch.h"
|
2 | #include "Clipboard.h"
|
3 | #include <Unicode.h>
|
4 |
|
5 | namespace NativeClipboard {
|
6 | void ClipboardModule::GetString(React::ReactPromise<std::string>&& promise) noexcept {
|
7 | auto dataPackageView = datatransfer::Clipboard::GetContent();
|
8 | if (dataPackageView.Contains(datatransfer::StandardDataFormats::Text())) {
|
9 | dataPackageView.GetTextAsync().Completed([promise, dataPackageView](IAsyncOperation<winrt::hstring> info, AsyncStatus status) {
|
10 | if (status == AsyncStatus::Completed) {
|
11 | auto text = Microsoft::Common::Unicode::Utf16ToUtf8(info.GetResults());
|
12 | promise.Resolve(text);
|
13 | }
|
14 | else {
|
15 | promise.Reject("Failure");
|
16 | }
|
17 | });
|
18 | return;
|
19 | }
|
20 | promise.Resolve("");
|
21 | }
|
22 |
|
23 | void ClipboardModule::SetString(std::string const& str) noexcept
|
24 | {
|
25 | datatransfer::DataPackage dataPackage{};
|
26 | dataPackage.SetText(Microsoft::Common::Unicode::Utf8ToUtf16(str));
|
27 | datatransfer::Clipboard::SetContent(dataPackage);
|
28 | }
|
29 | } |
\ | No newline at end of file |