chat.cpp
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *   This program is free software; you can redistribute it and/or modify  *
  4.  *   it under the terms of the GNU General Public License as published by  *
  5.  *   the Free Software Foundation; either version 2 of the License, or     *
  6.  *   (at your option) any later version.                                   *
  7.  *                                                                         *
  8.  *   copyright            : (C) 2002 by Zhang Yong                         *
  9.  *   email                : z-yong163@163.com                              *
  10.  ***************************************************************************/
  11. // chat.cpp : Defines the initialization routines for the DLL.
  12. //
  13. #include "stdafx.h"
  14. #include "chat.h"
  15. #include "plugin.h"
  16. #include "chatsession.h"
  17. #include "ChatDlg.h"
  18. #include <string>
  19. using namespace std;
  20. #ifdef _DEBUG
  21. #define new DEBUG_NEW
  22. #undef THIS_FILE
  23. static char THIS_FILE[] = __FILE__;
  24. #endif
  25. //
  26. // Note!
  27. //
  28. // If this DLL is dynamically linked against the MFC
  29. // DLLs, any functions exported from this DLL which
  30. // call into MFC must have the AFX_MANAGE_STATE macro
  31. // added at the very beginning of the function.
  32. //
  33. // For example:
  34. //
  35. // extern "C" BOOL PASCAL EXPORT ExportedFunction()
  36. // {
  37. // AFX_MANAGE_STATE(AfxGetStaticModuleState());
  38. // // normal function body here
  39. // }
  40. //
  41. // It is very important that this macro appear in each
  42. // function, prior to any calls into MFC.  This means that
  43. // it must appear as the first statement within the 
  44. // function, even before any object variable declarations
  45. // as their constructors may generate calls into the MFC
  46. // DLL.
  47. //
  48. // Please see MFC Technical Notes 33 and 58 for additional
  49. // details.
  50. //
  51. #define ICQ_EXPORT extern "C" __declspec(dllexport)
  52. ICQ_EXPORT int getType()
  53. {
  54. return ICQ_PLUGIN_NET;
  55. }
  56. ICQ_EXPORT void *getNameIcon(string &name)
  57. {
  58. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  59. AfxGetMainWnd();
  60. CString str;
  61. str.LoadString(IDS_CHAT);
  62. name = str;
  63. return AfxGetApp()->LoadIcon(IDI_CHAT);
  64. }
  65. ICQ_EXPORT TcpSessionListener *createSession(TcpSessionBase *tcp)
  66. {
  67. AFX_MANAGE_STATE(AfxGetStaticModuleState());
  68. ChatSession *session = new ChatSession(tcp);
  69. CChatDlg *dlg = new CChatDlg(session);
  70. dlg->Create(IDD_CHAT);
  71. session->setListener(dlg);
  72. return session;
  73. }
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CChatApp
  76. BEGIN_MESSAGE_MAP(CChatApp, CWinApp)
  77. //{{AFX_MSG_MAP(CChatApp)
  78. // NOTE - the ClassWizard will add and remove mapping macros here.
  79. //    DO NOT EDIT what you see in these blocks of generated code!
  80. //}}AFX_MSG_MAP
  81. END_MESSAGE_MAP()
  82. /////////////////////////////////////////////////////////////////////////////
  83. // CChatApp construction
  84. CChatApp::CChatApp()
  85. {
  86. // TODO: add construction code here,
  87. // Place all significant initialization in InitInstance
  88. }
  89. /////////////////////////////////////////////////////////////////////////////
  90. // The one and only CChatApp object
  91. CChatApp theApp;
  92. /////////////////////////////////////////////////////////////////////////////
  93. // CChatApp initialization
  94. BOOL CChatApp::InitInstance()
  95. {
  96. if (!AfxSocketInit())
  97. {
  98. AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
  99. return FALSE;
  100. }
  101. return TRUE;
  102. }