Exemple #1
0
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    static const UINT WM_TASKBARCREATED = ::RegisterWindowMessage(L"TaskbarCreated");
    int nID;
    switch (message) {
        case WM_TASKBARNOTIFY:
            if (lParam == WM_LBUTTONUP) {
                ShowWindow(hConsole, !IsWindowVisible(hConsole));
                SetForegroundWindow(hConsole);
            } else if (lParam == WM_RBUTTONUP) {
                SetForegroundWindow(hWnd);
                ShowPopupMenu();
            }
            break;
        case WM_COMMAND:
            nID = LOWORD(wParam);
            if (nID == WM_TASKBARNOTIFY_MENUITEM_SHOW) {
                ShowWindow(hConsole, SW_SHOW);
                SetForegroundWindow(hConsole);
            } else if (nID == WM_TASKBARNOTIFY_MENUITEM_HIDE) {
                ShowWindow(hConsole, SW_HIDE);
            }
            if (nID == WM_TASKBARNOTIFY_MENUITEM_RELOAD) {
                ReloadCmdline(szSubTitleLast, szSubPathLast, szSubCommandLast);
            } else if (nID == WM_TASKBARNOTIFY_MENUITEM_ABOUT) {
                MessageBoxW(hWnd, szTooltip, szWindowClass, 0);
            } else if (nID == WM_TASKBARNOTIFY_MENUITEM_EXIT) {
                DeleteTrayIcon();
                PostMessage(hConsole, WM_CLOSE, 0, 0);
            } else if (WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE <= nID && nID <= WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE+sizeof(lpSubMenuTitleList)/sizeof(lpSubMenuTitleList[0])) {
                WCHAR *szSubMenu = lpSubMenuTitleList[nID-WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE];
                WCHAR *szSubCmd = lpSubMenuCmdList[nID-WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE];
                WCHAR *szSubPath = lpSubMenuPathList[nID-WM_TASKBARNOTIFY_MENUITEM_SUBMENULIST_BASE];
                ReloadCmdline(szSubMenu, szSubPath, szSubCmd);
                ShowTrayIcon(szSubMenu, NIM_MODIFY);
            }
            break;
        case WM_CLOSE:
            DeleteTrayIcon();
            PostQuitMessage(0);
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            if (message == WM_TASKBARCREATED) {
                ShowTrayIcon(NULL, NIM_ADD);
                break;
            }
            return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
void CRelaxReminderDlg::QuitProcess() 
{
    SaveStatisticsToIniFile();
    DeleteTrayIcon();
    DllExport_UninstallKeyboardHook();
    DllExport_UninstallMouseHook();
}
// WM_TRAYICON_MSG 핸들러
LRESULT COutputDialog::TrayIconMsg(WPARAM wParam, LPARAM lParam)
{
	// 등록된 TrayIcon 클릭하면 Show....
	if(lParam == WM_LBUTTONDBLCLK)
	{  
		ShowWindow(SW_SHOW);
		DeleteTrayIcon();
	}

	return 0;
}
Exemple #4
0
void GUIProQuit()
{
	myUnregisterHotKey(IDH_HOTKEY_VOL_UP);
	myUnregisterHotKey(IDH_HOTKEY_VOL_DOWN);
	uninstallHookMouse();

	unloadVolumeInterface();

	DeleteTrayIcon(g_hwndMain, IDI_MAIN_ICON);
	PostQuitMessage(0);
}
void CRelaxReminderDlg::OnMenuTrayIcon() 
{
    // TODO: Add your command handler code here
    if (m_bTrayIconVisible)
    {
        DeleteTrayIcon();
    }
    else
    {
        ShowTrayIcon();
    }
}
Exemple #6
0
LRESULT CEzShortcutDlg::OnTrayIconMsg(WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(wParam);
	if(lParam == WM_LBUTTONDBLCLK)
	{  
		DeleteTrayIcon();
	}
	else if(lParam == WM_RBUTTONDOWN)
	{ 
		m_Popup.Show();
	}
	return 0;
}
Exemple #7
0
void _UnflipFromTray(UINT i, UINT uCmd) {

	if (MyIsHungAppWindow(g_pWti[i].hwnd))
		return;

	DeleteTrayIcon(g_hwndMain, g_pWti[i].uID);
	if (IsWindow(g_pWti[i].hwnd)) {

		RECT rcTray = { 0 };

		if (g_pWti[i].fAnimate && uCmd == SC_RESTORE) {

			ANIMATIONINFO ai;
			ai.cbSize = sizeof(ANIMATIONINFO);
			ai.iMinAnimate = FALSE;
			SystemParametersInfo(SPI_GETANIMATION, sizeof(ANIMATIONINFO), &ai, FALSE);

			if (ai.iMinAnimate) {
				HWND hwndTray = FindTrayToolbarWindow();
				if (hwndTray) {
					GetWindowRect(hwndTray, &rcTray);
					rcTray.bottom = rcTray.top;
					rcTray.right = rcTray.left;
#pragma FIX_LATER(tray animation <-> taskbar pos)

					KillTimer(g_hwndMain, TIMER_SETANIMATION);
					ai.iMinAnimate = 0;
					SystemParametersInfo(SPI_SETANIMATION, sizeof(ANIMATIONINFO), &ai, FALSE);
					SetTimer(g_hwndMain, TIMER_SETANIMATION, 500, NULL);

					DrawAnimatedRects(g_hwndMain, IDANI_CAPTION, &rcTray, &g_pWti[i].rcWnd);
				}
			}
		}

		//ShowWindow(g_pWti[i].hwnd, SW_SHOW);
		SetWindowPos(g_pWti[i].hwnd, NULL, 0, 0, 0, 0, 
			SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW);
		if (uCmd == SC_RESTORE || uCmd == SC_CLOSE) {
			//ShowWindow(g_pWti[i].hwnd, SW_RESTORE);
			MySwitchToThisWindow(g_pWti[i].hwnd);
			if (uCmd == SC_CLOSE)
				PostMessage(g_pWti[i].hwnd, WM_SYSCOMMAND, SC_CLOSE, 0);
		}
	}
	if (i - 1 != g_cWti) {
		MoveMemory(g_pWti + i,  g_pWti + i + 1, 
			(g_cWti - i - 1) * sizeof(WNDTRAYINFO));
	}
	g_pWti[--g_cWti].hwnd = NULL;
}
Exemple #8
0
BOOL ShowTrayIcon(BOOL fShow) {

	BOOL fRet = DeleteTrayIcon(g_hwndMain, IDI_TASKSWITCHXP);
	g_dwFlags &= ~TSF_SHOWTRAYICON;

	if (g_hIconTray) {
		DestroyIcon(g_hIconTray);
		g_hIconTray = NULL;
	}

	if (fShow) {

		HICON hIconSm = NULL;
		if (g_dwFlags & TSF_USECUSTOMICON) {
			HKEY hkey = NULL;
			if (!RegOpenKeyEx(HKEY_CURRENT_USER, g_szRegKeyTs, 0, KEY_READ, &hkey)) {
				WCHAR szBuff[MAX_DATALEN] = L"";
				DWORD cbData = MAX_DATALEN * sizeof(WCHAR);
				if (!RegQueryValueEx(hkey, RS_CUSTOMICON, 0, NULL, (PBYTE)szBuff, &cbData)) {
					int nIconIndex;
					if (_GetIconPathIndex(szBuff, &nIconIndex)) {
						if (!ExtractIconEx(szBuff, nIconIndex, NULL, &hIconSm, 1))
							hIconSm = NULL;
					}
				}
				RegCloseKey(hkey);
			}
		}

		if (!hIconSm) {
			g_hIconTray = (HICON)LoadImage(g_hinstExe, MAKEINTRESOURCE(IDI_TASKSWITCHXP), 
				IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
		} else {
			g_hIconTray = CopyIcon(hIconSm);
			DestroyIcon(hIconSm);
		}

		if (!g_hIconTray)
			g_hIconTray = LoadIcon(NULL, IDI_WARNING);

		fRet = AddTrayIcon(g_hwndMain, IDI_TASKSWITCHXP, g_hIconTray, g_szWindowName);
		g_dwFlags |= TSF_SHOWTRAYICON;
	}
	return(fRet);
}
Exemple #9
0
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int nID;
	switch (message) 
	{
		case WM_TASKBARNOTIFY:
			if (lParam == WM_LBUTTONUP)
			{
				ShowWindow(hConsole, !IsWindowVisible(hConsole));
				SetForegroundWindow(hConsole);
			}
			else if (lParam == WM_RBUTTONUP)
			{
				ShowPopupMenu();
			}
			break;
		case WM_COMMAND:
			nID = LOWORD(wParam);
			if (nID == WM_TASKBARNOTIFY_MENUITEM_SHOW)
			{
				ShowWindow(hConsole, SW_SHOW);
				SetForegroundWindow(hConsole);
			}
			else if (nID == WM_TASKBARNOTIFY_MENUITEM_HIDE)
			{
				ShowWindow(hConsole, SW_HIDE);
			}
			else if (nID == WM_TASKBARNOTIFY_MENUITEM_EXIT)
			{
				DeleteTrayIcon();
				PostMessage(hConsole, WM_CLOSE, 0, 0);
			}
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
Exemple #10
0
	CTrayIcon::~CTrayIcon(void)
	{
		DeleteTrayIcon();
	}
void COutputDialog::OnDestroy()
{
	DeleteTrayIcon();
	CDialog::OnDestroy();
}
	CTrayIconUI::~CTrayIconUI(void)
	{
		DeleteTrayIcon();
	}
Exemple #13
0
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static UINT WM_TASKBARCREATED = 0;
    if (WM_TASKBARCREATED == 0)
        WM_TASKBARCREATED = RegisterWindowMessage(L"TaskbarCreated");

    UINT nID;
    switch (message)
    {
        case WM_TASKBARNOTIFY:
            if (lParam == WM_LBUTTONUP)
            {
                ShowWindow(hConsole, !IsWindowVisible(hConsole));
                SetForegroundWindow(hConsole);
            }
            else if (lParam == WM_RBUTTONUP)
            {
                SetForegroundWindow(hWnd);
                ShowPopupMenu();
            }
            break;
        case WM_COMMAND:
            nID = LOWORD(wParam);
            if (nID == WM_TASKBARNOTIFY_MENUITEM_SHOW)
            {
                ShowWindow(hConsole, SW_SHOW);
                SetForegroundWindow(hConsole);
            }
            else if (nID == WM_TASKBARNOTIFY_MENUITEM_HIDE)
            {
                ShowWindow(hConsole, SW_HIDE);
            }
            if (nID == WM_TASKBARNOTIFY_MENUITEM_RELOAD)
            {
                ReloadCmdline();
            }
            else if (nID == WM_TASKBARNOTIFY_MENUITEM_ABOUT)
            {
                MessageBoxW(hWnd, szTooltip, szWindowClass, 0);
            }
            else if (nID == WM_TASKBARNOTIFY_MENUITEM_EXIT)
            {
                DeleteTrayIcon();
                PostMessage(hConsole, WM_CLOSE, 0, 0);
            }
            else if (WM_TASKBARNOTIFY_MENUITEM_PROXYLIST_BASE <= nID && nID <= WM_TASKBARNOTIFY_MENUITEM_PROXYLIST_BASE+sizeof(lpProxyList)/sizeof(lpProxyList[0]))
            {
                WCHAR *szProxy = lpProxyList[nID-WM_TASKBARNOTIFY_MENUITEM_PROXYLIST_BASE];
                SetWindowsProxy(szProxy, NULL);
                SetWindowsProxyForAllRasConnections(szProxy);
                ShowTrayIcon(szProxy, NIM_MODIFY);
            }
            break;
        case WM_CLOSE:
            DeleteTrayIcon();
            PostQuitMessage(0);
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            if (message == WM_TASKBARCREATED)
            {
                ShowTrayIcon(NULL, NIM_ADD);
                break;
            }
            return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
Exemple #14
0
MRESULT EXPENTRY windowproc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
{
HPS hps;
RECTL rcl;
DRAGITEM dit;
PDRAGINFO pdin;
HOBJECT hobj;
static a=0;

switch(msg)
{
/* control tray icon specific messages */
case DM_DROP:
pdin = (PDRAGINFO)mp1;
DrgAccessDraginfo(pdin);
DrgQueryDragitem(pdin,sizeof(DRAGITEM),&dit,0);
DrgQueryStrName(dit.hstrContainerName,256,cbuf);
DrgQueryStrName(dit.hstrSourceName,256,buf);
strcat(cbuf,buf);
hobj=WinQueryObject("<WP_DRIVES>");
if(hobj)DosBeep(1000,100);
//WinOpenObject(hobj,0,TRUE);
WinMessageBox(HWND_DESKTOP,hwnd,"Drag Succeed!",cbuf,0,MB_OK | MB_INFORMATION);
DrgFreeDraginfo(pdin);
break;
case DM_DRAGOVER:
return MPFROM2SHORT(DOR_DROP,DO_LINK);
case WM_TIMER:
a++;
a%=5;
WinSendMsg(hwndFrame,WM_SETICON,(MPARAM)hIcon[a],NULL);
ChangeTrayIcon(hwnd,NULLHANDLE);
break;
case WM_BUTTON1CLICK|0x2000:
case WM_BUTTON2CLICK|0x2000:
/* activate frame window */
WinSetWindowPos(hwndFrame,HWND_TOP,0,0,0,0,SWP_ACTIVATE | SWP_SHOW | SWP_ZORDER | SWP_RESTORE);
break;
case WM_CREATE:
/* initialize window */

/* initialize tray api */
InitializeTrayApi(hwnd);
break;

case WM_DDE_INITIATEACK:
/* aswer dde server */
AnswerTrayApiDdeAck(mp1);
AddTrayIcon(hwnd,WinSendMsg(hwndFrame,WM_QUERYICON,NULL,NULL));
WinStartTimer(hab,hwnd,1,500);

return (MRESULT)0L;

case WM_PAINT:
hps = WinBeginPaint(hwnd,NULL,NULL);
WinQueryWindowRect(hwnd, &rcl);
WinFillRect(hps, &rcl, CLR_CYAN);
GpiSetColor(hps, CLR_DARKBLUE);
GpiSetBackColor(hps, CLR_CYAN);
rcl.xLeft=(rcl.xLeft+rcl.xRight)/2-40;
rcl.yBottom=(rcl.yBottom+rcl.yTop)/2-7;
GpiCharStringAt(hps, (PPOINTL)&rcl, 13, "Hello, world!");
WinEndPaint(hps);
break;

case WM_DESTROY:
/* delete application icon from system tray */
return (MRESULT)DeleteTrayIcon(hwnd);
}

return WinDefWindowProc(hwnd, msg, mp1, mp2);
}
CIISxpressTrayIcon::~CIISxpressTrayIcon(void)
{
	DeleteTrayIcon();
}