975 lines
50 KiB
C
975 lines
50 KiB
C
// --edkmapi.h------------------------------------------------------------------
|
|
//
|
|
// Header file for module containing MAPI utility functions.
|
|
//
|
|
// Copyright 1986 - 1998 Microsoft Corporation. All Rights Reserved.
|
|
// -----------------------------------------------------------------------------
|
|
#ifndef _EDKMAPI_H
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#define _EDKMAPI_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
// Flags for HrMAPIOpenCachedProp().
|
|
#define EDK_CACHE_READ 0x00000001L
|
|
#define EDK_CACHE_WRITE 0x00000002L
|
|
|
|
#define MODRECIP_EMPTY (MODRECIP_ADD|MODRECIP_REMOVE)
|
|
|
|
/* Values of PR_NDR_REASON_CODE */
|
|
|
|
#define MAPI_REASON(_code) ((LONG) _code)
|
|
|
|
#define MAPI_REASON_TRANSFER_FAILED MAPI_REASON( 0 )
|
|
#define MAPI_REASON_TRANSFER_IMPOSSIBLE MAPI_REASON( 1 )
|
|
#define MAPI_REASON_CONVERSION_NOT_PERFORMED MAPI_REASON( 2 )
|
|
#define MAPI_REASON_PHYSICAL_RENDITN_NOT_DONE MAPI_REASON( 3 )
|
|
#define MAPI_REASON_PHYSICAL_DELIV_NOT_DONE MAPI_REASON( 4 )
|
|
#define MAPI_REASON_RESTRICTED_DELIVERY MAPI_REASON( 5 )
|
|
#define MAPI_REASON_DIRECTORY_OPERATN_FAILED MAPI_REASON( 6 )
|
|
|
|
#define CbSPropValue(_centries) \
|
|
((_centries)*sizeof(SPropValue))
|
|
|
|
#define CbNewADRENTRY(_centries) \
|
|
(offsetof(ADRENTRY,rgPropVals) + (_centries)*sizeof(LPSPropValue))
|
|
#define CbADRENTRY(_lpadrentry) \
|
|
(offsetof(ADRENTRY,rgPropVals) + (UINT)(_lpadrentry)->cValues*sizeof(LPSPropValue))
|
|
|
|
#define VALID_RECIP_TYPE(ulRecipType) \
|
|
(((ulRecipType & (~MAPI_SUBMITTED)) == MAPI_ORIG) || \
|
|
((ulRecipType & (~MAPI_SUBMITTED)) == MAPI_TO) || \
|
|
((ulRecipType & (~MAPI_SUBMITTED)) == MAPI_CC) || \
|
|
((ulRecipType & (~MAPI_SUBMITTED)) == MAPI_BCC))
|
|
|
|
#define VALID_RELOP_T(x) \
|
|
(((((ULONG)(x)) >= 0) && (((ULONG)(x)) < ((ULONG)RELOP_RE))) ? TRUE : FALSE)
|
|
|
|
#define VALID_ATTACH_METHOD(x) \
|
|
(((((ULONG)(x)) >= ((ULONG)NO_ATTACHMENT)) && \
|
|
(((ULONG)(x)) < ((ULONG)ATTACH_OLE))) ? TRUE : FALSE)
|
|
|
|
//$--MSG_T----------------------------------------------------------------------
|
|
// Type of message.
|
|
// -----------------------------------------------------------------------------
|
|
typedef enum _msg
|
|
{
|
|
MSG_ENVELOPE = 0, // message envelope
|
|
MSG_CONTENT, // message contents
|
|
MSG_LAST // all values are less than this
|
|
} MSG_T;
|
|
|
|
#define VALID_MSG_T(x) \
|
|
(((((ULONG)(x)) >= 0) && (((ULONG)(x)) < ((ULONG)MSG_LAST))) ? TRUE : FALSE)
|
|
|
|
//$--MD_ACTION_T----------------------------------------------------------------
|
|
// Type defining possible actions taken by an MD.
|
|
// -----------------------------------------------------------------------------
|
|
typedef enum _md_action
|
|
{
|
|
MD_AC_EXPANDED = -2, // Distribution list expanded
|
|
MD_AC_REDIRECTED, // Recipient address changed
|
|
MD_AC_RELAYED, // Normal action of a relay MTAE
|
|
MD_AC_REROUTED, // Previous attempt to route message
|
|
MD_AC_LAST // All values are less than this
|
|
} MD_ACTION_T;
|
|
|
|
#define VALID_MD_ACTION(x) \
|
|
((((LONG)(x)) >= ((LONG)-2)) && (((LONG)(x)) < ((LONG)MD_AC_LAST)))
|
|
|
|
#define CbNewTRACEINFO(_centries) \
|
|
(offsetof(TRACEINFO,rgtraceentry) + (_centries)*sizeof(TRACEENTRY))
|
|
|
|
#define CbTRACEINFO(_lptraceinfo) \
|
|
(offsetof(TRACEINFO,rgtraceentry) + \
|
|
((_lptraceinfo)->cEntries*sizeof(TRACEENTRY)))
|
|
|
|
#define CbNewINTTRACEINFO(_centries) \
|
|
(offsetof(INTTRACEINFO,rgIntTraceEntry) + (_centries)*sizeof(INTTRACEENTRY))
|
|
|
|
#define CbINTTRACEINFO(_lptraceinfo) \
|
|
(offsetof(INTTRACEINFO,rgIntTraceEntry) + \
|
|
((_lptraceinfo)->cEntries*sizeof(INTTRACEENTRY)))
|
|
|
|
//******************************************************************************
|
|
//
|
|
// EDKMAPI.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
//$--HrMAPIGetFirstSRowSet------------------------------------------------------
|
|
// Gets the first SRowSet from a table
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetFirstSRowSet( // RETURNS: return code
|
|
IN LPMAPITABLE lpTable, // pointer to table address variable
|
|
IN ULONG cRows, // count of number of rows in SRowSet
|
|
IN LPSPropTagArray rgPropTags, // array of property tags
|
|
OUT LPSRowSet FAR *lppRows); // pointer to address variable for
|
|
// SRowSet
|
|
|
|
//$--HrMAPIGetNextSRowSet-------------------------------------------------------
|
|
// Gets the next SRowSet from a table
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetNextSRowSet( // RETURNS: return code
|
|
IN LPMAPITABLE lpTable, // pointer to table
|
|
IN ULONG cRows, // count of number of rows in SRowSet
|
|
IN LPSPropTagArray rgPropTags, // array of property tags
|
|
OUT LPSRowSet FAR *lppRows); // pointer to address variable for
|
|
// SRowSet
|
|
|
|
//$--HrMAPICreateEntryList------------------------------------------------------
|
|
// Creates an ENTRYLIST.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPICreateEntryList( // RETURNS: return code
|
|
IN ULONG cbeid, // count of bytes in Entry ID
|
|
IN LPENTRYID lpeid, // pointer to Entry ID
|
|
OUT LPENTRYLIST FAR *lppEntryList); // pointer to address variable of Entry
|
|
// list
|
|
|
|
//$--HrMAPIAppendEntryList------------------------------------------------------
|
|
// Appends to an ENTRYLIST.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIAppendEntryList( // RETURNS: return code
|
|
IN ULONG cbeid, // count of bytes in Entry ID
|
|
IN LPENTRYID lpeid, // pointer to Entry ID
|
|
OUT LPENTRYLIST FAR lpEntryList); // pointer to address variable of Entry
|
|
// list
|
|
|
|
//$--HrMAPIDestroyEntryList-----------------------------------------------------
|
|
// Frees an ENTRYLIST.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIDestroyEntryList( // RETURNS: return code
|
|
IN OUT LPENTRYLIST FAR *lppEntryList);// pointer to address variable of Entry
|
|
// list
|
|
|
|
//$--HrMAPIWriteStreamToFile----------------------------------------------------
|
|
// Write stream to a file given a file handle.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIWriteStreamToFile( // RETURNS: return code
|
|
IN LPSTREAM lpStream, // Pointer to stream
|
|
OUT HANDLE hFile); // Handle to file
|
|
|
|
//$--HrMAPIWriteFileToStream----------------------------------------------------
|
|
// Write file to a stream given a stream pointer.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIWriteFileToStream( // RETURNS: return code
|
|
IN HANDLE hFile, // Handle to file
|
|
OUT LPSTREAM lpStream); // Pointer to stream
|
|
|
|
//$--HrMAPIWriteAttachmentToFile------------------------------------------------
|
|
// Write the identified message attachment to a file.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIWriteAttachmentToFile( // RETURNS: return code
|
|
IN LPMESSAGE pMessage, // Message containing the attachments
|
|
IN ULONG iAttach, // Attachment identifier
|
|
OUT HANDLE hFile); // Handle to file
|
|
|
|
//$--HrMAPIGotoSRow-------------------------------------------------------------
|
|
// Goto the specified SRow in an SRowSet.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrMAPIGotoSRow( // RETURNS: return code
|
|
IN LPSRowSet FAR lpRows, // pointer to SRowSet
|
|
IN ULONG ulRow, // index of SRow in SRowSet
|
|
OUT LPSRow *lppRow); // pointer to SRow
|
|
|
|
//$--HrMAPIGotoFirstSRow--------------------------------------------------------
|
|
// Goto the first SRow in an SRowSet.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrMAPIGotoFirstSRow( // RETURNS: return code
|
|
IN LPSRowSet FAR lpRows, // pointer to SRowSet
|
|
OUT ULONG *lpulRow, // index of SRow in SRowSet
|
|
OUT LPSRow *lppRow); // pointer to SRow
|
|
|
|
//$--HrMAPIGotoNextSRow---------------------------------------------------------
|
|
// Goto the next SRow in an SRowSet.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrMAPIGotoNextSRow( // RETURNS: return code
|
|
IN LPSRowSet FAR lpRows, // pointer to SRowSet
|
|
IN OUT ULONG *lpulRow, // index of SRow in SRowSet
|
|
OUT LPSRow *lppRow); // pointer to SRow
|
|
|
|
//$--HrMAPIWriteStreamToMemory--------------------------------------------------
|
|
// Reads a given number of bytes from a stream to a block of memory.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIWriteStreamToMemory( // RETURNS: return code
|
|
IN LPSTREAM lpStream, // pointer to stream
|
|
IN ULONG cBytes, // count of bytes in memory
|
|
IN LPBYTE lpbBytes, // pointer to memory
|
|
OUT ULONG *lpcBytesRead); // count of bytes read from stream
|
|
|
|
//$--HrMAPIWriteMemoryToStream--------------------------------------------------
|
|
// Writes a given number of bytes from a block of memory to a stream
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIWriteMemoryToStream( // RETURNS: return code
|
|
IN LPSTREAM lpStream, // pointer to stream
|
|
IN ULONG cBytes, // count of bytes in memory
|
|
IN LPBYTE lpbBytes, // pointer to memory
|
|
OUT ULONG *lpcBytesWritten); // count of bytes written from stream
|
|
|
|
//$--HrMAPISetStreamSize--------------------------------------------------------
|
|
// Sets the size of the given stream.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetStreamSize( // RETURNS: return code
|
|
IN LPSTREAM lpStream, // pointer to stream
|
|
IN ULONG cBytes); // count of bytes in stream
|
|
|
|
//******************************************************************************
|
|
//
|
|
// IADDRESS.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
//$--HrMAPICreateAddressList----------------------------------------------------
|
|
// Create an address list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPICreateAddressList( // RETURNS: return code
|
|
IN ULONG cProps, // count of values in address list
|
|
// entry
|
|
IN LPSPropValue lpPropValues, // pointer to address list entry
|
|
OUT LPADRLIST *lppAdrList); // pointer to address list pointer
|
|
|
|
//$--HrMAPIAppendAddressList----------------------------------------------------
|
|
// Append to an address list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIAppendAddressList( // RETURNS: return code
|
|
IN ULONG cProps, // count of values in address list
|
|
// entry
|
|
IN LPSPropValue lpPropValues, // pointer to address list entry
|
|
IN OUT LPADRLIST *lppAdrList); // pointer to address list pointer
|
|
|
|
//$--HrMAPICreateSizedAddressList-----------------------------------------------
|
|
// Create a sized address list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPICreateSizedAddressList( // RETURNS: return code
|
|
IN ULONG cEntries, // count of entries in address list
|
|
OUT LPADRLIST *lppAdrList); // pointer to address list pointer
|
|
|
|
//$--HrMAPISetAddressList-------------------------------------------------------
|
|
// Set an address list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetAddressList( // RETURNS: return code
|
|
IN ULONG iEntry, // index of address list entry
|
|
IN ULONG cProps, // count of values in address list
|
|
// entry
|
|
IN LPSPropValue lpPropValues, // pointer to address list entry
|
|
IN OUT LPADRLIST lpAdrList); // pointer to address list pointer
|
|
|
|
//******************************************************************************
|
|
//
|
|
// IFOLDER.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
//$--HrMAPIFindInbox------------------------------------------------------------
|
|
// Find IPM inbox folder.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindInbox( // RETURNS: return code
|
|
IN LPMDB lpMdb, // pointer to message store
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // Entry ID of IPM inbox
|
|
|
|
//$--HrMAPIFindOutbox-----------------------------------------------------------
|
|
// Find IPM outbox folder.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindOutbox( // RETURNS: return code
|
|
IN LPMDB lpMdb, // pointer to message store
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // Entry ID of IPM outbox
|
|
|
|
//$--HrMAPIFindIPMSubtree-------------------------------------------------------
|
|
// Find IPM subtree folder.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindIPMSubtree( // RETURNS: return code
|
|
IN LPMDB lpMdb, // pointer to message store
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // entry ID of IPM subtree
|
|
|
|
//$--HrGWFindMtsOutFolder-------------------------------------------------------
|
|
// Find MTS-OUT folder.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrGWFindMtsOutFolder( // RETURNS: return code
|
|
IN LPMDB lpMdb, // pointer to message store
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // entry ID of MTS-OUT
|
|
|
|
//$--HrGWFindMtsInFolder--------------------------------------------------------
|
|
// Find MTS-IN folder.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrGWFindMtsInFolder( // RETURNS: return code
|
|
IN LPMDB lpMdb, // pointer to message store
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // entry ID of MTS-IN
|
|
|
|
//$--HrFindExchangePublicStore--------------------------------------------------
|
|
// Find public store root folder.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrFindExchangePublicStore( // RETURNS: return code
|
|
IN LPMDB lpMdb, // pointer to message store
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // entry ID of public store
|
|
|
|
//$--HrMAPIFindFolder@----------------------------------------------------------
|
|
// Find a folder by name.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindFolderW( // RETURNS: return code
|
|
IN LPMAPIFOLDER lpFolder, // pointer to folder
|
|
IN LPCWSTR lpszName, // name of folder to find
|
|
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
|
|
|
|
HRESULT HrMAPIFindFolderA( // RETURNS: return code
|
|
IN LPMAPIFOLDER lpFolder, // pointer to folder
|
|
IN LPCSTR lpszName, // name of folder to find
|
|
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
|
|
|
|
#ifdef UNICODE
|
|
#define HrMAPIFindFolder HrMAPIFindFolderW
|
|
#else
|
|
#define HrMAPIFindFolder HrMAPIFindFolderA
|
|
#endif
|
|
|
|
//$--HrMAPIFindSubfolderEx@-----------------------------------------------------
|
|
// Find a folder by name.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindSubfolderExW(
|
|
IN LPMAPIFOLDER lpRootFolder, // open root folder
|
|
IN WCHAR chSep, // folder path separator
|
|
IN LPCWSTR lpszName, // folder path
|
|
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
|
|
|
|
HRESULT HrMAPIFindSubfolderExA(
|
|
IN LPMAPIFOLDER lpFolder, // open root folder
|
|
IN CHAR chSep, // folder path separator
|
|
IN LPCSTR lpszName, // folder path
|
|
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
|
|
|
|
#ifdef UNICODE
|
|
#define HrMAPIFindSubfolderEx HrMAPIFindSubfolderExW
|
|
#else
|
|
#define HrMAPIFindSubfolderEx HrMAPIFindSubfolderExA
|
|
#endif
|
|
|
|
//$--HrMAPIFindFolderEx@--------------------------------------------------------
|
|
// Finds an arbitrarily nested folder in the indicated store given its
|
|
// path name.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindFolderExW(
|
|
IN LPMDB lpMdb, // Open message store
|
|
IN WCHAR chSep, // folder path separator character
|
|
IN LPCWSTR lpszFolderPath, // folder path
|
|
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
|
|
|
|
HRESULT HrMAPIFindFolderExA(
|
|
IN LPMDB lpMdb, // Open message store
|
|
IN CHAR chSep, // folder path separator character
|
|
IN LPCSTR lpszFolderPath, // folder path
|
|
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
|
|
|
|
#ifdef UNICODE
|
|
#define HrMAPIFindFolderEx HrMAPIFindFolderExW
|
|
#else
|
|
#define HrMAPIFindFolderEx HrMAPIFindFolderExA
|
|
#endif
|
|
|
|
//$--HrMAPIOpenFolderEx@--------------------------------------------------------
|
|
// Opens an arbitrarily nested folder in the indicated store given its
|
|
// path name.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrMAPIOpenFolderExW(
|
|
IN LPMDB lpMdb, // Open message store
|
|
IN WCHAR chSep, // folder path separator character
|
|
IN LPCWSTR lpszFolderPath, // folder path
|
|
OUT LPMAPIFOLDER * lppFolder); // pointer to folder opened
|
|
|
|
HRESULT HrMAPIOpenFolderExA(
|
|
IN LPMDB lpMdb, // Open message store
|
|
IN CHAR chSep, // folder path separator character
|
|
IN LPCSTR lpszFolderPath, // folder path
|
|
OUT LPMAPIFOLDER * lppFolder); // pointer to folder opened
|
|
|
|
#ifdef UNICODE
|
|
#define HrMAPIOpenFolderEx HrMAPIOpenFolderExW
|
|
#else
|
|
#define HrMAPIOpenFolderEx HrMAPIOpenFolderExA
|
|
#endif
|
|
|
|
//$--HrMAPIOpenSubfolderEx@-----------------------------------------------------
|
|
// Opens an arbitrarily nested folder in the indicated folder given its
|
|
// path name.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrMAPIOpenSubfolderExW(
|
|
IN LPMAPIFOLDER lpRootFolder, // open root folder
|
|
IN WCHAR chSep, // folder path separator character
|
|
IN LPCWSTR lpszFolderPath, // folder path
|
|
OUT LPMAPIFOLDER * lppFolder); // pointer to folder opened
|
|
|
|
HRESULT HrMAPIOpenSubfolderExA(
|
|
IN LPMAPIFOLDER lpRootFolder, // open root folder
|
|
IN CHAR chSep, // folder path separator character
|
|
IN LPCSTR lpszFolderPath, // folder path
|
|
OUT LPMAPIFOLDER * lppFolder); // pointer to folder opened
|
|
|
|
#ifdef UNICODE
|
|
#define HrMAPIOpenSubfolderEx HrMAPIOpenSubfolderExW
|
|
#else
|
|
#define HrMAPIOpenSubfolderEx HrMAPIOpenSubfolderExA
|
|
#endif
|
|
|
|
//$--HrOpenExchangePublicFolders------------------------------------------------
|
|
// Opens the root of the public folder hierarchy in the public message store.
|
|
//------------------------------------------------------------------------------
|
|
HRESULT HrOpenExchangePublicFolders(
|
|
IN LPMDB lpPubStore,
|
|
OUT LPMAPIFOLDER *lppRootFolder);
|
|
|
|
//******************************************************************************
|
|
//
|
|
// IMESSAGE.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
//$--HrMAPIFindMsgByProp--------------------------------------------------------
|
|
// Find the entry ID of a message given a property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindMsgByProp( // RETURNS: return code
|
|
IN LPMAPIFOLDER lpFolder, // pointer to folder
|
|
IN LPSPropValue lpSPropValue, // property value
|
|
OUT LPENTRYLIST *lppMsgList); // list of matching messages
|
|
|
|
//$--HrMAPIMoveMessage----------------------------------------------------------
|
|
// Move one message from one folder to another.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIMoveMessage( // RETURNS: return code
|
|
IN LPMAPIFOLDER lpSrcFolder, // pointer to source folder
|
|
IN LPMAPIFOLDER lpDstFolder, // pointer to destination folder
|
|
IN ULONG cbeid, // count of bytes in entry ID
|
|
IN LPENTRYID lpeid); // pointer to entry ID
|
|
|
|
//$--HrMAPICopyMessage----------------------------------------------------------
|
|
// Copy one message from one folder to another.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPICopyMessage( // RETURNS: return code
|
|
IN LPMAPIFOLDER lpSrcFolder, // pointer to source folder
|
|
IN LPMAPIFOLDER lpDstFolder, // pointer to destination folder
|
|
IN ULONG cbeid, // count of bytes in entry ID
|
|
IN LPENTRYID lpeid); // pointer to entry ID
|
|
|
|
//$--HrMAPIDeleteMessage--------------------------------------------------------
|
|
// Delete one message from one folder to another.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIDeleteMessage( // RETURNS: return code
|
|
IN LPMAPIFOLDER lpFolder, // pointer to folder
|
|
IN ULONG cbeid, // count of bytes in entry ID
|
|
IN LPENTRYID lpeid); // pointer to entry ID
|
|
|
|
//******************************************************************************
|
|
//
|
|
// IPROP.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
//$--HrMAPIOpenCachedProp-------------------------------------------------------
|
|
//
|
|
// DESCRIPTION: Create a new (local) IPropData object in which the original
|
|
// object properties are cached. The local cached can be created for
|
|
// reading (for use with GetProp calls) for for writing (for use with
|
|
// SetProp calls). The purpose of this function and HrMAPICloseCachedProp
|
|
// is to reduce the number of remote procedure calls made by code
|
|
// which performs many GetProp or SetProp calls on an object.
|
|
//
|
|
// INPUT: lpObj -- property object to cache
|
|
// lpPropList -- list of properties to cache (for reading)
|
|
// defaults to all properties if NULL.
|
|
// ulFlags -- read OR write access flag (EDK_CACHE_READ
|
|
// or EDK_CACHE_WRITE)
|
|
//
|
|
// OUTPUT: lppCachedObj -- cached property object
|
|
//
|
|
// RETURNS: HRESULT -- NOERROR if successful,
|
|
// E_INVALIDARG if bad input
|
|
// E_FAIL otherwise.
|
|
//
|
|
// NOTE: This function creates a cached object for reading only
|
|
// or for writing only. It does not support and object
|
|
// for both reading and writing.
|
|
//
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIOpenCachedProp( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // source object
|
|
IN LPSPropTagArray lpPropList, // list of properties to cache
|
|
IN ULONG ulFlags, // open for reading only or for writing only
|
|
OUT LPPROPDATA FAR * lppCachedObj); // cached version of source object
|
|
|
|
//$--HrMAPICloseCachedProp------------------------------------------------------
|
|
//
|
|
// DESCRIPTION: If object was created as a write cache,
|
|
// copy properties in local cached object
|
|
// back to original remote object.
|
|
//
|
|
// INPUT: lpCachedObj -- cached property object
|
|
// lpOriginalObj -- original property object
|
|
// ulFlags -- read cache or write cache flag (EDK_CACHE_READ
|
|
// or EDK_CACHE_WRITE)
|
|
//
|
|
// OUTPUT: lppProblems -- set to the property problem array returned
|
|
// by if there were problems setting properties on the original
|
|
// object
|
|
//
|
|
// NOTES: lppProblems: It may be set, even though overall call
|
|
// is successful. This is because all of the SetProps have been "deferred" on the
|
|
// original object until this call, the user will need to evaluate
|
|
// the contents of the lppProblems buffer pointer based on which
|
|
// properties he/or she actually tried to set.
|
|
//
|
|
// RETURNS: HRESULT -- NOERROR if successful,
|
|
// E_INVALIDARG if bad input
|
|
// E_FAIL otherwise
|
|
//
|
|
// lppProblems will only be valid if return code
|
|
// is NOERROR.
|
|
//
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPICloseCachedProp( // RETURNS: return code
|
|
IN LPPROPDATA lpCachedObj, // cached property object
|
|
IN LPMAPIPROP lpOriginalObj, // original object
|
|
IN ULONG ulFlags, // cache type (EDK_CACHE_READ or EDK_CACHE_WRITE)
|
|
OUT LPSPropProblemArray FAR * lppProblems); // pointer to property problems array if problems setting properties
|
|
|
|
//$--HrMAPIGetPropString--------------------------------------------------------
|
|
// Get a string property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetPropString( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
OUT ULONG *lpcbProp, // count of bytes in property
|
|
OUT LPVOID *lppvProp); // pointer to property address variable
|
|
|
|
//$--HrMAPISetPropString--------------------------------------------------------
|
|
// Set a string property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetPropString( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN LPVOID lpvProp); // pointer to property
|
|
|
|
//$--HrMAPIGetPropBinary--------------------------------------------------------
|
|
// Get a binary property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetPropBinary( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
OUT ULONG *lpcbProp, // count of bytes in property
|
|
OUT LPVOID *lppvProp); // pointer to property address variable
|
|
|
|
//$--HrMAPISetPropBinary--------------------------------------------------------
|
|
// Set a binary property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetPropBinary( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN ULONG cbProp, // count of bytes in property
|
|
IN LPVOID lpvProp); // pointer to property
|
|
|
|
//$--HrMAPIGetPropBoolean-------------------------------------------------------
|
|
// Get a boolean property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetPropBoolean( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
OUT BOOL *lpfProp); // pointer to property variable
|
|
|
|
//$--HrMAPISetPropBoolean-------------------------------------------------------
|
|
// Set a boolean property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetPropBoolean( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN BOOL fProp); // property
|
|
|
|
//$--HrMAPIGetPropLong----------------------------------------------------------
|
|
// Get a long property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetPropLong( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
OUT ULONG *lpulProp); // pointer to property variable
|
|
|
|
//$--HrMAPISetPropLong----------------------------------------------------------
|
|
// Set a long property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetPropLong( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN ULONG ulProp); // property
|
|
|
|
//$--HrMAPIGetPropSystime-------------------------------------------------------
|
|
// Get a systime property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetPropSystime( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
OUT LPFILETIME lpSystime); // pointer to property variable
|
|
|
|
//$--HrMAPISetPropSystime-------------------------------------------------------
|
|
// Set a systime property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetPropSystime( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN LPFILETIME lpSystime); // pointer to property
|
|
|
|
//$--HrMAPIGetPropToFile--------------------------------------------------------
|
|
// Get a property and put in a given file.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIGetPropToFile( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN LPSTR lpszFilename, // pointer to destination file name
|
|
OUT ULONG *lpcbProp); // pointer to count of bytes address
|
|
// variable
|
|
|
|
//$--HrMAPISetPropFromFile------------------------------------------------------
|
|
// Set a property from a given file.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPISetPropFromFile( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN LPSTR lpszFilename, // pointer to source file name
|
|
OUT ULONG *lpcbProp); // pointer to count of bytes address
|
|
// variable
|
|
|
|
//$--HrMAPIOpenStreamOnProperty-------------------------------------------------
|
|
// Open a stream on a given property.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIOpenStreamOnProperty( // RETURNS: return code
|
|
IN LPMAPIPROP lpObj, // pointer to object
|
|
IN ULONG ulPropTag, // property tag
|
|
IN ULONG ulFlags, // flags (MAPI_CREATE and/or MAPI_MODIFY)
|
|
OUT LPSTREAM *lppStream); // pointer to stream address variable
|
|
|
|
//$--HrMAPIAppendSPropValues----------------------------------------------------
|
|
// Append one set of SPropValue's to another.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIAppendSPropValues( // RETURNS: return code
|
|
IN ULONG cHeadProps, // count of property values in head
|
|
IN LPSPropValue lpHeadProps, // pointer to property values in
|
|
// head
|
|
IN ULONG cTailProps, // count of property values in tail
|
|
IN LPSPropValue lpTailProps, // pointer to property values in
|
|
// tail
|
|
OUT ULONG *lpcNewProps, // pointer to count of property
|
|
// values
|
|
OUT LPSPropValue *lppNewProps); // pointer to property values
|
|
|
|
//$--HrMAPIMoveOneProp----------------------------------------------------------
|
|
// Move one property from a source object to a destination object.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIMoveOneProp( // RETURNS: return code
|
|
IN LPMAPIPROP lpSrcObj, // pointer to source object
|
|
IN ULONG ulSrcPropTag, // source property tag
|
|
IN ULONG ulDstPropTag, // destination property tag
|
|
IN BOOL IsMust, // TRUE if a required property
|
|
IN BOOL IsReplace, // TRUE if existing destination
|
|
// property can be replaced
|
|
IN OUT LPMAPIPROP lpDstObj); // pointer to destination object
|
|
|
|
//******************************************************************************
|
|
//
|
|
// ISTORE.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
|
|
// $--HrMAPIFindStore-----------------------------------------------------------
|
|
// Find an MDB store based on a string.
|
|
//-----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindStoreW(
|
|
IN LPMAPISESSION lpSession, // MAPI session ptr
|
|
IN LPCWSTR lpszStore, // store name
|
|
OUT ULONG FAR * lpcbentryid,// ptr to # bytes in entry ID
|
|
OUT LPENTRYID FAR * lppentryid);// ptr to entry ID buffer
|
|
|
|
HRESULT HrMAPIFindStoreA(
|
|
IN LPMAPISESSION lpSession, // MAPI session ptr
|
|
IN LPCSTR lpszStore, // store name
|
|
OUT ULONG FAR * lpcbentryid,// ptr to # bytes in entry ID
|
|
OUT LPENTRYID FAR * lppentryid);// ptr to entry ID buffer
|
|
|
|
#ifdef UNICODE
|
|
#define HrMAPIFindStore HrMAPIFindStoreW
|
|
#else
|
|
#define HrMAPIFindStore HrMAPIFindStoreA
|
|
#endif
|
|
|
|
//$--HrMAPIFindDefaultMsgStore--------------------------------------------------
|
|
// Get the entry ID of the default message store.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrMAPIFindDefaultMsgStore( // RETURNS: return code
|
|
IN LPMAPISESSION lplhSession, // session pointer
|
|
OUT ULONG *lpcbeid, // count of bytes in entry ID
|
|
OUT LPENTRYID *lppeid); // entry ID of default store
|
|
|
|
//$--FIsPublicStore-------------------------------------------------------------
|
|
// Returns TRUE if the MDB is a public store.
|
|
// -----------------------------------------------------------------------------
|
|
BOOL FIsPublicStore(
|
|
IN LPMDB lpmdb); // pointer to message store
|
|
|
|
//$--_HrOpenStoreFromGuid-------------------------------------------------------
|
|
// Helper function to encapsulate the nuts and bolts of opening stores by GUID.
|
|
// Used by HrOpenExchangePublicStore(), and HrOpenExchangePrivateStore().
|
|
//------------------------------------------------------------------------------
|
|
HRESULT _HrOpenStoreFromGuid(
|
|
IN LPMAPISESSION,
|
|
IN LPGUID,
|
|
OUT LPMDB *);
|
|
|
|
//$--HrOpenExchangePublicStore--------------------------------------------------
|
|
// Locates the public store provider (first matching if there are multiple)
|
|
// and returns a pointer to it.
|
|
//------------------------------------------------------------------------------
|
|
__inline HRESULT HrOpenExchangePublicStore(
|
|
IN LPMAPISESSION lphSession, // open session handle
|
|
OUT LPMDB * lppMDB) // ptr to store opened
|
|
{
|
|
return( _HrOpenStoreFromGuid( lphSession,
|
|
(LPGUID)pbExchangeProviderPublicGuid,
|
|
lppMDB));
|
|
}
|
|
|
|
//$--HrOpenExchangePrivateStore--------------------------------------------------
|
|
// Locates the primary user store provider (first matching if there are multiple)
|
|
// and returns a pointer to it.
|
|
//------------------------------------------------------------------------------
|
|
__inline HRESULT HrOpenExchangePrivateStore(
|
|
IN LPMAPISESSION lphSession, // open session handle
|
|
OUT LPMDB * lppMDB) // ptr to store opened
|
|
{
|
|
return( _HrOpenStoreFromGuid( lphSession,
|
|
(LPGUID)pbExchangeProviderPrimaryUserGuid,
|
|
lppMDB));
|
|
}
|
|
|
|
//******************************************************************************
|
|
//
|
|
// ITRACE.C function prototypes
|
|
//
|
|
//******************************************************************************
|
|
|
|
//$--HrTraceGetEntryListSize----------------------------------------------------
|
|
// Get the size of the hop trace information in bytes.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceGetEntryListSize( // RETURNS: return code
|
|
IN LPTRACEINFO lpTraceInfo, // Pointer to hop trace address variable
|
|
OUT ULONG *lpcbTraceInfo); // Count of bytes in hop trace list
|
|
|
|
//$--HrTraceGetEntryList--------------------------------------------------------
|
|
// Get the hop trace information for a given message.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceGetEntryList( // RETURNS: return code
|
|
IN LPMESSAGE lpMessage, // Pointer to message.
|
|
OUT LPTRACEINFO *lppTraceInfo); // Pointer to hop trace address variable
|
|
|
|
//$--HrTraceSetEntryList--------------------------------------------------------
|
|
// Set the hop trace information for a given message.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceSetEntryList( // RETURNS: return code
|
|
IN LPMESSAGE lpMessage, // Pointer to message.
|
|
IN LPTRACEINFO lpTraceInfo); // Pointer to hop trace address variable
|
|
|
|
//$--HrTraceCopyEntry-----------------------------------------------------------
|
|
// Copy trace entry information to a trace entry structure.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceCopyEntry( // RETURNS: return code
|
|
IN LONG lAction, // The routing action the tracing site
|
|
// took.
|
|
IN FILETIME ftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
IN FILETIME ftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
IN LPSTR lpszADMDName, // ADMD Name
|
|
IN LPSTR lpszCountryName, // Country Name
|
|
IN LPSTR lpszPRMDId, // PRMD Identifier
|
|
IN LPSTR lpszAttADMDName, // Attempted ADMD Name
|
|
IN LPSTR lpszAttCountryName, // Attempted Country Name
|
|
IN LPSTR lpszAttPRMDId, // Attempted PRMD Identifier
|
|
OUT LPTRACEENTRY lpTraceEntry); // Pointer to trace entry address
|
|
// variable.
|
|
|
|
//$--HrTraceCreateEntryList-----------------------------------------------------
|
|
// Create a hop trace information list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceCreateEntryList( // RETURNS: return code
|
|
IN LONG lAction, // The routing action the tracing site
|
|
// took.
|
|
IN FILETIME ftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
IN FILETIME ftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
IN LPSTR lpszADMDName, // ADMD Name
|
|
IN LPSTR lpszCountryName, // Country Name
|
|
IN LPSTR lpszPRMDId, // PRMD Identifier
|
|
IN LPSTR lpszAttADMDName, // Attempted ADMD Name
|
|
IN LPSTR lpszAttCountryName, // Attempted Country Name
|
|
IN LPSTR lpszAttPRMDId, // Attempted PRMD Identifier
|
|
OUT LPTRACEINFO *lppTraceInfo); // Pointer to hop trace address variable
|
|
|
|
//$--HrTraceAppendEntryList-----------------------------------------------------
|
|
// Append to an existing hop trace information list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceAppendEntryList( // RETURNS: return code
|
|
IN LONG lAction, // The routing action the tracing site
|
|
// took.
|
|
IN FILETIME ftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
IN FILETIME ftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
IN LPSTR lpszADMDName, // ADMD Name
|
|
IN LPSTR lpszCountryName, // Country Name
|
|
IN LPSTR lpszPRMDId, // PRMD Identifier
|
|
IN LPSTR lpszAttADMDName, // Attempted ADMD Name
|
|
IN LPSTR lpszAttCountryName, // Attempted Country Name
|
|
IN LPSTR lpszAttPRMDId, // Attempted PRMD Identifier
|
|
IN OUT LPTRACEINFO *lppTraceInfo); // Pointer to hop trace address variable
|
|
|
|
//$--HrTraceGotoEntry-----------------------------------------------------------
|
|
// Goto the specified TRACEENTRY in a TRACEINFO
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceGotoEntry( // RETURNS: return code
|
|
IN LPTRACEINFO lpTraceInfo, // pointer to TRACEINFO
|
|
IN ULONG ulIndex, // index of TRACEENTRY in TRACEINFO
|
|
OUT LPTRACEENTRY *lppTraceEntry); // pointer to TRACEENTRY
|
|
|
|
//$--HrTraceGotoFirstEntry------------------------------------------------------
|
|
// Goto the first TRACEENTRY in a TRACEINFO
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceGotoFirstEntry( // RETURNS: return code
|
|
IN LPTRACEINFO lpTraceInfo, // pointer to TRACEINFO
|
|
OUT ULONG *lpulIndex, // index of TRACEENTRY in TRACEINFO
|
|
OUT LPTRACEENTRY *lppTraceEntry); // pointer to TRACEENTRY
|
|
|
|
//$--HrTraceGotoNextEntry-------------------------------------------------------
|
|
// Goto the next TRACEENTRY in a TRACEINFO
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceGotoNextEntry( // RETURNS: return code
|
|
IN LPTRACEINFO lpTraceInfo, // pointer to TRACEINFO
|
|
IN OUT ULONG *lpulIndex, // index of TRACEENTRY in TRACEINFO
|
|
OUT LPTRACEENTRY *lppTraceEntry); // pointer to TRACEENTRY
|
|
|
|
//$--HrTraceOpenEntry-----------------------------------------------------------
|
|
// Open a TRACEENTRY.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceOpenEntry( // RETURNS: return code
|
|
IN LPTRACEENTRY lpTraceEntry, // pointer to TRACEENTRY
|
|
OUT LONG *plAction, // The routing action the tracing site
|
|
// took.
|
|
OUT FILETIME *pftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
OUT FILETIME *pftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
OUT LPSTR *lppszADMDName, // ADMD Name
|
|
OUT LPSTR *lppszCountryName, // Country Name
|
|
OUT LPSTR *lppszPRMDId, // PRMD Identifier
|
|
OUT LPSTR *lppszAttADMDName, // Attempted ADMD Name
|
|
OUT LPSTR *lppszAttCountryName, // Attempted Country Name
|
|
OUT LPSTR *lppszAttPRMDId); // Attempted PRMD Identifier
|
|
|
|
//$--HrTraceSetInfo-------------------------------------------------------------
|
|
// Set the trace-info on a message.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceSetInfo( // RETURNS: return code
|
|
IN LONG lAction, // pointer to action
|
|
IN FILETIME *lpftArrivalTime, // pointer to arrival time
|
|
IN FILETIME *lpftDeferredTime, // pointer to deferred time
|
|
IN LPSTR lpszCountry, // pointer to country
|
|
IN LPSTR lpszADMD, // pointer to ADMD
|
|
IN LPSTR lpszPRMD, // pointer to PRMD
|
|
IN OUT LPMESSAGE lpMessage); // pointer to message
|
|
|
|
//$--HrTraceUpdateInfo----------------------------------------------------------
|
|
// Update the trace-info on a message.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrTraceUpdateInfo( // RETURNS: return code
|
|
IN LONG lAction, // pointer to action
|
|
IN FILETIME *lpftArrivalTime, // pointer to arrival time
|
|
IN FILETIME *lpftDeferredTime, // pointer to deferred time
|
|
IN LPSTR lpszCountry, // pointer to country
|
|
IN LPSTR lpszADMD, // pointer to ADMD
|
|
IN LPSTR lpszPRMD, // pointer to PRMD
|
|
IN OUT LPMESSAGE lpMessage); // pointer to message
|
|
|
|
//$--HrInternalTraceCopyEntry---------------------------------------------------
|
|
// Copy internal trace entry information to an internal trace entry structure.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrInternalTraceCopyEntry( // RETURNS: return code
|
|
IN LONG lAction, // The routing action the tracing site
|
|
// took.
|
|
IN FILETIME ftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
IN FILETIME ftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
IN LPSTR lpszADMDName, // ADMD Name
|
|
IN LPSTR lpszCountryName, // Country Name
|
|
IN LPSTR lpszPRMDId, // PRMD Identifier
|
|
IN LPSTR lpszMTAName, // MTA Name
|
|
IN LPSTR lpszAttADMDName, // Attempted ADMD Name
|
|
IN LPSTR lpszAttCountryName, // Attempted Country Name
|
|
IN LPSTR lpszAttPRMDId, // Attempted PRMD Identifier
|
|
IN LPSTR lpszAttMTAName, // Attempted MTA Name
|
|
OUT PINTTRACEENTRY lpTraceEntry); // Pointer to trace entry address
|
|
// variable.
|
|
|
|
//$--HrInternalTraceCreateEntryList---------------------------------------------
|
|
// Create an internal hop trace information list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrInternalTraceCreateEntryList( // RETURNS: return code
|
|
IN LONG lAction, // The routing action the tracing site
|
|
// took.
|
|
IN FILETIME ftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
IN FILETIME ftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
IN LPSTR lpszADMDName, // ADMD Name
|
|
IN LPSTR lpszCountryName, // Country Name
|
|
IN LPSTR lpszPRMDId, // PRMD Identifier
|
|
IN LPSTR lpszMTAName, // MTA Name
|
|
IN LPSTR lpszAttADMDName, // Attempted ADMD Name
|
|
IN LPSTR lpszAttCountryName, // Attempted Country Name
|
|
IN LPSTR lpszAttPRMDId, // Attempted PRMD Identifier
|
|
IN LPSTR lpszAttMTAName, // Attempted MTA Name
|
|
OUT PINTTRACEINFO *lppTraceInfo); // Pointer to hop trace address variable
|
|
|
|
//$--HrInternalTraceAppendEntryList---------------------------------------------
|
|
// Append to an existing internal hop trace information list.
|
|
// -----------------------------------------------------------------------------
|
|
HRESULT HrInternalTraceAppendEntryList( // RETURNS: return code
|
|
IN LONG lAction, // The routing action the tracing site
|
|
// took.
|
|
IN FILETIME ftArrivalTime, // The time at which the communique
|
|
// entered the tracing site.
|
|
IN FILETIME ftDeferredTime, // The time are which the tracing site
|
|
// released the message.
|
|
IN LPSTR lpszADMDName, // ADMD Name
|
|
IN LPSTR lpszCountryName, // Country Name
|
|
IN LPSTR lpszPRMDId, // PRMD Identifier
|
|
IN LPSTR lpszMTAName, // MTA Name
|
|
IN LPSTR lpszAttADMDName, // Attempted ADMD Name
|
|
IN LPSTR lpszAttCountryName, // Attempted Country Name
|
|
IN LPSTR lpszAttPRMDId, // Attempted PRMD Identifier
|
|
IN LPSTR lpszAttMTAName, // Attempted MTA Name
|
|
IN OUT PINTTRACEINFO *lppTraceInfo);// Pointer to hop trace address variable
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif
|