📄 msgemit.h
字号:
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input
// E_OUTOFMEMORY if memory problem
// E_EOF if end of stream
// E_FAIL otherwise
//
// ---------------------------------------------------------------------------
HRESULT HrParseTagAndData(
IN LPSTREAM lpStream, // stream pointer
OUT ULONG * pcbRead, // # of bytes read
OUT LPSTR * lppTag, // pointer to tag buffer
OUT LPSTR * lppData); // pointer to data buffer
//$--HrParseDateTimeString----------------------------------------------------
//
// DESCRIPTION: Parses a date and time string into a file time
// structure.
//
// INPUT: lpDateTimeString -- date and time string
//
// OUTPUT: pFileTime -- file time pointer
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input,
// E_FAIL otherwise
//
// ----------------------------------------------------------------------------
HRESULT HrParseDateTimeString(
IN LPSTR lpDateTimeString, // date and time string
OUT FILETIME * pFileTime); // file time pointer
//$--HrParsePriorityString----------------------------------------------------
//
// DESCRIPTION: Convert a priority string to its associated
// integer value.
//
// INPUT: lpPriority -- priority string
//
// OUTPUT: pulPriority -- pointer to priority value
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input,
// E_FAIL otherwise
//
// ----------------------------------------------------------------------------
HRESULT HrParsePriorityString(
IN LPSTR lpPriority, // Priority string
OUT ULONG * pulPriority); // priority value pointer
//$--HrParseImportanceString----------------------------------------------------
//
// DESCRIPTION: Convert an importance string to its associated
// integer value.
//
// INPUT: lpImportance -- importance string
//
// OUTPUT: pulImportance -- pointer to importance value
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input,
// E_FAIL otherwise
//
// ----------------------------------------------------------------------------
HRESULT HrParseImportanceString(
IN LPSTR lpImportance, // Importance string
OUT ULONG * pulImportance); // importance value pointer
//$--HrParseExternalTraceString-------------------------------------------------
//
// DESCRIPTION: Parse External-Received-By or
// External-Attempted-By trace string into a
// its separate components.
//
// INPUT: lpTraceString -- External-Received/Attempted-By trace string
//
// OUTPUT: plAction -- trace action
// pCountry -- country name
// pADMDName -- ADMD name
// pPRMDId -- PRMD identifier
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input
// E_FAIL otherwise
//
// ----------------------------------------------------------------------------
HRESULT HrParseExternalTraceString(
IN LPSTR lpTraceString, // trace information string
OUT LONG * plAction, // trace action pointer
OUT CHAR * pCountry, // country name
OUT CHAR * pADMDName, // ADMD name
OUT CHAR * pPRMDId); // PRMD identifier
//$--HrParseInternalTraceString-------------------------------------------------
//
// DESCRIPTION: Parse Internal-Received-By or
// Internal-Attempted-By trace string into
// its separate components.
//
// INPUT: lpTraceString -- Internal-Received/Attempted-By trace string
//
// OUTPUT: plAction -- trace action
// pCountry -- country name
// pADMDName -- ADMD name
// pPRMDId -- PRMD identifier
// pMTAName -- MTA name
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input
// E_FAIL otherwise
//
// -----------------------------------------------------------------------------
HRESULT HrParseInternalTraceString(
IN LPSTR lpTraceString, // trace information string
OUT LONG * plAction, // trace action pointer
OUT CHAR * pCountry, // country name
OUT CHAR * pADMDName, // ADMD name
OUT CHAR * pPRMDId, // PRMD identifier
OUT CHAR * pMTAName); // MTA name
//$--HrParseAttachmentHeader--------------------------------------------------
//
// DESCRIPTION: Parse attachment header data into its file name
// and file size components.
//
// INPUT: lpHeader -- attachment header data string
//
// OUTPUT: lppFileName -- attachment file name
// pcb -- pointer to # of bytes in attachment
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input,
// E_FAIL otherwise.
//
// ----------------------------------------------------------------------------
HRESULT HrParseAttachmentHeader(
IN LPSTR lpHeader, // attachment header data string
OUT LPSTR * lppFileName, // attachment file name
OUT ULONG * pcb); // pointer to number of bytes in file name
//$--HrEDKDecodeBinaryStreamDataToStream-----------------------------------------------
//
// DESCRIPTION: Read attachment hexadecimal encoding from input
// stream to attachment.
//
// INPUT: cb -- number of bytes in binary attachment.
// lpStream -- stream pointer
// lpAttach -- attachment pointer
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input
// E_FAIL otherwise.
//
// ----------------------------------------------------------------------------
HRESULT HrEDKDecodeBinaryStreamDataToStream(
IN LPSTREAM lpStreamIn, // input stream
IN ULONG cb, // number of bytes in original binary data
IN LPSTREAM lpStreamOut); // output stream
//$--HrEDKParseSubjectPrefix---------------------------------------------------
//
// DESCRIPTION: Break a subject into its prefix component & its
// original subject component. (The prefix is everything
// up to and including the first colon and the first space
// after the colon, if any.
//
// INPUT: pszSubject -- subject text
//
// OUTPUT ppszPrefix -- prefix string pointer
// ppszOrigSub -- original subject pointer
//
// RETURNS: HRESULT -- NOERROR if successful,
// E_INVALIDARG if bad input,
// E_OUTOFMEMORY if memory propblems,
// E_FAIL otherwise.
//
// ----------------------------------------------------------------------------
HRESULT HrEDKParseSubjectPrefix(
IN LPSTR pszSubject, // subject text
OUT LPSTR * ppszPrefix, // subject prefix
OUT LPSTR * ppszOrigSub); // original subject text
//$--nEDKEncodedBytes-------------------------------------------------------------
//
// DESCRIPTION: Returns the number of encoded bytes based on the number of
// un-encoded bytes.
//
// INPUT: cbUnencoded -- # of un-encoded bytes
//
// RETURNS: ULONG -- # of encoded bytes
//
// NOTE: This is implemented as a static __inline macro for
// efficiency and because it is so simple.
//
//-----------------------------------------------------------------------------
static __inline ULONG nEDKEncodedBytes(
IN ULONG cbUnencoded) // # of un-encoded bytes
{
ASSERTERROR(cbUnencoded != 0, "Bad cbUnencoded"); // debug check
if ( (cbUnencoded % nBytesEncodePerLine) == 0 )
{
return ( (nCharsPerEncodedByte * cbUnencoded) +
(cbUnencoded/nBytesEncodePerLine) );
}
else
{
return ( (nCharsPerEncodedByte * cbUnencoded) +
(cbUnencoded/nBytesEncodePerLine) + 1 );
}
}
#ifdef __cplusplus
}
#endif // __cplusplus
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -