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.
 
 
 
 
 
 

301 lines
11 KiB

/*===================================================================
Microsoft IIS 6
Microsoft Confidential.
Copyright 2000 Microsoft Corporation. All Rights Reserved.
Component: IDL
File: IIsapiCore.idl - ISAPI Core Interface
===================================================================*/
import "basetsd.idl";
import "oaidl.idl";
import "ocidl.idl";
[
uuid(928f6bd4-bd84-48f0-a55c-b71d1f515af2),
helpstring("ISAPI Core Interface"),
pointer_default(unique)
]
interface IIsapiCore : IUnknown
{
typedef struct _RESPONSE_BUFFER
{
DWORD cbBuffer;
[size_is(cbBuffer)] BYTE * pbBuffer;
} RESPONSE_BUFFER;
typedef struct _RESPONSE_INFO
{
DWORD cBuffers;
[size_is(cBuffers)] RESPONSE_BUFFER * rgBuffers;
} RESPONSE_INFO;
typedef struct _EXEC_URL_USER_INFO
{
#ifdef _WIN64
UINT64 hImpersonationToken;
#else
DWORD_PTR hImpersonationToken;
#endif
BOOL fIsUserNameUnicode;
[size_is(cbUserName)] BYTE * pszUserName;
DWORD cbUserName;
[string] LPSTR pszAuthType;
} EXEC_URL_USER_INFO;
typedef struct _EXEC_URL_ENTITY_INFO
{
DWORD cbAvailable;
[size_is(cbAvailable)] BYTE * lpbData;
} EXEC_URL_ENTITY_INFO;
typedef struct _EXEC_URL_INFO
{
BOOL fIsUrlUnicode;
[size_is(cbUrl)] BYTE * pszUrl;
DWORD cbUrl;
[string] LPSTR pszMethod;
[string] LPSTR pszChildHeaders;
EXEC_URL_USER_INFO * pUserInfo;
EXEC_URL_ENTITY_INFO * pEntity;
DWORD dwExecUrlFlags;
} EXEC_URL_INFO;
typedef struct _VECTOR_ELEMENT
{
[unique,size_is(cbBufSize)] BYTE * pBuffer;
DWORD cbBufSize;
#ifdef _WIN64
UINT64 hFile;
#else
DWORD_PTR hFile;
#endif
ULONGLONG cbOffset;
ULONGLONG cbFileSize;
[unique,string] WCHAR * pszFragmentName;
} VECTOR_ELEMENT;
[helpstring("method GetServerVariable")]
HRESULT GetServerVariable(
[in,string] LPSTR szVariableName,
[in,out,size_is(cbBuffer),unique] BYTE * szBuffer,
[in] DWORD cbBuffer,
[out] DWORD * pcbBufferRequired
);
[helpstring("method ReadClient")]
HRESULT ReadClient(
[in] DWORD64 IsaContext,
[in,out,unique,size_is(cbBuffer)] BYTE * pBuffer,
[in] DWORD cbBuffer,
[in] DWORD dwBytesToRead,
[out] DWORD * pdwSyncBytesRead,
[in] DWORD dwFlags
);
[helpstring("method WriteClient")]
HRESULT WriteClient(
[in] DWORD64 IsaContext,
[in,size_is(cbBuffer)] BYTE * pBuffer,
[in] DWORD cbBuffer,
[in] DWORD dwFlags
);
[helpstring("method SendResponseHeaders")]
HRESULT SendResponseHeaders(
[in] BOOL fDisconnect,
[in,string,unique] LPSTR szStatus,
[in,string,unique] LPSTR szHeaders,
[in] DWORD dwFlags
);
[helpstring("method MapPath")]
HRESULT MapPath(
[in,out,size_is(cbPath)] BYTE * szPath,
[in] DWORD cbPath,
[out] DWORD * pcbBufferRequired,
[in] BOOL fUnicode
);
[helpstring("method MapPathEx")]
HRESULT MapPathEx(
[in,size_is(cbUrl)] BYTE * szUrl,
[in] DWORD cbUrl,
[in,out,size_is(cbPath)] BYTE * szPath,
[in] DWORD cbPath,
[in,out] DWORD * pcbBufferRequired,
[out] DWORD * pcchMatchingPath,
[out] DWORD * pcchMatchingUrl,
[out] DWORD * pdwFlags,
[in] BOOL fUnicode
);
[helpstring("method TransmitFile")]
HRESULT TransmitFile(
[in] DWORD64 IsaContext,
#ifdef _WIN64
[in] UINT64 hFile,
#else
[in] DWORD_PTR hFile,
#endif
[in] DWORD64 cbOffset,
[in] DWORD64 cbWrite,
[in,string,unique] LPSTR szStatusCode,
[in,size_is(cbHead),unique] BYTE * pHead,
[in] DWORD cbHead,
[in,size_is(cbTail),unique] BYTE * pTail,
[in] DWORD cbTail,
[in] DWORD dwFlags
);
[helpstring("method SetConnectionClose")]
HRESULT SetConnectionClose(
[in] BOOL fClose
);
[helpstring("method SendRedirect")]
HRESULT SendRedirect(
[in,string] LPCSTR szLocation,
[in] BOOL fDisconnect
);
[helpstring("method GetCertificateInfoEx")]
HRESULT GetCertificateInfoEx(
[in] DWORD cbAllocated,
[out] DWORD * pdwCertEncodingType,
[out,size_is(cbAllocated)] BYTE * pbCertEncoded,
[out] DWORD * pcbCertEncoded,
[out] DWORD * pdwCertificateFlags
);
[helpstring("method AppendLog")]
HRESULT AppendLog(
[in,string] LPSTR szExtraParam,
[in] USHORT StatusCode
);
[helpstring("method ExecuteUrl")]
HRESULT ExecuteUrl(
[in] DWORD64 IsaContext,
[in] EXEC_URL_INFO * pExecUrlInfo
);
[helpstring("method GetExecuteUrlStatus")]
HRESULT GetExecuteUrlStatus(
[out] USHORT * pChildStatusCode,
[out] USHORT * pChildSubErrorCode,
[out] DWORD * pChildWin32Error
);
[helpstring("method SendCustomError")]
HRESULT SendCustomError(
[in] DWORD64 IsaContext,
[in,string,unique] LPSTR szStatus,
[in] USHORT uHttpSubError
);
[helpstring("method VectorSend")]
HRESULT VectorSend(
[in] DWORD64 IsaContext,
[in] BOOL fDisconnect,
[in,unique,string] LPSTR pszStatus,
[in,unique,string] LPSTR pszHeaders,
[in,unique,size_is(nElementCount)] VECTOR_ELEMENT *pElements,
[in] DWORD nElementCount,
[in] BOOL fFinalSend,
[in] BOOL fCacheResponse
);
[helpstring("method GetCustomError")]
HRESULT GetCustomError(
[in] DWORD dwError,
[in] DWORD dwSubError,
[in] DWORD dwBufferSize,
[in, out, size_is(dwBufferSize)] BYTE *pvBuffer,
[out] DWORD *pdwRequiredBufferSize,
[out] BOOL *pfIsFileError,
[out] BOOL *pfSendErrorBody
);
[helpstring("method TestConnection")]
HRESULT TestConnection(
[out] BOOL *pfIsConnected
);
// GetSspiInfo only works inproc - the returned handles won't work OOP
[helpstring("method GetSspiInfo")]
HRESULT GetSspiInfo(
[out,size_is(cbCredHandle)] BYTE * pCredHandle,
[in] DWORD cbCredHandle,
[out,size_is(cbCtxtHandle)] BYTE * pCtxtHandle,
[in] DWORD cbCtxtHandle
);
[helpstring("method QueryToken")]
HRESULT QueryToken(
[in,size_is(cbUrl)] BYTE * szUrl,
[in] DWORD cbUrl,
[in] DWORD dwTokenType,
[out] DWORD64 * pToken,
[in] BOOL fUnicode
);
[helpstring("method ReportAsUnhealthy")]
HRESULT ReportAsUnhealthy(
[in,size_is(cbImage)] BYTE * szImage,
[in] DWORD cbImage,
[in,unique,size_is(cbReason)] BYTE * szReason,
[in] DWORD cbReason
);
[helpstring("method AddFragmentToCache")]
HRESULT
AddFragmentToCache(
[in] VECTOR_ELEMENT * pVectorElement,
[in,string] WCHAR * pszFragmentName
);
[helpstring("method ReadFragmentFromCache")]
HRESULT
ReadFragmentFromCache(
[in,string] WCHAR * pszFragmentName,
[in,out,size_is(cbSize)] BYTE * pvBuffer,
[in] DWORD cbSize,
[out] DWORD * pcbCopied
);
[helpstring("method RemoveFragmentFromCache")]
HRESULT
RemoveFragmentFromCache(
[in,string] WCHAR * pszFragmentName
);
[helpstring("method GetMetadataProperty")]
HRESULT
GetMetadataProperty(
[in] DWORD dwPropertyId,
[in,out,size_is(cbBuffer)] BYTE * pvBuffer,
[in] DWORD cbBuffer,
[out] DWORD * pcbBufferRequired
);
[helpstring("method GetCacheInvalidationCallback")]
HRESULT
GetCacheInvalidationCallback(
[out] DWORD64 *pfnCallback
);
[helpstring("method CloseConnection")]
HRESULT CloseConnection();
[helpstring("method AllocateMemory")]
HRESULT
AllocateMemory(
[in] DWORD cbSize,
[out] DWORD64 * pvBlock
);
};