ProfUISDLL.cpp
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:3k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #include "stdafx.h"
  22. #include <afxdllx.h>
  23. #ifndef __AFXSTATE_H__
  24. #include <AfxStat_.h>
  25. #endif
  26. #ifdef _DEBUG
  27. #define new DEBUG_NEW
  28. #undef THIS_FILE
  29. static char THIS_FILE[] = __FILE__;
  30. #endif
  31. static AFX_EXTENSION_MODULE the_ProfUIS_ExtensionModule =
  32. {
  33. NULL,
  34. NULL
  35. };
  36. extern "C" int APIENTRY DllMain(
  37. HINSTANCE hInstance,
  38. DWORD dwReason,
  39. LPVOID lpReserved
  40. )
  41. {
  42. lpReserved;
  43. if( dwReason == DLL_PROCESS_ATTACH )
  44. {
  45. TRACE3(
  46. "   * * * INITIALIZING DYNAMIC LIBRARY: ProfUIS version %d.%d%d * * * n",
  47. ((__PROF_UIS_VERSION_DWORD >> 24) & 0XFF),
  48. ((__PROF_UIS_VERSION_DWORD >> 16) & 0XFF),
  49. ((__PROF_UIS_VERSION_DWORD >>  8) & 0XFF)
  50. );
  51. if( ! AfxInitExtensionModule(
  52. the_ProfUIS_ExtensionModule,
  53. hInstance
  54. )
  55. )
  56. return 0;
  57. #if (!defined __PROF_UIS_FOR_REGULAR_DLL)
  58. // new CDynLinkLibrary( the_ProfUIS_ExtensionModule );
  59. CExt_ProfUIS_ModuleState::InitExtension();
  60. #endif // (!defined __PROF_UIS_FOR_REGULAR_DLL)
  61. } // if( dwReason == DLL_PROCESS_ATTACH )
  62. else if( dwReason == DLL_PROCESS_DETACH )
  63. {
  64. TRACE3(
  65. "   * * * TERMINATING DYNAMIC LIBRARY: ProfUIS version %d.%d%d * * * n",
  66. ((__PROF_UIS_VERSION_DWORD >> 24) & 0XFF),
  67. ((__PROF_UIS_VERSION_DWORD >> 16) & 0XFF),
  68. ((__PROF_UIS_VERSION_DWORD >>  8) & 0XFF)
  69. );
  70. AfxTermExtensionModule( the_ProfUIS_ExtensionModule );
  71. } // else if( dwReason == DLL_PROCESS_DETACH )
  72. return 1;   // ok
  73. }
  74. #if (defined __PROF_UIS_PERFORMS_STATE_MANAGING)
  75. AFX_MODULE_STATE * CExt_ProfUIS_ModuleState::g_pExternalModuleState = NULL;
  76. CExt_ProfUIS_ModuleState::CExt_ProfUIS_ModuleState()
  77. {
  78. m_pAfxState = NULL;
  79. if( g_pExternalModuleState != NULL )
  80. m_pAfxState = new AFX_MAINTAIN_STATE2( g_pExternalModuleState );
  81. }
  82. CExt_ProfUIS_ModuleState::~CExt_ProfUIS_ModuleState()
  83. {
  84. if( m_pAfxState != NULL )
  85. delete m_pAfxState;
  86. }
  87. void CExt_ProfUIS_ModuleState::InitExtension(
  88. AFX_MODULE_STATE * pExternalModuleState // = NULL
  89. )
  90. {
  91. new CDynLinkLibrary( the_ProfUIS_ExtensionModule );
  92. g_pExternalModuleState = pExternalModuleState;
  93. }
  94. #endif // (defined __PROF_UIS_PERFORMS_STATE_MANAGING)