diff options
-rw-r--r-- | plugins/Scriver/src/msgdialog.cpp | 18 | ||||
-rw-r--r-- | plugins/Scriver/src/msgs.h | 1 | ||||
-rw-r--r-- | plugins/Scriver/src/utils.cpp | 7 |
3 files changed, 8 insertions, 18 deletions
diff --git a/plugins/Scriver/src/msgdialog.cpp b/plugins/Scriver/src/msgdialog.cpp index fb3aabfd04..1d4055b22a 100644 --- a/plugins/Scriver/src/msgdialog.cpp +++ b/plugins/Scriver/src/msgdialog.cpp @@ -516,16 +516,15 @@ void CMsgDialog::onClick_Ok(CCtrlButton *pButton) void CMsgDialog::onClick_UserMenu(CCtrlButton *pButton)
{
if (GetKeyState(VK_SHIFT) & 0x8000) { // copy user name
- char buf[128];
- GetContactUniqueId(buf, sizeof(buf));
- if (!OpenClipboard(m_hwnd) || !mir_strlen(buf))
+ ptrW id(Contact_GetInfo(CNF_UNIQUEID, m_hContact, m_szProto));
+ if (!OpenClipboard(m_hwnd) || !mir_wstrlen(id))
return;
EmptyClipboard();
- HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, mir_strlen(buf) + 1);
- mir_strcpy((LPSTR)GlobalLock(hData), buf);
+ HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, 2*mir_wstrlen(id) + 1);
+ mir_wstrcpy((LPWSTR)GlobalLock(hData), id);
GlobalUnlock(hData);
- SetClipboardData(CF_TEXT, hData);
+ SetClipboardData(CF_UNICODETEXT, hData);
CloseClipboard();
}
else {
@@ -1148,10 +1147,9 @@ INT_PTR CMsgDialog::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) case DM_CLISTSETTINGSCHANGED:
if (wParam == m_hContact && m_hContact && m_szProto) {
DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING *)lParam;
- char idbuf[128], buf[128];
- GetContactUniqueId(idbuf, sizeof(idbuf));
- mir_snprintf(buf, Translate("User menu - %s"), idbuf);
- SendDlgItemMessage(m_hwnd, IDC_USERMENU, BUTTONADDTOOLTIP, (WPARAM)buf, 0);
+ wchar_t buf[128];
+ mir_snwprintf(buf, TranslateT("User menu - %s"), ptrW(Contact_GetInfo(CNF_UNIQUEID, m_hContact, m_szProto)).get());
+ SendDlgItemMessage(m_hwnd, IDC_USERMENU, BUTTONADDTOOLTIP, (WPARAM)buf, BATF_UNICODE);
if (cws && !mir_strcmp(cws->szModule, m_szProto) && !mir_strcmp(cws->szSetting, "Status"))
m_wStatus = cws->value.wVal;
diff --git a/plugins/Scriver/src/msgs.h b/plugins/Scriver/src/msgs.h index a5271fd339..bc1bb201ad 100644 --- a/plugins/Scriver/src/msgs.h +++ b/plugins/Scriver/src/msgs.h @@ -91,7 +91,6 @@ class CMsgDialog : public CSrmmBaseDialog bool CheckSend(void);
void ClearLog(void);
- void GetContactUniqueId(char *buf, int maxlen);
HICON GetTabIcon(void);
void GetTitlebarIcon(struct TitleBarData *tbd);
void Init(void);
diff --git a/plugins/Scriver/src/utils.cpp b/plugins/Scriver/src/utils.cpp index b0e4869327..b253ccdddf 100644 --- a/plugins/Scriver/src/utils.cpp +++ b/plugins/Scriver/src/utils.cpp @@ -197,13 +197,6 @@ void SearchWord(wchar_t *word, int engine) }
}
-void CMsgDialog::GetContactUniqueId(char *buf, int maxlen)
-{
- ptrW id(Contact_GetInfo(CNF_UNIQUEID, m_hContact, m_szProto));
- if (id != nullptr)
- strncpy_s(buf, maxlen, _T2A(id), _TRUNCATE);
-}
-
HWND CreateToolTip(HWND hwndParent, LPTSTR ptszText, LPTSTR ptszTitle, RECT *rect)
{
TOOLINFO ti = { 0 };
|