Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
7.2 KiB

  1. // stdafx.h : include file for standard system include files,
  2. // or project specific include files that are used frequently, but
  3. // are changed infrequently
  4. //
  5. //+-------------------------------------------------------------------------
  6. //
  7. // Microsoft Windows
  8. // Copyright (C) Microsoft Corporation, 1992 - 1999
  9. //
  10. // File: stdafx.h
  11. //
  12. // Contents: PCH for AMC
  13. //
  14. // History: 01-Jan-96 TRomano Created
  15. // 16-Jul-96 WayneSc Added #include for template support
  16. //
  17. //--------------------------------------------------------------------------
  18. #pragma warning(disable: 4786) // symbol greater than 255 characters
  19. #pragma warning(disable: 4291) // 'placement new': no matching operator delete found; memory will not be freed if initialization throws an exception
  20. #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
  21. #include <nt.h>
  22. #include <ntrtl.h>
  23. #include <nturtl.h>
  24. #undef ASSERTMSG
  25. #undef ASSERT
  26. #include <afxwin.h> // MFC core and standard components
  27. #include <afxext.h> // MFC extensions
  28. #include <mmctempl.h> // MFC Template classes
  29. #include <afxdisp.h> // MFC OLE automation classes
  30. #include <afxcview.h> // MFC CListView & CTreeView classes
  31. #include <afxpriv.h> // used for OLE2T T2OLE conversions
  32. #include <afxmt.h> // CCriticalSection
  33. #include <afxole.h> // MFC OLE classes
  34. #if (_WIN32_WINNT < 0x0500)
  35. #include <multimon.h> // multiple monitor support
  36. #endif
  37. #ifndef _AFX_NO_AFXCMN_SUPPORT
  38. #include <afxcmn.h> // MFC support for Windows 95 Common Controls
  39. #endif // _AFX_NO_AFXCMN_SUPPORT
  40. #include <objidl.h> // OLE interface definitions
  41. /*----------------------------------------------------------*/
  42. /* include the STL headers that define operator new() here, */
  43. /* so we don't run into trouble with DEBUG_NEW below */
  44. /*----------------------------------------------------------*/
  45. #include <new>
  46. #include <memory>
  47. #define SIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
  48. #ifdef _DEBUG
  49. #define new DEBUG_NEW
  50. #endif
  51. #ifdef DBG
  52. #undef THIS_FILE
  53. static char THIS_FILE[] = __FILE__;
  54. #endif
  55. //############################################################################
  56. //############################################################################
  57. //
  58. // STL and other classes
  59. //
  60. //############################################################################
  61. //############################################################################
  62. #include <set>
  63. #include <map>
  64. #include <vector>
  65. #include <list>
  66. #include <deque>
  67. #include <queue>
  68. #include <stack>
  69. #include <algorithm>
  70. #include <iterator>
  71. //############################################################################
  72. //############################################################################
  73. //
  74. // Files #included from base and core.
  75. //
  76. //############################################################################
  77. //############################################################################
  78. #include <mmc.h>
  79. #include <ndmgr.h> // include file built by MIDL from ndmgr.idl
  80. #include <ndmgrpriv.h>
  81. //############################################################################
  82. //############################################################################
  83. //
  84. // Files #included from base and core.
  85. //
  86. //############################################################################
  87. //############################################################################
  88. #include "dbg.h" // Debug helper
  89. #include "cstr.h"
  90. #include "mmcdebug.h"
  91. #include "mmcerror.h"
  92. #pragma warning(disable: 4068) // unknown pragma
  93. #include "atlconui.h"
  94. #pragma warning(default: 4068)
  95. #include "tiedobj.h"
  96. #include "comerror.h"
  97. #include "events.h"
  98. #include "comobjects.h"
  99. #include "enumerator.h"
  100. #include "autoptr.h"
  101. //############################################################################
  102. //############################################################################
  103. //
  104. // include common and conui-only strings.
  105. //
  106. //############################################################################
  107. //############################################################################
  108. #include "..\base\basestr.h"
  109. #include "..\base\conuistr.h"
  110. #include "stringutil.h"
  111. //############################################################################
  112. //############################################################################
  113. //
  114. // Debug support for legacy traces.
  115. //
  116. //############################################################################
  117. //############################################################################
  118. #undef TRACE
  119. #ifdef DBG
  120. #define TRACE TraceConuiLegacy
  121. #else // DBG
  122. #define TRACE ;/##/
  123. #endif DBG
  124. //############################################################################
  125. //############################################################################
  126. //
  127. // Misc functions
  128. //
  129. //############################################################################
  130. //############################################################################
  131. void DrawBitmap(HDC hWnd, int nID, CRect& rc, BOOL bStretch);
  132. // Project specific includes
  133. #ifndef DECLSPEC_UUID
  134. #if _MSC_VER >= 1100
  135. #define DECLSPEC_UUID(x) __declspec(uuid(x))
  136. #else
  137. #define DECLSPEC_UUID(x)
  138. #endif
  139. #endif
  140. #include "docksite.h"
  141. #include "Controls.h"
  142. #include "mmcptrs.h"
  143. #include "wrapper.h"
  144. #include "countof.h"
  145. #include "cpputil.h"
  146. #include "stlstuff.h"
  147. #include "bookmark.h"
  148. #include "serial.h"
  149. #include "xmlbase.h"
  150. #include "resultview.h"
  151. #include "mmcdata.h"
  152. #include "viewset.h"
  153. #include "memento.h"
  154. #include "objmodelptrs.h"
  155. #include "macros.h"
  156. //############################################################################
  157. //############################################################################
  158. //
  159. // Headers included from conui
  160. //
  161. //############################################################################
  162. //############################################################################
  163. #include "resource.h" // main symbols
  164. #include "helparr.h"
  165. #include "idle.h"
  166. #include "conuiobservers.h"
  167. #include "mmcaxwin.h"
  168. //############################################################################
  169. //############################################################################
  170. //
  171. // Miscellaneous
  172. //
  173. //############################################################################
  174. //############################################################################
  175. #include <shfusion.h>
  176. class CThemeContextActivator
  177. {
  178. public:
  179. CThemeContextActivator() : m_ulActivationCookie(0)
  180. { SHActivateContext (&m_ulActivationCookie); }
  181. ~CThemeContextActivator()
  182. { SHDeactivateContext (m_ulActivationCookie); }
  183. private:
  184. ULONG_PTR m_ulActivationCookie;
  185. };
  186. // from afxpriv.h
  187. extern void AFXAPI AfxSetWindowText(HWND, LPCTSTR);
  188. inline bool IsKeyPressed (int nVirtKey)
  189. {
  190. return (GetKeyState (nVirtKey) < 0);
  191. }
  192. template<typename T>
  193. inline T abs (const T& t)
  194. {
  195. return ((t < 0) ? -t : t);
  196. }
  197. /*
  198. * Define some handy message map macros that afxmsg_.h doesn't define for us
  199. */
  200. #define ON_WM_SETTEXT() \
  201. { WM_SETTEXT, 0, 0, 0, AfxSig_vs, \
  202. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPTSTR))&OnSetText },