From 2a467bfd6d2c07054465ddf4ec43466b6a88920c Mon Sep 17 00:00:00 2001 From: Pavel Krymets Date: Tue, 29 May 2018 09:06:21 -0700 Subject: [PATCH] Cleanup headers and enable MultiProcessorCompilation (#845) --- .../AspNetCore/AspNetCore.vcxproj | 18 +- .../AspNetCore/Inc/applicationinfo.h | 18 +- .../AspNetCore/Inc/applicationmanager.h | 10 +- .../AspNetCore/Inc/appoffline.h | 3 + .../AspNetCore/Inc/aspnetcore_shim_config.h | 3 + .../AspNetCore/Inc/filewatcher.h | 2 + .../AspNetCore/Inc/globalmodule.h | 4 + .../AspNetCore/Inc/precomp.hxx | 66 +++ .../AspNetCore/Inc/proxymodule.h | 7 +- .../AspNetCore/src/applicationinfo.cpp | 15 +- .../AspNetCore/src/applicationmanager.cxx | 24 +- .../AspNetCore/src/aspnetcore_shim_config.cpp | 6 +- .../AspNetCore/src/dllmain.cpp | 10 +- .../AspNetCore/src/filewatcher.cxx | 19 +- .../AspNetCore/src/globalmodule.cpp | 5 +- .../AspNetCore/src/precomp.hxx | 282 +++++----- .../AspNetCore/src/proxymodule.cxx | 19 +- .../CommonLib/CommonLib.vcxproj | 14 +- .../CommonLib/hostfxr_utility.h | 4 + .../CommonLib/hostfxroptions.h | 2 + src/AspNetCoreModuleV2/IISLib/IISLib.vcxproj | 404 +++++++------- .../OutOfProcessRequestHandler.vcxproj | 510 +++++++++--------- 22 files changed, 802 insertions(+), 643 deletions(-) create mode 100644 src/AspNetCoreModuleV2/AspNetCore/Inc/precomp.hxx diff --git a/src/AspNetCoreModuleV2/AspNetCore/AspNetCore.vcxproj b/src/AspNetCoreModuleV2/AspNetCore/AspNetCore.vcxproj index baa119b1e6..21d5ff2680 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/AspNetCore.vcxproj +++ b/src/AspNetCoreModuleV2/AspNetCore/AspNetCore.vcxproj @@ -82,7 +82,7 @@ WIN32;_DEBUG;_WINDOWS;_USRDLL;ASPNETCOREMODULE_EXPORTS;%(PreprocessorDefinitions) precomp.hxx $(IntDir)$(TargetName).pch - ..\IISLib;inc;..\CommonLib + ..\IISLib;.\Inc;..\CommonLib ProgramDatabase MultiThreadedDebug true @@ -96,12 +96,14 @@ true CompileAsCpp true + true Windows true kernel32.lib;user32.lib;advapi32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) Source.def + UseLinkTimeCodeGeneration ..\Commonlib @@ -115,7 +117,7 @@ WIN32;_DEBUG;_WINDOWS;_USRDLL;ASPNETCOREMODULE_EXPORTS;%(PreprocessorDefinitions) precomp.hxx $(IntDir)$(TargetName).pch - ..\IISLib;inc;..\CommonLib + ..\IISLib;.\Inc;..\CommonLib ProgramDatabase MultiThreadedDebug true @@ -128,6 +130,7 @@ false true CompileAsCpp + true true @@ -135,6 +138,7 @@ true kernel32.lib;user32.lib;advapi32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) Source.def + UseLinkTimeCodeGeneration ..\Commonlib @@ -148,7 +152,7 @@ true true WIN32;NDEBUG;_WINDOWS;_USRDLL;ASPNETCOREMODULE_EXPORTS;%(PreprocessorDefinitions) - ..\IISLib;inc;..\CommonLib + ..\IISLib;.\Inc;..\CommonLib precomp.hxx MultiThreaded true @@ -162,6 +166,7 @@ true CompileAsCpp true + true Windows @@ -170,6 +175,7 @@ true Source.def kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;ahadmin.lib;winhttp.lib;odbc32.lib;ws2_32.lib;odbccp32.lib;wbemuuid.lib;iphlpapi.lib;pdh.lib;rpcrt4.lib;%(AdditionalDependencies) + UseLinkTimeCodeGeneration ..\Commonlib @@ -184,7 +190,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;ASPNETCOREMODULE_EXPORTS;%(PreprocessorDefinitions) precomp.hxx - ..\IISLib;inc;..\CommonLib + ..\IISLib;.\Inc;..\CommonLib MultiThreaded true true @@ -197,6 +203,7 @@ true CompileAsCpp true + true Windows @@ -205,6 +212,7 @@ true Source.def kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) + UseLinkTimeCodeGeneration ..\Commonlib @@ -218,7 +226,7 @@ - + diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationinfo.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationinfo.h index 1743f6eb29..0648f3bf79 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationinfo.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationinfo.h @@ -3,9 +3,17 @@ #pragma once -#define API_BUFFER_TOO_SMALL 0x80008098 +#include "precomp.hxx" -extern BOOL g_fRecycleProcessCalled; +#include "hostfxroptions.h" +#include "appoffline.h" +#include "filewatcher.h" +#include "hashtable.h" +#include "hashfn.h" +#include "aspnetcore_shim_config.h" +#include "iapplication.h" + +#define API_BUFFER_TOO_SMALL 0x80008098 typedef HRESULT @@ -16,6 +24,9 @@ HRESULT _Out_ IAPPLICATION **pApplication ); +extern BOOL g_fRecycleProcessCalled; +extern PFN_ASPNETCORE_CREATE_APPLICATION g_pfnAspNetCoreCreateApplication; + // // The key used for hash-table lookups, consists of the port on which the http process is created. // @@ -168,6 +179,9 @@ private: SRWLOCK m_srwLock; IHttpServer *m_pServer; PFN_ASPNETCORE_CREATE_APPLICATION m_pfnAspNetCoreCreateApplication; + + static const PCWSTR s_pwzAspnetcoreInProcessRequestHandlerName; + static const PCWSTR s_pwzAspnetcoreOutOfProcessRequestHandlerName; }; class APPLICATION_INFO_HASH : diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationmanager.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationmanager.h index 7d2cb29e66..5577df2de2 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationmanager.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/applicationmanager.h @@ -3,6 +3,12 @@ #pragma once +#include "precomp.hxx" + +#include "applicationinfo.h" +#include "multisz.h" +#include "filewatcher.h" + #define DEFAULT_HASH_BUCKETS 17 // @@ -133,8 +139,8 @@ public: private: // // we currently limit the size of m_pstrErrorInfo to 5000, be careful if you want to change its payload - // - APPLICATION_MANAGER() : m_pApplicationInfoHash(NULL), + // + APPLICATION_MANAGER() : m_pApplicationInfoHash(NULL), m_pFileWatcher(NULL), m_hostingModel(HOSTING_UNKNOWN) { diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/appoffline.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/appoffline.h index 85b6c13ea8..581292fdba 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/appoffline.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/appoffline.h @@ -2,6 +2,9 @@ // Licensed under the MIT License. See License.txt in the project root for license information. #pragma once + +#include "precomp.hxx" + class APP_OFFLINE_HTM { public: diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/aspnetcore_shim_config.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/aspnetcore_shim_config.h index 8a114a69b4..2d1e8e7944 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/aspnetcore_shim_config.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/aspnetcore_shim_config.h @@ -2,6 +2,9 @@ // Licensed under the MIT License. See License.txt in the project root for license information. #pragma once + +#include "precomp.hxx" + #define CS_ASPNETCORE_SECTION L"system.webServer/aspNetCore" #define CS_ASPNETCORE_PROCESS_EXE_PATH L"processPath" #define CS_ASPNETCORE_PROCESS_ARGUMENTS L"arguments" diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/filewatcher.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/filewatcher.h index d8bde448a7..8290b4b118 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/filewatcher.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/filewatcher.h @@ -3,6 +3,8 @@ #pragma once +#include "precomp.hxx" + #define FILE_WATCHER_SHUTDOWN_KEY (ULONG_PTR)(-1) #define FILE_WATCHER_ENTRY_BUFFER_SIZE 4096 #ifndef CONTAINING_RECORD diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/globalmodule.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/globalmodule.h index aca1857051..a21ea907d5 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/globalmodule.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/globalmodule.h @@ -3,6 +3,10 @@ #pragma once +#include "precomp.hxx" + +#include "applicationmanager.h" + class ASPNET_CORE_GLOBAL_MODULE : public CGlobalModule { diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/precomp.hxx b/src/AspNetCoreModuleV2/AspNetCore/Inc/precomp.hxx new file mode 100644 index 0000000000..6e6e2619e3 --- /dev/null +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/precomp.hxx @@ -0,0 +1,66 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +#pragma once +#pragma warning( disable : 4091) + +// +// System related headers +// +#define WIN32_LEAN_AND_MEAN + +#define NTDDI_VERSION 0x06010000 +#define WINVER 0x0601 +#define _WIN32_WINNT 0x0601 + +#include +#include +#include + +#include "stringu.h" +#include "stringa.h" + +#include "ntassert.h" +#include "dbgutil.h" + +#include "aspnetcore_msg.h" +#include "resources.h" + +#include + +FORCEINLINE +DWORD +WIN32_FROM_HRESULT( + HRESULT hr +) +{ + if ((FAILED(hr)) && + (HRESULT_FACILITY(hr) == FACILITY_WIN32)) + { + return HRESULT_CODE(hr); + } + return hr; +} + +FORCEINLINE +HRESULT +HRESULT_FROM_GETLASTERROR() +{ + return ( GetLastError() != NO_ERROR ) + ? HRESULT_FROM_WIN32( GetLastError() ) + : E_FAIL; +} + +extern PVOID g_pModuleId; +extern BOOL g_fAspnetcoreRHAssemblyLoaded; +extern BOOL g_fAspnetcoreRHLoadedError; +extern BOOL g_fInShutdown; +extern BOOL g_fEnableReferenceCountTracing; +extern DWORD g_dwActiveServerProcesses; +extern HINSTANCE g_hModule; +extern HMODULE g_hAspnetCoreRH; +extern SRWLOCK g_srwLock; +extern PCWSTR g_pwzAspnetcoreRequestHandlerName; +extern HANDLE g_hEventLog; + +#pragma warning( error : 4091) diff --git a/src/AspNetCoreModuleV2/AspNetCore/Inc/proxymodule.h b/src/AspNetCoreModuleV2/AspNetCore/Inc/proxymodule.h index 982dd8c970..a5711f84c4 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/Inc/proxymodule.h +++ b/src/AspNetCoreModuleV2/AspNetCore/Inc/proxymodule.h @@ -3,6 +3,11 @@ #pragma once +#include "precomp.hxx" + +#include "applicationinfo.h" +#include "irequesthandler.h" + extern HTTP_MODULE_ID g_pModuleId; extern IHttpServer *g_pHttpServer; extern HMODULE g_hAspnetCoreRH; @@ -61,4 +66,4 @@ class ASPNET_CORE_PROXY_MODULE_FACTORY : public IHttpModuleFactory VOID Terminate(); -}; \ No newline at end of file +}; diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/applicationinfo.cpp b/src/AspNetCoreModuleV2/AspNetCore/src/applicationinfo.cpp index 34a061c0b4..3f18c63507 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/applicationinfo.cpp +++ b/src/AspNetCoreModuleV2/AspNetCore/src/applicationinfo.cpp @@ -1,7 +1,14 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -#include "precomp.hxx" +#include "applicationinfo.h" + +#include "proxymodule.h" +#include "hostfxr_utility.h" +#include "utility.h" + +const PCWSTR APPLICATION_INFO::s_pwzAspnetcoreInProcessRequestHandlerName = L"aspnetcorev2_inprocess.dll"; +const PCWSTR APPLICATION_INFO::s_pwzAspnetcoreOutOfProcessRequestHandlerName = L"aspnetcorev2_outofprocess.dll"; APPLICATION_INFO::~APPLICATION_INFO() { @@ -258,11 +265,11 @@ APPLICATION_INFO::FindRequestHandlerAssembly(STRU& location) if (m_pConfiguration->QueryHostingModel() == APP_HOSTING_MODEL::HOSTING_IN_PROCESS) { - pstrHandlerDllName = g_pwzAspnetcoreInProcessRequestHandlerName; + pstrHandlerDllName = s_pwzAspnetcoreInProcessRequestHandlerName; } else { - pstrHandlerDllName = g_pwzAspnetcoreOutOfProcessRequestHandlerName; + pstrHandlerDllName = s_pwzAspnetcoreOutOfProcessRequestHandlerName; } // Try to see if RH is already loaded @@ -272,7 +279,7 @@ APPLICATION_INFO::FindRequestHandlerAssembly(STRU& location) { if (m_pConfiguration->QueryHostingModel() == APP_HOSTING_MODEL::HOSTING_IN_PROCESS) { - std:: unique_ptr options; + std::unique_ptr options; if (FAILED(hr = HOSTFXR_OPTIONS::Create( NULL, diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/applicationmanager.cxx b/src/AspNetCoreModuleV2/AspNetCore/src/applicationmanager.cxx index b8ebc40471..7d49d91ace 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/applicationmanager.cxx +++ b/src/AspNetCoreModuleV2/AspNetCore/src/applicationmanager.cxx @@ -1,7 +1,11 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -#include "precomp.hxx" +#include "applicationmanager.h" + +#include "proxymodule.h" +#include "utility.h" +#include // The application manager is a singleton across ANCM. APPLICATION_MANAGER* APPLICATION_MANAGER::sm_pApplicationManager = NULL; @@ -32,9 +36,9 @@ APPLICATION_MANAGER::GetOrCreateApplicationInfo( *ppApplicationInfo = NULL; - // The configuration path is unique for each application and is used for the + // The configuration path is unique for each application and is used for the // key in the applicationInfoHash. - pszApplicationId = pConfig->QueryConfigPath()->QueryStr(); + pszApplicationId = pConfig->QueryConfigPath()->QueryStr(); hr = key.Initialize(pszApplicationId); if (FAILED(hr)) { @@ -55,7 +59,7 @@ APPLICATION_MANAGER::GetOrCreateApplicationInfo( if (*ppApplicationInfo == NULL) { - // Check which hosting model we want to support + // Check which hosting model we want to support switch (pConfig->QueryHostingModel()) { case HOSTING_IN_PROCESS: @@ -210,7 +214,7 @@ APPLICATION_MANAGER::FindConfigChangedApplication( DBG_ASSERT(pvContext); // Config Change context contains the original config path that changed - // and a multiStr containing + // and a multiStr containing CONFIG_CHANGE_CONTEXT* pContext = static_cast(pvContext); STRU* pstruConfigPath = pEntry->QueryConfig()->QueryConfigPath(); @@ -245,7 +249,7 @@ APPLICATION_MANAGER::FindConfigChangedApplication( // This will cause a shutdown event to occur through the global stop listening event. // OutOfProcess: Removes all applications in the application manager and calls Recycle, which will call Shutdown, // on each application. -// +// HRESULT APPLICATION_MANAGER::RecycleApplicationFromManager( _In_ LPCWSTR pszApplicationId @@ -296,7 +300,7 @@ APPLICATION_MANAGER::RecycleApplicationFromManager( // Don't call application shutdown inside the lock m_pApplicationInfoHash->Apply(APPLICATION_INFO_HASH::ReferenceCopyToTable, static_cast(table)); DBG_ASSERT(dwPreviousCounter == table->Count()); - + // Removed the applications which are impacted by the configurtion change m_pApplicationInfoHash->DeleteIf(FindConfigChangedApplication, (PVOID)&context); @@ -358,7 +362,7 @@ APPLICATION_MANAGER::RecycleApplicationFromManager( table->FindKey(&key, &pRecord); DBG_ASSERT(pRecord != NULL); - // RecycleApplication is called on a separate thread. + // RecycleApplication is called on a separate thread. pRecord->RecycleApplication(); pRecord->DereferenceApplicationInfo(); path = context.MultiSz.Next(path); @@ -399,7 +403,7 @@ Finished: // // Shutsdown all applications in the application hashtable // Only called by OnGlobalStopListening. -// +// VOID APPLICATION_MANAGER::ShutDown() { @@ -416,7 +420,7 @@ APPLICATION_MANAGER::ShutDown() } DBG_ASSERT(m_pApplicationInfoHash); - // During shutdown we lock until we delete the application + // During shutdown we lock until we delete the application AcquireSRWLockExclusive(&m_srwLock); // Call shutdown on each application in the application manager diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/aspnetcore_shim_config.cpp b/src/AspNetCoreModuleV2/AspNetCore/src/aspnetcore_shim_config.cpp index ea6441abf9..1a59586160 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/aspnetcore_shim_config.cpp +++ b/src/AspNetCoreModuleV2/AspNetCore/src/aspnetcore_shim_config.cpp @@ -1,7 +1,11 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -#include "precomp.hxx" +#include "aspnetcore_shim_config.h" + +#include "hostfxr_utility.h" +#include "debugutil.h" +#include "ahutil.h" ASPNETCORE_SHIM_CONFIG::~ASPNETCORE_SHIM_CONFIG() { diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/dllmain.cpp b/src/AspNetCoreModuleV2/AspNetCore/src/dllmain.cpp index 88cc19991b..f7b9f8aa81 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/dllmain.cpp +++ b/src/AspNetCoreModuleV2/AspNetCore/src/dllmain.cpp @@ -2,7 +2,13 @@ // Licensed under the MIT License. See License.txt in the project root for license information. #include "precomp.hxx" -#include + +#include "applicationinfo.h" +#include "applicationmanager.h" +#include "proxymodule.h" +#include "globalmodule.h" +#include "acache.h" +#include "utility.h" HTTP_MODULE_ID g_pModuleId = NULL; IHttpServer * g_pHttpServer = NULL; @@ -19,8 +25,6 @@ DWORD g_dwActiveServerProcesses = 0; SRWLOCK g_srwLock; DWORD g_dwDebugFlags = 0; PCSTR g_szDebugLabel = "ASPNET_CORE_MODULE"; -PCWSTR g_pwzAspnetcoreInProcessRequestHandlerName = L"aspnetcorev2_inprocess.dll"; -PCWSTR g_pwzAspnetcoreOutOfProcessRequestHandlerName = L"aspnetcorev2_outofprocess.dll"; PFN_ASPNETCORE_CREATE_APPLICATION g_pfnAspNetCoreCreateApplication; VOID diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/filewatcher.cxx b/src/AspNetCoreModuleV2/AspNetCore/src/filewatcher.cxx index 7fbc860c5e..4bb215b4ed 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/filewatcher.cxx +++ b/src/AspNetCoreModuleV2/AspNetCore/src/filewatcher.cxx @@ -1,7 +1,10 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -#include "precomp.hxx" +#include "filewatcher.h" + +#include "ntassert.h" +#include "applicationinfo.h" FILE_WATCHER::FILE_WATCHER() : m_hCompletionPort(NULL), @@ -272,11 +275,11 @@ HRESULT goto Finished; } - // When directory handle is closed then HandleChangeCompletion - // happens with cbCompletion = 0 and dwCompletionStatus = 0 - // From documentation it is not clear if that combination - // of return values is specific to closing handles or whether - // it could also mean an error condition. Hence we will maintain + // When directory handle is closed then HandleChangeCompletion + // happens with cbCompletion = 0 and dwCompletionStatus = 0 + // From documentation it is not clear if that combination + // of return values is specific to closing handles or whether + // it could also mean an error condition. Hence we will maintain // explicit flag that will help us determine if entry // is being shutdown (StopMonitor() called) // @@ -287,8 +290,8 @@ HRESULT // // There could be a FCN overflow - // Let assume the file got changed instead of checking files - // Othersie we have to cache the file info + // Let assume the file got changed instead of checking files + // Othersie we have to cache the file info // if (cbCompletion == 0) { diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/globalmodule.cpp b/src/AspNetCoreModuleV2/AspNetCore/src/globalmodule.cpp index f4c6257bb4..05dee36b15 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/globalmodule.cpp +++ b/src/AspNetCoreModuleV2/AspNetCore/src/globalmodule.cpp @@ -1,4 +1,7 @@ -#include "precomp.hxx" +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +#include "globalmodule.h" ASPNET_CORE_GLOBAL_MODULE::ASPNET_CORE_GLOBAL_MODULE( APPLICATION_MANAGER* pApplicationManager) diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/precomp.hxx b/src/AspNetCoreModuleV2/AspNetCore/src/precomp.hxx index 6de0acdc12..64b579339f 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/precomp.hxx +++ b/src/AspNetCoreModuleV2/AspNetCore/src/precomp.hxx @@ -1,160 +1,160 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. +// // Copyright (c) .NET Foundation. All rights reserved. +// // Licensed under the MIT License. See License.txt in the project root for license information. -#pragma once -#pragma warning( disable : 4091) +// #pragma once +// #pragma warning( disable : 4091) -// -// System related headers -// -#define _WINSOCKAPI_ +// // +// // System related headers +// // +// #define _WINSOCKAPI_ -#define NTDDI_VERSION 0x06010000 -#define WINVER 0x0601 -#define _WIN32_WINNT 0x0601 +// #define NTDDI_VERSION 0x06010000 +// #define WINVER 0x0601 +// #define _WIN32_WINNT 0x0601 -#include -#include -#include +// #include +// #include +// #include -//#include -#include -#include +// //#include +// #include +// #include -// This should remove our issue of compiling for win7 without header files. -// We force the Windows 8 version check logic in iiswebsocket.h to succeed even though we're compiling for Windows 7. -// Then, we set the version defines back to Windows 7 to for the remainder of the compilation. -#undef NTDDI_VERSION -#undef WINVER -#undef _WIN32_WINNT -#define NTDDI_VERSION 0x06020000 -#define WINVER 0x0602 -#define _WIN32_WINNT 0x0602 -#include -#undef NTDDI_VERSION -#undef WINVER -#undef _WIN32_WINNT +// // This should remove our issue of compiling for win7 without header files. +// // We force the Windows 8 version check logic in iiswebsocket.h to succeed even though we're compiling for Windows 7. +// // Then, we set the version defines back to Windows 7 to for the remainder of the compilation. +// #undef NTDDI_VERSION +// #undef WINVER +// #undef _WIN32_WINNT +// #define NTDDI_VERSION 0x06020000 +// #define WINVER 0x0602 +// #define _WIN32_WINNT 0x0602 +// #include +// #undef NTDDI_VERSION +// #undef WINVER +// #undef _WIN32_WINNT -#define NTDDI_VERSION 0x06010000 -#define WINVER 0x0601 -#define _WIN32_WINNT 0x0601 +// #define NTDDI_VERSION 0x06010000 +// #define WINVER 0x0601 +// #define _WIN32_WINNT 0x0601 -#include -#include +// #include +// #include -#include -#include -#include +// #include +// #include +// #include -// -// Option available starting Windows 8. -// 111 is the value in SDK on May 15, 2012. -// -#ifndef WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS -#define WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS 111 -#endif +// // +// // Option available starting Windows 8. +// // 111 is the value in SDK on May 15, 2012. +// // +// #ifndef WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS +// #define WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS 111 +// #endif -#ifdef max -#undef max -template inline T max(T a, T b) -{ - return a > b ? a : b; -} -#endif +// #ifdef max +// #undef max +// template inline T max(T a, T b) +// { +// return a > b ? a : b; +// } +// #endif -#ifdef min -#undef min -template inline T min(T a, T b) -{ - return a < b ? a : b; -} -#endif +// #ifdef min +// #undef min +// template inline T min(T a, T b) +// { +// return a < b ? a : b; +// } +// #endif -inline bool IsSpace(char ch) -{ - switch(ch) - { - case 32: // ' ' - case 9: // '\t' - case 10: // '\n' - case 13: // '\r' - case 11: // '\v' - case 12: // '\f' - return true; - default: - return false; - } -} +// inline bool IsSpace(char ch) +// { +// switch(ch) +// { +// case 32: // ' ' +// case 9: // '\t' +// case 10: // '\n' +// case 13: // '\r' +// case 11: // '\v' +// case 12: // '\f' +// return true; +// default: +// return false; +// } +// } -#include -#include -#include "stringa.h" -#include "stringu.h" -#include "dbgutil.h" -#include "ahutil.h" -#include "multisz.h" -#include "multisza.h" -#include "base64.h" -#include -#include -#include -#include -#include +// #include +// #include +// #include "stringa.h" +// #include "stringu.h" +// #include "dbgutil.h" +// #include "ahutil.h" +// #include "multisz.h" +// #include "multisza.h" +// #include "base64.h" +// #include +// #include +// #include +// #include +// #include -#include "environmentvariablehash.h" -#include "hostfxr_utility.h" -#include "utility.h" -#include "debugutil.h" -#include "requesthandler.h" -#include "resources.h" -#include "aspnetcore_msg.h" -//#include "aspnetcore_event.h" -#include "aspnetcore_shim_config.h" -#include "fx_ver.h" +// #include "environmentvariablehash.h" +// #include "hostfxr_utility.h" +// #include "utility.h" +// #include "debugutil.h" +// #include "requesthandler.h" +// #include "resources.h" +// #include "aspnetcore_msg.h" +// //#include "aspnetcore_event.h" +// #include "aspnetcore_shim_config.h" +// #include "fx_ver.h" -#include "appoffline.h" -#include "filewatcher.h" -#include "applicationinfo.h" -#include "applicationmanager.h" -#include "globalmodule.h" -#include "proxymodule.h" -#include "applicationinfo.h" -#include "hostfxroptions.h" +// #include "appoffline.h" +// #include "filewatcher.h" +// #include "applicationinfo.h" +// #include "applicationmanager.h" +// #include "globalmodule.h" +// #include "proxymodule.h" +// #include "applicationinfo.h" +// #include "hostfxroptions.h" -FORCEINLINE -DWORD -WIN32_FROM_HRESULT( - HRESULT hr -) -{ - if ((FAILED(hr)) && - (HRESULT_FACILITY(hr) == FACILITY_WIN32)) - { - return HRESULT_CODE(hr); - } - return hr; -} +// FORCEINLINE +// DWORD +// WIN32_FROM_HRESULT( +// HRESULT hr +// ) +// { +// if ((FAILED(hr)) && +// (HRESULT_FACILITY(hr) == FACILITY_WIN32)) +// { +// return HRESULT_CODE(hr); +// } +// return hr; +// } -FORCEINLINE -HRESULT -HRESULT_FROM_GETLASTERROR() -{ - return ( GetLastError() != NO_ERROR ) - ? HRESULT_FROM_WIN32( GetLastError() ) - : E_FAIL; -} +// FORCEINLINE +// HRESULT +// HRESULT_FROM_GETLASTERROR() +// { +// return ( GetLastError() != NO_ERROR ) +// ? HRESULT_FROM_WIN32( GetLastError() ) +// : E_FAIL; +// } -extern PVOID g_pModuleId; -extern BOOL g_fAspnetcoreRHAssemblyLoaded; -extern BOOL g_fAspnetcoreRHLoadedError; -extern BOOL g_fInShutdown; -extern BOOL g_fEnableReferenceCountTracing; -extern DWORD g_dwActiveServerProcesses; -extern HINSTANCE g_hModule; -extern HMODULE g_hAspnetCoreRH; -extern SRWLOCK g_srwLock; -extern HANDLE g_hEventLog; -extern PCWSTR g_pwzAspnetcoreInProcessRequestHandlerName; -extern PCWSTR g_pwzAspnetcoreOutOfProcessRequestHandlerName; -extern PFN_ASPNETCORE_CREATE_APPLICATION g_pfnAspNetCoreCreateApplication; -#pragma warning( error : 4091) +// extern PVOID g_pModuleId; +// extern BOOL g_fAspnetcoreRHAssemblyLoaded; +// extern BOOL g_fAspnetcoreRHLoadedError; +// extern BOOL g_fInShutdown; +// extern BOOL g_fEnableReferenceCountTracing; +// extern DWORD g_dwActiveServerProcesses; +// extern HINSTANCE g_hModule; +// extern HMODULE g_hAspnetCoreRH; +// extern SRWLOCK g_srwLock; +// extern HANDLE g_hEventLog; +// extern PCWSTR g_pwzAspnetcoreInProcessRequestHandlerName; +// extern PCWSTR g_pwzAspnetcoreOutOfProcessRequestHandlerName; +// extern PFN_ASPNETCORE_CREATE_APPLICATION g_pfnAspNetCoreCreateApplication; +// #pragma warning( error : 4091) diff --git a/src/AspNetCoreModuleV2/AspNetCore/src/proxymodule.cxx b/src/AspNetCoreModuleV2/AspNetCore/src/proxymodule.cxx index 4156865a41..69ad025692 100644 --- a/src/AspNetCoreModuleV2/AspNetCore/src/proxymodule.cxx +++ b/src/AspNetCoreModuleV2/AspNetCore/src/proxymodule.cxx @@ -1,9 +1,14 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -#include "precomp.hxx" +#include "proxymodule.h" + +#include "applicationmanager.h" +#include "applicationinfo.h" +#include "acache.h" #include "hostfxroptions.h" + __override HRESULT ASPNET_CORE_PROXY_MODULE_FACTORY::GetHttpModule( @@ -41,7 +46,7 @@ Return value: --*/ { - /* FORWARDING_HANDLER::StaticTerminate(); + /* FORWARDING_HANDLER::StaticTerminate(); WEBSOCKET_HANDLER::StaticTerminate();*/ @@ -81,7 +86,7 @@ ASPNET_CORE_PROXY_MODULE::OnExecuteRequestHandler( APPLICATION_MANAGER *pApplicationManager = NULL; REQUEST_NOTIFICATION_STATUS retVal = RQ_NOTIFICATION_CONTINUE; IAPPLICATION* pApplication = NULL; - STACK_STRU(struFileName, 256); + STRU struExeLocation; if (g_fInShutdown) { @@ -123,9 +128,9 @@ ASPNET_CORE_PROXY_MODULE::OnExecuteRequestHandler( // Set fTrySkipCustomErrors to true as we want client see the offline content pResponse->SetStatus(503, "Service Unavailable", 0, hr, NULL, TRUE); pResponse->SetHeader("Content-Type", - "text/html", - (USHORT)strlen("text/html"), - FALSE + "text/html", + (USHORT)strlen("text/html"), + FALSE ); DataChunk.DataChunkType = HttpDataChunkFromMemory; @@ -158,7 +163,7 @@ ASPNET_CORE_PROXY_MODULE::OnExecuteRequestHandler( // Create RequestHandler and process the request hr = pApplication->CreateHandler(pHttpContext, - &m_pHandler); + &m_pHandler); if (FAILED(hr)) { diff --git a/src/AspNetCoreModuleV2/CommonLib/CommonLib.vcxproj b/src/AspNetCoreModuleV2/CommonLib/CommonLib.vcxproj index ba9bfb352a..ceb029e00b 100644 --- a/src/AspNetCoreModuleV2/CommonLib/CommonLib.vcxproj +++ b/src/AspNetCoreModuleV2/CommonLib/CommonLib.vcxproj @@ -96,6 +96,7 @@ false ProgramDatabase ..\iislib; + true Windows @@ -116,6 +117,7 @@ MultiThreadedDebug false ..\iislib; + true Windows @@ -136,6 +138,7 @@ MultiThreaded false ..\iislib; + true Windows @@ -160,6 +163,7 @@ MultiThreaded false + true Windows @@ -202,6 +206,11 @@ + + + {4787a64f-9a3e-4867-a55a-70cb4b2b2ffe} + + Document @@ -219,11 +228,6 @@ %(Filename).rc;%(Filename).h;MSG0409.bin - - - {09d9d1d6-2951-4e14-bc35-76a23cf9391a} - - diff --git a/src/AspNetCoreModuleV2/CommonLib/hostfxr_utility.h b/src/AspNetCoreModuleV2/CommonLib/hostfxr_utility.h index 381270a222..57f77260f4 100644 --- a/src/AspNetCoreModuleV2/CommonLib/hostfxr_utility.h +++ b/src/AspNetCoreModuleV2/CommonLib/hostfxr_utility.h @@ -3,6 +3,10 @@ #pragma once +#include "precomp.h" + +#include + typedef INT(*hostfxr_get_native_search_directories_fn) (CONST INT argc, CONST PCWSTR* argv, PWSTR buffer, DWORD buffer_size, DWORD* required_buffer_size); typedef INT(*hostfxr_main_fn) (CONST DWORD argc, CONST PCWSTR argv[]); diff --git a/src/AspNetCoreModuleV2/CommonLib/hostfxroptions.h b/src/AspNetCoreModuleV2/CommonLib/hostfxroptions.h index 360b392760..391e01291d 100644 --- a/src/AspNetCoreModuleV2/CommonLib/hostfxroptions.h +++ b/src/AspNetCoreModuleV2/CommonLib/hostfxroptions.h @@ -3,6 +3,8 @@ #pragma once +#include + class HOSTFXR_OPTIONS { public: diff --git a/src/AspNetCoreModuleV2/IISLib/IISLib.vcxproj b/src/AspNetCoreModuleV2/IISLib/IISLib.vcxproj index 7c0cca6626..a13fc774fd 100644 --- a/src/AspNetCoreModuleV2/IISLib/IISLib.vcxproj +++ b/src/AspNetCoreModuleV2/IISLib/IISLib.vcxproj @@ -1,201 +1,205 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {09D9D1D6-2951-4E14-BC35-76A23CF9391A} - Win32Proj - IISLib - IISLib - 10.0.15063.0 - - - - StaticLibrary - true - v141 - Unicode - - - StaticLibrary - true - v141 - Unicode - - - StaticLibrary - false - v141 - true - Unicode - - - StaticLibrary - false - v141 - true - Unicode - - - - - - - - - - - - - - - - - - - $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ - - - $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ - - - $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ - - - $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ - - - - - - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - ProgramDatabase - MultiThreadedDebug - false - true - - - Windows - true - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - ProgramDatabase - MultiThreadedDebug - false - true - - - Windows - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - - - Windows - true - true - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {09D9D1D6-2951-4E14-BC35-76A23CF9391A} + Win32Proj + IISLib + IISLib + 10.0.15063.0 + + + + StaticLibrary + true + v141 + Unicode + + + StaticLibrary + true + v141 + Unicode + + + StaticLibrary + false + v141 + true + Unicode + + + StaticLibrary + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ + + + $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ + + + $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ + + + $(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + ProgramDatabase + MultiThreadedDebug + false + true + true + + + Windows + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + ProgramDatabase + MultiThreadedDebug + false + true + true + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + + + Windows + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AspNetCoreModuleV2/OutOfProcessRequestHandler/OutOfProcessRequestHandler.vcxproj b/src/AspNetCoreModuleV2/OutOfProcessRequestHandler/OutOfProcessRequestHandler.vcxproj index 33c8b4046a..d1aa2c87ea 100644 --- a/src/AspNetCoreModuleV2/OutOfProcessRequestHandler/OutOfProcessRequestHandler.vcxproj +++ b/src/AspNetCoreModuleV2/OutOfProcessRequestHandler/OutOfProcessRequestHandler.vcxproj @@ -1,254 +1,258 @@ - - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 15.0 - {7F87406C-A3C8-4139-A68D-E4C344294A67} - Win32Proj - OutOfProcessRequestHandler - 10.0.15063.0 - OutOfProcessRequestHandler - - - - DynamicLibrary - true - v141 - Unicode - - - DynamicLibrary - false - v141 - true - Unicode - - - DynamicLibrary - true - v141 - Unicode - - - DynamicLibrary - false - v141 - true - Unicode - - - - - - - - - - - - - - - - - - - - - aspnetcorev2_outofprocess - - - false - - - false - - - - NotUsing - Level4 - Disabled - WIN32;_DEBUG;REQUESTHANDLER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - precomp.hxx - $(IntDir)$(TargetName).pch - ProgramDatabase - MultiThreadedDebug - ..\IISLib;..\CommonLib;.\Inc - true - true - true - false - SyncCThrow - 8Bytes - true - false - true - CompileAsCpp - true - - - Windows - true - kernel32.lib;user32.lib;advapi32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) - Source.def - - - - - NotUsing - Level4 - Disabled - WIN32;_DEBUG;REQUESTHANDLER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - precomp.hxx - $(IntDir)$(TargetName).pch - ProgramDatabase - MultiThreadedDebug - ..\IISLib;..\CommonLib;.\Inc - true - true - true - false - SyncCThrow - 8Bytes - true - false - true - CompileAsCpp - true - - - Windows - true - kernel32.lib;user32.lib;advapi32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) - Source.def - - - - - Level4 - NotUsing - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;REQUESTHANDLER_EXPORTS;%(PreprocessorDefinitions) - precomp.hxx - MultiThreaded - ..\IISLib;..\CommonLib;.\Inc - true - true - true - false - SyncCThrow - 8Bytes - true - false - true - CompileAsCpp - true - - - Windows - false - true - true - Source.def - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;ahadmin.lib;winhttp.lib;odbc32.lib;ws2_32.lib;odbccp32.lib;wbemuuid.lib;iphlpapi.lib;pdh.lib;rpcrt4.lib;%(AdditionalDependencies) - - - - - Level4 - NotUsing - MaxSpeed - true - true - NDEBUG;REQUESTHANDLER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - precomp.hxx - MultiThreaded - ..\IISLib;..\CommonLib;.\Inc - true - true - true - false - SyncCThrow - 8Bytes - true - false - true - CompileAsCpp - true - - - Windows - false - true - true - Source.def - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {55494e58-e061-4c4c-a0a8-837008e72f85} - - - {4787a64f-9a3e-4867-a55a-70cb4b2b2ffe} - - - - - - - - - - - - + + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {7F87406C-A3C8-4139-A68D-E4C344294A67} + Win32Proj + OutOfProcessRequestHandler + 10.0.15063.0 + OutOfProcessRequestHandler + + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + aspnetcorev2_outofprocess + + + false + + + false + + + + NotUsing + Level4 + Disabled + WIN32;_DEBUG;REQUESTHANDLER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + precomp.hxx + $(IntDir)$(TargetName).pch + ProgramDatabase + MultiThreadedDebug + ..\IISLib;..\CommonLib;.\Inc + true + true + true + false + SyncCThrow + 8Bytes + true + false + true + CompileAsCpp + true + true + + + Windows + true + kernel32.lib;user32.lib;advapi32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) + Source.def + + + + + NotUsing + Level4 + Disabled + WIN32;_DEBUG;REQUESTHANDLER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + precomp.hxx + $(IntDir)$(TargetName).pch + ProgramDatabase + MultiThreadedDebug + ..\IISLib;..\CommonLib;.\Inc + true + true + true + false + SyncCThrow + 8Bytes + true + false + true + CompileAsCpp + true + true + + + Windows + true + kernel32.lib;user32.lib;advapi32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) + Source.def + + + + + Level4 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;REQUESTHANDLER_EXPORTS;%(PreprocessorDefinitions) + precomp.hxx + MultiThreaded + ..\IISLib;..\CommonLib;.\Inc + true + true + true + false + SyncCThrow + 8Bytes + true + false + true + CompileAsCpp + true + true + + + Windows + false + true + true + Source.def + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;ahadmin.lib;winhttp.lib;odbc32.lib;ws2_32.lib;odbccp32.lib;wbemuuid.lib;iphlpapi.lib;pdh.lib;rpcrt4.lib;%(AdditionalDependencies) + + + + + Level4 + NotUsing + MaxSpeed + true + true + NDEBUG;REQUESTHANDLER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + precomp.hxx + MultiThreaded + ..\IISLib;..\CommonLib;.\Inc + true + true + true + false + SyncCThrow + 8Bytes + true + false + true + CompileAsCpp + true + true + + + Windows + false + true + true + Source.def + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;ahadmin.lib;rpcrt4.lib;winhttp.lib;pdh.lib;ws2_32.lib;wbemuuid.lib;iphlpapi.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {55494e58-e061-4c4c-a0a8-837008e72f85} + + + {4787a64f-9a3e-4867-a55a-70cb4b2b2ffe} + + + + + + + + + + + + \ No newline at end of file