in Include/httpserv_xp.h [1098:1371]
class __declspec(uuid("424c1b8c-a1ba-44d7-ac98-9f8f457701a5"))
IHttpContext
{
public:
virtual
IHttpSite *
GetSite(
VOID
) = 0;
virtual
IHttpApplication *
GetApplication(
VOID
) = 0;
virtual
IHttpConnection *
GetConnection(
VOID
) = 0;
virtual
IHttpRequest *
GetRequest(
VOID
) = 0;
virtual
IHttpResponse *
GetResponse(
VOID
) = 0;
virtual
BOOL
GetResponseHeadersSent(
VOID
) const = 0;
virtual
IHttpUser *
GetUser(
VOID
) const = 0;
virtual
IHttpModuleContextContainer *
GetModuleContextContainer(
VOID
) = 0;
virtual
VOID
IndicateCompletion(
IN REQUEST_NOTIFICATION_STATUS notificationStatus
) = 0;
virtual
HRESULT
PostCompletion(
IN DWORD cbBytes
) = 0;
virtual
VOID
DisableNotifications(
IN DWORD dwNotifications,
IN DWORD dwPostNotifications
) = 0;
virtual
BOOL
GetNextNotification(
IN REQUEST_NOTIFICATION_STATUS status,
OUT DWORD * pdwNotification,
OUT BOOL * pfIsPostNotification,
OUT CHttpModule ** ppModuleInfo,
OUT IHttpEventProvider ** ppRequestOutput
) = 0;
virtual
BOOL
GetIsLastNotification(
IN REQUEST_NOTIFICATION_STATUS status
) = 0;
virtual
HRESULT
ExecuteRequest(
IN BOOL fAsync,
IN IHttpContext * pHttpContext,
IN DWORD dwExecuteFlags,
IN IHttpUser * pHttpUser,
OUT BOOL * pfCompletionExpected = NULL
) = 0;
virtual
DWORD
GetExecuteFlags(
VOID
) const = 0;
virtual
HRESULT
GetServerVariable(
PCSTR pszVariableName,
__deref_out_ecount(*pcchValueLength) PCWSTR * ppszValue,
__out DWORD * pcchValueLength
) = 0;
virtual
HRESULT
GetServerVariable(
PCSTR pszVariableName,
__deref_out_ecount(*pcchValueLength) PCSTR * ppszValue,
__out DWORD * pcchValueLength
) = 0;
virtual
HRESULT
SetServerVariable(
PCSTR pszVariableName,
PCWSTR pszVariableValue
) = 0;
virtual
VOID *
AllocateRequestMemory(
IN DWORD cbAllocation
) = 0;
virtual
IHttpUrlInfo *
GetUrlInfo(
VOID
) = 0;
virtual
IMetadataInfo *
GetMetadata(
VOID
) = 0;
virtual
PCWSTR
GetPhysicalPath(
OUT DWORD * pcchPhysicalPath = NULL
) = 0;
virtual
PCWSTR
GetScriptName(
OUT DWORD * pcchScriptName = NULL
) const = 0;
virtual
PCWSTR
GetScriptTranslated(
OUT DWORD * pcchScriptTranslated = NULL
) = 0;
virtual
IScriptMapInfo *
GetScriptMap(
VOID
) const = 0;
virtual
VOID
SetRequestHandled(
VOID
) = 0;
virtual
IHttpFileInfo *
GetFileInfo(
VOID
) const = 0;
virtual
HRESULT
MapPath(
PCWSTR pszUrl,
__out_bcount_opt(*pcbPhysicalPath) PWSTR pszPhysicalPath,
IN OUT DWORD * pcbPhysicalPath
) = 0;
virtual
HRESULT
NotifyCustomNotification(
ICustomNotificationProvider * pCustomOutput,
OUT BOOL * pfCompletionExpected
) = 0;
virtual
IHttpContext *
GetParentContext(
VOID
) const = 0;
virtual
IHttpContext *
GetRootContext(
VOID
) const = 0;
virtual
HRESULT
CloneContext(
IN DWORD dwCloneFlags,
OUT IHttpContext ** ppHttpContext
) = 0;
virtual
HRESULT
ReleaseClonedContext(
VOID
) = 0;
virtual
HRESULT
GetCurrentExecutionStats(
OUT DWORD * pdwNotification,
OUT DWORD * pdwNotificationStartTickCount = NULL,
OUT PCWSTR * ppszModule = NULL,
OUT DWORD * pdwModuleStartTickCount = NULL,
OUT DWORD * pdwAsyncNotification = NULL,
OUT DWORD * pdwAsyncNotificationStartTickCount = NULL
) const = 0;
virtual
IHttpTraceContext *
GetTraceContext(
VOID
) const = 0;
virtual
HRESULT
GetServerVarChanges(
IN DWORD dwOldChangeNumber,
OUT DWORD * pdwNewChangeNumber,
IN OUT DWORD * pdwVariableSnapshot,
IN OUT PCSTR ** ppVariableNameSnapshot,
IN OUT PCWSTR ** ppVariableValueSnapshot,
OUT DWORD * pdwDiffedVariables,
OUT DWORD ** ppDiffedVariableIndices
) = 0;
virtual
HRESULT
CancelIo(
VOID
) = 0;
virtual
HRESULT
MapHandler(
IN DWORD dwSiteId,
IN PCWSTR pszSiteName,
IN PCWSTR pszUrl,
IN PCSTR pszVerb,
OUT IScriptMapInfo ** ppScriptMap,
IN BOOL fIgnoreWildcardMappings = FALSE
) = 0;
__declspec(deprecated("This method is deprecated. Use the HttpGetExtendedInterface helper function instead."))
virtual
HRESULT
GetExtendedInterface(
IN HTTP_CONTEXT_INTERFACE_VERSION version,
OUT PVOID * ppInterface
) = 0;
};