windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/wam/idl/iwr.idl
2020-09-26 16:20:57 +08:00

370 lines
12 KiB
Plaintext

/*===================================================================
Microsoft K2
Microsoft Confidential.
Copyright 1997 Microsoft Corporation. All Rights Reserved.
Component: IDL
File: IWR.idl - Interface for Wam Request
===================================================================*/
import "basetsd.idl";
import "oaidl.idl";
import "ocidl.idl";
[
uuid(888ADDDD-9993-11D0-A539-00A0C922E798),
helpstring("IWamRequest Interface"),
pointer_default(unique)
]
interface IWamRequest : IUnknown
{
typedef struct {
DWORD cbBuffer;
[size_is(cbBuffer)] unsigned char * pbBuffer;
} OOP_RESPONSE_BUFFER;
typedef struct {
DWORD cBuffers;
[size_is(cBuffers)] OOP_RESPONSE_BUFFER * rgBuffers;
} OOP_RESPONSE_INFO;
[helpstring("method PrepCleanupWamRequest")]
HRESULT PrepCleanupWamRequest(
[in, size_is(cbLogData)] unsigned char * szLogData
, [in] DWORD cbLogData
, [in] DWORD dwHttpStatusCode
, [in] DWORD dwIsaKeepConn
);
[helpstring("method CleanupWamRequest")]
HRESULT CleanupWamRequest
(
[in, size_is(cbLogData)] unsigned char * szLogData
, [in] DWORD cbLogData
, [in] DWORD dwHttpStatusCode
, [in] DWORD dwIsaKeepConn
);
[helpstring("method GetCoreState")]
HRESULT GetCoreState
(
[in] DWORD cbWrcData,
[in, out, size_is(cbWrcData)] unsigned char * pbWrcData,
[in] DWORD cbWRCF,
[in, out, size_is(cbWRCF)] unsigned char * pbWRCF
);
// NOTE not supported oop - by design
[helpstring("method QueryEntityBody")]
HRESULT QueryEntityBody
(
unsigned char ** ppbEntityBody
);
[helpstring("method SetKeepConn")]
HRESULT SetKeepConn
(
[in] int fKeepConn
);
[helpstring("method IsKeepConnSet")]
HRESULT IsKeepConnSet
(
BOOL * pfKeepConn
);
[helpstring("method SendURLRedirectResponse")]
HRESULT SendURLRedirectResponse
(
[in, string] unsigned char * pData
);
[helpstring("method GetInfoForName")]
HRESULT GetInfoForName
(
[in, string] const unsigned char * szVarName,
[in, out, unique, size_is(cchBuffer)] unsigned char * pchBuffer,
[in] DWORD cchBuffer,
[out] DWORD * pcchRequired
);
[helpstring("method AppendLogParameter")]
HRESULT AppendLogParameter
(
[in, string] unsigned char * pszParam
);
[helpstring("method LookupVirtualRoot")]
HRESULT LookupVirtualRoot
(
[in, out, unique, size_is(cchBuffer)] unsigned char * pchBuffer,
[in] DWORD cchBuffer,
[out] DWORD * pcchRequired
);
[helpstring("method LookupVirtualRootEx")]
HRESULT LookupVirtualRootEx
(
[in, string] unsigned char * szURL,
[in, out, unique, size_is(cchBuffer)] unsigned char * pchBuffer,
[in] DWORD cchBuffer,
[out] DWORD * pcchRequired,
[out] DWORD * pcchMatchingPath,
[out] DWORD * pcchMatchingURL,
[out] DWORD * pdwFlags
);
[helpstring("method GetVirtualPathToken")]
HRESULT GetVirtualPathToken
(
[in, string] unsigned char * szURL,
#ifdef _WIN64
[out] UINT64 * phToken
#else
[out] ULONG_PTR * phToken
#endif
);
// NOTE not supported oop - by design
[helpstring("method GetPrivatePtr")]
HRESULT GetPrivatePtr
(
[in] DWORD dwHSERequest,
[out] unsigned char ** ppData
);
// not supported oop - by design
[helpstring("method AsyncReadClientExt")]
HRESULT AsyncReadClientExt
(
#ifdef _WIN64
[in] UINT64 pWamExecInfo
#else
[in] ULONG_PTR pWamExecInfo
#endif
, [out, size_is(nBytesToRead)] unsigned char * lpBuffer
, [in] DWORD nBytesToRead
);
[helpstring("method AsyncReadClientOop")]
HRESULT AsyncReadClientOop
(
#ifdef _WIN64
[in] UINT64 pWamExecInfo
#else
[in] ULONG_PTR pWamExecInfo
#endif
, [in] DWORD nBytesToRead
);
[helpstring("method AsyncWriteClient")]
HRESULT AsyncWriteClient
(
#ifdef _WIN64
[in] UINT64 pWamExecInfo, // WAM_EXEC_INFO *
#else
[in] ULONG_PTR pWamExecInfo, // WAM_EXEC_INFO *
#endif
[in, size_is( nBytesToWrite )] unsigned char * lpBuffer,
[in] DWORD nBytesToWrite,
[in] DWORD dwFlags
);
[helpstring("method SyncReadClient")]
HRESULT SyncReadClient
(
[out, size_is(nBytesToRead)] unsigned char * lpBuffer,
[in] DWORD nBytesToRead,
[out] DWORD * pnBytesRead
);
[helpstring("method SyncWriteClient")]
HRESULT SyncWriteClient
(
[in] DWORD nBytesToWrite,
[in, size_is( nBytesToWrite )] unsigned char * lpBuffer,
[out] DWORD * pnBytesWritten,
[in] DWORD dwFlags
);
// NOTE not supported oop - by design
[helpstring("method TransmitFileInProc")]
HRESULT TransmitFileInProc(
#ifdef _WIN64
[in] UINT64 pWamExecInfo
#else
[in] ULONG_PTR pWamExecInfo
#endif
, [in] unsigned char * pHseTfIn
);
[helpstring("method TransmitFileOutProc")]
HRESULT TransmitFileOutProc(
#ifdef _WIN64
[in] UINT64 pWamExecInfo
, [in] UINT64 hFile
#else
[in] ULONG_PTR pWamExecInfo
, [in] ULONG_PTR hFile
#endif
, [in, unique, size_is(cbStatusCode)] unsigned char * pszStatusCode
, [in] DWORD cbStatusCode
, [in] DWORD BytesToWrite
, [in] DWORD Offset
, [in, unique, size_is(HeadLength)] unsigned char * pHead
, [in] DWORD HeadLength
, [in, unique, size_is(TailLength)] unsigned char * pTail
, [in] DWORD TailLength
, [in] DWORD dwFlags
);
[helpstring("method SendHeader")]
HRESULT SendHeader(
[in, unique, size_is(cchStatus)] unsigned char * szStatus
, [in] DWORD cchStatus
, [in, unique, size_is(cchHeader)] unsigned char * szHeader
, [in] DWORD cchHeader
, [in] DWORD dwIsaKeepConn
);
// NOTE breaks oop - by design
[helpstring("method SendEntireResponse")]
HRESULT SendEntireResponse(
unsigned char * pvHseResponseInfo // HSE_SEND_ENTIRE_RESPONSE_INFO *
);
[helpstring("method SendEntireResponseAndCleanup")]
HRESULT SendEntireResponseAndCleanup(
[in, unique, size_is(cbStatus)] unsigned char * szStatus
, [in] DWORD cbStatus
, [in, unique, size_is(cbHeader)] unsigned char * szHeader
, [in] DWORD cbHeader
, [in, unique] OOP_RESPONSE_INFO * pOopResponseInfo
, [in, unique, size_is(cbLogData)] unsigned char * szLogData
, [in] DWORD cbLogData
, [in] DWORD dwIsaKeepConn
, [out] BOOL * pfDisconnected
);
[helpstring("method SendRedirectMessage")]
HRESULT SendRedirectMessage
(
[in, string] unsigned char * szRedirect
);
// NOTE breaks oop - by design
[helpstring("method GetSslCtxt")]
HRESULT GetSslCtxt
(
DWORD cbCtxtHandle,
unsigned char * pbCtxtHandle // PBYTE pbCtxtHandle
);
[helpstring("method GetClientCertInfoEx")]
HRESULT GetClientCertInfoEx
(
[in] DWORD cbAllocated,
[out] DWORD * pdwCertEncodingType,
[out, size_is(cbAllocated)] unsigned char * pbCertEncoded,
[out] DWORD * pcbCertEncoded,
[out] DWORD * pdwCertificateFlags
);
// NOTE breaks oop - by design
[helpstring("method GetSspiInfo")]
HRESULT GetSspiInfo
(
DWORD cbCtxtHandle,
unsigned char * pbCtxtHandle, // PBYTE pbCtxtHandle
DWORD cbCredHandle,
unsigned char * pbCredHandle // PBYTE pbCredHandle
);
[helpstring("method RequestAbortiveClose")]
HRESULT RequestAbortiveClose();
[helpstring("method SSIncExec")]
HRESULT SSIncExec
(
[in, string] unsigned char * szCommand,
[in] DWORD dwExecFlags,
[in, string] unsigned char * pszVerb
);
[helpstring("method GetAspMDAllData")]
HRESULT GetAspMDAllData(
[in, string] unsigned char * pszMDPath
, [in] DWORD dwMDUserType
, [in] DWORD dwDefaultBufferSize
, [in, out, unique, size_is(dwDefaultBufferSize)] unsigned char * pBuffer
, [out] DWORD * pdwRequiredBufferSize
, [out] DWORD * pdwNumDataEntries
);
[helpstring("method GetAspMDData")]
HRESULT GetAspMDData(
[in, string] unsigned char * pszMDPath
, [in] DWORD dwMDIdentifier
, [in] DWORD dwMDAttributes
, [in] DWORD dwMDUserType
, [in] DWORD dwMDDataType
, [in] DWORD dwMDDataLen
, [in] DWORD dwMDDataTag
, [in, out, unique, size_is(dwMDDataLen)] unsigned char * pbMDData
, [out] DWORD * pdwRequiredBufferSize
);
[helpstring("method GetCustomError")]
HRESULT GetCustomError(
[in] DWORD dwError,
[in] DWORD dwSubError,
[in] DWORD dwBufferSize,
[in, out, unique, size_is(dwBufferSize)] unsigned char *pbBuffer,
[out] DWORD *pdwRequiredBufferSize,
[out] BOOL *pfIsFileError
);
[helpstring("method TestConnection")]
HRESULT TestConnection(
[out] BOOL *pfIsConnected
);
[helpstring("method CloseConnection")]
HRESULT CloseConnection();
[helpstring("method LogEvent")]
HRESULT LogEvent(
[in] DWORD dwEventId,
[in, string] unsigned char *szText
);
[helpstring("method ExtensionTrigger")]
HRESULT ExtensionTrigger(
[in] unsigned char * pvContext,
[in] DWORD dwTriggerType
);
HRESULT DbgRefCount( );
};