Files
SimpleRemoter/client/Manager.cpp
yuanyuanxiang c54d75505e 主控端退出时被控端也退出
1、修复主控端CTalkDlg的内存泄漏问题,被控端即时消息对话框置于顶层。

2、SAFE_DELETE(ContextObject->olps)有崩溃概率。改为主控端退出时先令被控端退出,就没有内存泄漏。

3、开关音频时偶有内存泄漏,waveInCallBack线程不能正常退出。
2019-01-15 21:48:37 +08:00

53 lines
1.1 KiB
C++

// Manager.cpp: implementation of the CManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Manager.h"
#include "IOCPClient.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CManager::CManager(IOCPClient* ClientObject)
{
m_bIsDead = false;
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);
}