windows-nt/Source/XPSP1/NT/inetsrv/iis/iisrearc/iisplus/ulatq/wpipm.hxx
2020-09-26 16:20:57 +08:00

108 lines
1.6 KiB
C++

/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
wpipm.hxx
Abstract:
Contains the WPIPM class that handles communication with
the admin service. WPIPM responds to pings, and tells
the process when to shut down.
Author:
Michael Courage (MCourage) 22-Feb-1999
Revision History:
--*/
#ifndef _WP_IPM_HXX_
#define _WP_IPM_HXX_
#include "ipm.hxx"
class WP_CONTEXT;
class WP_IPM
: public MESSAGE_LISTENER
{
public:
WP_IPM()
: m_pWpContext(NULL),
m_pMessageGlobal(NULL),
m_pPipe(NULL),
m_hTerminateEvent(NULL),
m_hConnectEvent(NULL)
{}
HRESULT
Initialize(
WP_CONTEXT * pWpContext
);
HRESULT
Terminate(
VOID
);
//
// MESSAGE_LISTENER methods
//
virtual
HRESULT
AcceptMessage(
IN const MESSAGE * pPipeMessage
);
virtual
HRESULT
PipeConnected(
VOID
);
virtual
HRESULT
PipeDisconnected(
IN HRESULT hr
);
HRESULT
SendMsgToAdminProcess(
IPM_WP_SHUTDOWN_MSG reason
);
HRESULT
HandleCounterRequest(
VOID
);
HRESULT
SendInitCompleteMessage(
HRESULT hrToSend
);
private:
HRESULT
HandlePing(
VOID
);
HRESULT
HandleShutdown(
BOOL fImmediate
);
WP_CONTEXT * m_pWpContext;
MESSAGE_GLOBAL * m_pMessageGlobal;
MESSAGE_PIPE * m_pPipe;
HANDLE m_hConnectEvent;
HANDLE m_hTerminateEvent;
};
#endif // _WP_IPM_HXX_