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.
 
 
 
 
 
 

139 lines
6.5 KiB

// --------------------------------------------------------------------------------
// Mimeutil.h
// Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
// --------------------------------------------------------------------------------
#ifndef __MIMEUTIL_H
#define __MIMEUTIL_H
// --------------------------------------------------------------------------------
// Dependencies
// --------------------------------------------------------------------------------
#include "mimeole.h"
#include "imnact.h"
class CWabal;
typedef CWabal *LPWABAL;
typedef struct SECURITY_PARAMtag SECURITY_PARAM;
typedef struct tagHTMLOPT HTMLOPT;
typedef struct tagPLAINOPT PLAINOPT;
// --------------------------------------------------------------------------------
// Mail Message Index Cache Header
// --------------------------------------------------------------------------------
#define SafeMimeOleFree(_pv) \
if (_pv) { \
Assert(g_pMoleAlloc); \
g_pMoleAlloc->Free(_pv); \
_pv = NULL; \
} else
#define MimeOleAlloc(_cb) g_pMoleAlloc->Alloc(_cb)
// --------------------------------------------------------------------------------
// Cached Current Default Character Set From Fonts Options Dialog
// --------------------------------------------------------------------------------
extern HCHARSET g_hDefaultCharsetForNews;
extern HCHARSET g_hDefaultCharsetForMail;
extern int g_iLastCharsetSelection;
extern int g_iCurrentCharsetSelection;
// --------------------------------------------------------------------------------
// Message constructors
// Note: Everyone should use HrCreateMessage as it wraps the MimeOle call passing
// an Athena-Specific implementation of the MimeInline Object to correctly
// in-line HTML and PLAIN text
// --------------------------------------------------------------------------------
HRESULT HrCreateMessage(IMimeMessage **ppMsg);
// --------------------------------------------------------------------------------
// Message Utility Functions
// --------------------------------------------------------------------------------
HRESULT HrSaveMsgToFile(LPMIMEMESSAGE pMsg, LPSTR lpszFile);
HRESULT HrLoadMsgFromFile(LPMIMEMESSAGE pMsg, LPSTR lpszFile);
HRESULT HrLoadMsgFromFileW(LPMIMEMESSAGE pMsg, LPWSTR lpwszFile);
HRESULT HrDupeMsg(LPMIMEMESSAGE pMsg, LPMIMEMESSAGE *ppMsg);
HRESULT HrSetServer(LPMIMEMESSAGE pMsg, LPSTR lpszServer);
HRESULT HrSetAccount(LPMIMEMESSAGE pMsg, LPSTR pszAcctName);
HRESULT HrSetAccountByAccount(LPMIMEMESSAGE pMsg, IImnAccount *pAcct);
// --------------------------------------------------------------------------------
// Wabal Conversion Functions
// --------------------------------------------------------------------------------
HRESULT HrGetWabalFromMsg(LPMIMEMESSAGE pMsg, LPWABAL *ppWabal);
HRESULT HrSetWabalOnMsg(LPMIMEMESSAGE pMsg, LPWABAL pWabal);
HRESULT HrCheckDisplayNames(LPWABAL lpWabal, CODEPAGEID cpID);
#if 0
HRESULT HrSetReplyTo(LPMIMEMESSAGE pMsg, LPSTR lpszEmail);
#endif
LONG MimeOleRecipToMapi(IADDRESSTYPE addrtype);
IADDRESSTYPE MapiRecipToMimeOle(LONG lRecip);
// --------------------------------------------------------------------------------
// Attachment helper functions
// --------------------------------------------------------------------------------
HRESULT HrRemoveAttachments(LPMIMEMESSAGE pMsg, BOOL fKeepRelatedSection);
// Note: the caller of GetAttachIcon must call DestroyIcon on the hIcon returned!
HRESULT GetAttachmentCount(LPMIMEMESSAGE pMsg, ULONG *cCount);
// --------------------------------------------------------------------------------
// Random Utility Functions
// --------------------------------------------------------------------------------
HRESULT HrComputeLineCount(LPMIMEMESSAGE pMsg, LPDWORD pdw);
HRESULT HrHasEncodedBodyParts(LPMIMEMESSAGE pMsg, ULONG cBody, LPHBODY rghBody);
HRESULT HrHasBodyParts(LPMIMEMESSAGE pMsg);
HRESULT HrIsBodyEncoded(LPMIMEMESSAGE pMsg, HBODY hBody);
HRESULT HrCopyHeader(LPMIMEMESSAGE pMsg, HBODY hBodyDest, HBODY hBodySrc, LPCSTR pszName);
HRESULT HrSetMessageText(LPMIMEMESSAGE pMsg, LPTSTR pszText);
// --------------------------------------------------------------------------------
// MHTML Utility Functions
// --------------------------------------------------------------------------------
HRESULT HrIsInRelatedSection(LPMIMEMESSAGE pMsg, HBODY hBody);
#if 0
HRESULT HrFindUrlInMsg(LPMIMEMESSAGE pMsg, LPSTR lpszUrl, LPSTREAM *ppstm);
HRESULT HrSniffStreamFileExt(LPSTREAM pstm, LPSTR *lplpszExt);
#endif
// --------------------------------------------------------------------------------
// Random functions that probably shouldn't even be in this file
// --------------------------------------------------------------------------------
#if 0
HRESULT HrEscapeQuotedString (LPTSTR pszIn, LPTSTR *ppszOut);
#endif
// sizeof(lspzBuffer) needs to be == or > CCHMAX_CSET_NAME
HRESULT HrGetMetaTagName(HCHARSET hCharset, LPSTR pszBuffer, DWORD cchSize);
#if 0
// --------------------------------------------------------------------------------
// functions for ghosting props
// --------------------------------------------------------------------------------
HRESULT HrMarkGhosted(LPMIMEMESSAGE pMsg, HBODY hBody);
HRESULT HrIsGhosted(LPMIMEMESSAGE pMsg, HBODY hBody);
HRESULT HrGhostKids(LPMIMEMESSAGE pMsg, HBODY hBody);
HRESULT HrDeleteGhostedKids(LPMIMEMESSAGE pMsg, HBODY hBody);
#endif
// --------------------------------------------------------------------------------
// Internat Stuff
// --------------------------------------------------------------------------------
HRESULT HGetDefaultCharset(HCHARSET *hCharset);
void SetDefaultCharset(HCHARSET hCharset);
UINT uCodePageFromCharset(HCHARSET hCharset);
UINT uCodePageFromMsg(LPMIMEMESSAGE pMsg);
HRESULT HrSetMsgCodePage(LPMIMEMESSAGE pMsg, UINT uCodePage);
#if 0
HRESULT HrIStreamWToInetCset(LPSTREAM pstmW, HCHARSET hCharset, LPSTREAM *ppstmOut);
#endif
// --------------------------------------------------------------------------------
// Property Utilities
// --------------------------------------------------------------------------------
HRESULT HrSetSentTimeProp(IMimeMessage *pMessage, LPSYSTEMTIME pst /* optional */ );
HRESULT HrSetMailOptionsOnMessage(IMimeMessage *pMessage, HTMLOPT *pHtmlOpt, PLAINOPT *pPlainOpt,
HCHARSET hCharset, BOOL fHTML);
HRESULT HrSafeToEncodeToCP(LPWSTR pwsz, CODEPAGEID cpID);
HRESULT HrSafeToEncodeToCPA(LPCSTR psz, CODEPAGEID cpSrc, CODEPAGEID cpDest);
#endif // __MIMEUTIL_H