main
h 222 lines 9.36 KB
Raw
1 #pragma once
2 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9 // IIS Config schema names
10 #define IIS_CONFIG_ADD L"add"
11 #define IIS_CONFIG_ALLOWED L"allowed"
12 #define IIS_CONFIG_APPHOST_ROOT L"MACHINE/WEBROOT/APPHOST"
13 #define IIS_CONFIG_APPLICATION L"application"
14 #define IIS_CONFIG_APPPOOL L"applicationPool"
15 #define IIS_CONFIG_APPPOOL_AUTO L"autoStart"
16 #define IIS_CONFIG_APPPOOL_SECTION L"system.applicationHost/applicationPools"
17 #define IIS_CONFIG_AUTOSTART L"serverAutoStart"
18 #define IIS_CONFIG_BINDING L"binding"
19 #define IIS_CONFIG_BINDINGINFO L"bindingInformation"
20 #define IIS_CONFIG_BINDINGS L"bindings"
21 #define IIS_CONFIG_DESC L"description"
22 #define IIS_CONFIG_EXECUTABLE L"scriptProcessor"
23 #define IIS_CONFIG_ENABLED L"enabled"
24 #define IIS_CONFIG_ENABLE32 L"enable32BitAppOnWin64"
25 #define IIS_CONFIG_FILEEXT L"fileExtension"
26 #define IIS_CONFIG_FILTER L"filter"
27 #define IIS_CONFIG_GROUPID L"groupId"
28 #define IIS_CONFIG_HEADERS L"customHeaders"
29 #define IIS_CONFIG_HTTPERRORS_SECTION L"system.webServer/httpErrors"
30 #define IIS_CONFIG_ID L"id"
31 #define IIS_CONFIG_ISAPI_SECTION L"system.webServer/isapiFilters"
32 #define IIS_CONFIG_HTTPPROTO_SECTION L"system.webServer/httpProtocol"
33 #define IIS_CONFIG_LOG_SECTION L"system.applicationHost/log"
34 #define IIS_CONFIG_LOG_UTF8 L"logInUTF8"
35 #define IIS_CONFIG_LIMITS L"limits"
36 #define IIS_CONFIG_PIPELINEMODE L"managedPipelineMode"
37 #define IIS_CONFIG_MANAGEDRUNTIMEVERSION L"managedRuntimeVersion"
38 #define IIS_CONFIG_WEBLOG L"logFile"
39 #define IIS_CONFIG_LOGFORMAT L"logFormat"
40 #define IIS_CONFIG_MIMEMAP L"mimeMap"
41 #define IIS_CONFIG_MIMETYPE L"mimeType"
42 #define IIS_CONFIG_MODULES L"modules"
43 #define IIS_CONFIG_NAME L"name"
44 #define IIS_CONFIG_PATH L"path"
45 #define IIS_CONFIG_PHYSPATH L"physicalPath"
46 #define IIS_CONFIG_PROTOCOL L"protocol"
47 #define IIS_CONFIG_RESTRICTION_SECTION L"system.webServer/security/isapiCgiRestriction"
48 #define IIS_CONFIG_SITE L"site"
49 #define IIS_CONFIG_SITE_ID L"id"
50 #define IIS_CONFIG_SITES_SECTION L"system.applicationHost/sites"
51 #define IIS_CONFIG_CONNECTTIMEOUT L"connectionTimeout"
52 #define IIS_CONFIG_VDIR L"virtualDirectory"
53 #define IIS_CONFIG_VALUE L"value"
54 #define IIS_CONFIG_VERBS L"verb"
55 #define IIS_CONFIG_WEBLIMITS_SECTION L"system.applicationHost/webLimits"
56 #define IIS_CONFIG_WEBLIMITS_MAXBAND L"maxGlobalBandwidth"
57 #define IIS_CONFIG_TRUE L"true"
58 #define IIS_CONFIG_FALSE L"false"
59 #define IIS_CONFIG_ERROR L"error"
60 #define IIS_CONFIG_STATUSCODE L"statusCode"
61 #define IIS_CONFIG_SUBSTATUS L"subStatusCode"
62 #define IIS_CONFIG_LANGPATH L"prefixLanguageFilePath"
63 #define IIS_CONFIG_RESPMODE L"responseMode"
64 #define IIS_CONFIG_CLEAR L"clear"
65 #define IIS_CONFIG_RECYCLING L"recycling"
66 #define IIS_CONFIG_PEROIDRESTART L"periodicRestart"
67 #define IIS_CONFIG_TIME L"time"
68 #define IIS_CONFIG_REQUESTS L"requests"
69 #define IIS_CONFIG_SCHEDULE L"schedule"
70 #define IIS_CONFIG_MEMORY L"memory"
71 #define IIS_CONFIG_PRIVMEMORY L"privateMemory"
72 #define IIS_CONFIG_PROCESSMODEL L"processModel"
73 #define IIS_CONFIG_IDLETIMEOUT L"idleTimeout"
74 #define IIS_CONFIG_QUEUELENGTH L"queueLength"
75 #define IIS_CONFIG_IDENITITYTYPE L"identityType"
76 #define IIS_CONFIG_LOCALSYSTEM L"LocalSystem"
77 #define IIS_CONFIG_LOCALSERVICE L"LocalService"
78 #define IIS_CONFIG_NETWORKSERVICE L"NetworkService"
79 #define IIS_CONFIG_SPECIFICUSER L"SpecificUser"
80 #define IIS_CONFIG_APPLICATIONPOOLIDENTITY L"ApplicationPoolIdentity"
81 #define IIS_CONFIG_USERNAME L"userName"
82 #define IIS_CONFIG_PASSWORD L"password"
83 #define IIS_CONFIG_CPU L"cpu"
84 #define IIS_CONFIG_LIMIT L"limit"
85 #define IIS_CONFIG_CPU_ACTION L"action"
86 #define IIS_CONFIG_KILLW3WP L"KillW3wp"
87 #define IIS_CONFIG_NOACTION L"NoAction"
88 #define IIS_CONFIG_RESETINTERVAL L"resetInterval"
89 #define IIS_CONFIG_MAXWRKPROCESSES L"maxProcesses"
90 #define IIS_CONFIG_HANDLERS_SECTION L"system.webServer/handlers"
91 #define IIS_CONFIG_DEFAULTDOC_SECTION L"system.webServer/defaultDocument"
92 #define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
93 #define IIS_CONFIG_SCRIPTERROR L"scriptErrorSentToBrowser"
94 #define IIS_CONFIG_STATICCONTENT_SECTION L"system.webServer/staticContent"
95 #define IIS_CONFIG_HTTPEXPIRES L"httpExpires"
96 #define IIS_CONFIG_MAXAGE L"cacheControlMaxAge"
97 #define IIS_CONFIG_CLIENTCACHE L"clientCache"
98 #define IIS_CONFIG_CACHECONTROLMODE L"cacheControlMode"
99 #define IIS_CONFIG_USEMAXAGE L"UseMaxAge"
100 #define IIS_CONFIG_USEEXPIRES L"UseExpires"
101 #define IIS_CONFIG_CACHECUST L"cacheControlCustom"
102 #define IIS_CONFIG_ASP_SECTION L"system.webServer/asp"
103 #define IIS_CONFIG_SESSION L"session"
104 #define IIS_CONFIG_ALLOWSTATE L"allowSessionState"
105 #define IIS_CONFIG_TIMEOUT L"timeout"
106 #define IIS_CONFIG_BUFFERING L"bufferingOn"
107 #define IIS_CONFIG_PARENTPATHS L"enableParentPaths"
108 #define IIS_CONFIG_SCRIPTLANG L"scriptLanguage"
109 #define IIS_CONFIG_SCRIPTTIMEOUT L"scriptTimeout"
110 #define IIS_CONFIG_LIMITS L"limits"
111 #define IIS_CONFIG_ALLOWDEBUG L"appAllowDebugging"
112 #define IIS_CONFIG_ALLOWCLIENTDEBUG L"appAllowClientDebug"
113 #define IIS_CONFIG_CERTIFICATEHASH L"certificateHash"
114 #define IIS_CONFIG_CERTIFICATESTORENAME L"certificateStoreName"
115 #define IIS_CONFIG_HTTPLOGGING_SECTION L"system.webServer/httpLogging"
116 #define IIS_CONFIG_DONTLOG L"dontLog"
117
118 typedef BOOL (CALLBACK* ENUMAPHOSTELEMENTPROC)(IAppHostElement*, LPVOID);
119 typedef BOOL (CALLBACK* VARIANTCOMPARATORPROC)(VARIANT*, VARIANT*);
120
121 HRESULT DAPI Iis7PutPropertyVariant(
122 __in IAppHostElement *pElement,
123 __in LPCWSTR wzPropName,
124 __in VARIANT vtPut
125 );
126
127 HRESULT DAPI Iis7PutPropertyInteger(
128 __in IAppHostElement *pElement,
129 __in LPCWSTR wzPropName,
130 __in DWORD dValue
131 );
132
133 HRESULT DAPI Iis7PutPropertyString(
134 __in IAppHostElement *pElement,
135 __in LPCWSTR wzPropName,
136 __in LPCWSTR wzString
137 );
138
139 HRESULT DAPI Iis7PutPropertyBool(
140 __in IAppHostElement *pElement,
141 __in LPCWSTR wzPropName,
142 __in BOOL fValue);
143
144 HRESULT DAPI Iis7GetPropertyVariant(
145 __in IAppHostElement *pElement,
146 __in LPCWSTR wzPropName,
147 __in VARIANT* vtGet
148 );
149
150 HRESULT DAPI Iis7GetPropertyString(
151 __in IAppHostElement *pElement,
152 __in LPCWSTR wzPropName,
153 __in LPWSTR* psczGet
154 );
155
156 struct IIS7_APPHOSTELEMENTCOMPARISON
157 {
158 LPCWSTR sczElementName;
159 LPCWSTR sczAttributeName;
160 VARIANT* pvAttributeValue;
161 VARIANTCOMPARATORPROC pComparator;
162 };
163
164 BOOL DAPI Iis7IsMatchingAppHostElement(
165 __in IAppHostElement *pElement,
166 __in IIS7_APPHOSTELEMENTCOMPARISON* pComparison
167 );
168
169 HRESULT DAPI Iis7FindAppHostElementString(
170 __in IAppHostElementCollection *pCollection,
171 __in LPCWSTR wzElementName,
172 __in LPCWSTR wzAttributeName,
173 __in LPCWSTR wzAttributeValue,
174 __out IAppHostElement** ppElement,
175 __out DWORD* pdwIndex
176 );
177
178 HRESULT DAPI Iis7FindAppHostElementPath(
179 __in IAppHostElementCollection *pCollection,
180 __in LPCWSTR wzElementName,
181 __in LPCWSTR wzAttributeName,
182 __in LPCWSTR wzAttributeValue,
183 __out IAppHostElement** ppElement,
184 __out DWORD* pdwIndex
185 );
186
187 HRESULT DAPI Iis7FindAppHostElementInteger(
188 __in IAppHostElementCollection *pCollection,
189 __in LPCWSTR wzElementName,
190 __in LPCWSTR wzAttributeName,
191 __in DWORD dwAttributeValue,
192 __out IAppHostElement** ppElement,
193 __out DWORD* pdwIndex
194 );
195
196 HRESULT DAPI Iis7FindAppHostElementVariant(
197 __in IAppHostElementCollection *pCollection,
198 __in LPCWSTR wzElementName,
199 __in LPCWSTR wzAttributeName,
200 __in VARIANT* pvAttributeValue,
201 __out IAppHostElement** ppElement,
202 __out DWORD* pdwIndex
203 );
204
205 HRESULT DAPI Iis7EnumAppHostElements(
206 __in IAppHostElementCollection *pCollection,
207 __in ENUMAPHOSTELEMENTPROC pCallback,
208 __in LPVOID pContext,
209 __out IAppHostElement** ppElement,
210 __out DWORD* pdwIndex
211 );
212
213 HRESULT DAPI Iis7FindAppHostMethod(
214 __in IAppHostMethodCollection *pCollection,
215 __in LPCWSTR wzMethodName,
216 __out IAppHostMethod** ppMethod,
217 __out DWORD* pdwIndex
218 );
219
220 #ifdef __cplusplus
221 }
222 #endif