Beispiel #1
0
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);
    }}
}