When i create systray apps, i create the menu manually:
Code:
  case WM_ICONNOTIFY:
		switch(lParam){
		case WM_RBUTTONUP:
			SetForegroundWindow(d.hWndMain);
			GetCursorPos(&p1);
			mPopup = CreatePopupMenu();
			AppendMenu(mPopup, MF_STRING|MF_ENABLED, 1, "Restore");
			AppendMenu(mPopup, MF_SEPARATOR, 0, 0);
			AppendMenu(mPopup, MF_STRING|MF_ENABLED, 3, "Close");
			switch(TrackPopupMenu(mPopup ,TPM_RIGHTALIGN|TPM_LEFTBUTTON|TPM_RETURNCMD, p1.x, p1.y,0, d.hWndMain , NULL)){
			case 1:// Restore				SetForegroundWindow(d.hWndMain);
				TrayRemove();
				d.bInTray = false;
				ShowWindow(d.hWndMain, SW_SHOWNORMAL);
				break;
			case 3:// End				SendMessage(d.hWndMain, WM_CLOSE, 0, 0); break;
			}
			DestroyMenu(mPopup);
			break;
		case WM_LBUTTONDBLCLK:
		case NIN_BALLOONUSERCLICK:
			SetForegroundWindow(d.hWndMain);
			TrayRemove();
			d.bInTray = false;
			ShowWindow(d.hWndMain, SW_SHOWNORMAL);
			break;
		}
		break;