232 lines
9.9 KiB
C
232 lines
9.9 KiB
C
#pragma once
|
|
//-------------------------------------------------------------------------------------------------
|
|
// <copyright file="iis7util.h" company="Outercurve Foundation">
|
|
// Copyright (c) 2004, Outercurve Foundation.
|
|
// This software is released under Microsoft Reciprocal License (MS-RL).
|
|
// The license and further copyright text can be found in the file
|
|
// LICENSE.TXT at the root directory of the distribution.
|
|
// </copyright>
|
|
//
|
|
// <summary>
|
|
// IIS7 helper functions.
|
|
// </summary>
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// IIS Config schema names
|
|
#define IIS_CONFIG_ADD L"add"
|
|
#define IIS_CONFIG_ALLOWED L"allowed"
|
|
#define IIS_CONFIG_APPHOST_ROOT L"MACHINE/WEBROOT/APPHOST"
|
|
#define IIS_CONFIG_APPLICATION L"application"
|
|
#define IIS_CONFIG_APPPOOL L"applicationPool"
|
|
#define IIS_CONFIG_APPPOOL_AUTO L"autoStart"
|
|
#define IIS_CONFIG_APPPOOL_SECTION L"system.applicationHost/applicationPools"
|
|
#define IIS_CONFIG_AUTOSTART L"serverAutoStart"
|
|
#define IIS_CONFIG_BINDING L"binding"
|
|
#define IIS_CONFIG_BINDINGINFO L"bindingInformation"
|
|
#define IIS_CONFIG_BINDINGS L"bindings"
|
|
#define IIS_CONFIG_DESC L"description"
|
|
#define IIS_CONFIG_EXECUTABLE L"scriptProcessor"
|
|
#define IIS_CONFIG_ENABLED L"enabled"
|
|
#define IIS_CONFIG_ENABLE32 L"enable32BitAppOnWin64"
|
|
#define IIS_CONFIG_FILEEXT L"fileExtension"
|
|
#define IIS_CONFIG_FILTER L"filter"
|
|
#define IIS_CONFIG_GROUPID L"groupId"
|
|
#define IIS_CONFIG_HEADERS L"customHeaders"
|
|
#define IIS_CONFIG_HTTPERRORS_SECTION L"system.webServer/httpErrors"
|
|
#define IIS_CONFIG_ID L"id"
|
|
#define IIS_CONFIG_ISAPI_SECTION L"system.webServer/isapiFilters"
|
|
#define IIS_CONFIG_HTTPPROTO_SECTION L"system.webServer/httpProtocol"
|
|
#define IIS_CONFIG_LOG_SECTION L"system.applicationHost/log"
|
|
#define IIS_CONFIG_LOG_UTF8 L"logInUTF8"
|
|
#define IIS_CONFIG_LIMITS L"limits"
|
|
#define IIS_CONFIG_PIPELINEMODE L"managedPipelineMode"
|
|
#define IIS_CONFIG_MANAGEDRUNTIMEVERSION L"managedRuntimeVersion"
|
|
#define IIS_CONFIG_WEBLOG L"logFile"
|
|
#define IIS_CONFIG_LOGFORMAT L"logFormat"
|
|
#define IIS_CONFIG_MIMEMAP L"mimeMap"
|
|
#define IIS_CONFIG_MIMETYPE L"mimeType"
|
|
#define IIS_CONFIG_MODULES L"modules"
|
|
#define IIS_CONFIG_NAME L"name"
|
|
#define IIS_CONFIG_PATH L"path"
|
|
#define IIS_CONFIG_PHYSPATH L"physicalPath"
|
|
#define IIS_CONFIG_PROTOCOL L"protocol"
|
|
#define IIS_CONFIG_RESTRICTION_SECTION L"system.webServer/security/isapiCgiRestriction"
|
|
#define IIS_CONFIG_SITE L"site"
|
|
#define IIS_CONFIG_SITE_ID L"id"
|
|
#define IIS_CONFIG_SITES_SECTION L"system.applicationHost/sites"
|
|
#define IIS_CONFIG_CONNECTTIMEOUT L"connectionTimeout"
|
|
#define IIS_CONFIG_VDIR L"virtualDirectory"
|
|
#define IIS_CONFIG_VALUE L"value"
|
|
#define IIS_CONFIG_VERBS L"verb"
|
|
#define IIS_CONFIG_WEBLIMITS_SECTION L"system.applicationHost/webLimits"
|
|
#define IIS_CONFIG_WEBLIMITS_MAXBAND L"maxGlobalBandwidth"
|
|
#define IIS_CONFIG_TRUE L"true"
|
|
#define IIS_CONFIG_FALSE L"false"
|
|
#define IIS_CONFIG_ERROR L"error"
|
|
#define IIS_CONFIG_STATUSCODE L"statusCode"
|
|
#define IIS_CONFIG_SUBSTATUS L"subStatusCode"
|
|
#define IIS_CONFIG_LANGPATH L"prefixLanguageFilePath"
|
|
#define IIS_CONFIG_RESPMODE L"responseMode"
|
|
#define IIS_CONFIG_CLEAR L"clear"
|
|
#define IIS_CONFIG_RECYCLING L"recycling"
|
|
#define IIS_CONFIG_PEROIDRESTART L"periodicRestart"
|
|
#define IIS_CONFIG_TIME L"time"
|
|
#define IIS_CONFIG_REQUESTS L"requests"
|
|
#define IIS_CONFIG_SCHEDULE L"schedule"
|
|
#define IIS_CONFIG_MEMORY L"memory"
|
|
#define IIS_CONFIG_PRIVMEMORY L"privateMemory"
|
|
#define IIS_CONFIG_PROCESSMODEL L"processModel"
|
|
#define IIS_CONFIG_IDLETIMEOUT L"idleTimeout"
|
|
#define IIS_CONFIG_QUEUELENGTH L"queueLength"
|
|
#define IIS_CONFIG_IDENITITYTYPE L"identityType"
|
|
#define IIS_CONFIG_LOCALSYSTEM L"LocalSystem"
|
|
#define IIS_CONFIG_LOCALSERVICE L"LocalService"
|
|
#define IIS_CONFIG_NETWORKSERVICE L"NetworkService"
|
|
#define IIS_CONFIG_SPECIFICUSER L"SpecificUser"
|
|
#define IIS_CONFIG_USERNAME L"userName"
|
|
#define IIS_CONFIG_PASSWORD L"password"
|
|
#define IIS_CONFIG_CPU L"cpu"
|
|
#define IIS_CONFIG_LIMIT L"limit"
|
|
#define IIS_CONFIG_CPU_ACTION L"action"
|
|
#define IIS_CONFIG_KILLW3WP L"KillW3wp"
|
|
#define IIS_CONFIG_NOACTION L"NoAction"
|
|
#define IIS_CONFIG_RESETINTERVAL L"resetInterval"
|
|
#define IIS_CONFIG_MAXWRKPROCESSES L"maxProcesses"
|
|
#define IIS_CONFIG_HANDLERS_SECTION L"system.webServer/handlers"
|
|
#define IIS_CONFIG_DEFAULTDOC_SECTION L"system.webServer/defaultDocument"
|
|
#define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
|
|
#define IIS_CONFIG_SCRIPTERROR L"scriptErrorSentToBrowser"
|
|
#define IIS_CONFIG_STATICCONTENT_SECTION L"system.webServer/staticContent"
|
|
#define IIS_CONFIG_HTTPEXPIRES L"httpExpires"
|
|
#define IIS_CONFIG_MAXAGE L"cacheControlMaxAge"
|
|
#define IIS_CONFIG_CLIENTCACHE L"clientCache"
|
|
#define IIS_CONFIG_CACHECONTROLMODE L"cacheControlMode"
|
|
#define IIS_CONFIG_USEMAXAGE L"UseMaxAge"
|
|
#define IIS_CONFIG_USEEXPIRES L"UseExpires"
|
|
#define IIS_CONFIG_CACHECUST L"cacheControlCustom"
|
|
#define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
|
|
#define IIS_CONFIG_SESSION L"session"
|
|
#define IIS_CONFIG_ALLOWSTATE L"allowSessionState"
|
|
#define IIS_CONFIG_TIMEOUT L"timeout"
|
|
#define IIS_CONFIG_BUFFERING L"bufferingOn"
|
|
#define IIS_CONFIG_PARENTPATHS L"enableParentPaths"
|
|
#define IIS_CONFIG_SCRIPTLANG L"scriptLanguage"
|
|
#define IIS_CONFIG_SCRIPTTIMEOUT L"scriptTimeout"
|
|
#define IIS_CONFIG_LIMITS L"limits"
|
|
#define IIS_CONFIG_ALLOWDEBUG L"appAllowDebugging"
|
|
#define IIS_CONFIG_ALLOWCLIENTDEBUG L"appAllowClientDebug"
|
|
#define IIS_CONFIG_CERTIFICATEHASH L"certificateHash"
|
|
#define IIS_CONFIG_CERTIFICATESTORENAME L"certificateStoreName"
|
|
#define IIS_CONFIG_HTTPLOGGING_SECTION L"system.webServer/httpLogging"
|
|
#define IIS_CONFIG_DONTLOG L"dontLog"
|
|
|
|
typedef BOOL (CALLBACK* ENUMAPHOSTELEMENTPROC)(IAppHostElement*, LPVOID);
|
|
typedef BOOL (CALLBACK* VARIANTCOMPARATORPROC)(VARIANT*, VARIANT*);
|
|
|
|
HRESULT DAPI Iis7PutPropertyVariant(
|
|
__in IAppHostElement *pElement,
|
|
__in LPCWSTR wzPropName,
|
|
__in VARIANT vtPut
|
|
);
|
|
|
|
HRESULT DAPI Iis7PutPropertyInteger(
|
|
__in IAppHostElement *pElement,
|
|
__in LPCWSTR wzPropName,
|
|
__in DWORD dValue
|
|
);
|
|
|
|
HRESULT DAPI Iis7PutPropertyString(
|
|
__in IAppHostElement *pElement,
|
|
__in LPCWSTR wzPropName,
|
|
__in LPCWSTR wzString
|
|
);
|
|
|
|
HRESULT DAPI Iis7PutPropertyBool(
|
|
__in IAppHostElement *pElement,
|
|
__in LPCWSTR wzPropName,
|
|
__in BOOL fValue);
|
|
|
|
HRESULT DAPI Iis7GetPropertyVariant(
|
|
__in IAppHostElement *pElement,
|
|
__in LPCWSTR wzPropName,
|
|
__in VARIANT* vtGet
|
|
);
|
|
|
|
HRESULT DAPI Iis7GetPropertyString(
|
|
__in IAppHostElement *pElement,
|
|
__in LPCWSTR wzPropName,
|
|
__in LPWSTR* psczGet
|
|
);
|
|
|
|
struct IIS7_APPHOSTELEMENTCOMPARISON
|
|
{
|
|
LPCWSTR sczElementName;
|
|
LPCWSTR sczAttributeName;
|
|
VARIANT* pvAttributeValue;
|
|
VARIANTCOMPARATORPROC pComparator;
|
|
};
|
|
|
|
BOOL DAPI Iis7IsMatchingAppHostElement(
|
|
__in IAppHostElement *pElement,
|
|
__in IIS7_APPHOSTELEMENTCOMPARISON* pComparison
|
|
);
|
|
|
|
HRESULT DAPI Iis7FindAppHostElementString(
|
|
__in IAppHostElementCollection *pCollection,
|
|
__in LPCWSTR wzElementName,
|
|
__in LPCWSTR wzAttributeName,
|
|
__in LPCWSTR wzAttributeValue,
|
|
__out IAppHostElement** ppElement,
|
|
__out DWORD* pdwIndex
|
|
);
|
|
|
|
HRESULT DAPI Iis7FindAppHostElementPath(
|
|
__in IAppHostElementCollection *pCollection,
|
|
__in LPCWSTR wzElementName,
|
|
__in LPCWSTR wzAttributeName,
|
|
__in LPCWSTR wzAttributeValue,
|
|
__out IAppHostElement** ppElement,
|
|
__out DWORD* pdwIndex
|
|
);
|
|
|
|
HRESULT DAPI Iis7FindAppHostElementInteger(
|
|
__in IAppHostElementCollection *pCollection,
|
|
__in LPCWSTR wzElementName,
|
|
__in LPCWSTR wzAttributeName,
|
|
__in DWORD dwAttributeValue,
|
|
__out IAppHostElement** ppElement,
|
|
__out DWORD* pdwIndex
|
|
);
|
|
|
|
HRESULT DAPI Iis7FindAppHostElementVariant(
|
|
__in IAppHostElementCollection *pCollection,
|
|
__in LPCWSTR wzElementName,
|
|
__in LPCWSTR wzAttributeName,
|
|
__in VARIANT* pvAttributeValue,
|
|
__out IAppHostElement** ppElement,
|
|
__out DWORD* pdwIndex
|
|
);
|
|
|
|
HRESULT DAPI Iis7EnumAppHostElements(
|
|
__in IAppHostElementCollection *pCollection,
|
|
__in ENUMAPHOSTELEMENTPROC pCallback,
|
|
__in LPVOID pContext,
|
|
__out IAppHostElement** ppElement,
|
|
__out DWORD* pdwIndex
|
|
);
|
|
|
|
HRESULT DAPI Iis7FindAppHostMethod(
|
|
__in IAppHostMethodCollection *pCollection,
|
|
__in LPCWSTR wzMethodName,
|
|
__out IAppHostMethod** ppMethod,
|
|
__out DWORD* pdwIndex
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|