CTrayNotifyIcon::CTrayNotifyIcon() : m_bCreated(FALSE),
    m_bHidden(FALSE),
    m_pNotificationWnd(NULL),
    m_bDefaultMenuItemByPos(TRUE),
    m_nDefaultMenuItem(0),
    m_hDynamicIcon(NULL)
{
    memset(&m_NotifyIconData, 0, sizeof(m_NotifyIconData));
    m_NotifyIconData.cbSize = GetNOTIFYICONDATASizeForOS();
}
bool Tray::Create( HWND hwnd, UINT uid, UINT ucallback_msg, HICON htray_icon, wchar_t* sztip )
{
  notify_icon_data_.cbSize = GetNOTIFYICONDATASizeForOS();
  notify_icon_data_.hWnd = hwnd;
  notify_icon_data_.uID = uid;
  notify_icon_data_.uCallbackMessage = ucallback_msg;
  notify_icon_data_.hIcon = htray_icon;
  wcscpy_s(notify_icon_data_.szTip, sizeof(notify_icon_data_.szTip)/sizeof(wchar_t), sztip);

  AddTrayIcon();

  return true;
}