Leaked source code of windows server 2003
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.

150 lines
4.1 KiB

  1. /*
  2. ****************************************************************************
  3. | Copyright (C) 2002 Microsoft Corporation
  4. |
  5. | Component / Subcomponent
  6. | IIS 6.0 / IIS Migration Wizard
  7. |
  8. | Based on:
  9. | http://iis6/Specs/IIS%20Migration6.0_Final.doc
  10. |
  11. | Abstract:
  12. | Precompiled header file
  13. |
  14. | Author:
  15. | ivelinj
  16. |
  17. | Revision History:
  18. | V1.00 March 2002
  19. |
  20. ****************************************************************************
  21. */
  22. #pragma once
  23. #ifndef STRICT
  24. #define STRICT
  25. #endif
  26. // NT Build compatability
  27. #ifndef _DEBUG
  28. #if ( DBG != 0 )
  29. #define _DEBUG
  30. #endif // DBG
  31. #endif // _DEBUG
  32. // Modify the following defines if you have to target a platform prior to the ones specified below.
  33. // Refer to MSDN for the latest info on corresponding values for different platforms.
  34. #ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
  35. #define WINVER 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
  36. #endif
  37. #ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
  38. #define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target Windows 2000 or later.
  39. #endif
  40. #ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
  41. #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
  42. #endif
  43. #ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
  44. #define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
  45. #endif
  46. #define _ATL_APARTMENT_THREADED
  47. #define _ATL_NO_AUTOMATIC_NAMESPACE
  48. #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
  49. // turns off ATL's hiding of some common and often safely ignored warning messages
  50. #define _ATL_ALL_WARNINGS
  51. #include <comdef.h>
  52. #include <initguid.h>
  53. // ATL
  54. #include <atlbase.h>
  55. //You may derive a class from CComModule and use it if you want to override
  56. //something, but do not change the name of _Module
  57. extern CComModule _Module;
  58. #include <atlcom.h>
  59. #include <atlcom.h>
  60. // STL
  61. #pragma warning( push, 3 )
  62. #include <list>
  63. #include <memory>
  64. #include <string>
  65. #include <map>
  66. #include <queue>
  67. #pragma warning( pop )
  68. // Common string list
  69. typedef std::list<std::wstring> TStringList;
  70. typedef std::auto_ptr<BYTE> TByteAutoPtr;
  71. // Shared
  72. #include <limits.h>
  73. #include <iadmw.h> // ABO definition
  74. #include <iiscnfg.h> // MD_ & IIS_MD_ defines
  75. #include <iiscnfgp.h> // IIS private defs
  76. #include <msxml2.h> // MSXML parser
  77. #include <WinCrypt.h> // CryptAPI
  78. #include <fci.h> // CAB Compress API
  79. #include <FCNTL.H> // Setup Api structures
  80. #include <shlwapi.h>
  81. #include <shellapi.h>
  82. #include <Aclapi.h> // ACL
  83. #pragma comment( lib, "msxml2.lib" ) // CLSIDs, IIDs
  84. #pragma comment( lib, "Advapi32.lib" ) // CLSIDs, IIDs
  85. #pragma comment( lib, "setupapi.lib" )
  86. #pragma comment( lib, "shlwapi.lib" )
  87. #pragma comment( lib, "fci.lib" ) // File Compress interface ( CAB compression )
  88. #pragma comment( lib, "crypt32.lib" ) // Certificates
  89. // Local
  90. #include "Macros.h"
  91. #include "resource.h"
  92. #include "Exceptions.h"
  93. // Shared constants
  94. extern const DWORD MAX_CMD_TIMEOUT;
  95. extern LPCWSTR PKG_GUID;
  96. // Post-import macro strings
  97. extern LPCWSTR IMPMACRO_TEMPDIR;
  98. extern LPCWSTR IMPMACRO_SITEIID;
  99. // Smart pointer declarations
  100. _COM_SMARTPTR_TYPEDEF( IMSAdminBase, __uuidof( IMSAdminBase ) );
  101. _COM_SMARTPTR_TYPEDEF( IXMLDOMDocument, __uuidof( IXMLDOMDocument ) );
  102. _COM_SMARTPTR_TYPEDEF( IXMLDOMDocument2, __uuidof( IXMLDOMDocument2 ) );
  103. _COM_SMARTPTR_TYPEDEF( IXMLDOMElement, __uuidof( IXMLDOMElement ) );
  104. _COM_SMARTPTR_TYPEDEF( IXMLDOMText, __uuidof( IXMLDOMText ) );
  105. _COM_SMARTPTR_TYPEDEF( IXMLDOMCDATASection, __uuidof( IXMLDOMCDATASection ) );
  106. _COM_SMARTPTR_TYPEDEF( IXMLDOMNamedNodeMap, __uuidof( IXMLDOMNamedNodeMap ) );
  107. _COM_SMARTPTR_TYPEDEF( IXMLDOMNodeList, __uuidof( IXMLDOMNodeList ) );
  108. _COM_SMARTPTR_TYPEDEF( IXMLDOMNode, __uuidof( IXMLDOMNode ) );