fix: #56 Do not operate UI in working threads
This commit is contained in:
@@ -26,10 +26,6 @@
|
|||||||
|
|
||||||
#define UM_ICONNOTIFY WM_USER+100
|
#define UM_ICONNOTIFY WM_USER+100
|
||||||
|
|
||||||
// <20>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飨<EFBFBD><E9A3A8>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><D7B5>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>ԣ<EFBFBD>
|
|
||||||
std::vector<CFileManagerDlg *> v_FileDlg;
|
|
||||||
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飨<EFBFBD><E9A3A8>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><D7B5>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>ԣ<EFBFBD>
|
|
||||||
std::vector<CRegisterDlg *> v_RegDlg;
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@@ -186,6 +182,7 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx)
|
|||||||
ON_MESSAGE(WM_OPENSERVICESDIALOG, OnOpenServicesDialog)
|
ON_MESSAGE(WM_OPENSERVICESDIALOG, OnOpenServicesDialog)
|
||||||
ON_MESSAGE(WM_OPENREGISTERDIALOG, OnOpenRegisterDialog)
|
ON_MESSAGE(WM_OPENREGISTERDIALOG, OnOpenRegisterDialog)
|
||||||
ON_MESSAGE(WM_OPENWEBCAMDIALOG, OnOpenVideoDialog)
|
ON_MESSAGE(WM_OPENWEBCAMDIALOG, OnOpenVideoDialog)
|
||||||
|
ON_MESSAGE(WM_HANDLEMESSAGE, OnHandleMessage)
|
||||||
ON_WM_HELPINFO()
|
ON_WM_HELPINFO()
|
||||||
END_MESSAGE_MAP()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
@@ -246,7 +243,6 @@ VOID CMy2015RemoteDlg::CreatStatusBar()
|
|||||||
|
|
||||||
VOID CMy2015RemoteDlg::CreateNotifyBar()
|
VOID CMy2015RemoteDlg::CreateNotifyBar()
|
||||||
{
|
{
|
||||||
#if INDEPENDENT
|
|
||||||
m_Nid.cbSize = sizeof(NOTIFYICONDATA); //<2F><>С<EFBFBD><D0A1>ֵ
|
m_Nid.cbSize = sizeof(NOTIFYICONDATA); //<2F><>С<EFBFBD><D0A1>ֵ
|
||||||
m_Nid.hWnd = m_hWnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>CWnd<6E><64><EFBFBD><EFBFBD>
|
m_Nid.hWnd = m_hWnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>CWnd<6E><64><EFBFBD><EFBFBD>
|
||||||
m_Nid.uID = IDR_MAINFRAME; //icon ID
|
m_Nid.uID = IDR_MAINFRAME; //icon ID
|
||||||
@@ -256,7 +252,6 @@ VOID CMy2015RemoteDlg::CreateNotifyBar()
|
|||||||
CString strTips ="<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Զ<><D4B6>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
CString strTips ="<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Զ<><D4B6>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||||
lstrcpyn(m_Nid.szTip, (LPCSTR)strTips, sizeof(m_Nid.szTip) / sizeof(m_Nid.szTip[0]));
|
lstrcpyn(m_Nid.szTip, (LPCSTR)strTips, sizeof(m_Nid.szTip) / sizeof(m_Nid.szTip[0]));
|
||||||
Shell_NotifyIcon(NIM_ADD, &m_Nid); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
Shell_NotifyIcon(NIM_ADD, &m_Nid); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CMy2015RemoteDlg::CreateToolBar()
|
VOID CMy2015RemoteDlg::CreateToolBar()
|
||||||
@@ -438,10 +433,6 @@ BOOL CMy2015RemoteDlg::OnInitDialog()
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !INDEPENDENT
|
|
||||||
ShowWindow(SW_SHOW);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
timeBeginPeriod(1);
|
timeBeginPeriod(1);
|
||||||
|
|
||||||
return TRUE; // <20><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE
|
return TRUE; // <20><><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE
|
||||||
@@ -454,12 +445,6 @@ void CMy2015RemoteDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
|||||||
CAboutDlg dlgAbout;
|
CAboutDlg dlgAbout;
|
||||||
dlgAbout.DoModal();
|
dlgAbout.DoModal();
|
||||||
}
|
}
|
||||||
#if !INDEPENDENT
|
|
||||||
else if(nID == SC_CLOSE || nID == SC_MINIMIZE)
|
|
||||||
{
|
|
||||||
ShowWindow(SW_HIDE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CDialogEx::OnSysCommand(nID, lParam);
|
CDialogEx::OnSysCommand(nID, lParam);
|
||||||
@@ -585,9 +570,8 @@ void CMy2015RemoteDlg::Release(){
|
|||||||
OutputDebugStringA("======> Release\n");
|
OutputDebugStringA("======> Release\n");
|
||||||
isClosed = TRUE;
|
isClosed = TRUE;
|
||||||
ShowWindow(SW_HIDE);
|
ShowWindow(SW_HIDE);
|
||||||
#if INDEPENDENT
|
|
||||||
Shell_NotifyIcon(NIM_DELETE, &m_Nid);
|
Shell_NotifyIcon(NIM_DELETE, &m_Nid);
|
||||||
#endif
|
|
||||||
|
|
||||||
BYTE bToken = CLIENT_EXIT_WITH_SERVER ? COMMAND_BYE : SERVER_EXIT;
|
BYTE bToken = CLIENT_EXIT_WITH_SERVER ? COMMAND_BYE : SERVER_EXIT;
|
||||||
EnterCriticalSection(&m_cs);
|
EnterCriticalSection(&m_cs);
|
||||||
@@ -600,32 +584,6 @@ void CMy2015RemoteDlg::Release(){
|
|||||||
LeaveCriticalSection(&m_cs);
|
LeaveCriticalSection(&m_cs);
|
||||||
Sleep(200);
|
Sleep(200);
|
||||||
|
|
||||||
EnterCriticalSection(&m_cs);
|
|
||||||
/*
|
|
||||||
for (std::vector<CFileManagerDlg *>::iterator iter = v_FileDlg.begin();
|
|
||||||
iter != v_FileDlg.end(); ++iter)
|
|
||||||
{
|
|
||||||
CFileManagerDlg *cur = *iter;
|
|
||||||
::SendMessage(cur->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
|
||||||
while (false == cur->m_bIsClosed)
|
|
||||||
Sleep(1);
|
|
||||||
delete cur;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
for (std::vector<CRegisterDlg *>::iterator iter = v_RegDlg.begin();
|
|
||||||
iter != v_RegDlg.end(); ++iter)
|
|
||||||
{
|
|
||||||
CRegisterDlg *cur = *iter;
|
|
||||||
::SendMessage(cur->GetSafeHwnd(), WM_CLOSE, 0, 0);
|
|
||||||
while (false == cur->m_bIsClosed)
|
|
||||||
Sleep(1);
|
|
||||||
delete cur;
|
|
||||||
}
|
|
||||||
LeaveCriticalSection(&m_cs);
|
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sleep<65><70><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>ⲻ<EFBFBD><E2B2BB><EFBFBD>˳<EFBFBD>ʱ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IOCP<43><50>Ҫ<EFBFBD><D2AA><EFBFBD>ظ<EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>
|
|
||||||
Sleep(300);
|
|
||||||
|
|
||||||
if (m_iocpServer!=NULL)
|
if (m_iocpServer!=NULL)
|
||||||
{
|
{
|
||||||
delete m_iocpServer;
|
delete m_iocpServer;
|
||||||
@@ -820,13 +778,8 @@ VOID CMy2015RemoteDlg::OnOnlineDesktopManager()
|
|||||||
|
|
||||||
VOID CMy2015RemoteDlg::OnOnlineFileManager()
|
VOID CMy2015RemoteDlg::OnOnlineFileManager()
|
||||||
{
|
{
|
||||||
#if INDEPENDENT
|
|
||||||
BYTE bToken = COMMAND_LIST_DRIVE;
|
BYTE bToken = COMMAND_LIST_DRIVE;
|
||||||
SendSelectedCommand(&bToken, sizeof(BYTE));
|
SendSelectedCommand(&bToken, sizeof(BYTE));
|
||||||
#else
|
|
||||||
if(m_CList_Online.GetFirstSelectedItemPosition())
|
|
||||||
ShowMessage(FALSE, "<EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣʹ<EFBFBD><EFBFBD>");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CMy2015RemoteDlg::OnOnlineAudioManager()
|
VOID CMy2015RemoteDlg::OnOnlineAudioManager()
|
||||||
@@ -963,7 +916,60 @@ BOOL CMy2015RemoteDlg::Activate(int nPort,int nMaxConnection)
|
|||||||
VOID CALLBACK CMy2015RemoteDlg::NotifyProc(CONTEXT_OBJECT* ContextObject)
|
VOID CALLBACK CMy2015RemoteDlg::NotifyProc(CONTEXT_OBJECT* ContextObject)
|
||||||
{
|
{
|
||||||
AUTO_TICK(20);
|
AUTO_TICK(20);
|
||||||
MessageHandle(ContextObject);
|
|
||||||
|
switch (ContextObject->v1)
|
||||||
|
{
|
||||||
|
case VIDEO_DLG:
|
||||||
|
{
|
||||||
|
CVideoDlg* Dlg = (CVideoDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SERVICES_DLG:
|
||||||
|
{
|
||||||
|
CServicesDlg* Dlg = (CServicesDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case AUDIO_DLG:
|
||||||
|
{
|
||||||
|
CAudioDlg* Dlg = (CAudioDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SYSTEM_DLG:
|
||||||
|
{
|
||||||
|
CSystemDlg* Dlg = (CSystemDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHELL_DLG:
|
||||||
|
{
|
||||||
|
CShellDlg* Dlg = (CShellDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SCREENSPY_DLG:
|
||||||
|
{
|
||||||
|
CScreenSpyDlg* Dlg = (CScreenSpyDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FILEMANAGER_DLG:
|
||||||
|
{
|
||||||
|
CFileManagerDlg* Dlg = (CFileManagerDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case REGISTER_DLG:
|
||||||
|
{
|
||||||
|
CRegisterDlg* Dlg = (CRegisterDlg*)ContextObject->hDlg;
|
||||||
|
Dlg->OnReceiveComplete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
g_2015RemoteDlg->PostMessage(WM_HANDLEMESSAGE, (WPARAM)ContextObject, (LPARAM)ContextObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -986,64 +992,15 @@ VOID CALLBACK CMy2015RemoteDlg::OfflineProc(CONTEXT_OBJECT* ContextObject)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LRESULT CMy2015RemoteDlg::OnHandleMessage(WPARAM wParam, LPARAM lParam) {
|
||||||
|
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)lParam;
|
||||||
|
MessageHandle(ContextObject);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
|
VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
|
||||||
{
|
{
|
||||||
if (ContextObject->v1 > 0)
|
|
||||||
{
|
|
||||||
switch(ContextObject->v1)
|
|
||||||
{
|
|
||||||
case VIDEO_DLG:
|
|
||||||
{
|
|
||||||
CVideoDlg *Dlg = (CVideoDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SERVICES_DLG:
|
|
||||||
{
|
|
||||||
CServicesDlg *Dlg = (CServicesDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case AUDIO_DLG:
|
|
||||||
{
|
|
||||||
CAudioDlg *Dlg = (CAudioDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SYSTEM_DLG:
|
|
||||||
{
|
|
||||||
CSystemDlg *Dlg = (CSystemDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SHELL_DLG:
|
|
||||||
{
|
|
||||||
CShellDlg *Dlg = (CShellDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SCREENSPY_DLG:
|
|
||||||
{
|
|
||||||
CScreenSpyDlg *Dlg = (CScreenSpyDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case FILEMANAGER_DLG:
|
|
||||||
{
|
|
||||||
CFileManagerDlg *Dlg = (CFileManagerDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case REGISTER_DLG:
|
|
||||||
{
|
|
||||||
CRegisterDlg *Dlg = (CRegisterDlg*)ContextObject->hDlg;
|
|
||||||
Dlg->OnReceiveComplete();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (ContextObject->InDeCompressedBuffer.GetBYTE(0))
|
switch (ContextObject->InDeCompressedBuffer.GetBYTE(0))
|
||||||
{
|
{
|
||||||
case COMMAND_BYE:
|
case COMMAND_BYE:
|
||||||
@@ -1242,7 +1199,7 @@ LRESULT CMy2015RemoteDlg::OnUserOfflineMsg(WPARAM wParam, LPARAM lParam)
|
|||||||
case REGISTER_DLG:
|
case REGISTER_DLG:
|
||||||
{
|
{
|
||||||
CRegisterDlg *Dlg = (CRegisterDlg*)p->hDlg;
|
CRegisterDlg *Dlg = (CRegisterDlg*)p->hDlg;
|
||||||
//delete Dlg; //<2F><><EFBFBD><EFBFBD><E2B4A6>
|
delete Dlg; //<2F><><EFBFBD><EFBFBD><E2B4A6>
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:break;
|
default:break;
|
||||||
@@ -1395,21 +1352,6 @@ LRESULT CMy2015RemoteDlg::OnOpenRegisterDialog(WPARAM wParam, LPARAM lParam)
|
|||||||
|
|
||||||
ContextObject->v1 = REGISTER_DLG;
|
ContextObject->v1 = REGISTER_DLG;
|
||||||
ContextObject->hDlg = Dlg;
|
ContextObject->hDlg = Dlg;
|
||||||
EnterCriticalSection(&m_cs);
|
|
||||||
for (std::vector<CRegisterDlg *>::iterator iter = v_RegDlg.begin();
|
|
||||||
iter != v_RegDlg.end(); )
|
|
||||||
{
|
|
||||||
CRegisterDlg *cur = *iter;
|
|
||||||
if (cur->m_bIsClosed)
|
|
||||||
{
|
|
||||||
delete cur;
|
|
||||||
iter = v_RegDlg.erase(iter);
|
|
||||||
}else{
|
|
||||||
++iter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
v_RegDlg.push_back(Dlg);
|
|
||||||
LeaveCriticalSection(&m_cs);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,16 +10,8 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
// <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
||||||
|
|
||||||
#define INDEPENDENT 1
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#if INDEPENDENT
|
|
||||||
// <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ض<EFBFBD>ʱҲ<CAB1>˳<EFBFBD><CBB3>ͻ<EFBFBD><CDBB><EFBFBD>
|
// <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ض<EFBFBD>ʱҲ<CAB1>˳<EFBFBD><CBB3>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||||
#define CLIENT_EXIT_WITH_SERVER 0
|
#define CLIENT_EXIT_WITH_SERVER 0
|
||||||
#else
|
|
||||||
#define CLIENT_EXIT_WITH_SERVER 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// CMy2015RemoteDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
// CMy2015RemoteDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||||
class CMy2015RemoteDlg : public CDialogEx
|
class CMy2015RemoteDlg : public CDialogEx
|
||||||
@@ -61,7 +53,7 @@ public:
|
|||||||
|
|
||||||
static VOID CALLBACK NotifyProc(CONTEXT_OBJECT* ContextObject);
|
static VOID CALLBACK NotifyProc(CONTEXT_OBJECT* ContextObject);
|
||||||
static VOID CALLBACK OfflineProc(CONTEXT_OBJECT* ContextObject);
|
static VOID CALLBACK OfflineProc(CONTEXT_OBJECT* ContextObject);
|
||||||
static VOID MessageHandle(CONTEXT_OBJECT* ContextObject);
|
VOID MessageHandle(CONTEXT_OBJECT* ContextObject);
|
||||||
VOID SendSelectedCommand(PBYTE szBuffer, ULONG ulLength);
|
VOID SendSelectedCommand(PBYTE szBuffer, ULONG ulLength);
|
||||||
// <20><>ʾ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
// <20><>ʾ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||||
CListCtrl m_CList_Online;
|
CListCtrl m_CList_Online;
|
||||||
@@ -69,9 +61,9 @@ public:
|
|||||||
|
|
||||||
CStatusBar m_StatusBar; //״̬<D7B4><CCAC>
|
CStatusBar m_StatusBar; //״̬<D7B4><CCAC>
|
||||||
CTrueColorToolBar m_ToolBar;
|
CTrueColorToolBar m_ToolBar;
|
||||||
#if INDEPENDENT
|
|
||||||
NOTIFYICONDATA m_Nid;
|
NOTIFYICONDATA m_Nid;
|
||||||
#endif
|
|
||||||
CRITICAL_SECTION m_cs;
|
CRITICAL_SECTION m_cs;
|
||||||
BOOL isClosed;
|
BOOL isClosed;
|
||||||
|
|
||||||
@@ -111,6 +103,7 @@ public:
|
|||||||
afx_msg LRESULT OnOpenRegisterDialog(WPARAM wParam, LPARAM lParam);
|
afx_msg LRESULT OnOpenRegisterDialog(WPARAM wParam, LPARAM lParam);
|
||||||
afx_msg LRESULT OnOpenServicesDialog(WPARAM wParam, LPARAM lParam);
|
afx_msg LRESULT OnOpenServicesDialog(WPARAM wParam, LPARAM lParam);
|
||||||
afx_msg LRESULT OnOpenVideoDialog(WPARAM wParam, LPARAM lParam);
|
afx_msg LRESULT OnOpenVideoDialog(WPARAM wParam, LPARAM lParam);
|
||||||
|
afx_msg LRESULT OnHandleMessage(WPARAM wParam, LPARAM lParam);
|
||||||
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
|
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
|
||||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -187,6 +187,7 @@ BOOL CBuildDlg::OnInitDialog()
|
|||||||
m_ComboEncrypt.InsertString(0, "<EFBFBD><EFBFBD>");
|
m_ComboEncrypt.InsertString(0, "<EFBFBD><EFBFBD>");
|
||||||
m_ComboEncrypt.InsertString(1, "XOR");
|
m_ComboEncrypt.InsertString(1, "XOR");
|
||||||
m_ComboEncrypt.SetCurSel(0);
|
m_ComboEncrypt.SetCurSel(0);
|
||||||
|
m_ComboEncrypt.EnableWindow(FALSE);
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
#define WM_OPENWEBCAMDIALOG WM_USER+3009
|
#define WM_OPENWEBCAMDIALOG WM_USER+3009
|
||||||
|
|
||||||
#define WM_USEROFFLINEMSG WM_USER+3010
|
#define WM_USEROFFLINEMSG WM_USER+3010
|
||||||
|
#define WM_HANDLEMESSAGE WM_USER+3011
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user