windows-nt/Source/XPSP1/NT/public/internal/com/inc/unisrgt.idl
2020-09-26 16:20:57 +08:00

193 lines
4.8 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1998.
//
// File:
// UniSrgt.idl
//
// Contents:
// Definition of (currently) private unified surrogate interfaces
//
// History:
// WilfR 03-31-98 Created
//
//--------------------------------------------------------------------------
cpp_quote("//+-----------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1992 - 1998.")
cpp_quote("//")
cpp_quote("//------------------------------------------------------------------")
#ifndef DO_NO_IMPORTS
import "wtypes.idl";
import "objidl.idl";
import "unknwn.idl";
#endif
/****************************************************************************
* Surrogate Types *
****************************************************************************/
//
// ApplicationType
//
typedef enum tagApplicationType
{
ServerApplication,
LibraryApplication
} ApplicationType;
//
// ShutdownType
//
typedef enum tagShutdownType
{
IdleShutdown,
ForcedShutdown
} ShutdownType;
/****************************************************************************
* Surrogate Services Interfaces *
****************************************************************************/
//
// IProcessLock
//
[
object,
local,
uuid(000001d5-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IProcessLock : IUnknown
{
ULONG AddRefOnProcess();
ULONG ReleaseRefOnProcess();
}
//
// ISurrogateService
//
[
object,
local,
uuid(000001d4-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface ISurrogateService : IUnknown
{
HRESULT Init( [in] REFGUID rguidProcessID,
[in] IProcessLock* pProcessLock,
[out] BOOL* pfApplicationAware );
HRESULT ApplicationLaunch( [in] REFGUID rguidApplID,
[in] ApplicationType appType );
HRESULT ApplicationFree( [in] REFGUID rguidApplID );
HRESULT CatalogRefresh( [in] ULONG ulReserved );
HRESULT ProcessShutdown( [in] ShutdownType shutdownType );
}
//
// ISurrogateService2
//
[
object,
local,
uuid(000001da-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface ISurrogateService2 : ISurrogateService
{
HRESULT PauseProcess();
HRESULT ResumeProcess();
}
/****************************************************************************
* OLE32 Interface *
****************************************************************************/
//
// IPAControl
//
[
object,
local,
uuid(000001d2-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPAControl : IUnknown
{
ULONG AddRefOnProcess();
ULONG ReleaseRefOnProcess();
void PendingInit();
void ServicesReady();
HRESULT SuspendApplication( [in] REFGUID rguidApplID );
HRESULT PendingApplication( [in] REFGUID rguidApplID );
HRESULT ResumeApplication( [in] REFGUID rguidApplID );
HRESULT SuspendAll();
HRESULT ResumeAll();
HRESULT ForcedShutdown();
HRESULT SetIdleTimeoutToZero();
}
/****************************************************************************
* COMSVCS Interfaces *
****************************************************************************/
//
// IServicesSink
//
[
object,
local,
uuid(000001d3-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IServicesSink : IUnknown
{
void ApplicationLaunch( [in] REFGUID rguidApplID,
[in] ApplicationType appType );
void ApplicationFree( [in] REFGUID rguidApplID );
void ProcessFree();
HRESULT PauseApplication();
HRESULT ResumeApplication();
}
/****************************************************************************
* Surrogate APIs *
****************************************************************************/
//
// CoRegisterSurrogateEx
//
// Note: For now we re-use the ISurrogate interface -- The LoadDllServer
// method will never be called.
//
cpp_quote ("STDAPI CoRegisterSurrogateEx (REFGUID rguidProcessID, ")
cpp_quote (" ISurrogate* pSrgt); ")
//
// CoLoadServices
//
cpp_quote ("STDAPI CoLoadServices (REFGUID rguidProcessID, ")
cpp_quote (" IPAControl* pPAControl, ")
cpp_quote (" REFIID riid, void **ppv ); ")
//
// CoLoadServices Function typedef
//
cpp_quote ("typedef HRESULT (STDAPICALLTYPE *FN_CoLoadServices) ")
cpp_quote (" (REFGUID rguidProcessID, ")
cpp_quote (" IPAControl* pPAControl, ")
cpp_quote (" REFIID riid, void **ppv ); ")