HGWebService增加系统托盘

This commit is contained in:
luoliangyi 2023-03-20 21:03:28 +08:00
parent 88d11d609e
commit 8135dddf9f
12 changed files with 240 additions and 4 deletions

View File

@ -88,6 +88,7 @@
<ClInclude Include="..\..\..\sdk\webservice\ManagerV2.h" /> <ClInclude Include="..\..\..\sdk\webservice\ManagerV2.h" />
<ClInclude Include="..\..\..\sdk\webservice\Msg.h" /> <ClInclude Include="..\..\..\sdk\webservice\Msg.h" />
<ClInclude Include="..\..\..\sdk\webservice\MsgPumpCallback.h" /> <ClInclude Include="..\..\..\sdk\webservice\MsgPumpCallback.h" />
<ClInclude Include="..\..\..\sdk\webservice\resource.h" />
<ClInclude Include="..\..\..\sdk\webservice\SockIoServer.h" /> <ClInclude Include="..\..\..\sdk\webservice\SockIoServer.h" />
<ClInclude Include="..\..\..\sdk\webservice\SockIoUser.h" /> <ClInclude Include="..\..\..\sdk\webservice\SockIoUser.h" />
<ClInclude Include="..\..\..\sdk\webservice\WebServer.h" /> <ClInclude Include="..\..\..\sdk\webservice\WebServer.h" />
@ -101,6 +102,9 @@
<ClInclude Include="..\..\..\third_party\sqlite\sqlite3ext.h" /> <ClInclude Include="..\..\..\third_party\sqlite\sqlite3ext.h" />
<ClInclude Include="..\..\..\utility\HGString.h" /> <ClInclude Include="..\..\..\utility\HGString.h" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\sdk\webservice\HGWebService.rc" />
</ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion> <VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
@ -323,6 +327,9 @@
<AdditionalOptions>/ignore:4098,4099,4075 /LTCG %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/ignore:4098,4099,4075 /LTCG %(AdditionalOptions)</AdditionalOptions>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
</Link> </Link>
<ResourceCompile>
<PreprocessorDefinitions>OEM_HUAGAO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile> <ClCompile>
@ -348,6 +355,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)HGWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command> <Command>copy $(OutDir)HGWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_HUAGAO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|Win32'">
<ClCompile> <ClCompile>
@ -373,6 +383,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)HWWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command> <Command>copy $(OutDir)HWWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_HANWANG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|Win32'">
<ClCompile> <ClCompile>
@ -398,6 +411,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)ZGWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command> <Command>copy $(OutDir)ZGWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_ZIGUANG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|Win32'">
<ClCompile> <ClCompile>
@ -423,6 +439,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)ZJWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command> <Command>copy $(OutDir)ZJWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_ZHONGJING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|Win32'">
<ClCompile> <ClCompile>
@ -448,6 +467,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)LSCWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command> <Command>copy $(OutDir)LSCWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_LISICHENG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|Win32'">
<ClCompile> <ClCompile>
@ -473,6 +495,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)CTSWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command> <Command>copy $(OutDir)CTSWebService.exe $(SolutionDir)..\..\..\release\win\x86\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_CANGTIAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -491,6 +516,9 @@
<AdditionalOptions>/ignore:4098,4099,4075 /LTCG %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/ignore:4098,4099,4075 /LTCG %(AdditionalOptions)</AdditionalOptions>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> <UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
</Link> </Link>
<ResourceCompile>
<PreprocessorDefinitions>OEM_HUAGAO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
@ -516,6 +544,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)HGWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command> <Command>copy $(OutDir)HGWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_HUAGAO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='HWRelease|x64'">
<ClCompile> <ClCompile>
@ -541,6 +572,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)HWWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command> <Command>copy $(OutDir)HWWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_HANWANG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZGRelease|x64'">
<ClCompile> <ClCompile>
@ -566,6 +600,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)ZGWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command> <Command>copy $(OutDir)ZGWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_ZIGUANG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ZJRelease|x64'">
<ClCompile> <ClCompile>
@ -591,6 +628,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)ZJWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command> <Command>copy $(OutDir)ZJWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_ZHONGJING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='LSCRelease|x64'">
<ClCompile> <ClCompile>
@ -616,6 +656,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)LSCWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command> <Command>copy $(OutDir)LSCWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_LISICHENG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CTSRelease|x64'">
<ClCompile> <ClCompile>
@ -641,6 +684,9 @@
<PostBuildEvent> <PostBuildEvent>
<Command>copy $(OutDir)CTSWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command> <Command>copy $(OutDir)CTSWebService.exe $(SolutionDir)..\..\..\release\win\x64\Release\</Command>
</PostBuildEvent> </PostBuildEvent>
<ResourceCompile>
<PreprocessorDefinitions>OEM_CANGTIAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@ -0,0 +1,83 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(简体,中国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
#if defined(OEM_HANWANG)
IDI_ICON_HGWEBSERVICE ICON "res\\HanvonScan_App.ico"
#elif defined(OEM_LISICHENG)
IDI_ICON_HGWEBSERVICE ICON "res\\LanxumScan_App.ico"
#elif defined(OEM_CANGTIAN)
IDI_ICON_HGWEBSERVICE ICON "res\\CumtennScan_App.ico"
#elif defined(OEM_ZHONGJING)
IDI_ICON_HGWEBSERVICE ICON "res\\MicrotekScan_App.ico"
#elif defined(OEM_ZIGUANG)
IDI_ICON_HGWEBSERVICE ICON "res\\UniScan_App.ico"
#else
IDI_ICON_HGWEBSERVICE ICON "res\\HuaGoScan_App.ico"
#endif
#endif // 中文(简体,中国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -1,6 +1,11 @@
#include "WSServer.h" #include "WSServer.h"
#include "WSUser.h" #include "WSUser.h"
#include "base/HGInfo.h" #include "base/HGInfo.h"
#if defined(HG_CMP_MSC)
#include <shellapi.h>
extern ULONG taskbarMsgId;
extern NOTIFYICONDATAA nid;
#endif
namespace ver_2 namespace ver_2
{ {
@ -38,6 +43,10 @@ namespace ver_2
user->Open(); user->Open();
++m_currUserId; ++m_currUserId;
m_vectorUser.push_back(user); m_vectorUser.push_back(user);
#if defined(HG_CMP_MSC)
lstrcpyA(nid.szTip, "扫描服务程序(已连接)");
Shell_NotifyIconA(NIM_MODIFY, &nid);
#endif
} }
void WSServer::Command(const WSCmdParam* param) void WSServer::Command(const WSCmdParam* param)

View File

@ -1,6 +1,11 @@
#include "WebServer.h" #include "WebServer.h"
#include "WebUser.h" #include "WebUser.h"
#include "base/HGInfo.h" #include "base/HGInfo.h"
#if defined(HG_CMP_MSC)
#include <shellapi.h>
extern ULONG taskbarMsgId;
extern NOTIFYICONDATAA nid;
#endif
WebServer::WebServer(HGMsgPump msgPump) WebServer::WebServer(HGMsgPump msgPump)
{ {
@ -134,6 +139,14 @@ void WebServer::DisConnect(const DisConnectParam* param)
delete pUser; delete pUser;
pUser = NULL; pUser = NULL;
} }
#if defined(HG_CMP_MSC)
if (m_vectorUser.empty())
{
lstrcpyA(nid.szTip, "扫描服务程序(未连接)");
Shell_NotifyIconA(NIM_MODIFY, &nid);
}
#endif
} }
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)

View File

@ -66,6 +66,30 @@ static void HGAPI ThreadFunc(HGThread thread, HGPointer param)
} }
} }
#if defined(HG_CMP_MSC)
#include <shellapi.h>
#include "resource.h"
#define WM_TRAY (WM_USER + 100)
ULONG taskbarMsgId = 0;
NOTIFYICONDATAA nid;
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (WM_DESTROY == uMsg)
{
Shell_NotifyIconA(NIM_DELETE, &nid);
PostQuitMessage(0);
return 0;
}
else if (uMsg == taskbarMsgId)
{
//系统Explorer崩溃重启时重新加载托盘
Shell_NotifyIconA(NIM_ADD, &nid);
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
#endif
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE iPrevInstance, LPWSTR lpCmdLine, int nCmdShow) int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE iPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
#else #else
@ -75,28 +99,73 @@ int main()
HGBase_RegisterCrashFunc(CrashFunc, NULL); HGBase_RegisterCrashFunc(CrashFunc, NULL);
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)
HANDLE hMutex = CreateMutexW(NULL, FALSE, L"{1A67EFC9-B41C-4CE6-B95A-A16958E7010F}");
assert(NULL != hMutex);
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
MessageBoxA(NULL, "扫描服务已打开", "提示", 0);
CloseHandle(hMutex);
return -1;
}
WSADATA ws = { 0 }; WSADATA ws = { 0 };
int ret = WSAStartup(MAKEWORD(2, 2), &ws); int ret = WSAStartup(MAKEWORD(2, 2), &ws);
assert(0 == ret); assert(0 == ret);
#endif #endif
curl_global_init(CURL_GLOBAL_ALL); curl_global_init(CURL_GLOBAL_ALL);
HGMsgPump msgPump = NULL; HGMsgPump msgPump = NULL;
HGBase_CreateMsgPump(&msgPump); HGBase_CreateMsgPump(&msgPump);
HGThread thread = NULL; HGThread thread = NULL;
HGBase_OpenThread(ThreadFunc, msgPump, &thread); HGBase_OpenThread(ThreadFunc, msgPump, &thread);
#if defined(HG_CMP_MSC)
WNDCLASSA wc = { 0 };
wc.style = NULL;
wc.hIcon = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.hbrBackground = NULL;
wc.lpszMenuName = NULL;
wc.lpszClassName = "HGWebServie";
wc.hCursor = NULL;
RegisterClassA(&wc);
HWND hWnd = CreateWindowExA(WS_EX_TOOLWINDOW, "HGWebServie", "HGWebServie", WS_POPUP, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
taskbarMsgId = RegisterWindowMessageA("TaskbarCreated");
nid.cbSize = sizeof(NOTIFYICONDATAA);
nid.hWnd = hWnd;
nid.uID = IDI_ICON_HGWEBSERVICE;
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO;
nid.uCallbackMessage = WM_TRAY;
nid.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON_HGWEBSERVICE));
lstrcpyA(nid.szTip, "扫描服务程序(未连接)");
Shell_NotifyIconA(NIM_ADD, &nid);
ShowWindow(hWnd, SW_HIDE);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
#endif
HGBase_CloseThread(thread); HGBase_CloseThread(thread);
thread = NULL; thread = NULL;
HGBase_DestroyMsgPump(msgPump); HGBase_DestroyMsgPump(msgPump);
msgPump = NULL; msgPump = NULL;
curl_global_cleanup(); curl_global_cleanup();
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)
WSACleanup(); WSACleanup();
CloseHandle(hMutex);
#endif #endif
return 0; return 0;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

16
sdk/webservice/resource.h Normal file
View File

@ -0,0 +1,16 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 HGWebService.rc 使用
//
#define IDI_ICON_HGWEBSERVICE 101
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif