diff options
Diffstat (limited to 'plugins/MirOTR/src/utils.cpp')
-rw-r--r-- | plugins/MirOTR/src/utils.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/plugins/MirOTR/src/utils.cpp b/plugins/MirOTR/src/utils.cpp index fa02d254cd..1b1a9fe55c 100644 --- a/plugins/MirOTR/src/utils.cpp +++ b/plugins/MirOTR/src/utils.cpp @@ -187,6 +187,22 @@ void ShowError(wchar_t *msg) } } +void CopyToClipboard(const wchar_t *pwszMsg) +{ + if (pwszMsg == nullptr) + return; + + HGLOBAL hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (mir_wstrlen(pwszMsg) + 1) * sizeof(wchar_t)); + LPWSTR lptstrCopy = (LPWSTR)GlobalLock(hglbCopy); + mir_wstrcpy(lptstrCopy, pwszMsg); + GlobalUnlock(hglbCopy); + + if (OpenClipboard(nullptr)) { + EmptyClipboard(); + SetClipboardData(CF_UNICODETEXT, hglbCopy); + CloseClipboard(); + } +} void ShowPopupUtf(const char* line1, const char* line2, int timeout, const MCONTACT hContact) { |