/*===================================================================
Microsoft IIS 6

Microsoft Confidential.
Copyright 2000 Microsoft Corporation. All Rights Reserved.

Component: IDL

File: IWam.idl  - WAM Interface

===================================================================*/
import "oaidl.idl";
import "ocidl.idl";
import "..\isapiidl\IIsapiCore.idl";

[
        uuid(888ADDCF-9993-11D0-A539-00A0C922E798),

        helpstring("WAM Interface"),
        pointer_default(unique)
]
interface IWam : IUnknown
{
    [helpstring("method ProcessIsapiRequest")]
    HRESULT WamProcessIsapiRequest(
        [in,size_is(cbCoreData)]    BYTE *          pCoreData,
        [in]                        DWORD           cbCoreData,
        [in]                        IIsapiCore *    pIsapiCore,
        [out]                       DWORD *         pdwHseResult
        );

    [helpstring("method ProcessIsapiCompletion")]
    HRESULT WamProcessIsapiCompletion(
        [in]    DWORD64     IsapiContext,
        [in]    DWORD       cbCompletion,
        [in]    DWORD       dwCompletionStatus
        );

    [helpstring("method WamInitProcess")]
    HRESULT WamInitProcess(
        [in,size_is(cbIsapiModule)] BYTE *      szIsapiModule,
        [in]                        DWORD       cbIsapiModule,
        [out]                       DWORD *     pdwProcessId,
        [in,string]                 LPSTR       szClsid,
        [in,string]                 LPSTR       szIsapiHandlerInstance,
        [in]                        DWORD       dwCallingProcessId
        );

    [helpstring("method WamUninitProcess")]
    HRESULT WamUninitProcess(
        void
        );

    [helpstring("method WamMarshalAsyncReadBuffer")]
    HRESULT WamMarshalAsyncReadBuffer(
        [in]                    DWORD64     IsapiContext,
        [in,size_is(cbBuffer)]  BYTE *      pBuffer,
        [in]                    DWORD       cbBuffer
        );
};
        
[
	uuid(888ADDC0-9993-11D0-A539-00A0C922E798),
	version(1.0),
	helpstring("Wam 1.0 Type Library")
]
library WAMLib
{
	importlib("stdole2.tlb");

	[
		uuid(888ADDD0-9993-11D0-A539-00A0C922E798),
		helpstring("Wam object class")
	]
	coclass Wam
	{
		[default] interface IWam;
	};
};

