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

界面编程

开发平台:

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. #if (defined _AFXDLL) && (! defined __STATPROFUIS_WITH_DLLMFC__)
  23. #include <afxdllx.h>
  24. #ifndef __AFXSTATE_H__
  25. #include <AfxStat_.h>
  26. #endif
  27. #endif // (defined _AFXDLL) && (! defined __STATPROFUIS_WITH_DLLMFC__)
  28. #include "ProfSkin.h"
  29. #ifdef _DEBUG
  30. #define new DEBUG_NEW
  31. #undef THIS_FILE
  32. static char THIS_FILE[] = __FILE__;
  33. #endif
  34. #if (defined _AFXDLL) && (! defined __STATPROFUIS_WITH_DLLMFC__)
  35. static AFX_EXTENSION_MODULE the_ProfSkin_ExtensionModule =
  36. {
  37. NULL,
  38. NULL
  39. };
  40. extern "C" int APIENTRY DllMain(
  41. HINSTANCE hInstance,
  42. DWORD dwReason,
  43. LPVOID lpReserved
  44. )
  45. {
  46. lpReserved;
  47. if( dwReason == DLL_PROCESS_ATTACH )
  48. {
  49. TRACE3(
  50. "   * * * INITIALIZING DYNAMIC LIBRARY: ProfSkin version %d.%d%d * * * n",
  51. ((__PROF_SKIN_VERSION_DWORD >> 24) & 0XFF),
  52. ((__PROF_SKIN_VERSION_DWORD >> 16) & 0XFF),
  53. ((__PROF_SKIN_VERSION_DWORD >>  8) & 0XFF)
  54. );
  55. if( ! AfxInitExtensionModule(
  56. the_ProfSkin_ExtensionModule,
  57. hInstance
  58. )
  59. )
  60. return 0;
  61. #if (!defined __PROF_UIS_FOR_REGULAR_DLL)
  62. // new CDynLinkLibrary( the_ProfSkin_ExtensionModule );
  63. CExt_ProfSkin_ModuleState::InitExtension();
  64. #endif // (!defined __PROF_UIS_FOR_REGULAR_DLL)
  65. } // if( dwReason == DLL_PROCESS_ATTACH )
  66. else if( dwReason == DLL_PROCESS_DETACH )
  67. {
  68. TRACE3(
  69. "   * * * TERMINATING DYNAMIC LIBRARY: ProfSkin version %d.%d%d * * * n",
  70. ((__PROF_SKIN_VERSION_DWORD >> 24) & 0XFF),
  71. ((__PROF_SKIN_VERSION_DWORD >> 16) & 0XFF),
  72. ((__PROF_SKIN_VERSION_DWORD >>  8) & 0XFF)
  73. );
  74. AfxTermExtensionModule( the_ProfSkin_ExtensionModule );
  75. } // else if( dwReason == DLL_PROCESS_DETACH )
  76. return 1;   // ok
  77. }
  78. #endif // (defined _AFXDLL) && (! defined __STATPROFUIS_WITH_DLLMFC__)
  79. #if (defined __PROF_SKIN_PERFORMS_STATE_MANAGING)
  80. #if _MFC_VER < 0x800
  81. #ifndef _AFXDLL
  82. class _AFX_THREAD_STATE;
  83. struct AFX_MAINTAIN_STATE2
  84. {
  85. AFX_MAINTAIN_STATE2(AFX_MODULE_STATE* pModuleState);
  86. ~AFX_MAINTAIN_STATE2();
  87. protected:
  88. AFX_MODULE_STATE* m_pPrevModuleState;
  89. _AFX_THREAD_STATE* m_pThreadState;
  90. };
  91. AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE* pNewState)
  92. {
  93. m_pThreadState = _afxThreadState;
  94. m_pPrevModuleState = m_pThreadState->m_pModuleState;
  95. m_pThreadState->m_pModuleState = pNewState;
  96. }
  97. AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2()
  98. {
  99. m_pThreadState->m_pModuleState = m_pPrevModuleState;
  100. }
  101. #endif //_AFXDLL
  102. #endif // _MFC_VER < 0x800
  103. AFX_MODULE_STATE * CExt_ProfSkin_ModuleState::g_pExternalModuleState = NULL;
  104. CExt_ProfSkin_ModuleState::CExt_ProfSkin_ModuleState()
  105. {
  106. m_pAfxState = NULL;
  107. if( g_pExternalModuleState != NULL )
  108. m_pAfxState = new AFX_MAINTAIN_STATE2( g_pExternalModuleState );
  109. }
  110. CExt_ProfSkin_ModuleState::~CExt_ProfSkin_ModuleState()
  111. {
  112. if( m_pAfxState != NULL )
  113. delete m_pAfxState;
  114. }
  115. void CExt_ProfSkin_ModuleState::InitExtension(
  116. AFX_MODULE_STATE * pExternalModuleState // = NULL
  117. )
  118. {
  119. #if (defined _AFXDLL) && (! defined __STATPROFUIS_WITH_DLLMFC__)
  120. // #if (defined __PROF_UIS_FOR_REGULAR_DLL)
  121. new CDynLinkLibrary( the_ProfSkin_ExtensionModule );
  122. // #endif
  123. #endif
  124. g_pExternalModuleState = pExternalModuleState;
  125. }
  126. #endif // (defined __PROF_SKIN_PERFORMS_STATE_MANAGING)