//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//------------------------------------------------------------------------------
namespace System.Web.Hosting {
using System;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
/*
* !! USAGE NOTE !!
* This interface is not exposed publicly because it is expected that Helios developers will consume the
* no-PIA interfaces that will be released OOB. This interface only exists so that ASP.NET can interface
* with the Helios layer if necessary. These interfaces are subject to change.
*/
///
/// Defines the mechanism via which IIS will interact with the application.
///
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("692D0723-C338-4D09-9057-C71F0F47DA87")]
internal interface ICustomRuntime {
///
/// Called at some point between GL_APPLICATION_START and
/// GL_RESOLVE_MODULES and signals managed application start.
///
/// Do not use this parameter.
/// Do not use this parameter.
void Start(
[In] IntPtr reserved0,
[In] int reserved1);
///
/// Called during GL_RESOLVE_MODULES to give managed runtime a
/// chance to register CHttpModule instances with the IIS pipeline.
///
/// Additional data that may be useful to the custom runtime for integrating with the IIS pipeline.
/// This pointer is only valid within the call to ResolveModules.
/// The size (in bytes) of the structure pointed to by pResolveModuleData.
void ResolveModules(
[In] IntPtr pResolveModuleData,
[In] int resolveModuleDataSize);
///
/// Called during GL_APPLICATION_STOP and signals managed
/// application end.
///
/// Do not use this parameter.
/// Do not use this parameter.
///
/// It is acceptable for this method to unload the current AppDomain
/// and return COR_E_APPDOMAINUNLOADED.
///
void Stop(
[In] IntPtr reserved0,
[In] int reserved1);
}
}