RnsoClient.cpp
上传用户:lianquan
上传日期:2007-01-02
资源大小:197k
文件大小:2k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. // RnsoClient.cpp : Defines the initialization routines for the DLL.
  2. //
  3. #include "stdafx.h"
  4. #include <afxdllx.h>
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. static AFX_EXTENSION_MODULE RnsoClientDLL = { NULL, NULL };
  11. static LONG lCountProcess;
  12. CComModule _Module;
  13. extern "C" int APIENTRY
  14. DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
  15. {
  16. // Remove this if you use lpReserved
  17. UNREFERENCED_PARAMETER(lpReserved);
  18. if (dwReason == DLL_PROCESS_ATTACH)
  19. {
  20. TRACE0("RNSOCLIENT.DLL Initializing!n");
  21. // Extension DLL one-time initialization
  22. if (!AfxInitExtensionModule(RnsoClientDLL, hInstance))
  23. return 0;
  24. InterlockedIncrement(&lCountProcess);
  25. if( lCountProcess < 2 );
  26. _Module.Init(NULL,NULL);
  27. //if( ! AfxOleInit() )
  28. // return 0;
  29. // Insert this DLL into the resource chain
  30. // NOTE: If this Extension DLL is being implicitly linked to by
  31. //  an MFC Regular DLL (such as an ActiveX Control)
  32. //  instead of an MFC application, then you will want to
  33. //  remove this line from DllMain and put it in a separate
  34. //  function exported from this Extension DLL.  The Regular DLL
  35. //  that uses this Extension DLL should then explicitly call that
  36. //  function to initialize this Extension DLL.  Otherwise,
  37. //  the CDynLinkLibrary object will not be attached to the
  38. //  Regular DLL's resource chain, and serious problems will
  39. //  result.
  40. new CDynLinkLibrary(RnsoClientDLL);
  41. }
  42. else if (dwReason == DLL_PROCESS_DETACH)
  43. {
  44. InterlockedDecrement(&lCountProcess);
  45. //_Module.Term();
  46. TRACE0("RNSOCLIENT.DLL Terminating!n");
  47. // Terminate the library before destructors are called
  48. AfxTermExtensionModule(RnsoClientDLL);
  49. }
  50. return 1;   // ok
  51. }