bool CXTPTrayIcon::ShowBalloonTip(LPCTSTR lpszInfo, LPCTSTR lpszInfoTitle/*= NULL*/, DWORD dwInfoFlags/*= NIIF_NONE*/, UINT uTimeout/*= 10*/) { bool bResult = false; if (IsShellVersion5() && lpszInfo) { // The balloon tooltip text can be up to 255 chars long. ASSERT(AfxIsValidString(lpszInfo)); ASSERT(lstrlen(lpszInfo) < 256); // The balloon title text can be up to 63 chars long. if (lpszInfoTitle) { ASSERT(AfxIsValidString(lpszInfoTitle)); ASSERT(lstrlen(lpszInfoTitle) < 64); } // dwInfoFlags must be valid. ASSERT(NIIF_NONE == dwInfoFlags || NIIF_INFO == dwInfoFlags || NIIF_WARNING == dwInfoFlags || NIIF_ERROR == dwInfoFlags); // The timeout must be between 10 and 30 seconds. ASSERT(uTimeout >= 10 && uTimeout <= 30); m_niData.uFlags |= NIF_INFO; STRNCPY_S(m_niData.szInfo, _countof(m_niData.szInfo), lpszInfo, 255); if (lpszInfoTitle) { STRNCPY_S(m_niData.szInfoTitle, _countof(m_niData.szInfoTitle), lpszInfoTitle, 63); } else { m_niData.szInfoTitle[0] = _T('\0'); } m_niData.uTimeout = (uTimeout * 1000); // convert time to millisecs m_niData.dwInfoFlags = dwInfoFlags; if (ShellNotify(NIM_MODIFY)) { bResult = true; } // Zero out the balloon text string so that later operations won't redisplay // the balloon. m_niData.szInfo[0] = _T('\0'); } return bResult; }
ACLStr::ACLStr(IN const ACLStr& str) { size_t len(str.Len()); _Init(); _Alloc(len); STRNCPY_S(_string, _realLength, str._string, len); } // ACLStr(IN const &ACLStr)
ACLStr::ACLStr(IN LPCTSTR str) { _Init(); if (str) { size_t len(STRLEN(str)); _Alloc(len); STRNCPY_S(_string, _realLength, str, len); } } // ACLStr(IN LPCTSTR)
bool CXTPTrayIcon::SetShellTooltip(LPCTSTR lpszTipText) { ASSERT(AfxIsValidString(lpszTipText)); ASSERT(_tcslen(lpszTipText) < m_iMaxTipSize); m_niData.uFlags = NIF_TIP; STRNCPY_S(m_niData.szTip, _countof(m_niData.szTip), lpszTipText, m_iMaxTipSize-1); if (m_bHidden) { return true; } if (!ShellNotify(NIM_MODIFY)) { return false; } return true; }
ACLStr::ACLStr(IN const TCHAR ch) { _Init(); _Alloc(STR_PADDING); STRNCPY_S(_string, _realLength, &ch, 1); } // ACLStr(IN LPCTSTR)