Leaked source code of windows server 2003
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.
 
 
 
 
 
 

86 lines
2.6 KiB

//-----------------------------------------------------------------------------
//
//
// File: smproute.h
//
// Description:
// Simple routing header file. Defines a simple/default IMessageRouter
// as well as constants that are defined in rei.h (which currently
// uses the old IMsg).
//
// Author: Mike Swafford - mikeswa
//
// History:
// 5/19/98 - mikeswa Created
// 1/23/99 - MikeSwa Moved important constants to smtpevent.idl
//
// Copyright (C) 1998 Microsoft Corporation
//
//-----------------------------------------------------------------------------
#ifndef __SMPROUTE_H__
#define __SMPROUTE_H__
#include <aqincs.h>
#include <smtpevent.h>
class CAQSvrInst;
#define AQ_DEFAULT_ROUTER_SIG 'RDQA'
#define NUM_MESSAGE_TYPES 4
class CAQDefaultMessageRouter :
public IMessageRouter,
public CBaseObject
{
public:
CAQDefaultMessageRouter(GUID *pguid, CAQSvrInst *paqinst);
~CAQDefaultMessageRouter();
public: //IUnknown
STDMETHOD(QueryInterface)(REFIID riid, LPVOID * ppvObj) {return E_NOTIMPL;};
STDMETHOD_(ULONG, AddRef)(void) {InterlockedIncrement((PLONG) &m_cPeakReferences);return CBaseObject::AddRef();};
STDMETHOD_(ULONG, Release)(void) {return CBaseObject::Release();};
public: //IMessageRouter
STDMETHOD_(GUID,GetTransportSinkID) ();
STDMETHOD (GetMessageType) (
IN IMailMsgProperties *pIMailMsg,
OUT DWORD *pdwMessageType);
STDMETHOD (ReleaseMessageType) (
IN DWORD dwMessageType,
IN DWORD dwReleaseCount);
STDMETHOD (GetNextHop) (
IN LPSTR szDestinationAddressType,
IN LPSTR szDestinationAddress,
IN DWORD dwMessageType,
OUT LPSTR *pszRouteAddressType,
OUT LPSTR *pszRouteAddress,
OUT LPDWORD pdwScheduleID,
OUT LPSTR *pszRouteAddressClass,
OUT LPSTR *pszConnectorName,
OUT LPDWORD pdwNextHopType);
STDMETHOD (GetNextHopFree) (
IN LPSTR szDestinationAddressType,
IN LPSTR szDestinationAddress,
IN LPSTR szConnectorName,
IN LPSTR szRouteAddressType,
IN LPSTR szRouteAddress,
IN LPSTR szRouteAddressClass);
STDMETHOD (ConnectionFailed) (
IN LPSTR pszConnectorName)
{
return S_OK;
}
protected:
DWORD m_dwSignature;
DWORD m_rgcMsgTypeReferences[NUM_MESSAGE_TYPES];
DWORD m_dwCurrentReference;
GUID m_guid; //My TransportSinkID
DWORD m_cPeakReferences;
CAQSvrInst *m_paqinst;
};
#endif //__SMPROUTE_H__