Ejemplo n.º 1
0
int SetTrayHook(int iInstall)
{
	if(iInstall == 1)
	{
		g_HD_Msg_GetIcon = RegisterWindowMessage(L"HD_Msg_GetIcon");


		HWND hTrayWnd = FindTrayWnd();

	
		DWORD dwExploreID = 0;
		dwExploreID = GetWindowThreadProcessId(hTrayWnd,NULL);
		hTrayHook = SetWindowsHookEx(WH_CALLWNDPROC,TrayHookProc,hInst,dwExploreID);
		if(hTrayHook == NULL)
		{
			OutputDebugString(L"Set SetTrayHook Failure!");
		}
#ifdef _HIDEPROCESS
		pDri = new CDriver;
#endif
	}
	else
	{
		UnhookWindowsHookEx(hTrayHook);
		hTrayHook = NULL;
#ifdef _HIDEPROCESS
		delete pDri;
#endif
	
	}
	return 1;
}
Ejemplo n.º 2
0
void CTrayIcon::OnTimer( UINT_PTR nIDEvent )
{
	if ( nIDEvent == _defFlashIconTimerID )
	{
		if ( m_IsShowIcon )
		{
			FlashIconData Data = DecideFlashIconData();
			CIcon icon;
			icon.LoadIcon(Data.nIconNormal);
			ChangeIcon(icon);
			ChangeToolTip(Data.strTooltip);
			m_IsShowIcon = false;

		}
		else
		{
			FlashIconData Data = DecideFlashIconData();
			CIcon icon;
			icon.LoadIcon(Data.nIconFlash);
			ChangeIcon(icon);
			ChangeToolTip(Data.strTooltip);
			m_IsShowIcon = true;
		}
	}
	else if ( nIDEvent == _defIconLeaveTimerID )
	{
		POINT pt = {0};
		RECT rc;
		GetCursorPos(&pt);
		if ( GetTrayIconRect(FindTrayWnd(), m_hNotifyWnd, &rc) == S_FALSE)
		{
			GetTrayIconRect(FindNotifyIconOverflowWindow(), m_hNotifyWnd, &rc);
		}

		if ( !PtInRect(&rc,pt) )
		{
			BOOL b;
			OnTrayIconNotify(WM_TRAYICONNOTIFY, 0, WM_MOUSELEAVE, b);
		}
	}
}