home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / mfc / src / stdafx.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-16  |  5.1 KB  |  214 lines

  1. // This is a part of the Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992-1998 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Microsoft Foundation Classes Reference and related
  7. // electronic documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Microsoft Foundation Classes product.
  10.  
  11. // STDAFX.H is the header that includes the standard includes that are used
  12. //  for most of the project.  These are compiled into a pre-compiled header
  13.  
  14. // turn off warnings for /W4 (just for MFC implementation)
  15. #ifndef ALL_WARNINGS
  16. #pragma warning(disable: 4073)  // disable warning about using init_seg
  17. #endif
  18.  
  19. // MFC inline constructors (including compiler generated) can get deep
  20. #pragma inline_depth(16)
  21.  
  22. #ifdef _AFX_DEVBUILD
  23.     #define AFX_IMPL_DATA AFX_DATA_EXPORT
  24. #else
  25.     #define AFX_IMPL_DATA
  26. #endif
  27.  
  28. // override default values for data import/export when building MFC DLLs
  29. #ifdef _AFX_CORE_IMPL
  30.     #define AFX_CORE_DATA   AFX_IMPL_DATA
  31.     #define AFX_CORE_DATADEF
  32. #endif
  33.  
  34. #ifdef _AFX_OLE_IMPL
  35.     #define AFX_OLE_DATA    AFX_IMPL_DATA
  36.     #define AFX_OLE_DATADEF
  37. #endif
  38.  
  39. #ifdef _AFX_DB_IMPL
  40.     #define AFX_DB_DATA     AFX_IMPL_DATA
  41.     #define AFX_DB_DATADEF
  42. #endif
  43.  
  44. #ifdef _AFX_NET_IMPL
  45.     #define AFX_NET_DATA    AFX_IMPL_DATA
  46.     #define AFX_NET_DATADEF
  47. #endif
  48.  
  49. #define _AFX_NOFORCE_LIBS
  50. #define _AFX_FULLTYPEINFO
  51. #define VC_EXTRALEAN
  52. #define NO_ANSIUNI_ONLY
  53. #define _MFC_OVERRIDES_NEW
  54.  
  55. #define AFX_COMDAT __declspec(selectany)
  56.  
  57. // core headers
  58. #include "afx.h"
  59. #include "afxplex_.h"
  60. #include "afxcoll.h"
  61.  
  62. // public headers
  63. #include "afxwin.h"
  64. #include "afxdlgs.h"
  65. #include "afxext.h"
  66.  
  67. #ifndef _AFX_NO_OLEDB_SUPPORT
  68.     #include "atlbase.h"
  69. #endif
  70.  
  71. #ifndef _AFX_NO_OLE_SUPPORT
  72.     #ifndef _OLE2_H_
  73.         #include <ole2.h>
  74.     #endif
  75.  
  76. #include <winspool.h>
  77.  
  78. // include OLE dialog/helper APIs
  79. #ifndef _OLEDLG_H_
  80.     #include <oledlg.h>
  81. #endif
  82.  
  83. #include <winreg.h>
  84.     #include "afxcom_.h"
  85. #include "afxole.h"
  86. #include "afxdtctl.h"
  87.  
  88. #include "afxdocob.h"
  89.  
  90. #ifndef _AFX_NO_DAO_SUPPORT
  91.     #include "afxdao.h"
  92. #endif
  93.  
  94.     #include "afxodlgs.h"
  95. #endif
  96.  
  97. #ifndef _AFX_NO_OCX_SUPPORT
  98.     #include "afxctl.h"
  99. #endif
  100. #ifndef _AFX_NO_DB_SUPPORT
  101.     #include "afxdb.h"
  102. #endif
  103. #ifndef _AFX_NO_SYNC_SUPPORT
  104.     #include "afxmt.h"
  105. #endif
  106. #ifndef _AFX_NO_INET_SUPPORT
  107.     #include "afxinet.h"
  108. #endif
  109.  
  110. // private headers as well
  111. #include "afxpriv.h"
  112. #include "afximpl.h"
  113. #include "winhand_.h"
  114. #ifndef _AFX_NO_OLE_SUPPORT
  115.     #include "oleimpl2.h"
  116. #endif
  117. #ifndef _AFX_NO_OCX_SUPPORT
  118.     #include "ctlimpl.h"
  119. #endif
  120. #ifndef _AFX_NO_DB_SUPPORT
  121.     #include "dbimpl.h"
  122. #endif
  123. #ifndef _AFX_NO_DAO_SUPPORT
  124.     #include "daoimpl.h"
  125. #endif
  126. #ifndef _AFX_NO_SOCKET_SUPPORT
  127.     #ifndef _WINSOCKAPI_
  128.         #include <winsock.h>
  129.     #endif
  130.     #include "sockimpl.h"
  131.     #include "afxsock.h"
  132. #endif
  133. #ifndef _AFX_NO_AFXCMN_SUPPORT
  134.     #include "afxcmn.h"
  135.     #include "afxcview.h"
  136. #endif
  137. #ifndef _AFX_NO_RICHEDIT_SUPPORT
  138.     #include "afxrich.h"
  139. #endif
  140. #ifndef _AFX_NO_DHTML_SUPPORT
  141.     #include "afxhtml.h"
  142. #endif
  143.  
  144. #include <winreg.h>
  145. #include <winnls.h>
  146. #include <stddef.h>
  147. #include <limits.h>
  148. #include <malloc.h>
  149. #include <new.h>
  150. #ifndef _AFX_OLD_EXCEPTIONS
  151. #include <eh.h>     // for set_terminate
  152. #endif
  153.  
  154. #undef AfxWndProc
  155.  
  156. // implementation uses _AFX_PACKING as well
  157. #ifdef _AFX_PACKING
  158. #ifndef ALL_WARNINGS
  159. #pragma warning(disable: 4103)
  160. #endif
  161. #pragma pack(_AFX_PACKING)
  162. #endif
  163.  
  164. // special exception handling just for MFC library implementation
  165. #ifndef _AFX_OLD_EXCEPTIONS
  166.  
  167. // MFC does not rely on auto-delete semantics of the TRY..CATCH macros,
  168. //  therefore those macros are mapped to something closer to the native
  169. //  C++ exception handling mechanism when building MFC itself.
  170.  
  171. #undef TRY
  172. #define TRY { try {
  173.  
  174. #undef CATCH
  175. #define CATCH(class, e) } catch (class* e) \
  176.     { ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); UNUSED(e);
  177.  
  178. #undef AND_CATCH
  179. #define AND_CATCH(class, e) } catch (class* e) \
  180.     { ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); UNUSED(e);
  181.  
  182. #undef CATCH_ALL
  183. #define CATCH_ALL(e) } catch (CException* e) \
  184.     { { ASSERT(e->IsKindOf(RUNTIME_CLASS(CException))); UNUSED(e);
  185.  
  186. #undef AND_CATCH_ALL
  187. #define AND_CATCH_ALL(e) } catch (CException* e) \
  188.     { { ASSERT(e->IsKindOf(RUNTIME_CLASS(CException))); UNUSED(e);
  189.  
  190. #undef END_TRY
  191. #define END_TRY } catch (CException* e) \
  192.     { ASSERT(e->IsKindOf(RUNTIME_CLASS(CException))); e->Delete(); } }
  193.  
  194. #undef THROW_LAST
  195. #define THROW_LAST() throw
  196.  
  197. // Because of the above definitions of TRY...CATCH it is necessary to
  198. //  explicitly delete exception objects at the catch site.
  199.  
  200. #define DELETE_EXCEPTION(e) do { e->Delete(); } while (0)
  201. #define NO_CPP_EXCEPTION(expr)
  202.  
  203. #else   //!_AFX_OLD_EXCEPTIONS
  204.  
  205. // In this case, the TRY..CATCH macros provide auto-delete semantics, so
  206. //  it is not necessary to explicitly delete exception objects at the catch site.
  207.  
  208. #define DELETE_EXCEPTION(e)
  209. #define NO_CPP_EXCEPTION(expr) expr
  210.  
  211. #endif  //_AFX_OLD_EXCEPTIONS
  212.  
  213. /////////////////////////////////////////////////////////////////////////////
  214.