From e50cf93998f7943983cfd809e430d362e118d262 Mon Sep 17 00:00:00 2001 From: paulc Date: Tue, 24 May 2005 14:42:01 +0000 Subject: [PATCH] Window service related changes git-svn-id: http://voip.null.ro/svn/yate@374 acf43c95-373e-0410-b603-e72c3f656dc1 --- windows/Client.dsp | 18 ++++++--- windows/client.rc | 87 ++++++++++++++++++++++++++++++++++++++++ windows/main-client.cpp | 63 ++++++++++++++++++++++++++++- windows/null_team.ico | Bin 0 -> 1078 bytes windows/resource.h | 21 ++++++++++ windows/yate.iss | 7 +++- yateclass.h | 2 + 7 files changed, 191 insertions(+), 7 deletions(-) create mode 100644 windows/client.rc create mode 100644 windows/null_team.ico create mode 100644 windows/resource.h diff --git a/windows/Client.dsp b/windows/Client.dsp index c99344cf..9006d364 100644 --- a/windows/Client.dsp +++ b/windows/Client.dsp @@ -54,7 +54,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"Release/yate-client.exe" +# ADD LINK32 kernel32.lib user32.lib comctl32.lib /nologo /entry:"mainCRTStartup" /subsystem:windows /machine:I386 /out:"Release/yate-client.exe" # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "Client - Win32 Debug" @@ -64,14 +64,14 @@ LINK32=link.exe # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" -# PROP Use_MFC 0 +# PROP Use_MFC 1 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c # SUBTRACT CPP /YX # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 @@ -82,7 +82,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"Debug/yate-client.exe" /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib comctl32.lib /nologo /entry:"mainCRTStartup" /subsystem:windows /incremental:no /debug /machine:I386 /out:"Debug/yate-client.exe" /pdbtype:sept # SUBTRACT LINK32 /pdb:none !ENDIF @@ -102,13 +102,21 @@ SOURCE=".\main-client.cpp" # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\resource.h +# End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # Begin Source File -SOURCE=.\version.rc +SOURCE=.\client.rc +# End Source File +# Begin Source File + +SOURCE=.\null_team.ico # End Source File # End Group # End Target diff --git a/windows/client.rc b/windows/client.rc new file mode 100644 index 00000000..71721d4b --- /dev/null +++ b/windows/client.rc @@ -0,0 +1,87 @@ +//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 + "#include ""version.rc""\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_TCLIENT DIALOGEX 0, 0, 261, 178 +STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU +CAPTION "Yate" +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + CONTROL "Tab1",IDC_TAB1,"SysTabControl32",0x0,0,0,261,165 + LTEXT "",IDC_STATUS,2,166,257,10,0,WS_EX_STATICEDGE +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_NULLTEAM ICON DISCARDABLE "null_team.ico" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "version.rc" + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/windows/main-client.cpp b/windows/main-client.cpp index 91e20989..37022af9 100644 --- a/windows/main-client.cpp +++ b/windows/main-client.cpp @@ -22,7 +22,68 @@ #include "yatengine.h" +#include "resource.h" +#include + +using namespace TelEngine; + +class WinClientThread : public Thread +{ +public: + void run(); +}; + +class WinClientPlugin : public Plugin +{ +public: + WinClientPlugin() + : m_thread(0) + { } + virtual void initialize(void); + virtual bool isBusy() const + { return true; } +private: + WinClientThread* m_thread; +}; + + +int CALLBACK mainDialog(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) +{ + switch (msg) { + case WM_CLOSE: + EndDialog(wnd,1); + break; + default: + return 0; + } + return 1; +} + +void WinClientThread::run() +{ + InitCommonControls(); + int ret = DialogBox(0,MAKEINTRESOURCE(IDD_TCLIENT),0,mainDialog); + if (ret < 0) + ret = 127; + Engine::halt(ret); +} + +void WinClientPlugin::initialize() +{ + if (!m_thread) { + m_thread = new WinClientThread; + if (m_thread->error()) + Engine::halt(1); + else + m_thread->startup(); + } +} + +INIT_PLUGIN(WinClientPlugin); + +// We force mainCRTStartup as entry point (from linker settings) so we get +// the parser called even for a GUI application extern "C" int main(int argc, const char** argv, const char** envp) { - return TelEngine::Engine::main(argc,argv,envp,TelEngine::Engine::Client); + return Engine::main(argc,argv,envp,TelEngine::Engine::Client); } diff --git a/windows/null_team.ico b/windows/null_team.ico new file mode 100644 index 0000000000000000000000000000000000000000..af4181f7e5f1f1c214fd7f599270fba567e29f59 GIT binary patch literal 1078 zcmcgrOOAsu41G`}q^P3YpsYr{#mvo`1N0DC=M+&-(q)%3dsO;tQ+`F=%uEf>_Ola* z5C_PRqiJf0Tyx-qwyupIGN9T32gVxWi^xz=1D<2o#WTr__hzW+BBewtiB4a1op=Nv z35j}_xEQBPk #include +#include /** * Windows definitions for commonly used types @@ -75,6 +76,7 @@ typedef unsigned long in_addr_t; #define write _write #define close _close #define getpid _getpid +#define chdir _chdir #define O_RDWR _O_RDWR #define O_RDONLY _O_RDONLY