You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
//-----------------------------------------------------------------------------
|
|
//
|
|
//
|
|
// File: aqrpcsvr.h
|
|
//
|
|
// Description: Header file for AQueue server-side RPC implementations.
|
|
// Contains per-instance initialization functions.
|
|
//
|
|
// Author: Mike Swafford (MikeSwa)
|
|
//
|
|
// History:
|
|
// 6/5/99 - MikeSwa Created
|
|
//
|
|
// Copyright (C) 1999 Microsoft Corporation
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef __AQRPCSVR_H__
|
|
#define __AQRPCSVR_H__
|
|
|
|
#include <aqincs.h>
|
|
#include <rwnew.h>
|
|
#include <baseobj.h>
|
|
#include <shutdown.h>
|
|
#include <mailmsg.h>
|
|
|
|
class CAQSvrInst;
|
|
|
|
|
|
#define CAQRpcSvrInst_Sig 'cpRQ'
|
|
#define CAQRpcSvrInst_SigFree 'cpR!'
|
|
|
|
//---[ CAQRpcSvrInst ]---------------------------------------------------------
|
|
//
|
|
//
|
|
// Description:
|
|
// Per-instance RPC class. Handles RPC details and shutdown timing
|
|
// Hungarian:
|
|
// aqrpc, paqrpc
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class CAQRpcSvrInst :
|
|
public CBaseObject,
|
|
public CSyncShutdown
|
|
{
|
|
private:
|
|
static CShareLockNH s_slPrivateData;
|
|
static LIST_ENTRY s_liInstancesHead;
|
|
static RPC_BINDING_VECTOR *s_pRpcBindingVector;
|
|
static BOOL s_fEndpointsRegistered;
|
|
protected:
|
|
DWORD m_dwSignature;
|
|
LIST_ENTRY m_liInstances;
|
|
CAQSvrInst *m_paqinst;
|
|
DWORD m_dwVirtualServerID;
|
|
ISMTPServer *m_pISMTPServer;
|
|
public:
|
|
CAQRpcSvrInst(CAQSvrInst *paqinst, DWORD dwVirtualServerID,
|
|
ISMTPServer *pISMTPServer);
|
|
~CAQRpcSvrInst();
|
|
|
|
CAQSvrInst *paqinstGetAQ() {return m_paqinst;};
|
|
static CAQRpcSvrInst *paqrpcGetRpcSvrInstance(DWORD dwVirtualServerID);
|
|
|
|
BOOL fAccessCheck(BOOL fReadOnly);
|
|
|
|
|
|
public: //static functions
|
|
static HRESULT HrInitializeAQRpc();
|
|
static HRESULT HrDeinitializeAQRpc();
|
|
|
|
static HRESULT HrInitializeAQServerInstanceRPC(CAQSvrInst *paqinst,
|
|
DWORD dwVirtualServerID,
|
|
ISMTPServer *pISMTPServer);
|
|
static HRESULT HrDeinitializeAQServerInstanceRPC(CAQSvrInst *paqinst,
|
|
DWORD dwVirtualServerID);
|
|
|
|
};
|
|
|
|
#endif //__AQRPCSVR_H__
|