void CNotifyIcon::DoSetIcon(HICON hIcon, PCTSTR pszTip) { Init(); m_nid.hIcon = hIcon; m_hIcon = hIcon; if (pszTip != NULL) { lstrcpyn(m_nid.szTip, pszTip, dimensionof(m_nid.szTip)); } if (m_nid.hIcon != NULL) { m_nid.uFlags |= NIF_ICON; } else { m_nid.uFlags &= (~NIF_ICON); } if (lstrlen(m_nid.szTip) != 0) { m_nid.uFlags |= NIF_TIP; } else { m_nid.uFlags &= (~NIF_TIP); } Shell_NotifyIcon(NIM_MODIFY, &m_nid); }
static wchar_t const* m2w(char const* s) { static wchar_t w[1001]; MultiByteToWideChar(0, 0, s, -1, w, dimensionof(w)); return w; }
static void test_comstl_C_BSTR_create_len_a(void) { char const alphabet[] = "abcdefghijklmnopqrstuvwxyz"; { size_t i; for(i = 0; i != dimensionof(alphabet); ++i) { BSTR const s = comstl_C_BSTR_create_len_a(alphabet, i); XTESTS_TEST_WIDE_STRING_EQUAL_N(m2w(alphabet), s, (int)i); XTESTS_TEST_INTEGER_EQUAL(i, SysStringLen(s)); XTESTS_TEST_INTEGER_EQUAL(SysStringLen(s), comstl_C_BSTR_len(s)); comstl_C_BSTR_destroy(s); }} }
static void test_comstl_C_BSTR_create_a_2() { char const* const strings[] = { "" , "a" , "abc" , "abcdefghijklmnopqrstuvwxyz" , "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" }; { size_t i; for(i = 0; i != dimensionof(strings); ++i) { BSTR const s = comstl_C_BSTR_create_a(strings[i]); XTESTS_TEST_WIDE_STRING_EQUAL(m2w(strings[i]), s); XTESTS_TEST_INTEGER_EQUAL(strlen(strings[i]), SysStringLen(s)); XTESTS_TEST_INTEGER_EQUAL(SysStringLen(s), comstl_C_BSTR_len(s)); comstl_C_BSTR_destroy(s); }} }