亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? machineview.cpp

?? <Visual C++ 網(wǎng)絡(luò)程序設(shè)計實(shí)例詳解>配套源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// MachineView.cpp : implementation of the CMachineView class
//

#include "stdafx.h"
#include "RemoteAdmin.h"
#include "GlobalMFCHelperFunc.h"
#include "GlobalHelperFunc.h"
#include "RemoteAdminDoc.h"
#include "MachineView.h"
#include "MainFrame.h"
#include "RemoteLogonDlg.h"
#include "MachineInfo.h"
#include "RemoteAdminView.h"
#include "RemoteProcessDlg.h"
#include "ProgressWndThread.h"
#include "Command.h"
#include "ConnectionThread.h"
#include <process.h>
#include <Tlhelp32.h>
#include <windows.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// CMachineView

IMPLEMENT_DYNCREATE(CMachineView, CTreeView)

BEGIN_MESSAGE_MAP(CMachineView, CTreeView)
	//{{AFX_MSG_MAP(CMachineView)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_MACHINEPROPERTIES_REFRESHPROCESS, OnRefreshProcess)
	ON_WM_LBUTTONDOWN()
	ON_COMMAND(ID_MACHINEPROPERTIES_EXECUTE_PROCESS, OnExecuteProcess)
	ON_COMMAND(ID_MACHINEPROPERTIES_SHUTDOWN_HALT, OnShutdownHalt)
    ON_COMMAND(ID_MACHINEOPTIONS_ADD_MACHINE, OnAddMachine)
	ON_COMMAND(ID_MACHINEOPTIONS_DELETE_MACHINE, OnDeleteMachine)
	ON_COMMAND(ID_MACHINEPROPERTIES_DELETE_MACHINE, OnDeleteMachine)
	ON_COMMAND(ID_MACHINEPROPERTIES_SHUTDOWN_ABORTSHUTDOWN, OnShutdownAbort)
    ON_COMMAND(ID_MACHINEPROPERTIES_SHUTDOWN_REBOOT, OnShutdownReboot)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMachineView construction/destruction

CMachineView::CMachineView()
{
	// TODO: add construction code here

}

CMachineView::~CMachineView()
{
}

BOOL CMachineView::PreCreateWindow(CREATESTRUCT& cs)
{
	cs.style |= TVS_HASLINES | 
                TVS_LINESATROOT | 
                TVS_HASBUTTONS | 
                TVS_SHOWSELALWAYS;

	return CTreeView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMachineView drawing

void CMachineView::OnDraw(CDC* pDC)
{
	CRemoteAdminDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
}


void CMachineView::OnInitialUpdate()
{
	CTreeView::OnInitialUpdate();
    
    // When being reused, reset the image list
    ImageList_Destroy(m_ilMachine.Detach());
    // When being reused, clean the tree control(view)
    GetTreeCtrl().DeleteAllItems();

	CreateEmptyTree();
    GetTreeCtrl().SetIndent(5);
}

/////////////////////////////////////////////////////////////////////////////
// CMachineView diagnostics

#ifdef _DEBUG
void CMachineView::AssertValid() const
{
	CTreeView::AssertValid();
}

void CMachineView::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}

CRemoteAdminDoc* CMachineView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRemoteAdminDoc)));
	return (CRemoteAdminDoc*)m_pDocument;
}
#endif //_DEBUG

void CMachineView::CreateEmptyTree()
{
    CreateImageList();
    CreateTreeRoot();
}

void CMachineView::CreateImageList()
{
    // Load various icons required for the machine view
    HICON hIconMachineOnNetwork = ::AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_MACHINE_ON_NETWORK));
    HICON hIconMachine  = ::AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_MACHINE));
        
    // The imageslist is created
    m_ilMachine.Create(20, 20, ILC_COLOR32 | ILC_MASK, 0, 1);

    // Add the icons in the imagelist
    m_ilMachine.Add(hIconMachineOnNetwork);
    m_ilMachine.Add(hIconMachine);

    // Add the imagelist to the tree control
    GetTreeCtrl().SetImageList(&m_ilMachine, TVSIL_NORMAL);
}

void CMachineView::CreateTreeRoot()
{
    CTreeCtrl& ptcVehicleView = GetTreeCtrl();
    TVINSERTSTRUCT tviHelper    = {0};
    CString str;
    
    //------------------------------------
    // Create the root of the vehicle view
    //------------------------------------
    tviHelper.hParent			  = TVI_ROOT;
	tviHelper.hInsertAfter		  = TVI_FIRST;
	tviHelper.item.mask			  = TVIF_TEXT |
                                    TVIF_IMAGE | 
                                    TVIF_SELECTEDIMAGE | 
                                    TVIF_PARAM;
    str.LoadString(IDS_MONITORED_MACHINES);
    tviHelper.item.pszText		  = str.GetBuffer(0);
	tviHelper.item.iImage		  = MACHINE_IMAGE_ON_NETWORK;
	tviHelper.item.iSelectedImage = MACHINE_IMAGE_ON_NETWORK;
	tviHelper.item.lParam		  = 0;
	
    m_hMachineViewRoot = ptcVehicleView.InsertItem(&tviHelper);
}

void CMachineView::OnRButtonDown(UINT nFlags, CPoint point) 
{
    CTreeView::OnLButtonDown(nFlags, point);
    
	HTREEITEM hTreeItem;
    CMenu menuContext;
    CPoint t_point;
    CRect t_Rect;
    TVITEM tvItem;
    TCHAR szText[_MAX_PATH] = _T("");
    tvItem.pszText = szText;

    t_point = point;
    SetFocus(); 
    
    hTreeItem = GetTreeCtrl().HitTest(t_point, &nFlags); // See if any item has been it?
    if(hTreeItem != NULL)
    {/*
        CString strIP = GetSelectedItemTextInTreeView();

        if (strIP != _T(""))
        {
            if (strIP == _T("0"))
            {
                ::GetRemoteAdminView()->GetListCtrl().DeleteAllItems();
            }
            else 
            {
                RefreshProcesses(strIP);
            }
        }*/
        // Check if the item clicked was not the root, it's associated LPARAM
        // value is zero.
        tvItem.hItem = hTreeItem;
        tvItem.mask = TVIF_PARAM | TVIF_HANDLE;

        GetTreeCtrl().GetItem(&tvItem);

        if (tvItem.lParam == 0) 
        {
            BOOL bResult = GetTreeCtrl().GetItemRect(hTreeItem, &t_Rect, TRUE);
            
            if(t_Rect.PtInRect(t_point))
            {
                GetTreeCtrl().SelectItem(hTreeItem);
                ClientToScreen(&t_point);
                MFC_DocView::GetRemoteAdminView()->GetListCtrl().DeleteAllItems();    
                menuContext.LoadMenu(IDR_MACHINE_OPTIONS);
                CMenu* pMenu = menuContext.GetSubMenu(0);
                pMenu->TrackPopupMenu(TPM_LEFTALIGN, t_point.x, t_point.y, this);
            }
        }
        else
        {   
            CString strIP = GetTreeCtrl().GetItemText(hTreeItem);
                       
            BOOL bResult = GetTreeCtrl().GetItemRect(hTreeItem, &t_Rect, TRUE);
            
            if(t_Rect.PtInRect(t_point))
            {
                GetTreeCtrl().SelectItem(hTreeItem);
                ClientToScreen(&t_point);
                
                // Refress the process when even right clicked
                RefreshProcesses(strIP);
                
                menuContext.LoadMenu(IDR_MACHINE_PROPERTIES);
                CMenu* pMenu = menuContext.GetSubMenu(0);
                pMenu->TrackPopupMenu(TPM_LEFTALIGN, t_point.x, t_point.y, this);
            }
        }
    }
    

}

void CMachineView::OnAddMachine()
{
    CRemoteLogonDlg dlgRemoteLogon;
    
    if (dlgRemoteLogon.DoModal() == IDOK)
    {
        BOOL bAddMachineSuccess = AddMachine(dlgRemoteLogon.m_strRemoteIP, dlgRemoteLogon.m_strPassword, GetDocument(), MFC_DocView::GetRemoteAdminView());   

		// Show visual progress, if successful
		if (bAddMachineSuccess)
		{
			MFC_DocView::GetAppDocument()->CreateVisualThread();
		}
    }
}


BOOL CMachineView::AddMachine(CString strIP, CString strPassword, CRemoteAdminDoc* pRemoteAdminDoc, CRemoteAdminView* pRemoteAdminView)
{
	if (GetDocument()->CheckIfMachinePresent(strIP) == FALSE)
    {
		SConnectInfo* pConnectInfo     = new SConnectInfo;
        pConnectInfo->pDoc             = pRemoteAdminDoc;
        pConnectInfo->pMachineView     = this;
        pConnectInfo->pRemoteAdminView = pRemoteAdminView;
        pConnectInfo->strIP            = strIP;
        pConnectInfo->strPwd           = strPassword;
            
        unsigned threadID = 0;
            
        // Check if a thread is not processing a machine
        if (pRemoteAdminDoc->IsConnectionPending(strIP) == FALSE)
        {
			::_beginthreadex(NULL, 0, ThreadConnection::ConnectToMachine, pConnectInfo, 0, &threadID);

			return TRUE;
        }
        else
        {
            CString strFormattedErrorMsg = ErrorHandling::ConvertStringTableIDToErrorMsg(strIP, IDS_CONNECTION_PENDING);
            ::AfxMessageBox(strFormattedErrorMsg);
        }
    }
    else
    {
        CString strFormattedErrorMsg = ErrorHandling::ConvertStringTableIDToErrorMsg(strIP, IDS_MACHINE_ALREADY_PRESENT);
        ::AfxMessageBox(strFormattedErrorMsg);
    }

	return FALSE;
        
}


void CMachineView::OnDeleteMachine()
{
	TCHAR szText[_MAX_PATH] = _T("");
    TVITEM tvItem = {0};
    HTREEITEM hMachineToBeDeleted = GetTreeCtrl().GetSelectedItem();

    /*tvItem.hItem   = hMachineToBeDeleted;
	tvItem.pszText = szText;
    tvItem.mask    = TVIF_PARAM | TVIF_HANDLE | TVIF_TEXT;
    GetTreeCtrl().GetItem(&tvItem);
	GetTreeCtrl().GetItemText(hMachineToBeDeleted);

    CMachineInfo* pMachineInfo = reinterpret_cast<CMachineInfo*>(tvItem.lParam);*/

	CString strIP = GetTreeCtrl().GetItemText(hMachineToBeDeleted);
	DeleteMachineFromBeingMonitored(strIP, MFC_DocView::GetRemoteAdminView());
}    
 

void CMachineView::DeleteMachineFromBeingMonitored(CString strIP, CRemoteAdminView* pRemoteAdminView)
{
    // Disconnects the machine and frees the machine info from the internal list
    GetDocument()->DeleteAndDisconnectMachine(strIP);

	// Get the HTREEITEM for the IP
	HTREEITEM hMachineToBeDeleted = GetTreeItemForText(strIP);

    // Remove from machine from the tree
    DeleteMachineFromTree(hMachineToBeDeleted);

    // Clear the processes in the list view
    //::GetRemoteAdminView()->GetListCtrl().DeleteAllItems();
	pRemoteAdminView->GetListCtrl().DeleteAllItems();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日产精品一区| 日韩精品一区二区三区三区免费| 国产69精品久久777的优势| 狠狠狠色丁香婷婷综合激情| 久久99精品国产91久久来源| 激情图片小说一区| 成年人国产精品| 天天亚洲美女在线视频| 6080亚洲精品一区二区| 国产suv精品一区二区三区| 首页亚洲欧美制服丝腿| 欧美一级国产精品| 欧美精品一区二区三区蜜桃视频 | 欧美一区二视频| 久久免费美女视频| 亚洲高清免费在线| 国产精品一区二区视频| 欧美色区777第一页| 欧美丰满美乳xxx高潮www| 欧美亚洲图片小说| 国产免费观看久久| 天堂影院一区二区| 成人中文字幕电影| 欧美精品第1页| 一区二区三区在线高清| 国产精品911| 久久一区二区视频| 免费的国产精品| 在线视频综合导航| 天堂成人免费av电影一区| 久久久91精品国产一区二区三区| 精品国产百合女同互慰| 亚洲精品乱码久久久久久日本蜜臀| 久久国产精品露脸对白| 色偷偷88欧美精品久久久| 久久久久久久久久久99999| 亚洲免费观看高清完整版在线| 国产综合久久久久影院| 欧美一区二区在线不卡| 调教+趴+乳夹+国产+精品| 欧美日韩视频在线第一区| 国产精品欧美一级免费| 国产成人午夜视频| 国产精品美女www爽爽爽| 懂色av一区二区三区免费看| 欧美经典三级视频一区二区三区| 国产一区二区三区| 国产精品女同一区二区三区| 成人性视频网站| 日韩一区在线免费观看| 色偷偷久久人人79超碰人人澡| 一区二区三区精品在线观看| 在线一区二区三区做爰视频网站| 亚洲免费观看视频| 日韩一级二级三级| 成人激情视频网站| 亚洲va欧美va人人爽午夜| 精品国产亚洲在线| 色婷婷av一区| 久久99精品久久久久久国产越南| 国产欧美视频在线观看| 日本久久一区二区| 国产一区二区0| 一区二区三区精品视频| 亚洲人成亚洲人成在线观看图片| 国产麻豆精品theporn| 国产精品剧情在线亚洲| 2014亚洲片线观看视频免费| 欧美中文字幕不卡| 99国产一区二区三精品乱码| 黄网站免费久久| 热久久一区二区| 午夜电影久久久| 一区二区三区不卡在线观看| 国产精品美女久久久久aⅴ| 日韩免费视频一区二区| 日韩欧美高清一区| 在线成人小视频| 91麻豆精品国产91久久久使用方法| 成人综合婷婷国产精品久久蜜臀 | 51精品国自产在线| 欧美性生活久久| 精品国产网站在线观看| 欧洲在线/亚洲| 成人精品视频一区二区三区尤物| 国产精品天天摸av网| 777奇米成人网| 国产不卡在线播放| 日本不卡视频一二三区| 久久综合狠狠综合久久综合88 | 欧美日韩国产小视频在线观看| 国产成人精品免费看| 粉嫩欧美一区二区三区高清影视| 成人黄色小视频在线观看| 国产精一区二区三区| 久久99精品久久久久久久久久久久| 天使萌一区二区三区免费观看| 亚洲福利电影网| 狠狠狠色丁香婷婷综合激情| 成人网在线免费视频| 在线视频你懂得一区二区三区| 制服丝袜中文字幕亚洲| 日韩片之四级片| 久久美女艺术照精彩视频福利播放| 久久久不卡网国产精品二区| 久久欧美中文字幕| 亚洲免费在线电影| 五月天视频一区| 爽爽淫人综合网网站| 成人丝袜18视频在线观看| 在线观看日韩av先锋影音电影院| 69av一区二区三区| 国产精品视频在线看| 亚洲一区二区视频| 国产乱码一区二区三区| 欧美日韩精品欧美日韩精品一综合| 久久综合九色欧美综合狠狠| 香蕉久久夜色精品国产使用方法 | 一本大道av伊人久久综合| 欧美夫妻性生活| 亚洲天堂免费在线观看视频| 亚洲第一精品在线| 色综合天天综合在线视频| 久久人人超碰精品| 不卡电影一区二区三区| 国产日韩视频一区二区三区| 激情文学综合插| 91精品国产综合久久精品图片| 国产精品美女一区二区| 国产精品综合视频| 亚洲精品在线免费播放| 五月婷婷久久丁香| 3d成人h动漫网站入口| 麻豆成人91精品二区三区| 欧美精品在线观看播放| 亚洲色欲色欲www| 色妹子一区二区| 午夜精品久久久久久久99樱桃| 欧美日韩一区三区| 韩国成人福利片在线播放| 亚洲精品一线二线三线| 成人97人人超碰人人99| 国产欧美一区二区精品婷婷| 国产精品一二三四五| 中文字幕中文字幕在线一区| 色呦呦一区二区三区| 日韩高清不卡一区二区三区| 2欧美一区二区三区在线观看视频| 国产成人精品一区二| 国产精品国产三级国产专播品爱网| 国产不卡高清在线观看视频| 亚洲免费毛片网站| 精品国产乱码久久久久久久 | 欧美探花视频资源| 国产在线不卡视频| 欧美日本精品一区二区三区| 国产在线视视频有精品| 亚洲妇熟xx妇色黄| 国产精品成人网| 欧美一区二区女人| 成人动漫一区二区在线| 婷婷开心激情综合| 亚洲欧美综合色| 日本一区二区免费在线| 91麻豆精品国产自产在线观看一区| 狂野欧美性猛交blacked| 亚洲日本韩国一区| 亚洲欧美电影一区二区| 精品精品国产高清a毛片牛牛| 欧美午夜理伦三级在线观看| 99精品热视频| 91麻豆成人久久精品二区三区| 国产麻豆精品在线观看| 免费观看在线综合色| 午夜精品影院在线观看| 丝瓜av网站精品一区二区| 亚洲成人午夜影院| 日韩中文字幕亚洲一区二区va在线| 国产精品成人在线观看| 亚洲丝袜美腿综合| 亚洲免费视频中文字幕| 午夜激情综合网| 久久 天天综合| 丁香天五香天堂综合| 91在线视频免费91| 欧美系列亚洲系列| 欧美精品一区二区三区久久久| 欧美哺乳videos| 亚洲精品欧美综合四区| 日韩理论电影院| 亚洲图片欧美综合| 免费在线成人网| a美女胸又www黄视频久久| 91精品国产一区二区三区| 国产午夜精品美女毛片视频| 中日韩av电影| 奇米精品一区二区三区在线观看一 | 色天天综合色天天久久| 7777精品伊人久久久大香线蕉经典版下载| 欧美三级日韩三级国产三级|