diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3618bdc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,66 @@
+/UIShop/Debug Unicode
+/UIShop/Release Unicode Static
+/LibUIDK/*.ncb
+/LibUIDK/*.opt
+/LibUIDK/*.plg
+*.sdf
+*.suo
+/LibUIDK/LibUIDK_VC140.VC.db
+/LibUIDK/LibUIDK_VC100.vcxproj.user
+*.aps
+/UIShop/UIShop_vs2010.opensdf
+/UIShop/UIShop_vs2010.vcxproj.user
+/UIShop/ipch/libuidk_vc100-bbcd57c9/libuidk100ud-c1e9d220.ipch
+/UIShop/ipch/uishop_vs2010-b27a1585/uishop_vs2010-4f852af6.ipch
+/LibUIDK/Debug100u
+/LibUIDK/Lib
+/UIShop/*.user
+/UIShop/ipch
+/UIShop/*.ncb
+/UIShop.1.0
+/LibUIDK/Debug2019u
+/LibUIDK/Debugu_vs2017
+/LibUIDK/Release2019su
+/UIShop/Debug
+/UIShop/Release
+/LibUIDK/.vs
+/UIShop/.vs
+/LibUIDK/Releasesu_vs2017
+/LibUIDK/Debug_vs2017
+/LibUIDK/Debugs_vs2017
+/LibUIDK/Debugsud_vs2017
+/LibUIDK/Release_vs2017
+/LibUIDK/Releases_vs2017
+/LibUIDK/Releaseu_vs2017
+/LibUIDK/x64
+/LibUIDK/ipch
+/UIShop/x64/Debug Unicode
+/UIShop/x64/Release Unicode Static
+/LibUIDK/LibUIDK_vs2017.vcxproj.user
+/LibUIDK/LibUIDK_vs2019.vcxproj.user
+/CombineImage
+/DirectHWND
+/Document
+/EnterpriseRegistryTool
+/Help/Images
+/Help/LibUIDK_CHS
+/Help/PreBuild
+/Help/UIShop Video Help
+/Help/UIShop_Help
+/Install
+/RegistryTool
+/Test
+/外包合作流程.txt
+/美工加皮肤编辑项目外包合同.doc
+/设置环境变量.bat
+/软件项目外包合同.doc
+/LibUIDK/Render回收代码.txt
+/LibUIDK/编译问题.txt
+/LibUIDK价格历史.txt
+/LibUIDK升级合同.doc
+/LibUIDK软件使用许可合同.doc
+/NT119Admin.exe
+/NT119用户使用参考手册.pdf
+/Help/Develop/UIWNDPROPERTIES内存布局.bmp
+/Help/LibUIDK函数改名.txt
+/LibUIDK/*.user
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/BtnLoginClose.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/BtnLoginClose.png
new file mode 100644
index 0000000..977d9d8
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/BtnLoginClose.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/BtnLoginMin.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/BtnLoginMin.png
new file mode 100644
index 0000000..9bef739
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/BtnLoginMin.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/Edit.bmp b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/Edit.bmp
new file mode 100644
index 0000000..0504a68
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/Edit.bmp differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_DSMAIN.bmp b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_DSMAIN.bmp
new file mode 100644
index 0000000..712ae7a
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_DSMAIN.bmp differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_EXAMINE.bmp b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_EXAMINE.bmp
new file mode 100644
index 0000000..e3d1fd5
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_EXAMINE.bmp differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_EXAMINING.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_EXAMINING.png
new file mode 100644
index 0000000..ad87c50
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_EXAMINING.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_LOGIN.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_LOGIN.png
new file mode 100644
index 0000000..d9f62a0
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/IDW_LOGIN.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/Resource.h b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/Resource.h
new file mode 100644
index 0000000..d55f6d4
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/Resource.h
@@ -0,0 +1,42 @@
+//WARNING: DO NOT EDIT OR DELETE THIS HEADER FILE!
+
+#pragma once
+
+#define IDW_LOGIN 1000
+#define IDC_BTN_MIN 1001
+#define IDC_BTN_CLOSE 1002
+#define IDC_WL_TXT_PASSWORD 1003
+#define IDC_EDT_NAME 1004
+#define IDC_WL_TXT_NAME 1005
+#define IDC_EDT_PASSWORD 1006
+#define IDC_BTN_LOGIN 1007
+#define IDW_MAIN 1008
+#define IDC_WL_TXT_TITLE 1009
+#define IDC_BTN_SKIN 1010
+#define IDC_BTN_MENU 1011
+#define IDC_CHK_MAX 1012
+#define IDC_RAD_EXAMINE 1013
+#define IDC_RAD_DSMAIN 1014
+#define IDC_RAD_VUL_REPAIR 1015
+#define IDC_RAD_SYS_REPAIR 1016
+#define IDC_RAD_TRACE_CLEANER 1017
+#define IDC_RAD_SPEEDUP 1018
+#define IDC_RAD_DNMZ 1019
+#define IDC_RAD_SOFT_MGR 1020
+#define IDC_RAD_ADV_TOOLS 1021
+#define IDC_WL_TXT_VER 1022
+#define IDC_BTN_CHECK_UPDATE 1023
+#define IDC_WL_TXT_CLOUD 1024
+#define IDC_BTN_LOGO 1025
+#define IDC_TWMGR_MAIN 1026
+#define IDW_EXAMINE_FRM 1027
+#define IDC_TWMGR_EXAMINE 1028
+#define IDW_EXAMINE 1029
+#define IDC_BTN_SCAN 1030
+#define IDW_EXAMINING 1031
+#define IDC_BTN_CANCEL 1032
+#define IDW_DSMAIN 1033
+#define IDC_BTN_1 1034
+#define IDC_BTN_2 1035
+#define IDW_WEB 1036
+#define IDC_HTMLCTRL_1 1037
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/SkinButtom.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/SkinButtom.png
new file mode 100644
index 0000000..479c399
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/SkinButtom.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/WEB.bmp b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/WEB.bmp
new file mode 100644
index 0000000..8f68a29
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/WEB.bmp differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/button_middle.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/button_middle.png
new file mode 100644
index 0000000..afc1b2b
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/button_middle.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/diagbtn_new.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/diagbtn_new.png
new file mode 100644
index 0000000..915cc95
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/diagbtn_new.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/framemod_sim.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/framemod_sim.png
new file mode 100644
index 0000000..9fe9316
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/framemod_sim.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_AdvTools.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_AdvTools.png
new file mode 100644
index 0000000..cb2ebb9
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_AdvTools.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_Examine.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_Examine.png
new file mode 100644
index 0000000..4f9ebed
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_Examine.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_SpeedupOpt.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_SpeedupOpt.png
new file mode 100644
index 0000000..8ee92e8
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_SpeedupOpt.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_SysRepair.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_SysRepair.png
new file mode 100644
index 0000000..f1d1789
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_SysRepair.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_TraceCleaner.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_TraceCleaner.png
new file mode 100644
index 0000000..29cd2da
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_TraceCleaner.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_VulRepair.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_VulRepair.png
new file mode 100644
index 0000000..a88cf10
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_VulRepair.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_diannaomenzhen.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_diannaomenzhen.png
new file mode 100644
index 0000000..b5e6b8f
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_diannaomenzhen.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_dsmain.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_dsmain.png
new file mode 100644
index 0000000..7b3a7df
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_dsmain.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_softmgr.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_softmgr.png
new file mode 100644
index 0000000..59da846
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/ico_softmgr.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/logo.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/logo.png
new file mode 100644
index 0000000..8afa00e
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/logo.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/netstateok2.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/netstateok2.png
new file mode 100644
index 0000000..c74ce49
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/netstateok2.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/scanbutton.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/scanbutton.png
new file mode 100644
index 0000000..f0271cd
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/scanbutton.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/scanbuttonS_new.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/scanbuttonS_new.png
new file mode 100644
index 0000000..5173ca9
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/scanbuttonS_new.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_close.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_close.png
new file mode 100644
index 0000000..0a0795f
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_close.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_max.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_max.png
new file mode 100644
index 0000000..02d4565
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_max.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_min.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_min.png
new file mode 100644
index 0000000..3a39ab5
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/sys_button_min.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/the.xui b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/the.xui
new file mode 100644
index 0000000..f54826a
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/the.xui
@@ -0,0 +1,587 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/title_bar_menu.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/title_bar_menu.png
new file mode 100644
index 0000000..bf5eb91
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/title_bar_menu.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/toolbar_hover.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/toolbar_hover.png
new file mode 100644
index 0000000..2ba99c8
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/toolbar_hover.png differ
diff --git a/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/toolbar_pushed.png b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/toolbar_pushed.png
new file mode 100644
index 0000000..aa23719
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/Bin/skins/SafeMgr/toolbar_pushed.png differ
diff --git a/Demo/360 Demo/V8.9/Source/ExamineFrame.cpp b/Demo/360 Demo/V8.9/Source/ExamineFrame.cpp
new file mode 100644
index 0000000..40cbf6b
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/ExamineFrame.cpp
@@ -0,0 +1,79 @@
+// ExamineFrame.cpp : implementation of the CExamineFrame class
+//
+
+#include "stdafx.h"
+#include "ExamineFrame.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CExamineFrame
+
+BEGIN_MESSAGE_MAP(CExamineFrame, CUIWnd)
+ //{{AFX_MSG_MAP(CExamineFrame)
+ ON_WM_CREATE()
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CExamineFrame construction/destruction
+
+CExamineFrame::CExamineFrame()
+{
+ m_pTWMgrExamine = NULL;
+
+}
+
+CExamineFrame::~CExamineFrame()
+{
+}
+
+void CExamineFrame::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CExamineFrame)
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CExamineFrame::InitControls()
+{
+ m_pTWMgrExamine = (CTaskWndMgr *)GetDlgWLItem(IDC_TWMGR_EXAMINE);
+ ASSERT(m_pTWMgrExamine != NULL);
+
+ return 0;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// public
+
+int CExamineFrame::SwitchTaskWnd(int nWndID)
+{
+ return m_TaskWndMgr.SwitchToTaskWindow(nWndID);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CExamineFrame message handlers
+
+int CExamineFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+ m_pTWMgrExamine->AddTaskWindow(IDW_EXAMINE, FALSE, &m_wndExamine, IDW_EXAMINE, _T("Examine"));
+ m_pTWMgrExamine->AddTaskWindow(IDW_EXAMINING, FALSE, &m_wndExamining, IDW_EXAMINING, _T("Examining"));
+ m_pTWMgrExamine->SwitchToTaskWindow(IDW_EXAMINE);
+
+ return 0;
+}
diff --git a/Demo/360 Demo/V8.9/Source/ExamineFrame.h b/Demo/360 Demo/V8.9/Source/ExamineFrame.h
new file mode 100644
index 0000000..6ebacce
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/ExamineFrame.h
@@ -0,0 +1,58 @@
+// ExamineFrame.h : interface of the CExamineFrame class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_EXAMINEFRAME_H__72DCAC07_34D6_48EA_A26F_E2B3B0E87446__INCLUDED_)
+#define AFX_EXAMINEFRAME_H__72DCAC07_34D6_48EA_A26F_E2B3B0E87446__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+#include "TaskExamineWnd.h"
+#include "TaskExaminingWnd.h"
+
+
+class CExamineFrame : public CUIWnd
+{
+public:
+ CExamineFrame();
+ virtual ~CExamineFrame();
+ void WindowID() { IDD = IDW_EXAMINE_FRM; }
+
+protected:
+ int InitControls();
+
+public:
+ int SwitchTaskWnd(int nWndID);
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CExamineFrame)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CExamineFrame)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CTaskWndMgr *m_pTWMgrExamine;
+
+protected:
+ CTaskWndMgr m_TaskWndMgr;
+ CTaskExamineWnd m_wndExamine;
+ CTaskExaminingWnd m_wndExamining;
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+//
+
+#endif // !defined(AFX_EXAMINEFRAME_H__72DCAC07_34D6_48EA_A26F_E2B3B0E87446__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/LibUIDKSkin.rc b/Demo/360 Demo/V8.9/Source/LibUIDKSkin.rc
new file mode 100644
index 0000000..4eb881a
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/LibUIDKSkin.rc
@@ -0,0 +1,107 @@
+//Microsoft Developer Studio generated resource script.
+//
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "LibUIDKSkinRc.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// LIBUIDKSKIN
+//
+
+THE.XUI LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\the.xui"
+RESOURCE.H LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\Resource.h"
+I62746E6C6F67696E636C6F7365.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\BtnLoginClose.png"
+I62746E6C6F67696E6D696E.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\BtnLoginMin.png"
+I627574746F6E5F6D6964646C65.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\button_middle.png"
+I6469616762746E5F6E6577.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\diagbtn_new.png"
+I6672616D656D6F645F73696D.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\framemod_sim.png"
+I69636F5F616476746F6F6C73.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_AdvTools.png"
+I69636F5F6469616E6E616F6D656E7A68656E.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_diannaomenzhen.png"
+I69636F5F64736D61696E.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_dsmain.png"
+I69636F5F6578616D696E65.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_Examine.png"
+I69636F5F736F66746D6772.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_softmgr.png"
+I69636F5F737065656475706F7074.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_SpeedupOpt.png"
+I69636F5F737973726570616972.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_SysRepair.png"
+I69636F5F7472616365636C65616E6572.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_TraceCleaner.png"
+I69636F5F76756C726570616972.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\ico_VulRepair.png"
+I6964775F6578616D696E696E67.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\IDW_EXAMINING.png"
+I6964775F6C6F67696E.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\IDW_LOGIN.png"
+I6C6F676F.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\logo.png"
+I6E657473746174656F6B32.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\netstateok2.png"
+I7363616E627574746F6E.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\scanbutton.png"
+I7363616E627574746F6E735F6E6577.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\scanbuttonS_new.png"
+I736B696E627574746F6D.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\SkinButtom.png"
+I7379735F627574746F6E5F636C6F7365.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\sys_button_close.png"
+I7379735F627574746F6E5F6D6178.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\sys_button_max.png"
+I7379735F627574746F6E5F6D696E.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\sys_button_min.png"
+I7469746C655F6261725F6D656E75.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\title_bar_menu.png"
+I746F6F6C6261725F686F766572.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\toolbar_hover.png"
+I746F6F6C6261725F707573686564.PNG LIBUIDKSKIN DISCARDABLE ".\\Bin\\skins\\SafeMgr\\toolbar_pushed.png"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+I65646974.BMP BITMAP DISCARDABLE ".\\Bin\\skins\\SafeMgr\\Edit.bmp"
+I6964775F64736D61696E.BMP BITMAP DISCARDABLE ".\\Bin\\skins\\SafeMgr\\IDW_DSMAIN.bmp"
+I6964775F6578616D696E65.BMP BITMAP DISCARDABLE ".\\Bin\\skins\\SafeMgr\\IDW_EXAMINE.bmp"
+I776562.BMP BITMAP DISCARDABLE ".\\Bin\\skins\\SafeMgr\\WEB.bmp"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/Demo/360 Demo/V8.9/Source/LoginDlg.cpp b/Demo/360 Demo/V8.9/Source/LoginDlg.cpp
new file mode 100644
index 0000000..3c633af
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/LoginDlg.cpp
@@ -0,0 +1,96 @@
+// LoginDlg.cpp : implementation of the CLoginDlg class
+//
+
+#include "stdafx.h"
+#include "LoginDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CLoginDlg
+
+BEGIN_MESSAGE_MAP(CLoginDlg, CUIWnd)
+ //{{AFX_MSG_MAP(CLoginDlg)
+ ON_WM_CREATE()
+ ON_BN_CLICKED(IDC_BTN_LOGIN, OnBtnLogin)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CLoginDlg construction/destruction
+
+CLoginDlg::CLoginDlg()
+{
+ m_pBtnMin = NULL;
+ m_pBtnClose = NULL;
+ m_pWLTxtPassword = NULL;
+ m_pEdtName = NULL;
+ m_pWLTxtName = NULL;
+ m_pEdtPassword = NULL;
+ m_pBtnLogin = NULL;
+
+ m_strName = _T("");
+ m_strPassword = _T("");
+}
+
+CLoginDlg::~CLoginDlg()
+{
+}
+
+void CLoginDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CLoginDlg)
+ DDX_Text(pDX, IDC_EDT_NAME, m_strName);
+ DDX_Text(pDX, IDC_EDT_PASSWORD, m_strPassword);
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CLoginDlg::InitControls()
+{
+ m_pBtnMin = (CSkinButton *)GetDlgItem(IDC_BTN_MIN);
+ ASSERT(m_pBtnMin->GetSafeHwnd() != NULL);
+ m_pBtnClose = (CSkinButton *)GetDlgItem(IDC_BTN_CLOSE);
+ ASSERT(m_pBtnClose->GetSafeHwnd() != NULL);
+ m_pWLTxtPassword = (CWLText *)GetDlgWLItem(IDC_WL_TXT_PASSWORD);
+ ASSERT(m_pWLTxtPassword != NULL);
+ m_pEdtName = (CSkinEdit *)GetDlgItem(IDC_EDT_NAME);
+ ASSERT(m_pEdtName->GetSafeHwnd() != NULL);
+ m_pWLTxtName = (CWLText *)GetDlgWLItem(IDC_WL_TXT_NAME);
+ ASSERT(m_pWLTxtName != NULL);
+ m_pEdtPassword = (CSkinEdit *)GetDlgItem(IDC_EDT_PASSWORD);
+ ASSERT(m_pEdtPassword->GetSafeHwnd() != NULL);
+ m_pBtnLogin = (CSkinButton *)GetDlgItem(IDC_BTN_LOGIN);
+ ASSERT(m_pBtnLogin->GetSafeHwnd() != NULL);
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CLoginDlg message handlers
+
+int CLoginDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+
+ return 0;
+}
+
+void CLoginDlg::OnBtnLogin()
+{
+ EndDialog(IDC_BTN_LOGIN);
+}
diff --git a/Demo/360 Demo/V8.9/Source/LoginDlg.h b/Demo/360 Demo/V8.9/Source/LoginDlg.h
new file mode 100644
index 0000000..0c1bb95
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/LoginDlg.h
@@ -0,0 +1,58 @@
+// LoginDlg.h : interface of the CLoginDlg class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_LOGINDLG_H__8B1F6E08_367F_4005_9EEF_D8BD7C9D0452__INCLUDED_)
+#define AFX_LOGINDLG_H__8B1F6E08_367F_4005_9EEF_D8BD7C9D0452__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class CLoginDlg : public CUIWnd
+{
+public:
+ CLoginDlg();
+ virtual ~CLoginDlg();
+ void WindowID() { IDD = IDW_LOGIN; }
+
+protected:
+ int InitControls();
+
+public:
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CLoginDlg)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CLoginDlg)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ afx_msg void OnBtnLogin();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CSkinButton *m_pBtnMin;
+ CSkinButton *m_pBtnClose;
+ CWLText *m_pWLTxtPassword;
+ CSkinEdit *m_pEdtName;
+ CWLText *m_pWLTxtName;
+ CSkinEdit *m_pEdtPassword;
+ CSkinButton *m_pBtnLogin;
+
+public:
+ CString m_strName;
+ CString m_strPassword;
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+//
+
+#endif // !defined(AFX_LOGINDLG_H__8B1F6E08_367F_4005_9EEF_D8BD7C9D0452__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/MainFrm.cpp b/Demo/360 Demo/V8.9/Source/MainFrm.cpp
new file mode 100644
index 0000000..6296a85
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/MainFrm.cpp
@@ -0,0 +1,172 @@
+// MainFrm.cpp : implementation of the CMainFrame class
+//
+
+#include "stdafx.h"
+#include "SafeMgr.h"
+#include "MainFrm.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CMainFrame
+
+BEGIN_MESSAGE_MAP(CMainFrame, CUIWnd)
+ //{{AFX_MSG_MAP(CMainFrame)
+ ON_WM_CREATE()
+ ON_BN_CLICKED(IDC_BTN_SKIN, OnBtnSkin)
+ ON_BN_CLICKED(IDC_BTN_MENU, OnBtnMenu)
+ ON_BN_CLICKED(IDC_BTN_CHECK_UPDATE, OnBtnCheckUpdate)
+ ON_BN_CLICKED(IDC_BTN_LOGO, OnBtnLogo)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CMainFrame construction/destruction
+
+CMainFrame::CMainFrame()
+{
+ m_pWLTxtTitle = NULL;
+ m_pBtnSkin = NULL;
+ m_pBtnMenu = NULL;
+ m_pBtnMin = NULL;
+ m_pChkMax = NULL;
+ m_pBtnClose = NULL;
+ m_pRadExamine = NULL;
+ m_pRadDsmain = NULL;
+ m_pRadVulRepair = NULL;
+ m_pRadSysRepair = NULL;
+ m_pRadTraceCleaner = NULL;
+ m_pRadSpeedup = NULL;
+ m_pRadDnmz = NULL;
+ m_pRadSoftMgr = NULL;
+ m_pRadAdvTools = NULL;
+ m_pWLTxtVer = NULL;
+ m_pBtnCheckUpdate = NULL;
+ m_pWLTxtCloud = NULL;
+ m_pBtnLogo = NULL;
+ m_pTWMgrMain = NULL;
+
+ m_bMax = FALSE;
+ // TODO: add member initialization code here
+
+}
+
+CMainFrame::~CMainFrame()
+{
+}
+
+void CMainFrame::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CMainFrame)
+ DDX_Check(pDX, IDC_CHK_MAX, m_bMax);
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CMainFrame::InitControls()
+{
+ m_pWLTxtTitle = (CWLText *)GetDlgWLItem(IDC_WL_TXT_TITLE);
+ ASSERT(m_pWLTxtTitle != NULL);
+ m_pBtnSkin = (CSkinButton *)GetDlgItem(IDC_BTN_SKIN);
+ ASSERT(m_pBtnSkin->GetSafeHwnd() != NULL);
+ m_pBtnMenu = (CSkinButton *)GetDlgItem(IDC_BTN_MENU);
+ ASSERT(m_pBtnMenu->GetSafeHwnd() != NULL);
+ m_pBtnMin = (CSkinButton *)GetDlgItem(IDC_BTN_MIN);
+ ASSERT(m_pBtnMin->GetSafeHwnd() != NULL);
+ m_pChkMax = (CSkinButton *)GetDlgItem(IDC_CHK_MAX);
+ ASSERT(m_pChkMax->GetSafeHwnd() != NULL);
+ m_pBtnClose = (CSkinButton *)GetDlgItem(IDC_BTN_CLOSE);
+ ASSERT(m_pBtnClose->GetSafeHwnd() != NULL);
+ m_pRadExamine = (CSkinButton *)GetDlgItem(IDC_RAD_EXAMINE);
+ ASSERT(m_pRadExamine->GetSafeHwnd() != NULL);
+ m_pRadDsmain = (CSkinButton *)GetDlgItem(IDC_RAD_DSMAIN);
+ ASSERT(m_pRadDsmain->GetSafeHwnd() != NULL);
+ m_pRadVulRepair = (CSkinButton *)GetDlgItem(IDC_RAD_VUL_REPAIR);
+ ASSERT(m_pRadVulRepair->GetSafeHwnd() != NULL);
+ m_pRadSysRepair = (CSkinButton *)GetDlgItem(IDC_RAD_SYS_REPAIR);
+ ASSERT(m_pRadSysRepair->GetSafeHwnd() != NULL);
+ m_pRadTraceCleaner = (CSkinButton *)GetDlgItem(IDC_RAD_TRACE_CLEANER);
+ ASSERT(m_pRadTraceCleaner->GetSafeHwnd() != NULL);
+ m_pRadSpeedup = (CSkinButton *)GetDlgItem(IDC_RAD_SPEEDUP);
+ ASSERT(m_pRadSpeedup->GetSafeHwnd() != NULL);
+ m_pRadDnmz = (CSkinButton *)GetDlgItem(IDC_RAD_DNMZ);
+ ASSERT(m_pRadDnmz->GetSafeHwnd() != NULL);
+ m_pRadSoftMgr = (CSkinButton *)GetDlgItem(IDC_RAD_SOFT_MGR);
+ ASSERT(m_pRadSoftMgr->GetSafeHwnd() != NULL);
+ m_pRadAdvTools = (CSkinButton *)GetDlgItem(IDC_RAD_ADV_TOOLS);
+ ASSERT(m_pRadAdvTools->GetSafeHwnd() != NULL);
+ m_pWLTxtVer = (CWLText *)GetDlgWLItem(IDC_WL_TXT_VER);
+ ASSERT(m_pWLTxtVer != NULL);
+ m_pBtnCheckUpdate = (CSkinButton *)GetDlgItem(IDC_BTN_CHECK_UPDATE);
+ ASSERT(m_pBtnCheckUpdate->GetSafeHwnd() != NULL);
+ m_pWLTxtCloud = (CWLText *)GetDlgWLItem(IDC_WL_TXT_CLOUD);
+ ASSERT(m_pWLTxtCloud != NULL);
+ m_pBtnLogo = (CSkinButton *)GetDlgItem(IDC_BTN_LOGO);
+ ASSERT(m_pBtnLogo->GetSafeHwnd() != NULL);
+ m_pTWMgrMain = (CTaskWndMgr *)GetDlgWLItem(IDC_TWMGR_MAIN);
+ ASSERT(m_pTWMgrMain != NULL);
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CMainFrame message handlers
+
+int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+ CenterWindow();
+
+ // TODO: Add your message handler code here
+
+ m_pTWMgrMain->AddTaskWindow(IDC_RAD_EXAMINE, TRUE, &m_wndExamineFrame, IDW_EXAMINE_FRM);
+ m_pTWMgrMain->AddTaskWindow(IDC_RAD_DSMAIN, TRUE, &m_wndDSMain, IDW_DSMAIN);
+ m_pTWMgrMain->AddTaskWindow(IDC_RAD_VUL_REPAIR, TRUE, &m_wndWeb, IDW_WEB);
+ m_pTWMgrMain->SwitchToTaskWindow(IDC_RAD_EXAMINE);
+
+ return 0;
+}
+
+void CMainFrame::OnBtnSkin()
+{
+ static BOOL bFlag = TRUE;
+ if (bFlag)
+ {
+ SetBkColor(RGB(18, 94, 22));
+ bFlag = FALSE;
+ }
+ else
+ {
+ SetBkColor(RGB(15, 86, 150));
+ bFlag = TRUE;
+ }
+}
+
+void CMainFrame::OnBtnMenu()
+{
+ AfxMessageBox(_T("IDC_BTN_MENU"));
+}
+
+void CMainFrame::OnBtnCheckUpdate()
+{
+ ShellExecute(NULL, _T("Open"), _T("http://www.iuishop.com"), NULL, NULL, SW_SHOW);
+}
+
+void CMainFrame::OnBtnLogo()
+{
+ ShellExecute(NULL, _T("Open"), _T("http://www.iuishop.com"), NULL, NULL, SW_SHOW);
+}
diff --git a/Demo/360 Demo/V8.9/Source/MainFrm.h b/Demo/360 Demo/V8.9/Source/MainFrm.h
new file mode 100644
index 0000000..cc8caf3
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/MainFrm.h
@@ -0,0 +1,85 @@
+// MainFrm.h : interface of the CMainFrame class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_MAINFRM_H__69BBC78E_4403_4464_90C1_0F728E1441D4__INCLUDED_)
+#define AFX_MAINFRM_H__69BBC78E_4403_4464_90C1_0F728E1441D4__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+#include "ExamineFrame.h"
+#include "TaskDSMainWnd.h"
+#include "TaskWebWnd.h"
+
+
+class CMainFrame : public CUIWnd
+{
+public:
+ CMainFrame();
+ virtual ~CMainFrame();
+ void WindowID() { IDD = IDW_MAIN; }
+
+protected:
+ int InitControls();
+
+public:
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CMainFrame)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CMainFrame)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ afx_msg void OnBtnSkin();
+ afx_msg void OnBtnMenu();
+ afx_msg void OnBtnCheckUpdate();
+ afx_msg void OnBtnLogo();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CWLText *m_pWLTxtTitle;
+ CSkinButton *m_pBtnSkin;
+ CSkinButton *m_pBtnMenu;
+ CSkinButton *m_pBtnMin;
+ CSkinButton *m_pChkMax;
+ CSkinButton *m_pBtnClose;
+ CSkinButton *m_pRadExamine;
+ CSkinButton *m_pRadDsmain;
+ CSkinButton *m_pRadVulRepair;
+ CSkinButton *m_pRadSysRepair;
+ CSkinButton *m_pRadTraceCleaner;
+ CSkinButton *m_pRadSpeedup;
+ CSkinButton *m_pRadDnmz;
+ CSkinButton *m_pRadSoftMgr;
+ CSkinButton *m_pRadAdvTools;
+ CWLText *m_pWLTxtVer;
+ CSkinButton *m_pBtnCheckUpdate;
+ CWLText *m_pWLTxtCloud;
+ CSkinButton *m_pBtnLogo;
+ CTaskWndMgr *m_pTWMgrMain;
+
+public:
+ BOOL m_bMax;
+
+protected:
+ CTaskWndMgr m_TaskWndMgr;
+ CExamineFrame m_wndExamineFrame;
+ CTaskDSMainWnd m_wndDSMain;
+ CTaskWebWnd m_wndWeb;
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_MAINFRM_H__69BBC78E_4403_4464_90C1_0F728E1441D4__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/Resource.h b/Demo/360 Demo/V8.9/Source/Resource.h
new file mode 100644
index 0000000..658d7b4
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/Resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by SafeMgr.rc
+//
+#define IDR_MAINFRAME 128
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 130
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr.cpp b/Demo/360 Demo/V8.9/Source/SafeMgr.cpp
new file mode 100644
index 0000000..a8af9a0
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr.cpp
@@ -0,0 +1,135 @@
+// SafeMgr.cpp : Defines the class behaviors for the application.
+//
+
+#include "stdafx.h"
+#include "SafeMgr.h"
+#include "MainFrm.h"
+#include "LoginDlg.h"
+
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CSafeMgrApp
+
+BEGIN_MESSAGE_MAP(CSafeMgrApp, CWinApp)
+ //{{AFX_MSG_MAP(CSafeMgrApp)
+ // NOTE - the ClassWizard will add and remove mapping macros here.
+ // DO NOT EDIT what you see in these blocks of generated code!
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CSafeMgrApp construction
+
+CSafeMgrApp::CSafeMgrApp()
+{
+ // TODO: add construction code here,
+ // Place all significant initialization in InitInstance
+ m_pFrame = NULL;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// The one and only CSafeMgrApp object
+
+CSafeMgrApp theApp;
+
+/////////////////////////////////////////////////////////////////////////////
+// CSafeMgrApp initialization
+
+BOOL CSafeMgrApp::InitInstance()
+{
+ // Standard initialization
+ // If you are not using these features and wish to reduce the size
+ // of your final executable, you should remove from the following
+ // the specific initialization routines you do not need.
+
+ // Change the registry key under which our settings are stored.
+ // TODO: You should modify this string to be something appropriate
+ // such as the name of your company or organization.
+ SetRegistryKey(_T("Local AppWizard-Generated Applications"));
+
+ // Change the path under which your skin files are stored.
+ if (CUIMgr::SetUIPath(_T("the.xui"), _T("RESOURCE.H"), _T("LIBUIDKSKIN")) != 0)
+// if (CUIMgr::SetUIPath(_T("Skins\\SafeMgr\\the.xui")) != 0)
+ {
+ AfxMessageBox(_T("Failed to set the ui path or the ui path isn't exist!"));
+ return FALSE;
+ }
+
+ CLoginDlg dlg;
+ int nRet = dlg.DoModal();
+ if (nRet != IDC_BTN_LOGIN)
+ return FALSE;
+
+ // To create the main window, this code creates a new frame window
+ // object and then sets it as the application's main window object.
+
+ m_pFrame = new CMainFrame;
+ m_pMainWnd = m_pFrame;
+
+ // create and load the frame with its resources
+
+ BOOL bRet = m_pFrame->LoadFrame(IDR_MAINFRAME,
+ WS_POPUP|WS_CLIPCHILDREN|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX, NULL);
+
+ if (!bRet)
+ {
+ DWORD dwLastError = m_pFrame->GetLastCreateError();
+ switch (dwLastError)
+ {
+ case E_LOADBMPB: // 1 failed to load the base image
+ case E_LOADBMPN: // 2 failed to load the background image of normal status(end by _N.bmp)
+ case E_LOADBMPH: // 3 failed to laod the background image of highlight status(end by _H.bmp)
+ case E_LOADBMPD: // 4 failed to load the background image of disable status(end by _D.bmp)
+ case E_LOADBMPS: // 5 failed to load the background image of selected status(end by _S.bmp)
+ case E_LOADBMPC: // 6 failed to load the background image of checked status(end by _C.bmp)
+ TRACE(_T("Failed to load background image"));
+ break;
+ case E_ATTACHBMPB: // 50 failed to attach the HBITMAP of base image to CBitmap object
+ case E_ATTACHBMPN: // 51 failed to attach the HBITMAP of normal image to CBitmap object
+ case E_ATTACHBMPH: // 52 failed to attach the HBITMAP of highlight image to CBitmap object
+ case E_ATTACHBMPD: // 53 failed to attach the HBITMAP of disable image to CBitmap object
+ case E_ATTACHBMPS: // 54 failed to attach the HBITMAP of selected image to CBitmap object
+ case E_ATTACHBMPC: // 55 failed to attach the HBITMAP of checked image to CBitmap object
+ case E_ADJUSTCHILD:// 56 failed to adjust the child controls while change the skin
+ TRACE(_T("Failed to attach bitmap to CBitmao object"));
+ break;
+ case E_CREATECHILD:// 110 failed to create the child window
+ TRACE(_T("Failed to create child windows"));
+ break;
+ default:
+ break;
+ }
+ return FALSE;
+ }
+
+ // The one and only window has been initialized, so show and update it.
+ m_pFrame->ShowWindow(SW_SHOW);
+ m_pFrame->UpdateWindow();
+
+ return TRUE;
+}
+
+int CSafeMgrApp::ExitInstance()
+{
+ if (m_pFrame != NULL)
+ {
+ delete m_pFrame;
+ m_pFrame = NULL;
+ }
+
+ CUIMgr::ReleaseSkin();
+
+ // TODO: Add your specialized code here and/or call the base class
+
+ return CWinApp::ExitInstance();
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CSafeMgrApp message handlers
+
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr.h b/Demo/360 Demo/V8.9/Source/SafeMgr.h
new file mode 100644
index 0000000..4507bbe
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr.h
@@ -0,0 +1,56 @@
+// SafeMgr.h : main header file for the SAFEMGR application
+//
+
+#if !defined(AFX_SAFEMGR_H__479B3322_A02E_4FE1_810A_BBD6AFC5DD72__INCLUDED_)
+#define AFX_SAFEMGR_H__479B3322_A02E_4FE1_810A_BBD6AFC5DD72__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#ifndef __AFXWIN_H__
+ #error include 'stdafx.h' before including this file for PCH
+#endif
+
+#include "resource.h" // main symbols
+
+class CMainFrame;
+
+/////////////////////////////////////////////////////////////////////////////
+// CSafeMgrApp:
+// See SafeMgr.cpp for the implementation of this class
+//
+
+class CSafeMgrApp : public CWinApp
+{
+public:
+ CSafeMgrApp();
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CSafeMgrApp)
+ public:
+ virtual BOOL InitInstance();
+ virtual int ExitInstance();
+ //}}AFX_VIRTUAL
+
+// Implementation
+
+public:
+ //{{AFX_MSG(CSafeMgrApp)
+ // NOTE - the ClassWizard will add and remove member functions here.
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+private:
+ CMainFrame *m_pFrame;
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_SAFEMGR_H__479B3322_A02E_4FE1_810A_BBD6AFC5DD72__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr.rc b/Demo/360 Demo/V8.9/Source/SafeMgr.rc
new file mode 100644
index 0000000..15becdd
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr.rc
@@ -0,0 +1,157 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 9, 1\r\n"
+ "#pragma code_page(1252)\r\n"
+ "#endif //_WIN32\r\n"
+ "#include ""res\\SafeMgr.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
+ "#include ""afxres.rc"" // Standard components\r\n"
+ "#include ""LibUIDKSkin.rc""\r\n"
+ "#endif\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDR_MAINFRAME ICON DISCARDABLE "res\\SafeMgr.ico"
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904B0"
+ BEGIN
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "SafeMgr MFC Application\0"
+ VALUE "FileVersion", "1, 0, 0, 1\0"
+ VALUE "InternalName", "SafeMgr\0"
+ VALUE "LegalCopyright", "Copyright (C) 2008\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "SafeMgr.EXE\0"
+ VALUE "ProductName", "SafeMgr Application\0"
+ VALUE "ProductVersion", "1, 0, 0, 1\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE PRELOAD DISCARDABLE
+BEGIN
+ IDR_MAINFRAME "SafeMgr"
+END
+
+STRINGTABLE PRELOAD DISCARDABLE
+BEGIN
+ AFX_IDS_APP_TITLE "SafeMgr"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#define _AFX_NO_SPLITTER_RESOURCES
+#define _AFX_NO_OLE_RESOURCES
+#define _AFX_NO_TRACKER_RESOURCES
+#define _AFX_NO_PROPERTY_RESOURCES
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE 9, 1
+#pragma code_page(1252)
+#endif //_WIN32
+#include "res\SafeMgr.rc2" // non-Microsoft Visual C++ edited resources
+#include "afxres.rc" // Standard components
+#include "LibUIDKSkin.rc"
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr.sln b/Demo/360 Demo/V8.9/Source/SafeMgr.sln
new file mode 100644
index 0000000..e9d3db5
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{007CA833-E319-4E26-A29E-260C0572101C}") = "SafeMgr", "SafeMgr.vcproj", "{98261698-4758-474C-BA65-79238B467E52}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {98261698-4758-474C-BA65-79238B467E52}.Debug|Win32.ActiveCfg = Debug|Win32
+ {98261698-4758-474C-BA65-79238B467E52}.Debug|Win32.Build.0 = Debug|Win32
+ {98261698-4758-474C-BA65-79238B467E52}.Release|Win32.ActiveCfg = Release|Win32
+ {98261698-4758-474C-BA65-79238B467E52}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr.vcproj b/Demo/360 Demo/V8.9/Source/SafeMgr.vcproj
new file mode 100644
index 0000000..6ca5165
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr.vcproj
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr_VC10.sln b/Demo/360 Demo/V8.9/Source/SafeMgr_VC10.sln
new file mode 100644
index 0000000..d9ae6e6
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr_VC10.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{A30A9037-1598-49B2-91A0-901E94FB8AE1}") = "SafeMgr", "SafeMgr_VC10.vcxproj", "{79851765-15FC-4F2B-A622-477AC2C436FA}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {79851765-15FC-4F2B-A622-477AC2C436FA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {79851765-15FC-4F2B-A622-477AC2C436FA}.Debug|Win32.Build.0 = Debug|Win32
+ {79851765-15FC-4F2B-A622-477AC2C436FA}.Release|Win32.ActiveCfg = Release|Win32
+ {79851765-15FC-4F2B-A622-477AC2C436FA}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Demo/360 Demo/V8.9/Source/SafeMgr_VC10.vcxproj b/Demo/360 Demo/V8.9/Source/SafeMgr_VC10.vcxproj
new file mode 100644
index 0000000..2fb7aa4
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/SafeMgr_VC10.vcxproj
@@ -0,0 +1,139 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {79851765-15FC-4F2B-A622-477AC2C436FA}
+ SafeMgr
+ MFCProj
+
+
+
+ Application
+ true
+ Unicode
+ Dynamic
+
+
+ Application
+ false
+ true
+ Unicode
+ Static
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectName)_D
+ $(SolutionDir)Bin\
+ $(LIBUIDKINCLUDE);$(IncludePath)
+ $(LIBUIDKLIB);$(LibraryPath)
+
+
+ false
+ $(SolutionDir)Bin\
+ $(LIBUIDKINCLUDE);$(IncludePath)
+ $(LIBUIDKLIB);$(LibraryPath)
+
+
+
+ Use
+ Level3
+ Disabled
+ WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+
+
+ false
+ true
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ 0x0409
+ _DEBUG;%(PreprocessorDefinitions)
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+
+
+ false
+ true
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ 0x0409
+ NDEBUG;%(PreprocessorDefinitions)
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Demo/360 Demo/V8.9/Source/StdAfx.cpp b/Demo/360 Demo/V8.9/Source/StdAfx.cpp
new file mode 100644
index 0000000..fc36920
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/StdAfx.cpp
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// SafeMgr.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+
+
diff --git a/Demo/360 Demo/V8.9/Source/StdAfx.h b/Demo/360 Demo/V8.9/Source/StdAfx.h
new file mode 100644
index 0000000..57d5e78
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/StdAfx.h
@@ -0,0 +1,230 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#if !defined(AFX_STDAFX_H__B6AB0D5D_8102_464F_8B25_12DB1345C9DA__INCLUDED_)
+#define AFX_STDAFX_H__B6AB0D5D_8102_464F_8B25_12DB1345C9DA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
+
+#include // MFC core and standard components
+#include // MFC extensions
+#include // MFC support for Internet Explorer 4 Common Controls
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include // MFC support for Windows Common Controls
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+#ifdef _UNICODE
+ #if defined _M_IX86
+ #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
+ #elif defined _M_IA64
+ #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
+ #elif defined _M_X64
+ #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
+ #else
+ #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
+ #endif
+#endif
+
+
+#include "Bin/Skins/SafeMgr/Resource.h"
+#include
+using namespace LibUIDK;
+
+#if(_MSC_VER == 1200) // VC6.0
+ #ifdef _DEBUG
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK60ud.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs60ud.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK60d.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs60d.lib")
+ #endif
+ #endif // end _UNICODE
+ #else // Release
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK60u.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs60u.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK60.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs60.lib")
+ #endif
+ #endif // end _UNICODE
+ #endif
+#endif
+#if (_MSC_VER == 1310) // VC2003
+ #ifdef _DEBUG
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK71ud.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs71ud.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK71d.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs71d.lib")
+ #endif
+ #endif // end _UNICODE
+ #else // Release
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK71u.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs71u.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK71.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs71.lib")
+ #endif
+ #endif // end _UNICODE
+ #endif
+#endif
+#if (_MSC_VER == 1400) // VC2005
+ #ifdef _DEBUG
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK80ud.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs80ud.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK80d.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs80d.lib")
+ #endif
+ #endif // end _UNICODE
+ #else // Release
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK80u.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs80u.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK80.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs80.lib")
+ #endif
+ #endif // end _UNICODE
+ #endif
+#endif
+#if (_MSC_VER == 1500) // VC2008
+ #ifdef _DEBUG
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK90ud.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs90ud.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK90d.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs90d.lib")
+ #endif
+ #endif // end _UNICODE
+ #else // Release
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK90u.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs90u.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK90.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs90.lib")
+ #endif
+ #endif // end _UNICODE
+ #endif
+#endif
+#if (_MSC_VER == 1600) // VC2010
+ #ifdef _DEBUG
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK100ud.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs100ud.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK100d.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs100d.lib")
+ #endif
+ #endif // end _UNICODE
+ #else // Release
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK100u.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs100u.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK100.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs100.lib")
+ #endif
+ #endif // end _UNICODE
+ #endif
+#endif
+#if (_MSC_VER == 1700) // VC2012
+ #ifdef _DEBUG
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK110ud.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs110ud.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK110d.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs110d.lib")
+ #endif
+ #endif // end _UNICODE
+ #else // Release
+ #ifdef _UNICODE
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK110u.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs110u.lib")
+ #endif
+ #else // ANSI
+ #ifdef _AFXDLL
+ #pragma comment (lib, "LibUIDK110.lib")
+ #else // Static
+ #pragma comment (lib, "LibUIDKs110.lib")
+ #endif
+ #endif // end _UNICODE
+ #endif
+#endif
+
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_STDAFX_H__B6AB0D5D_8102_464F_8B25_12DB1345C9DA__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/TaskDSMainWnd.cpp b/Demo/360 Demo/V8.9/Source/TaskDSMainWnd.cpp
new file mode 100644
index 0000000..73805f6
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskDSMainWnd.cpp
@@ -0,0 +1,83 @@
+// TaskDSMainWnd.cpp : implementation of the CTaskDSMainWnd class
+//
+
+#include "stdafx.h"
+#include "TaskDSMainWnd.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskDSMainWnd
+
+BEGIN_MESSAGE_MAP(CTaskDSMainWnd, CUIWnd)
+ //{{AFX_MSG_MAP(CTaskDSMainWnd)
+ ON_WM_CREATE()
+ ON_BN_CLICKED(IDC_BTN_1, OnBtn1)
+ ON_BN_CLICKED(IDC_BTN_2, OnBtn2)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskDSMainWnd construction/destruction
+
+CTaskDSMainWnd::CTaskDSMainWnd()
+{
+ m_pBtn1 = NULL;
+ m_pBtn2 = NULL;
+
+}
+
+CTaskDSMainWnd::~CTaskDSMainWnd()
+{
+}
+
+void CTaskDSMainWnd::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CTaskDSMainWnd)
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CTaskDSMainWnd::InitControls()
+{
+ m_pBtn1 = (CSkinButton *)GetDlgItem(IDC_BTN_1);
+ ASSERT(m_pBtn1->GetSafeHwnd() != NULL);
+ m_pBtn2 = (CSkinButton *)GetDlgItem(IDC_BTN_2);
+ ASSERT(m_pBtn2->GetSafeHwnd() != NULL);
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskDSMainWnd message handlers
+
+int CTaskDSMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+
+ return 0;
+}
+
+void CTaskDSMainWnd::OnBtn1()
+{
+ AfxMessageBox(_T("IDC_BTN_1"));
+}
+
+void CTaskDSMainWnd::OnBtn2()
+{
+ AfxMessageBox(_T("IDC_BTN_2"));
+}
diff --git a/Demo/360 Demo/V8.9/Source/TaskDSMainWnd.h b/Demo/360 Demo/V8.9/Source/TaskDSMainWnd.h
new file mode 100644
index 0000000..7619d71
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskDSMainWnd.h
@@ -0,0 +1,52 @@
+// TaskDSMainWnd.h : interface of the CTaskDSMainWnd class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_TASKDSMAINWND_H__5E1A2AF6_0462_4874_98B6_D2574778D5EA__INCLUDED_)
+#define AFX_TASKDSMAINWND_H__5E1A2AF6_0462_4874_98B6_D2574778D5EA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class CTaskDSMainWnd : public CUIWnd
+{
+public:
+ CTaskDSMainWnd();
+ virtual ~CTaskDSMainWnd();
+ void WindowID() { IDD = IDW_DSMAIN; }
+
+protected:
+ int InitControls();
+
+public:
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CTaskDSMainWnd)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CTaskDSMainWnd)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ afx_msg void OnBtn1();
+ afx_msg void OnBtn2();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CSkinButton *m_pBtn1;
+ CSkinButton *m_pBtn2;
+
+public:
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+//
+
+#endif // !defined(AFX_TASKDSMAINWND_H__5E1A2AF6_0462_4874_98B6_D2574778D5EA__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/TaskExamineWnd.cpp b/Demo/360 Demo/V8.9/Source/TaskExamineWnd.cpp
new file mode 100644
index 0000000..02163cc
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskExamineWnd.cpp
@@ -0,0 +1,76 @@
+// TaskExamineWnd.cpp : implementation of the CTaskExamineWnd class
+//
+
+#include "stdafx.h"
+#include "TaskExamineWnd.h"
+#include "ExamineFrame.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskExamineWnd
+
+BEGIN_MESSAGE_MAP(CTaskExamineWnd, CUIWnd)
+ //{{AFX_MSG_MAP(CTaskExamineWnd)
+ ON_WM_CREATE()
+ ON_BN_CLICKED(IDC_BTN_SCAN, OnBtnScan)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskExamineWnd construction/destruction
+
+CTaskExamineWnd::CTaskExamineWnd()
+{
+ m_pBtnScan = NULL;
+
+}
+
+CTaskExamineWnd::~CTaskExamineWnd()
+{
+}
+
+void CTaskExamineWnd::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CTaskExamineWnd)
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CTaskExamineWnd::InitControls()
+{
+ m_pBtnScan = (CSkinButton *)GetDlgItem(IDC_BTN_SCAN);
+ ASSERT(m_pBtnScan->GetSafeHwnd() != NULL);
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskExamineWnd message handlers
+
+int CTaskExamineWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+
+ return 0;
+}
+
+void CTaskExamineWnd::OnBtnScan()
+{
+ CExamineFrame *pParent = (CExamineFrame *)GetParent();
+ pParent->SwitchTaskWnd(IDW_EXAMINING);
+}
diff --git a/Demo/360 Demo/V8.9/Source/TaskExamineWnd.h b/Demo/360 Demo/V8.9/Source/TaskExamineWnd.h
new file mode 100644
index 0000000..1463b30
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskExamineWnd.h
@@ -0,0 +1,50 @@
+// TaskExamineWnd.h : interface of the CTaskExamineWnd class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_TASKEXAMINEWND_H__6326E908_827B_4AC3_B184_FFF0A9996D6A__INCLUDED_)
+#define AFX_TASKEXAMINEWND_H__6326E908_827B_4AC3_B184_FFF0A9996D6A__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class CTaskExamineWnd : public CUIWnd
+{
+public:
+ CTaskExamineWnd();
+ virtual ~CTaskExamineWnd();
+ void WindowID() { IDD = IDW_EXAMINE; }
+
+protected:
+ int InitControls();
+
+public:
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CTaskExamineWnd)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CTaskExamineWnd)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ afx_msg void OnBtnScan();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CSkinButton *m_pBtnScan;
+
+public:
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+//
+
+#endif // !defined(AFX_TASKEXAMINEWND_H__6326E908_827B_4AC3_B184_FFF0A9996D6A__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/TaskExaminingWnd.cpp b/Demo/360 Demo/V8.9/Source/TaskExaminingWnd.cpp
new file mode 100644
index 0000000..0c29674
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskExaminingWnd.cpp
@@ -0,0 +1,76 @@
+// TaskExaminingWnd.cpp : implementation of the CTaskExaminingWnd class
+//
+
+#include "stdafx.h"
+#include "TaskExaminingWnd.h"
+#include "ExamineFrame.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskExaminingWnd
+
+BEGIN_MESSAGE_MAP(CTaskExaminingWnd, CUIWnd)
+ //{{AFX_MSG_MAP(CTaskExaminingWnd)
+ ON_WM_CREATE()
+ ON_BN_CLICKED(IDC_BTN_CANCEL, OnBtnCancel)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskExaminingWnd construction/destruction
+
+CTaskExaminingWnd::CTaskExaminingWnd()
+{
+ m_pBtnCancel = NULL;
+
+}
+
+CTaskExaminingWnd::~CTaskExaminingWnd()
+{
+}
+
+void CTaskExaminingWnd::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CTaskExaminingWnd)
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CTaskExaminingWnd::InitControls()
+{
+ m_pBtnCancel = (CSkinButton *)GetDlgItem(IDC_BTN_CANCEL);
+ ASSERT(m_pBtnCancel->GetSafeHwnd() != NULL);
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskExaminingWnd message handlers
+
+int CTaskExaminingWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+
+ return 0;
+}
+
+void CTaskExaminingWnd::OnBtnCancel()
+{
+ CExamineFrame *pParent = (CExamineFrame *)GetParent();
+ pParent->SwitchTaskWnd(IDW_EXAMINE);
+}
diff --git a/Demo/360 Demo/V8.9/Source/TaskExaminingWnd.h b/Demo/360 Demo/V8.9/Source/TaskExaminingWnd.h
new file mode 100644
index 0000000..35c67c4
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskExaminingWnd.h
@@ -0,0 +1,50 @@
+// TaskExaminingWnd.h : interface of the CTaskExaminingWnd class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_TASKEXAMININGWND_H__39894983_41BF_47F0_8C88_AFBE1E6278F9__INCLUDED_)
+#define AFX_TASKEXAMININGWND_H__39894983_41BF_47F0_8C88_AFBE1E6278F9__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class CTaskExaminingWnd : public CUIWnd
+{
+public:
+ CTaskExaminingWnd();
+ virtual ~CTaskExaminingWnd();
+ void WindowID() { IDD = IDW_EXAMINING; }
+
+protected:
+ int InitControls();
+
+public:
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CTaskExaminingWnd)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CTaskExaminingWnd)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ afx_msg void OnBtnCancel();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CSkinButton *m_pBtnCancel;
+
+public:
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+//
+
+#endif // !defined(AFX_TASKEXAMININGWND_H__39894983_41BF_47F0_8C88_AFBE1E6278F9__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/TaskWebWnd.cpp b/Demo/360 Demo/V8.9/Source/TaskWebWnd.cpp
new file mode 100644
index 0000000..709289c
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskWebWnd.cpp
@@ -0,0 +1,74 @@
+// TaskWebWnd.cpp : implementation of the CTaskWebWnd class
+//
+
+#include "stdafx.h"
+#include "TaskWebWnd.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskWebWnd
+
+BEGIN_MESSAGE_MAP(CTaskWebWnd, CUIWnd)
+ //{{AFX_MSG_MAP(CTaskWebWnd)
+ ON_WM_CREATE()
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskWebWnd construction/destruction
+
+CTaskWebWnd::CTaskWebWnd()
+{
+ m_pHtml1 = NULL;
+
+}
+
+CTaskWebWnd::~CTaskWebWnd()
+{
+}
+
+void CTaskWebWnd::DoDataExchange(CDataExchange* pDX)
+{
+ CUIWnd::DoDataExchange(pDX);
+
+ //{{AFX_DATA_MAP(CTaskWebWnd)
+ //}}AFX_DATA_MAP
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// protected
+
+int CTaskWebWnd::InitControls()
+{
+ m_pHtml1 = (CHtmlCtrl *)GetDlgItem(IDC_HTMLCTRL_1);
+ ASSERT(m_pHtml1->GetSafeHwnd() != NULL);
+
+ return 0;
+}
+
+int CTaskWebWnd::InitHtml1()
+{
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CTaskWebWnd message handlers
+
+int CTaskWebWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
+{
+ if (CUIWnd::OnCreate(lpCreateStruct) == -1)
+ return -1;
+
+ if (InitControls() != 0)
+ return -1;
+
+ InitHtml1();
+
+ return 0;
+}
diff --git a/Demo/360 Demo/V8.9/Source/TaskWebWnd.h b/Demo/360 Demo/V8.9/Source/TaskWebWnd.h
new file mode 100644
index 0000000..b45ba88
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/TaskWebWnd.h
@@ -0,0 +1,50 @@
+// TaskWebWnd.h : interface of the CTaskWebWnd class
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_TASKWEBWND_H__AA865F75_7FE7_48F6_A2ED_AB7244EC4784__INCLUDED_)
+#define AFX_TASKWEBWND_H__AA865F75_7FE7_48F6_A2ED_AB7244EC4784__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class CTaskWebWnd : public CUIWnd
+{
+public:
+ CTaskWebWnd();
+ virtual ~CTaskWebWnd();
+ void WindowID() { IDD = IDW_WEB; }
+
+protected:
+ int InitControls();
+ int InitHtml1();
+
+public:
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CTaskWebWnd)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Generated message map functions
+protected:
+ //{{AFX_MSG(CTaskWebWnd)
+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+protected:
+ CHtmlCtrl *m_pHtml1;
+
+public:
+};
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+//
+
+#endif // !defined(AFX_TASKWEBWND_H__AA865F75_7FE7_48F6_A2ED_AB7244EC4784__INCLUDED_)
diff --git a/Demo/360 Demo/V8.9/Source/res/SafeMgr.ico b/Demo/360 Demo/V8.9/Source/res/SafeMgr.ico
new file mode 100644
index 0000000..8b1d992
Binary files /dev/null and b/Demo/360 Demo/V8.9/Source/res/SafeMgr.ico differ
diff --git a/Demo/360 Demo/V8.9/Source/res/SafeMgr.rc2 b/Demo/360 Demo/V8.9/Source/res/SafeMgr.rc2
new file mode 100644
index 0000000..cddfc04
--- /dev/null
+++ b/Demo/360 Demo/V8.9/Source/res/SafeMgr.rc2
@@ -0,0 +1,13 @@
+//
+// SAFEMGR.RC2 - resources Microsoft Visual C++ does not edit directly
+//
+
+#ifdef APSTUDIO_INVOKED
+ #error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Add manually edited resources here...
+
+/////////////////////////////////////////////////////////////////////////////
diff --git "a/Help/CSkinListCtrl\346\266\210\346\201\257\346\230\240\345\260\204.txt" "b/Help/CSkinListCtrl\346\266\210\346\201\257\346\230\240\345\260\204.txt"
new file mode 100644
index 0000000..4fe5744
--- /dev/null
+++ "b/Help/CSkinListCtrl\346\266\210\346\201\257\346\230\240\345\260\204.txt"
@@ -0,0 +1,307 @@
+ ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
+ ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
+ ON_NOTIFY(NM_KILLFOCUS, IDC_LIST1, OnKillfocusList1)
+ ON_NOTIFY(NM_OUTOFMEMORY, IDC_LIST1, OnOutofmemoryList1)
+ ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
+ ON_NOTIFY(NM_RDBLCLK, IDC_LIST1, OnRdblclkList1)
+ ON_NOTIFY(NM_RETURN, IDC_LIST1, OnReturnList1)
+ ON_NOTIFY(NM_SETFOCUS, IDC_LIST1, OnSetfocusList1)
+ ON_NOTIFY(LVN_BEGINDRAG, IDC_LIST1, OnBegindragList1)
+ ON_NOTIFY(LVN_BEGINLABELEDIT, IDC_LIST1, OnBeginlabeleditList1)
+ ON_NOTIFY(LVN_BEGINRDRAG, IDC_LIST1, OnBeginrdragList1)
+ ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnColumnclickList1)
+ ON_NOTIFY(LVN_DELETEALLITEMS, IDC_LIST1, OnDeleteallitemsList1)
+ ON_NOTIFY(LVN_DELETEITEM, IDC_LIST1, OnDeleteitemList1)
+ ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST1, OnEndlabeleditList1)
+ ON_NOTIFY(LVN_GETDISPINFO, IDC_LIST1, OnGetdispinfoList1)
+ ON_NOTIFY(LVN_INSERTITEM, IDC_LIST1, OnInsertitemList1)
+ ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)
+ ON_NOTIFY(LVN_ITEMCHANGING, IDC_LIST1, OnItemchangingList1)
+ ON_NOTIFY(LVN_KEYDOWN, IDC_LIST1, OnKeydownList1)
+ ON_NOTIFY(LVN_SETDISPINFO, IDC_LIST1, OnSetdispinfoList1)
+ ON_NOTIFY(LVN_ODCACHEHINT, IDC_LIST1, OnOdcachehintList1)
+ ON_NOTIFY(LVN_ODFINDITEM, IDC_LIST1, OnOdfinditemList1)
+ ON_NOTIFY(LVN_ODSTATECHANGED, IDC_LIST1, OnOdstatechangedList1)
+ ON_NOTIFY(HDN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)
+ ON_NOTIFY(HDN_ITEMCHANGING, IDC_LIST1, OnItemchangingList1)
+ ON_NOTIFY(HDN_TRACK, IDC_LIST1, OnTrackList1)
+ ON_NOTIFY(HDN_ITEMCLICK, IDC_LIST1, OnItemclickList1)
+ ON_NOTIFY(HDN_ITEMDBLCLICK, IDC_LIST1, OnItemdblclickList1)
+ ON_NOTIFY(HDN_BEGINTRACK, IDC_LIST1, OnBegintrackList1)
+ ON_NOTIFY(HDN_ENDTRACK, IDC_LIST1, OnEndtrackList1)
+ ON_NOTIFY(HDN_DIVIDERDBLCLICK, IDC_LIST1, OnDividerdblclickList1)
+ ON_NOTIFY(HDN_BEGINDRAG, IDC_LIST1, OnBegindragList1)
+ ON_NOTIFY(HDN_ENDDRAG, IDC_LIST1, OnEnddragList1)
+ ON_NOTIFY(HDN_GETDISPINFO, IDC_LIST1, OnGetdispinfoList1)
+
+ afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnKillfocusList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnOutofmemoryList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnRdblclkList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnReturnList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnSetfocusList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBegindragList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBeginlabeleditList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBeginrdragList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnDeleteallitemsList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnDeleteitemList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnEndlabeleditList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnGetdispinfoList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnInsertitemList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnItemchangingList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnSetdispinfoList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnOdcachehintList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnOdfinditemList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnOdstatechangedList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnTrackList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnItemclickList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnItemdblclickList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBegintrackList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnEndtrackList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnDividerdblclickList1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnEnddragList1(NMHDR* pNMHDR, LRESULT* pResult);
+
+ void CDDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnKillfocusList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnOutofmemoryList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnRdblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnReturnList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnSetfocusList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBegindragList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBeginlabeleditList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBeginrdragList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnDeleteallitemsList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnDeleteitemList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnEndlabeleditList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnGetdispinfoList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnInsertitemList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnItemchangingList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnSetdispinfoList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnOdcachehintList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NMLVCACHEHINT* pCacheHint = (NMLVCACHEHINT*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnOdfinditemList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NMLVFINDITEM* pFindInfo = (NMLVFINDITEM*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnOdstatechangedList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NMLVODSTATECHANGE* pStateChanged = (NMLVODSTATECHANGE*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnTrackList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnItemclickList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnItemdblclickList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBegintrackList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnEndtrackList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnDividerdblclickList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnEnddragList1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ HD_NOTIFY * phdn = (HD_NOTIFY *) pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
diff --git "a/Help/CSkinTreeCtrl\346\266\210\346\201\257\346\230\240\345\260\204.txt" "b/Help/CSkinTreeCtrl\346\266\210\346\201\257\346\230\240\345\260\204.txt"
new file mode 100644
index 0000000..4b7a102
--- /dev/null
+++ "b/Help/CSkinTreeCtrl\346\266\210\346\201\257\346\230\240\345\260\204.txt"
@@ -0,0 +1,197 @@
+CSkinTreeCtrl
+ // Ϣӳ
+ ON_NOTIFY(NM_CLICK, IDC_TREE1, OnClickTree1)
+ ON_NOTIFY(NM_DBLCLK, IDC_TREE1, OnDblclkTree1)
+ ON_NOTIFY(NM_KILLFOCUS, IDC_TREE1, OnKillfocusTree1)
+ ON_NOTIFY(NM_OUTOFMEMORY, IDC_TREE1, OnOutofmemoryTree1)
+ ON_NOTIFY(NM_RCLICK, IDC_TREE1, OnRclickTree1)
+ ON_NOTIFY(NM_RDBLCLK, IDC_TREE1, OnRdblclkTree1)
+ ON_NOTIFY(NM_RETURN, IDC_TREE1, OnReturnTree1)
+ ON_NOTIFY(NM_SETFOCUS, IDC_TREE1, OnSetfocusTree1)
+ ON_NOTIFY(TVN_BEGINDRAG, IDC_TREE1, OnBegindragTree1)
+ ON_NOTIFY(TVN_BEGINLABELEDIT, IDC_TREE1, OnBeginlabeleditTree1)
+ ON_NOTIFY(TVN_BEGINRDRAG, IDC_TREE1, OnBeginrdragTree1)
+ ON_NOTIFY(TVN_DELETEITEM, IDC_TREE1, OnDeleteitemTree1)
+ ON_NOTIFY(TVN_ENDLABELEDIT, IDC_TREE1, OnEndlabeleditTree1)
+ ON_NOTIFY(TVN_GETDISPINFO, IDC_TREE1, OnGetdispinfoTree1)
+ ON_NOTIFY(TVN_ITEMEXPANDED, IDC_TREE1, OnItemexpandedTree1)
+ ON_NOTIFY(TVN_ITEMEXPANDING, IDC_TREE1, OnItemexpandingTree1)
+ ON_NOTIFY(TVN_KEYDOWN, IDC_TREE1, OnKeydownTree1)
+ ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
+ ON_NOTIFY(TVN_SELCHANGING, IDC_TREE1, OnSelchangingTree1)
+ ON_NOTIFY(TVN_SETDISPINFO, IDC_TREE1, OnSetdispinfoTree1)
+
+ // ͷļ
+ afx_msg void OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnKillfocusTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnOutofmemoryTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnRdblclkTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnReturnTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnSetfocusTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBegindragTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBeginlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnBeginrdragTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnDeleteitemTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnEndlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnGetdispinfoTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnItemexpandedTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnItemexpandingTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnKeydownTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnSelchangingTree1(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnSetdispinfoTree1(NMHDR* pNMHDR, LRESULT* pResult);
+
+ // ʵ
+ void CDDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnKillfocusTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnOutofmemoryTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnRdblclkTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnReturnTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnSetfocusTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBegindragTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBeginlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnBeginrdragTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnDeleteitemTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnEndlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnGetdispinfoTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnItemexpandedTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnItemexpandingTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnKeydownTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ TV_KEYDOWN* pTVKeyDown = (TV_KEYDOWN*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnSelchangingTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
+
+ void CDDlg::OnSetdispinfoTree1(NMHDR* pNMHDR, LRESULT* pResult)
+ {
+ TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
+ // TODO: Add your control notification handler code here
+
+ *pResult = 0;
+ }
diff --git "a/Help/LibUIDK\345\210\207\345\233\276\346\214\207\345\215\227.doc" "b/Help/LibUIDK\345\210\207\345\233\276\346\214\207\345\215\227.doc"
new file mode 100644
index 0000000..c279c3a
Binary files /dev/null and "b/Help/LibUIDK\345\210\207\345\233\276\346\214\207\345\215\227.doc" differ
diff --git "a/Help/\344\275\277\347\224\250\350\217\234\345\215\225.txt" "b/Help/\344\275\277\347\224\250\350\217\234\345\215\225.txt"
new file mode 100644
index 0000000..49e468d
--- /dev/null
+++ "b/Help/\344\275\277\347\224\250\350\217\234\345\215\225.txt"
@@ -0,0 +1,18 @@
+1. ںͿؼͬLibUIDKUIShop༭д˵ֱʹVCԴдIJ˵ԴͨCSkinMenuBindStyleVCԴдIJ˵ԴUIShop༭IJ˵Styleϣﵽ˵Ŀġ
+2. VCԴд˵
+3. UIShop༭д˵Style
+4. AppInitInstanceУAfxInitSkinMenu
+ if (!AfxInitSkinMenu())
+ return FALSE;
+5. ˵
+ CSkinMenu menuSkin;
+ menuSkin.BindStyle(_T("IDR_MENU_DEFAULT"));
+ menuSkin.LoadMenu(IDR_MAINFRAME);
+
+ // Get sub skin menu
+ CSkinMenu *pSkinMenu = (CSkinMenu *)menuSkin.GetSubMenu(2);
+
+ // Pop-up skin menu
+ CRect rcButton;
+ m_pBtnPopupResourceMenu->GetWindowRect(rcButton);
+ pSkinMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_TOPALIGN, rcButton.right, rcButton.bottom, this);
diff --git "a/Help/\345\212\237\350\203\275\345\222\214\347\225\214\351\235\242\345\210\206\347\246\273.exe" "b/Help/\345\212\237\350\203\275\345\222\214\347\225\214\351\235\242\345\210\206\347\246\273.exe"
deleted file mode 100644
index 2aaccc6..0000000
Binary files "a/Help/\345\212\237\350\203\275\345\222\214\347\225\214\351\235\242\345\210\206\347\246\273.exe" and /dev/null differ
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index bbe365b..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 iUIShop
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..ff11b4b
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,7 @@
+版权所有(c)2005-2024 iUIShop
+
+特此授予个人和教育机构获得此软件和相关文件副本免费使用权,但不可应用于商业或盈利用途。
+如需应用于商业或盈利用途,需要付费使用LibUIDK,联系QQ: 1584793892
+
+禁止使用本软件制作违反“成品发布所在国”法律的软件。
+我们不对使用本软件造成的任何损失负责。
diff --git a/LibUIDK/ButtonBase.cpp b/LibUIDK/ButtonBase.cpp
index 21b2f89..cfa5c21 100644
--- a/LibUIDK/ButtonBase.cpp
+++ b/LibUIDK/ButtonBase.cpp
@@ -140,11 +140,6 @@ int CButtonBase::BindPushButtonStyle(const BTNPROPERTIES *pCtrlProp)
SetBkImageRepeatX(pCtrlProp->m_uXRepeatPixel);
SetBkImageRepeatY(pCtrlProp->m_uYRepeatPixel);
- for (int i = 0; i < 1 + COMBINEIMAGESIZE4; ++i)
- {
- ReleaseIUIImage(strImageName[i]);
- }
-
SetBkImageTransparent(pCtrlProp->m_lBkImgTransparent);
// Set foreground bitmaps for control
@@ -281,11 +276,6 @@ int BindToggleButtonStyle(T *pButtonCtrl, const TOGGLEBTNPROPERTIES *pCtrlProp)
pButtonCtrl->SetBkImageRepeatX(pCtrlProp->m_uXRepeatPixel);
pButtonCtrl->SetBkImageRepeatY(pCtrlProp->m_uYRepeatPixel);
- for (int i = 0; i < 1 + COMBINEIMAGESIZE8; ++i)
- {
- ReleaseIUIImage(strImageName[i]);
- }
-
pButtonCtrl->SetBkImageTransparent(pCtrlProp->m_lBkImgTransparent);
// Set foreground
diff --git a/LibUIDK/CUSTSITE.CPP b/LibUIDK/CUSTSITE.CPP
index ae7ae9d..8f3e8de 100644
--- a/LibUIDK/CUSTSITE.CPP
+++ b/LibUIDK/CUSTSITE.CPP
@@ -50,7 +50,52 @@ void CCustomOleControlSite::SetXDocHostUI_Flag(DWORD dwSet)
m_dwXDocHostUI_Flag = dwSet;
}
-
+#undef BEGIN_INTERFACE_MAP
+
+#ifdef _AFXDLL
+ // shared link to mfc
+ #define BEGIN_INTERFACE_MAP(theClass, theBase) \
+ const AFX_INTERFACEMAP* PASCAL theClass::_GetBaseInterfaceMap() \
+ { return &theBase::interfaceMap; } \
+ const AFX_INTERFACEMAP* theClass::GetInterfaceMap() const \
+ { return &theClass::interfaceMap; } \
+ AFX_COMDAT const AFX_DATADEF AFX_INTERFACEMAP theClass::interfaceMap = \
+ { &theClass::_GetBaseInterfaceMap, &theClass::_interfaceEntries[0], }; \
+ AFX_COMDAT const AFX_DATADEF AFX_INTERFACEMAP_ENTRY theClass::_interfaceEntries[] = \
+ { \
+
+#else
+ // static link to mfc
+ #define BEGIN_INTERFACE_MAP(theClass, theBase) \
+ const AFX_INTERFACEMAP* theClass::GetInterfaceMap() const \
+ { return &theClass::interfaceMap; } \
+ const AFX_DATADEF AFX_INTERFACEMAP theClass::interfaceMap = \
+ { &theBase::interfaceMap, &theClass::_interfaceEntries[0], }; \
+ AFX_COMDAT const AFX_DATADEF AFX_INTERFACEMAP_ENTRY theClass::_interfaceEntries[] = \
+ { \
+
+#endif
+#define BEGIN_INTERFACE_MAP(theClass, theBase) \
+ const AFX_INTERFACEMAP* PASCAL theClass::_GetBaseInterfaceMap() \
+{ return &theBase::interfaceMap; } \
+ const AFX_INTERFACEMAP* theClass::GetInterfaceMap() const \
+{ return &theClass::interfaceMap; } \
+ AFX_COMDAT const AFX_DATADEF AFX_INTERFACEMAP theClass::interfaceMap = \
+{ &theClass::_GetBaseInterfaceMap, &theClass::_interfaceEntries[0], }; \
+ AFX_COMDAT const AFX_DATADEF AFX_INTERFACEMAP_ENTRY theClass::_interfaceEntries[] = \
+{ \
+
+#else
+// static
+#define BEGIN_INTERFACE_MAP(theClass, theBase) \
+ const AFX_INTERFACEMAP* theClass::GetInterfaceMap() const \
+{ return &theClass::interfaceMap; } \
+ const AFX_DATADEF AFX_INTERFACEMAP theClass::interfaceMap = \
+{ &theBase::interfaceMap, &theClass::_interfaceEntries[0], }; \
+ AFX_COMDAT const AFX_DATADEF AFX_INTERFACEMAP_ENTRY theClass::_interfaceEntries[] = \
+{ \
+
+#endif
BEGIN_INTERFACE_MAP(CCustomOleControlSite, COleControlSite)
INTERFACE_PART(CCustomOleControlSite, IID_IDocHostUIHandler, DocHostUIHandler)
diff --git a/LibUIDK/ControlBase.cpp b/LibUIDK/ControlBase.cpp
index 4b71b01..b43f30b 100644
--- a/LibUIDK/ControlBase.cpp
+++ b/LibUIDK/ControlBase.cpp
@@ -75,10 +75,16 @@ int CControlBase::BindStyle(const CTRLPROPERTIES *pCtrlProp)
int CControlBase::ReleaseObject()
{
- ReleaseIUIImage(m_himgCombineBk);
- m_himgCombineBk = NULL;
- ReleaseIUIImage(m_himgCombineFg);
- m_himgCombineFg = NULL;
+ if (NULL != m_himgCombineBk)
+ {
+ ReleaseIUIImage(m_himgCombineBk);
+ m_himgCombineBk = NULL;
+ }
+ if (NULL != m_himgCombineFg)
+ {
+ ReleaseIUIImage(m_himgCombineFg);
+ m_himgCombineFg = NULL;
+ }
return 0;
}
diff --git a/LibUIDK/CreateControls.cpp b/LibUIDK/CreateControls.cpp
index e357b48..92fd303 100644
--- a/LibUIDK/CreateControls.cpp
+++ b/LibUIDK/CreateControls.cpp
@@ -110,7 +110,7 @@ CSkinButton *LibUIDK::CreateButton(BTNPROPERTIES *pBtn, CWnd *pParent,
if (nHas == DC_HASDEFID && pPreviousBtn->GetSafeHwnd() != NULL)
{
- LONG lStyle = GetWindowLong(pChild->GetSafeHwnd(), GWL_STYLE);
+ LONG_PTR lStyle = GetWindowLongPtr(pChild->GetSafeHwnd(), GWL_STYLE);
lStyle &= ~BS_DEFPUSHBUTTON;
pPreviousBtn->SendMessage(BM_SETSTYLE, lStyle, MAKELPARAM(FALSE, 0));
}
diff --git a/LibUIDK/CtrlProperties.cpp b/LibUIDK/CtrlProperties.cpp
index c21bf4f..e274f94 100644
--- a/LibUIDK/CtrlProperties.cpp
+++ b/LibUIDK/CtrlProperties.cpp
@@ -1446,7 +1446,7 @@ int _InitOtherStateColor(COLORREF *pColor, bool bSameNColor, COLORREF crNormal,
RESCOLORPROPERTIES *pColorProp = (RESCOLORPROPERTIES *)CUIMgr::GetColorResourceItem(
lpszColorID);
- *pColor = (pColorProp == NULL) ? crNormal : pColorProp->m_crColor;
+ *pColor = (pColorProp == NULL) ? crNormal : (long)pColorProp->m_crColor;
}
return 0;
@@ -1464,7 +1464,7 @@ int CTRLPROPERTIES::IUIGetControlColor4(const CTRLPROPERTIES *pCtrlProp,
if (pcrN != NULL)
{
- *pcrN = (pColorPropN == NULL) ? crDefault : pColorPropN->m_crColor;
+ *pcrN = (pColorPropN == NULL) ? crDefault : (long)pColorPropN->m_crColor;
}
if (pcrH != NULL)
@@ -1478,7 +1478,7 @@ int CTRLPROPERTIES::IUIGetControlColor4(const CTRLPROPERTIES *pCtrlProp,
RESCOLORPROPERTIES *pColorPropH = (RESCOLORPROPERTIES *)CUIMgr::GetColorResourceItem(
(LPCTSTR)pCtrlProp->m_strResColorIDH);
- *pcrH = (pColorPropH == NULL) ? crDefault : pColorPropH->m_crColor;
+ *pcrH = (pColorPropH == NULL) ? crDefault : (long)pColorPropH->m_crColor;
}
}
@@ -1493,7 +1493,7 @@ int CTRLPROPERTIES::IUIGetControlColor4(const CTRLPROPERTIES *pCtrlProp,
RESCOLORPROPERTIES *pColorPropS = (RESCOLORPROPERTIES *)CUIMgr::GetColorResourceItem(
(LPCTSTR)pCtrlProp->m_strResColorIDS);
- *pcrS = (pColorPropS == NULL) ? crDefault : pColorPropS->m_crColor;
+ *pcrS = (pColorPropS == NULL) ? crDefault : (long)pColorPropS->m_crColor;
}
}
@@ -1508,7 +1508,7 @@ int CTRLPROPERTIES::IUIGetControlColor4(const CTRLPROPERTIES *pCtrlProp,
RESCOLORPROPERTIES *pColorPropD = (RESCOLORPROPERTIES *)CUIMgr::GetColorResourceItem(
(LPCTSTR)pCtrlProp->m_strResColorIDD);
- *pcrD = (pColorPropD == NULL) ? crDefault : pColorPropD->m_crColor;
+ *pcrD = (pColorPropD == NULL) ? crDefault : (long)pColorPropD->m_crColor;
}
}
@@ -1529,7 +1529,7 @@ int CTRLPROPERTIES::IUIGetControlColor8(const TOGGLEBTNPROPERTIES *pCtrlProp,
COLORREF crNormal = RGB(255, 255, 255);
if (pcrN != NULL)
{
- *pcrN = (pColorPropN == NULL) ? crDefault : pColorPropN->m_crColor;
+ *pcrN = (pColorPropN == NULL) ? crDefault : (long)pColorPropN->m_crColor;
crNormal = *pcrN;
}
@@ -1558,18 +1558,12 @@ int CTRLPROPERTIES::IUIGetBackground2(const CTRLPROPERTIES *pCtrlProp,
if (bCombineImage)
{
*pstrImageName = (LPCTSTR)pCtrlProp->m_strBKCombine;
-
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCombine);
}
else
{
int nIndex = 1;
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKN;
-
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKN);
-
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKD);
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKD;
}
@@ -1590,24 +1584,15 @@ int CTRLPROPERTIES::IUIGetBackground4(const CTRLPROPERTIES *pCtrlProp,
if (bCombineImage)
{
*pstrImageName = (LPCTSTR)pCtrlProp->m_strBKCombine;
-
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCombine);
}
else
{
int nIndex = 1;
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKN;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKN);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKH;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKH);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKS;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKS);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKD;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKD);
}
return 0;
@@ -1633,36 +1618,19 @@ int CTRLPROPERTIES::IUIGetToggleButtonBackground8(const TOGGLEBTNPROPERTIES *pCt
if (bCombineImage)
{
*pstrImageName = (LPCTSTR)pCtrlProp->m_strBKCombine;
-
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCombine);
}
else
{
int nIndex = 1;
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKN;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKN);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKH;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKH);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKS;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKS);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKD;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKD);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKCN;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCN);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKCH;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCH);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKCS;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCS);
-
*(pstrImageName + (nIndex++)) = (LPCTSTR)pCtrlProp->m_strBKCD;
- CreateEmptyIUIImage((LPCTSTR)pCtrlProp->m_strBKCD);
}
return 0;
@@ -4000,10 +3968,6 @@ LSTCTRLPROPERTIES::LSTCTRLPROPERTIES()
m_bTwoClickActivate.strXUIElementName = _T("IsTwoClickActivate");
m_bTwoClickActivate.strPropWndName = _T("Two Click Activate");
- m_bEnableOwnerDraw.varDefaultValue = m_bEnableOwnerDraw = false;
- m_bEnableOwnerDraw.strXUIElementName = _T("IsEnableOwnerDraw");
- m_bEnableOwnerDraw.strPropWndName = _T("Enable Owner Draw");
-
m_strTag.varDefaultValue = m_strTag = _T("");
m_strTag.strUIKeyName = m_strTag.strXUIElementName = _T("Tag");
m_strTag.strPropWndName = _T("Tag");
@@ -4054,6 +4018,11 @@ LSTCTRLPROPERTIES::LSTCTRLPROPERTIES()
m_bDraw0Row.strXUIAttributeName = _T("Draw0Row");
m_bDraw0Row.strPropWndName = _T("Draw First Row");
+ m_bVerLineTo0Row.varDefaultValue = m_bVerLineTo0Row = false;
+ m_bVerLineTo0Row.strXUIElementName = m_bShowGridLine.strXUIElementName;
+ m_bVerLineTo0Row.strXUIAttributeName = _T("VerDrawTo0Row");
+ m_bVerLineTo0Row.strPropWndName = _T("Vert Draw To First Row");
+
m_lXOffset.varDefaultValue = m_lXOffset = (LONG)0;
m_lXOffset.strXUIElementName = m_bShowGridLine.strXUIElementName;
m_lXOffset.strXUIAttributeName = _T("XOffset");
diff --git a/LibUIDK/DockPanel.cpp b/LibUIDK/DockPanel.cpp
index eb3e2db..d35a498 100644
--- a/LibUIDK/DockPanel.cpp
+++ b/LibUIDK/DockPanel.cpp
@@ -147,7 +147,7 @@ int CDockPanel::RelayoutElements(BOOL bRedraw/* = FALSE*/)
{
CWnd *pWnd = (CWnd *)pItem->m_pElement;
- // Skip the invisible element. The IsWindowVisible can't get the visible state at WM_CREATE message of parent, so use IsWindowVisibleEx(GetWindowLong) instead.
+ // Skip the invisible element. The IsWindowVisible can't get the visible state at WM_CREATE message of parent, so use IsWindowVisibleEx(GetWindowLongPtr) instead.
if (!IsWindowVisibleEx(pWnd->GetSafeHwnd()))
{
continue;
diff --git a/LibUIDK/Global.cpp b/LibUIDK/Global.cpp
index a46557b..6fadc2e 100644
--- a/LibUIDK/Global.cpp
+++ b/LibUIDK/Global.cpp
@@ -323,7 +323,7 @@ BOOL LibUIDK::IsWindowVisibleEx(HWND hWnd)
{
BOOL bRet = FALSE;
- LONG lStyle = GetWindowLong(hWnd, GWL_STYLE);
+ LONG_PTR lStyle = GetWindowLongPtr(hWnd, GWL_STYLE);
if ((lStyle & WS_VISIBLE) == WS_VISIBLE)
{
bRet = TRUE;
@@ -1924,14 +1924,16 @@ HFONT LibUIDK::CreateControlFont(__in FONTRESOURCEITEM *pResFontAs,
if (CUIMgr::IsEnableDPI())
{
LOGFONT lfDPI;
- memcpy(&lfDPI, &(LOGFONT)pConditionFont->m_logFont, sizeof(LOGFONT));
+ LOGFONT logFont = (LOGFONT)pConditionFont->m_logFont;
+ memcpy(&lfDPI, &logFont, sizeof(LOGFONT));
GetDPILogFont(&lfDPI);
hFont = CreateFontIndirect(&lfDPI);
}
else
{
- hFont = CreateFontIndirect(&(LOGFONT)pConditionFont->m_logFont);
+ LOGFONT logFont = (LOGFONT)pConditionFont->m_logFont;
+ hFont = CreateFontIndirect(&logFont);
}
}
else
@@ -1941,14 +1943,16 @@ HFONT LibUIDK::CreateControlFont(__in FONTRESOURCEITEM *pResFontAs,
if (CUIMgr::IsEnableDPI())
{
LOGFONT lfDPI;
- memcpy(&lfDPI, &(LOGFONT)pResFontAs->m_pFontResProp->m_logFont, sizeof(LOGFONT));
+ LOGFONT logFont = (LOGFONT)pResFontAs->m_pFontResProp->m_logFont;
+ memcpy(&lfDPI, &logFont, sizeof(LOGFONT));
GetDPILogFont(&lfDPI);
hFont = CreateFontIndirect(&lfDPI);
}
else
{
- hFont = CreateFontIndirect(&(LOGFONT)pResFontAs->m_pFontResProp->m_logFont);
+ LOGFONT logFont = (LOGFONT)pResFontAs->m_pFontResProp->m_logFont;
+ hFont = CreateFontIndirect(&logFont);
}
}
}
diff --git a/LibUIDK/HtmlCtrl.cpp b/LibUIDK/HtmlCtrl.cpp
index 40c7637..d3e91bd 100644
--- a/LibUIDK/HtmlCtrl.cpp
+++ b/LibUIDK/HtmlCtrl.cpp
@@ -647,7 +647,7 @@ BOOL CHtmlCtrl::CallJScript(const CString strFunc, const CStringArray ¶mArra
for (int i = 0; i < arraySize; i++)
{
- CComBSTR bstr = paramArray.GetAt(arraySize - 1 - i); // back reading
+ CComBSTR bstr = (LPCTSTR)paramArray.GetAt(arraySize - 1 - i); // back reading
bstr.CopyTo(&dispparams.rgvarg[i].bstrVal);
dispparams.rgvarg[i].vt = VT_BSTR;
}
diff --git a/LibUIDK/IMRichEditCtrl.cpp b/LibUIDK/IMRichEditCtrl.cpp
index fd43753..7b20c6a 100644
--- a/LibUIDK/IMRichEditCtrl.cpp
+++ b/LibUIDK/IMRichEditCtrl.cpp
@@ -63,7 +63,7 @@ LRESULT CIMRichEditCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
}
else if (message == WM_SIZE)
{
- DoIMSize(wParam, LOWORD(lParam), HIWORD(lParam));
+ DoIMSize((UINT)wParam, LOWORD(lParam), HIWORD(lParam));
}
else if (message == WM_DESTROY)
{
diff --git a/LibUIDK/IMRichEditCtrlBase.cpp b/LibUIDK/IMRichEditCtrlBase.cpp
index 3572bcc..e10da34 100644
--- a/LibUIDK/IMRichEditCtrlBase.cpp
+++ b/LibUIDK/IMRichEditCtrlBase.cpp
@@ -280,8 +280,8 @@ void CIMMsg::Copy(const CIMMsg &rSrc)
m_nMsgEndCp = rSrc.m_nMsgEndCp;
m_nMsgParagraphCount = rSrc.m_nMsgParagraphCount;
- int nCount = rSrc.m_vpStrRichMsg.size();
- for (int i = 0; i < nCount ; i++)
+ size_t nCount = rSrc.m_vpStrRichMsg.size();
+ for (size_t i = 0; i < nCount ; i++)
{
const CRichMsgItem *p = rSrc.m_vpStrRichMsg[i];
@@ -353,8 +353,8 @@ int CIMRichEditCtrlBase::ReleaseObject()
}
// ͷϢ
- int nMsgCount = m_vMsg.size();
- for (i = 0; i < nMsgCount; ++i)
+ size_t nMsgCount = m_vMsg.size();
+ for (size_t i = 0; i < nMsgCount; ++i)
{
const CIMMsg *pMsg = m_vMsg[i];
delete pMsg;
@@ -462,10 +462,6 @@ int CIMRichEditCtrlBase::BindStyle(const CTRLPROPERTIES *pCtrlProp)
IMRE_CALL_FUN(SetImages(CONTROL_STATE_UNCHECKED_ALL,
strImageName[1], strImageName[2], strImageName[3], strImageName[4]));
}
- for (int i = 0; i < 1 + COMBINEIMAGESIZE4; ++i)
- {
- ReleaseIUIImage(strImageName[i]);
- }
}
return 0;
@@ -1420,7 +1416,7 @@ int CIMRichEditCtrlBase::OnDrawFace(CDC *pMemDCParent, int nMsgIndex, LPCRECT lp
GraphicsPath gp;
//gp.AddEllipse(0, 0, 40, 40);
- gp.AddEllipse(rcNew.left, rcNew.top,
+ gp.AddEllipse((int)rcNew.left, rcNew.top,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
g.FillPath(&tBrush, &gp);
@@ -1442,8 +1438,8 @@ int CIMRichEditCtrlBase::GetMsgPosInGroup(int nMsgIndex)
const CIMMsg *pMsg = m_vMsg[nMsgIndex];
#ifdef _DEBUG
- int nc = pMsg->m_vpStrRichMsg.size();
- for (int j = 0; j < nc ; j++)
+ size_t nc = pMsg->m_vpStrRichMsg.size();
+ for (size_t j = 0; j < nc ; j++)
{
CRichMsgItem *pitem = pMsg->m_vpStrRichMsg[j];
if (pitem->m_strMsgContent.Find(_T("˵")) >= 0)
diff --git a/LibUIDK/IUIImage.cpp b/LibUIDK/IUIImage.cpp
index 7abe275..fbb357c 100644
--- a/LibUIDK/IUIImage.cpp
+++ b/LibUIDK/IUIImage.cpp
@@ -40,7 +40,7 @@ CImageMgr::~CImageMgr()
// Release image
if (!m_mapImages.empty())
{
- int nCount = m_mapImages.size();
+ size_t nCount = m_mapImages.size();
ATLASSERT(FALSE);
@@ -284,17 +284,7 @@ int LibUIDK::ImageManager::ReleaseIUIImage(HIUIIMAGE hIUIImage)
CString strFileName = hIUIImage->GetSafeImageName();
- return ReleaseIUIImage(strFileName);
-}
-
-int LibUIDK::ImageManager::ReleaseIUIImage(LPCTSTR lpszImageFile)
-{
- if (lpszImageFile == NULL || CString(lpszImageFile).IsEmpty() || g_ImageMgr.m_mapImages.empty())
- {
- return -1;
- }
-
- std::map::iterator it = g_ImageMgr.m_mapImages.find(lpszImageFile);
+ std::map::iterator it = g_ImageMgr.m_mapImages.find(strFileName);
// Not found the Image
if (it == g_ImageMgr.m_mapImages.end())
@@ -1143,11 +1133,11 @@ int CIUIImage::PartNineGridBitmapG(HBITMAP hSrcBmp,
POINT pt9GridResize, LONG l9GridRepeatX, LONG l9GridRepeatY, LPCRECT lprcSrcPart,
HBITMAP *phDstBmp, int nDestWidth, int nDestHeight)
{
- if (NULL != hSrcBmp)
+ if (NULL == hSrcBmp)
{
return -1;
}
- if (NULL != phDstBmp)
+ if (NULL == phDstBmp)
{
return -2;
}
diff --git a/LibUIDK/LibUIDK.h b/LibUIDK/LibUIDK.h
index f1cce5d..576d9ea 100644
--- a/LibUIDK/LibUIDK.h
+++ b/LibUIDK/LibUIDK.h
@@ -8,6 +8,7 @@
#pragma warning (disable : 4786)
#include
+#include
#include
#include