XPQUEUE.H

/* 
- X P Q U E U E . H
-
* Purpose:
* Background transmit queue definitions for Sample Transport Provider.
*
* Copyright 1992-1995 Microsoft Corporation. All Rights Reserved.
*/

/* Structures used to build a adrlist from a recipient table. */

/* This is a lot like a ADRLIST except we keep track of the size of
the contained ADRLIST for resizing purposes. */

typedef struct _myadrlist
{
ULONG cMaxEntries;
LPADRLIST lpAdrList;
} MYADRLIST, *LPMYADRLIST;

/* Prototype of callback function which can be invoked as part of
operation of the HrBuildAdrList() function. */

typedef HRESULT (*LPMYCALLBACK) (LPXPL lpxpl,
LPSPropValue lpPropArray,
LPMESSAGE lpMessage,
ULONG ulRecipType,
LPTSTR lpszEmailAddress,
BOOL FAR * lpfSent);

/* Build one or two ADRLISTs for use by send/receive logic */

HRESULT HrBuildAdrList (LPXPL lpxpl,
LPSPropValue lpPropArray,
LPMESSAGE lpMessage,
LPMAPITABLE lpTable,
BOOL fSetResponsibility,
LPMYCALLBACK lpfnCallBack,
LPMYADRLIST FAR * lppMyAdrListGood,
LPMYADRLIST FAR * lppMyAdrListBad);

/* Send a single message from inside a restriction. */

HRESULT HrSendOneMessage (LPXPL lpxpl,
LPSPropValue lpPropArray,
LPMESSAGE lpMessage,
ULONG ulRecipType,
LPTSTR lpszEmailAddress,
BOOL FAR * lpfSent);

/* Free a MYADRLIST structure */

void FreeMyAdrList (LPXPL lpxpl, LPMYADRLIST lpMyAdrList);