void get_text(TCHAR *text, size_t max_length) { #ifndef USE_GDI value.copy(text, std::min(max_length - 1, value.length())); #else ::GetWindowText(hWnd, text, max_length); #endif }
void Notification::addMessage(const tstring& title, const tstring& message, const Callback& callback, const IconPtr& balloonIcon) { if(!visible) { setVisible(true); onlyBalloons = true; } balloons.emplace_back(callback, balloonIcon); NOTIFYICONDATA nid = makeNID(); nid.uFlags |= NIF_INFO; message.copy(nid.szInfo, sizeof(nid.szInfo) / sizeof(nid.szInfo[0]) - 1); title.copy(nid.szInfoTitle, sizeof(nid.szInfoTitle) / sizeof(nid.szInfoTitle[0]) - 1); if(balloonIcon && util::win32::ensureVersion(util::win32::VISTA)) { nid.dwInfoFlags = NIIF_USER; nid.hBalloonIcon = balloonIcon->handle(); } else { nid.dwInfoFlags = NIIF_INFO; } ::Shell_NotifyIcon(NIM_MODIFY, &nid); }