Sweden-Number/include/mimeole.idl

1316 lines
43 KiB
Plaintext

/*
* Copyright 2007 Robert Shearman for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "ocidl.idl";
import "objidl.idl";
import "propidl.idl";
#define DECLARE_HANDLE(name) typedef void *name
interface IMimeMessageCallback;
interface IMimeEnumAddressTypes;
interface IMimeMessageParts;
interface IMimeMessageTree;
interface IMimeBody;
interface IMimeEnumProperties;
cpp_quote("DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01")
cpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02")
cpp_quote("#define MIME_E_INVALID_ENCTYPE 0x800cce03")
cpp_quote("#define MIME_E_BOUNDARY_MISMATCH 0x800cce04")
cpp_quote("#define MIME_E_NOT_FOUND 0x800cce05")
cpp_quote("#define MIME_E_NO_DATA 0x800cce05")
cpp_quote("#define MIME_E_BUFFER_TOO_SMALL 0x800cce06")
cpp_quote("#define MIME_E_INVALID_ITEM_FLAGS 0x800cce07")
cpp_quote("#define MIME_E_ONE_LINE_ITEME 0x800cce08")
cpp_quote("#define MIME_E_INVALID_HANDLE 0x800cce09")
cpp_quote("#define MIME_E_CHARSET_TRANSLATE 0x800cce0a")
cpp_quote("#define MIME_E_NOT_INITIALIZED 0x800cce0b")
cpp_quote("#define MIME_E_INVALID_CHARSET_TYPE 0x800cce31")
cpp_quote("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38")
cpp_quote("#define MIME_E_SECURITY_NOOP 0x800cceb1")
cpp_quote("#define MIME_S_SECURITY_NOOP 0x000cceb1")
cpp_quote("typedef enum tagMIMEPROPID {")
cpp_quote(" PID_HDR_NEWSGROUP = 2,")
cpp_quote(" PID_HDR_NEWSGROUPS = 3,")
cpp_quote(" PID_HDR_REFS = 4,")
cpp_quote(" PID_HDR_SUBJECT = 5,")
cpp_quote(" PID_HDR_FROM = 6,")
cpp_quote(" PID_HDR_MESSAGEID = 7,")
cpp_quote(" PID_HDR_RETURNPATH = 8,")
cpp_quote(" PID_HDR_RR = 9,")
cpp_quote(" PID_HDR_RETRCPTO = 10,")
cpp_quote(" PID_HDR_APPARTO = 11,")
cpp_quote(" PID_HDR_DATE = 12,")
cpp_quote(" PID_HDR_RECEIVED = 13,")
cpp_quote(" PID_HDR_REPLYTO = 14,")
cpp_quote(" PID_HDR_XMAILER = 15,")
cpp_quote(" PID_HDR_BCC = 16,")
cpp_quote(" PID_HDR_MIMEVER = 17,")
cpp_quote(" PID_HDR_CNTTYPE = 18,")
cpp_quote(" PID_HDR_CNTXFER = 19,")
cpp_quote(" PID_HDR_CNTID = 20,")
cpp_quote(" PID_HDR_CNTDESC = 21,")
cpp_quote(" PID_HDR_CNTDISP = 22,")
cpp_quote(" PID_HDR_CNTBASE = 23,")
cpp_quote(" PID_HDR_CNTLOC = 24,")
cpp_quote(" PID_HDR_TO = 25,")
cpp_quote(" PID_HDR_PATH = 26,")
cpp_quote(" PID_HDR_FOLLOWUPTO = 27,")
cpp_quote(" PID_HDR_EXPIRES = 28,")
cpp_quote(" PID_HDR_CC = 29,")
cpp_quote(" PID_HDR_SENDER = 61,")
cpp_quote(" PID_HDR_INREPLYTO = 77,")
cpp_quote("} MIMEPROPID;")
cpp_quote("#define TYPEDID_MASK ((ULONG)0xffff)")
cpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
cpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)")
cpp_quote("#define OID_SECURITY_TYPE (0x00180000 | VT_UI4)")
cpp_quote("#define OID_SECURITY_HWND_OWNER (0x00320000 | VT_UI4)")
cpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)")
cpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)")
[
uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4),
version(1.0)
]
library MIMEOLE
{
importlib("stdole2.tlb");
DECLARE_HANDLE(HCHARSET);
DECLARE_HANDLE(HBODY);
DECLARE_HANDLE(HHEADERROW);
typedef HCHARSET *LPHCHARSET;
typedef HBODY *LPHBODY;
typedef HHEADERROW *LPHHEADERROW;
typedef DWORD TYPEDID;
typedef const PROPVARIANT *LPCPROPVARIANT;
typedef const BLOB *LPCBLOB;
typedef enum tagRELOADTYPE
{
RELOAD_HEADER_NONE,
RELOAD_HEADER_RESET,
RELOAD_HEADER_APPEND,
RELOAD_HEADER_REPLACE,
} RELOADTYPE;
typedef enum tagMIMESAVETYPE
{
SAVE_RFC822,
SAVE_RFC1521,
} MIMESAVETYPE;
typedef enum tagCSETAPPLYTYPE
{
CSET_APPLY_UNTAGGED,
CSET_APPLY_ALL,
CSET_APPLY_TAG_ALL,
} CSETAPPLYTYPE;
typedef enum tagENCODINGTYPE
{
IET_BINARY,
IET_BASE64,
IET_UUENCODE,
IET_QP,
IET_7BIT,
IET_8BIT,
IET_INETCSET,
IET_UNICODE,
IET_RFC1522,
IET_ENCODED,
IET_CURRENT,
IET_UNKNOWN,
IET_BINHEX40,
IET_LAST
} ENCODINGTYPE;
const SHORT IET_DECODED = IET_BINARY;
const SHORT CCHMAX_HEADER_LINE = 1000;
[
uuid(c5588349-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeInternational : IUnknown
{
typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL;
typedef DWORD CODEPAGEID;
const CODEPAGEID CP_USASCII = 1252;
const CODEPAGEID CP_UNICODE = 1200;
const CODEPAGEID CP_JAUTODETECT = 50932;
const CODEPAGEID CP_KAUTODETECT = 50949;
const CODEPAGEID CP_ISO2022JPESC = 50221;
const CODEPAGEID CP_ISO2022JPSIO = 50222;
const SHORT CCHMAX_CSET_NAME = 128;
const SHORT CCHMAX_LANG_NAME = 128;
const SHORT CCHMAX_FACE_NAME = 128;
typedef struct tagINETCSETINFO
{
CHAR szName[CCHMAX_CSET_NAME];
HCHARSET hCharset;
CODEPAGEID cpiWindows;
CODEPAGEID cpiInternet;
DWORD dwReserved1;
} INETCSETINFO, *LPINETCSETINFO;
typedef enum tagINETLANGMASK
{
ILM_FAMILY = 0x01,
ILM_NAME = 0x02,
ILM_BODYCSET = 0x04,
ILM_HEADERCSET = 0x08,
ILM_WEBCSET = 0x10,
ILM_FIXEDFONT = 0x20,
ILM_VARIABLEFONT = 0x40,
} INETLANGMASK;
typedef struct tagCODEPAGEINFO
{
DWORD dwMask;
CODEPAGEID cpiCodePage;
BOOL fIsValidCodePage;
ULONG ulMaxCharSize;
BOOL fInternetCP;
CODEPAGEID cpiFamily;
CHAR szName[CCHMAX_LANG_NAME];
CHAR szBodyCset[CCHMAX_CSET_NAME];
CHAR szHeaderCset[CCHMAX_CSET_NAME];
CHAR szWebCset[CCHMAX_CSET_NAME];
CHAR szFixedFont[CCHMAX_FACE_NAME];
CHAR szVariableFont[CCHMAX_FACE_NAME];
ENCODINGTYPE ietNewsDefault;
ENCODINGTYPE ietMailDefault;
DWORD dwReserved1;
} CODEPAGEINFO, *LPCODEPAGEINFO;
typedef struct tagRFC1522INFO
{
BOOL fRfc1522Allowed;
BOOL fRfc1522Used;
BOOL fAllow8bit;
HCHARSET hRfc1522Cset;
} RFC1522INFO, *LPRFC1522INFO;
typedef enum tagCHARSETTYPE
{
CHARSET_BODY,
CHARSET_HEADER,
CHARSET_WEB,
} CHARSETTYPE;
HRESULT SetDefaultCharset(
[in] HCHARSET hCharset);
HRESULT GetDefaultCharset(
[out] LPHCHARSET phCharset);
HRESULT GetCodePageCharset(
[in] CODEPAGEID cpiCodePage,
[in] CHARSETTYPE ctCsetType,
[out] LPHCHARSET phCharset);
HRESULT FindCharset(
[in] LPCSTR pszCharset,
[out] LPHCHARSET phCharset);
HRESULT GetCharsetInfo(
[in] HCHARSET hCharset,
[in, out] LPINETCSETINFO pCsetInfo);
HRESULT GetCodePageInfo(
[in] CODEPAGEID cpiCodePage,
[in, out] LPCODEPAGEINFO pCodePageInfo);
HRESULT DecodeHeader(
[in] HCHARSET hCharset,
[in] LPCSTR pszData,
[in, out] LPPROPVARIANT pDecoded,
[in, out] LPRFC1522INFO pRfc1522Info);
HRESULT EncodeHeader(
[in] HCHARSET hCharset,
[in] LPPROPVARIANT pData,
[out] LPSTR *ppszEncoded,
[in, out] LPRFC1522INFO pRfc1522Info);
HRESULT ConvertBuffer(
[in] CODEPAGEID cpiSource,
[in] CODEPAGEID cpiDest,
[in] LPBLOB pIn,
[in, out] LPBLOB pOut,
[out] ULONG *pcbRead);
HRESULT ConvertString(
[in] CODEPAGEID cpiSource,
[in] CODEPAGEID cpiDest,
[in] LPPROPVARIANT pIn,
[in, out] LPPROPVARIANT pOut);
HRESULT MLANG_ConvertInetReset();
HRESULT MLANG_ConvertInetString(
[in] CODEPAGEID cpiSource,
[in] CODEPAGEID cpiDest,
[in] LPCSTR pSource,
[in] int *pnSizeOfSource,
[out] LPSTR pDestination,
[in] int *pnDstSize);
HRESULT Rfc1522Decode(
[in] LPCSTR pszValue,
[in] LPCSTR pszCharset,
[in] ULONG cchmax,
[out] LPSTR *ppszDecoded);
HRESULT Rfc1522Encode(
[in] LPCSTR pszValue,
[in] HCHARSET hCharset,
[out] LPSTR *ppszEncoded);
}
[
uuid(c5588353-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeSecurity : IUnknown
{
typedef [unique] IMimeSecurity *LPMIMESECURITY;
cpp_quote("#ifdef __WINE_WINCRYPT_H")
cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;")
cpp_quote("#else")
typedef const void *PCX509CERT;
typedef void *HCERTSTORE;
cpp_quote("#endif")
typedef BLOB THUMBBLOB;
typedef void *HCAPICERTSTORE;
cpp_quote("#define MST_NONE 0x00000000")
cpp_quote("#define MST_THIS_SIGN 0x00000001")
cpp_quote("#define MST_THIS_ENCRYPT 0x00000002")
cpp_quote("#define MST_BLOB_FLAG 0x00000004")
cpp_quote("#define MST_THIS_BLOBSIGN (MST_BLOB_FLAG | MST_THIS_SIGN)")
cpp_quote("#define MST_CHILD_SIGN 0x00000100")
cpp_quote("#define MST_CHILD_ENCRYPT 0x00000200")
cpp_quote("#define MST_SUBMSG_SIGN 0x00001000")
cpp_quote("#define MST_SUBMSG_ENCRYPT 0x00002000")
cpp_quote("#define MST_RECEIPT_REQUEST 0x00010000")
cpp_quote("#define MST_CLASS_SMIME_V1 0x00000000")
cpp_quote("#define MST_CLASS_PGP 0x01000000")
typedef enum tagCERTSTATE
{
CERTIFICATE_OK,
CERTIFICATE_NOT_PRESENT,
CERTIFICATE_EXPIRED,
CERTIFICATE_CHAIN_TOO_LONG,
CERTIFICATE_MISSING_ISSUER,
CERTIFICATE_CRL_LISTED,
CERTIFICATE_NOT_TRUSTED,
CERTIFICATE_INVALID,
CERTIFICATE_ERROR,
CERTIFICATE_NOPRINT,
CERTIFICATE_UNKNOWN
} CERTSTATE;
typedef enum tagCERTNAMETYPE
{
SIMPLE,
OID,
X500,
} CERTNAMETYPE;
typedef enum tagCERTDATAID
{
CDID_EMAIL,
CDID_MAX
} CERTDATAID;
typedef struct tagX509CERTRESULT
{
DWORD cEntries;
CERTSTATE *rgcs;
PCX509CERT *rgpCert;
} X509CERTRESULT, *PX509CERTRESULT;
typedef const X509CERTRESULT *PCX509CERTRESULT;
HRESULT InitNew(void);
HRESULT CheckInit(void);
HRESULT EncodeMessage(
[in] IMimeMessageTree */*const*/ pTree,
[in] DWORD dwFlags);
HRESULT EncodeBody(
[in] IMimeMessageTree */*const*/ pTree,
[in] HBODY hEncodeRoot,
[in] DWORD dwFlags);
HRESULT DecodeMessage(
[in] IMimeMessageTree */*const*/ pTree,
[in] DWORD dwFlags);
HRESULT DecodeBody(
[in] IMimeMessageTree */*const*/ pTree,
[in] HBODY hDecodeRoot,
[in] DWORD dwFlags);
HRESULT EnumCertificates(
[in] HCAPICERTSTORE hc,
[in] DWORD dwUsage,
[in] PCX509CERT pPrev,
[out] PCX509CERT *ppCert);
HRESULT GetCertificateName(
[in] const PCX509CERT pX509Cert,
[in] const CERTNAMETYPE cn,
[out] LPSTR *ppszName);
HRESULT GetMessageType(
[in] const HWND hwndParent,
[in] IMimeBody */*const*/ pBody,
[out] DWORD */*const*/ pdwSecType);
HRESULT GetCertData(
[in] const PCX509CERT pX509Cert,
[in] const CERTDATAID dataid,
[out, ref] LPPROPVARIANT pValue);
}
[
uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeHeaderTable : IPersistStream
{
/* FIXME: fill this in */
}
[
uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimePropertySchema : IUnknown
{
typedef enum tagMIMEPROPFLAGS
{
MPF_INETCSET = 0x01,
MPF_RFC1522 = 0x02,
MPF_ADDRESS = 0x04,
MPF_HASPARAMS = 0x08,
MPF_MIME = 0x10,
MPF_READONLY = 0x20
} MIMEPROPFLAGS;
/* FIXME: fill this in */
}
[
uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimePropertySet : IPersistStreamInit
{
typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET;
cpp_quote("#define PDF_ENCODED 0x00000001")
cpp_quote("#define PDF_NAMEINDATA 0x00000002")
cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)")
cpp_quote("#define PDF_NOCOMMENTS 0x00000008")
cpp_quote("#define PDF_SAVENOENCODE 0x00000010")
cpp_quote("#define PDF_VECTOR 0x00000020")
typedef struct tagMIMEPARAMINFO
{
LPSTR pszName;
LPSTR pszData;
} MIMEPARAMINFO, *LPMIMEPARAMINFO;
typedef enum tagPROPINFOMASK
{
PIM_CHARSET = 0x01,
PIM_ENCODINGTYPE = 0x02,
PIM_ROWNUMBER = 0x04,
PIM_FLAGS = 0x08,
PIM_PROPID = 0x10,
PIM_VALUES = 0x20,
PIM_VTDEFAULT = 0x40,
PIM_VTCURRENT = 0x80
} PROPINFOMASK;
typedef struct tagMIMEPROPINFO
{
DWORD dwMask;
HCHARSET hCharset;
ENCODINGTYPE ietEncoding;
DWORD dwRowNumber;
DWORD dwFlags;
DWORD dwPropId;
DWORD cValues;
VARTYPE vtDefault;
VARTYPE vtCurrent;
} MIMEPROPINFO, *LPMIMEPROPINFO;
typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
HRESULT GetPropInfo(
[in] LPCSTR pszName,
[in,out] LPMIMEPROPINFO pInfo);
HRESULT SetPropInfo(
[in] LPCSTR pszName,
[in] LPCMIMEPROPINFO pInfo);
cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
cpp_quote("#undef GetProp")
cpp_quote("#undef SetProp")
cpp_quote("#undef EnumProps")
cpp_quote("#endif")
HRESULT GetProp(
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in,out] LPPROPVARIANT pValue);
HRESULT SetProp(
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in] LPCPROPVARIANT pValue);
HRESULT AppendProp(
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in] LPPROPVARIANT pValue);
HRESULT DeleteProp(
[in] LPCSTR pszName);
HRESULT CopyProps(
[in] ULONG cNames,
[in,unique] LPCSTR *prgszName,
[in] IMimePropertySet *pPropertySet);
HRESULT MoveProps(
[in] ULONG cNames,
[in] LPCSTR *prgszName,
[in] IMimePropertySet *pPropertySet);
HRESULT DeleteExcept(
[in] ULONG cNames,
[in] LPCSTR *prgszName);
HRESULT QueryProp(
[in] LPCSTR pszName,
[in] LPCSTR pszCriteria,
[in] boolean fSubString,
[in] boolean fCaseSensitive);
HRESULT GetCharset(
[out] LPHCHARSET phCharset);
HRESULT SetCharset(
[in] HCHARSET hCharset,
[in] CSETAPPLYTYPE applytype);
HRESULT GetParameters(
[in] LPCSTR pszName,
[out] ULONG *pcParams,
[out] LPMIMEPARAMINFO *pprgParam);
HRESULT IsContentType(
[in] LPCSTR pszPriType,
[in,unique] LPCSTR pszSubType);
HRESULT BindToObject(
[in] REFIID riid,
[out,iid_is(riid)] void **ppvObject);
HRESULT Clone(
[out] IMimePropertySet **ppPropertySet);
HRESULT SetOption(
[in] const TYPEDID oid,
[in] LPCPROPVARIANT pValue);
HRESULT GetOption(
[in] const TYPEDID oid,
[in,out] LPPROPVARIANT pValue);
cpp_quote("#define EPF_NONAME 0x00000001")
HRESULT EnumProps(
[in] DWORD dwFlags,
[out] IMimeEnumProperties **ppEnum);
}
[
uuid(c558834a-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeAddressTable : IUnknown
{
typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE;
DECLARE_HANDLE(HADDRESS);
typedef HADDRESS *LPHADDRESS;
typedef DWORD IADDRESSTYPE;
typedef enum tagADDRESSFORMAT
{
AFT_DISPLAY_FRIENDLY,
AFT_DISPLAY_EMAIL,
AFT_DISPLAY_BOTH,
AFT_RFC822_DECODED,
AFT_RFC822_ENCODED,
AFT_RFC822_TRANSMIT,
} ADDRESSFORMAT;
typedef struct tagADDRESSPROPS
{
DWORD dwProps;
HADDRESS hAddress;
ENCODINGTYPE ietFriendly;
HCHARSET hCharset;
DWORD dwAdrType;
LPSTR pszFriendly;
LPWSTR pwszReserved;
LPSTR pszEmail;
CERTSTATE certstate;
THUMBBLOB tbSigning;
THUMBBLOB tbEncryption;
DWORD dwCookie;
DWORD dwReserved1;
DWORD dwReserved2;
} ADRESSPROPS, *LPADDRESSPROPS;
typedef struct tagADDRESSLIST
{
ULONG cAdrs;
LPADDRESSPROPS prgAdr;
} ADDRESSLIST, *LPADDRESSLIST;
/* FIXME: fill this in */
}
[
uuid(ee519f11-851a-11d0-8252-00c04fd85ab4),
object
]
interface IMimeWebDocument : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(c558834c-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeBody : IMimePropertySet
{
typedef [unique] IMimeBody *LPMIMEBODY;
typedef enum tagIMSGBODYTYPE
{
IBT_SECURE,
IBT_ATTACHMENT,
IBT_EMPTY,
IBT_CSETTAGGED,
IBT_AUTOATTACH,
} IMSGBODYTYPE;
typedef struct tagBODYOFFSETS
{
DWORD cbBoundaryStart;
DWORD cbHeaderStart;
DWORD cbBodyStart;
DWORD cbBodyEnd;
} BODYOFFSETS, *LPBODYOFFSETS;
typedef struct tagTRANSMITINFO
{
ENCODINGTYPE ietCurrent;
ENCODINGTYPE ietXmitMime;
ENCODINGTYPE ietXmit822;
ULONG cbLongestLine;
ULONG cExtended;
ULONG ulPercentExt;
ULONG cbSize;
ULONG cLines;
} TRANSMITINFO, *LPTRANSMITINFO;
HRESULT IsType(
[in] IMSGBODYTYPE bodytype);
HRESULT SetDisplayName(
[in] LPCSTR pszDisplay);
HRESULT GetDisplayName(
[out] LPSTR *ppszDisplay);
HRESULT GetOffsets(
[out] LPBODYOFFSETS pOffsets);
HRESULT GetCurrentEncoding(
[out] ENCODINGTYPE *pietEncoding);
HRESULT SetCurrentEncoding(
[in] ENCODINGTYPE ietEncoding);
HRESULT GetEstimatedSize(
[in] ENCODINGTYPE ietEncoding,
[out] ULONG *pcbSize);
HRESULT GetDataHere(
[in] ENCODINGTYPE ietEncoding,
[in] IStream *pStream);
HRESULT GetData(
[in] ENCODINGTYPE ietEncoding,
[out] IStream **ppStream);
HRESULT SetData(
[in] ENCODINGTYPE ietEncoding,
[in,unique] LPCSTR pszPriType,
[in,unique] LPCSTR pszSubType,
[in] REFIID riid,
[in,iid_is(riid)] LPVOID pvObject);
HRESULT EmptyData(void);
HRESULT CopyTo(
[in] IMimeBody *pBody);
HRESULT GetTransmitInfo(
[in,out] LPTRANSMITINFO pTransmitInfo);
HRESULT SaveToFile(
[in] ENCODINGTYPE ietEncoding,
[in] LPCSTR pszFilePath);
HRESULT GetHandle(
[out] LPHBODY phBody);
}
[
uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeMessageTree : IPersistStreamInit
{
typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE;
const HBODY HBODY_ROOT = (HBODY)-1;
typedef enum tagBODYLOCATION
{
IBL_ROOT,
IBL_PARENT,
IBL_FIRST,
IBL_LAST,
IBL_NEXT,
IBL_PREVIOUS,
} BODYLOCATION;
typedef struct tagFINDBODY
{
LPSTR pszPriType;
LPSTR pszSubType;
DWORD dwReserved;
} FINDBODY, *LPFINDBODY;
HRESULT GetMessageSource(
[out] IStream **ppStream,
[in] DWORD dwFlags);
HRESULT GetMessageSize(
[out] ULONG *pcbSize,
[in] DWORD dwFlags);
HRESULT LoadOffsetTable(
[in] IStream *pStream);
HRESULT SaveOffsetTable(
[in] IStream *pStream,
[in] DWORD dwFlags);
HRESULT GetFlags(
[out] DWORD *pdwFlags);
HRESULT Commit(
[in] DWORD dwFlags);
HRESULT HandsOffStorage();
HRESULT BindToObject(
[in] const HBODY hBody,
[in] REFIID riid,
[out, iid_is(riid)] void **ppvObject);
HRESULT SaveBody(
[in] HBODY hBody,
[in] DWORD dwFlags,
[in] IStream *pStream);
HRESULT InsertBody(
[in] BODYLOCATION location,
[in] HBODY hPivot,
[out] LPHBODY phBody);
HRESULT GetBody(
[in] BODYLOCATION location,
[in] HBODY hPivot,
[out] LPHBODY phBody);
HRESULT DeleteBody(
[in] HBODY hBody,
[in] DWORD dwFlags);
HRESULT MoveBody(
[in] HBODY hBody,
[in] BODYLOCATION location);
HRESULT CountBodies(
[in] HBODY hParent,
[in] boolean fRecurse,
[out] ULONG *pcBodies);
HRESULT FindFirst(
[in, out] LPFINDBODY pFindBody,
[out] LPHBODY phBody);
HRESULT FindNext(
[in, out] LPFINDBODY pFindBody,
[out] LPHBODY phBody);
HRESULT ResolveURL(
[in] HBODY hRelated,
[in] LPCSTR pszBase,
[in] LPCSTR pszURL,
[in] DWORD dwFlags,
[out] LPHBODY phBody);
HRESULT ToMultipart(
[in] HBODY hBody,
[in] LPCSTR pszSubType,
[out] LPHBODY phMultipart);
HRESULT GetBodyOffsets(
[in] HBODY hBody,
[in, out] LPBODYOFFSETS pOffsets);
HRESULT GetCharset(
[out] LPHCHARSET phCharset);
HRESULT SetCharset(
[in] HCHARSET hCharset,
[in] CSETAPPLYTYPE applytype);
HRESULT IsBodyType(
[in] HBODY hBody,
[in] IMSGBODYTYPE bodytype);
HRESULT IsContentType(
[in] HBODY hBody,
[in] LPCSTR pszPriType,
[in] LPCSTR pszSubType);
HRESULT QueryBodyProp(
[in] HBODY hBody,
[in] LPCSTR pszName,
[in] LPCSTR pszCriteria,
[in] boolean fSubString,
[in] boolean fCaseSensitive);
HRESULT GetBodyProp(
[in] HBODY hBody,
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in, out] LPPROPVARIANT pValue);
HRESULT SetBodyProp(
[in] HBODY hBody,
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in] LPCPROPVARIANT pValue);
HRESULT DeleteBodyProp(
[in] HBODY hBody,
[in] LPCSTR pszName);
HRESULT SetOption(
[in] const TYPEDID oid,
[in] LPCPROPVARIANT pValue);
HRESULT GetOption(
[in] const TYPEDID oid,
[in, out] LPPROPVARIANT pValue);
}
[
uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeMessage : IMimeMessageTree
{
typedef [unique] IMimeMessage *LPMIMEMESSAGE;
typedef DWORD TEXTTYPE;
typedef enum tagIMSGFLAGS
{
IMF_ATTACHMENTS = 0x00000001,
IMF_MULTIPART = 0x00000002,
IMF_SUBMULTIPART = 0x00000004,
IMF_MIME = 0x00000008,
IMF_HTML = 0x00000010,
IMF_PLAIN = 0x00000020,
IMF_PARTIAL = 0x00000040,
IMF_SIGNED = 0x00000080,
IMF_ENCRYPTED = 0x00000100,
IMF_TNEF = 0x00000200,
IMF_MHTML = 0x00000400,
IMF_SECURE = 0x00000800,
IMF_TEXT = 0x00001000,
IMF_CSETTAGGED = 0x00002000,
IMF_NEWS = 0x00004000,
IMF_VOICEMAIL = 0x00008000,
IMF_HASVCARD = 0x00010000,
IMF_RFC1154 = 0x00020000,
} IMSGFLAGS;
typedef enum tagIMSGPRIORITY
{
IMSG_PRI_LOW = 5,
IMSG_PRI_NORMAL = 3,
IMSG_PRI_HIGH = 1,
} IMSGPRIORITY;
cpp_quote("#define WPF_HTML 0x00000001")
cpp_quote("#define WPF_AUTOINLINE 0x00000002")
cpp_quote("#define WPF_SLIDESHOW 0x00000004")
cpp_quote("#define WPF_ATTACHLINKS 0x00000008")
cpp_quote("#define WPF_IMAGESONLY 0x00000010")
cpp_quote("#define WPF_NOMETACHARSET 0x00000020")
typedef struct tagWEPAGEOPTIONS
{
DWORD cbSize;
DWORD dwFlags;
DWORD dwDelay;
WCHAR wchQuote;
} WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
cpp_quote("#define TXT_PLAIN 1")
cpp_quote("#define TXT_HTML 2")
HRESULT CreateWebPage(
[in] IStream *pRootStm,
[in] LPWEBPAGEOPTIONS pOptions,
[in] IMimeMessageCallback *pCallback,
[out] IMoniker **ppMoniker);
HRESULT GetProp(
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in,out] LPPROPVARIANT pValue);
HRESULT SetProp(
[in] LPCSTR pszName,
[in] DWORD dwFlags,
[in] LPCPROPVARIANT pValue);
HRESULT DeleteProp(
[in] LPCSTR pszName);
HRESULT QueryProp(
[in] LPCSTR pszName,
[in] LPCSTR pszCriteria,
[in] boolean fSubString,
[in] boolean fCaseSensitive);
HRESULT GetTextBody(
[in] DWORD dwTxtType,
[in] ENCODINGTYPE ietEncoding,
[out] IStream **pStream,
[out] LPHBODY phBody);
HRESULT SetTextBody(
[in] DWORD dwTxtType,
[in] ENCODINGTYPE ietEncoding,
[in] HBODY hAlternative,
[in] IStream *pStream,
[out] LPHBODY phBody);
HRESULT AttachObject(
[in] REFIID riid,
[in, iid_is(riid)] void *pvObject,
[out] LPHBODY phBody);
HRESULT AttachFile(
[in] LPCSTR pszFilePath,
[in] IStream *pstmFile,
[out] LPHBODY phBody);
HRESULT AttachURL(
[in] LPCSTR pszBase,
[in] LPCSTR pszURL,
[in] DWORD dwFlags,
[in] IStream *pstmURL,
[out] LPSTR *ppszCIDURL,
[out] LPHBODY phBody);
HRESULT GetAttachments(
[out] ULONG *pcAttach,
[out] LPHBODY *pprghAttach);
HRESULT GetAddressTable(
[out] IMimeAddressTable **ppTable);
HRESULT GetSender(
[in, out] LPADDRESSPROPS pAddress);
HRESULT GetAddressTypes(
[in] DWORD dwAdrTypes,
[in] DWORD dwProps,
[in, out] LPADDRESSLIST pList);
HRESULT GetAddressFormat(
[in] DWORD dwAdrTypes,
[in] ADDRESSFORMAT format,
[out] LPSTR *ppszFormat);
HRESULT EnumAddressTypes(
[in] DWORD dwAdrTypes,
[in] DWORD dwProps,
[out] IMimeEnumAddressTypes **ppEnum);
HRESULT SplitMessage(
[in] ULONG cbMaxPart,
[out] IMimeMessageParts **ppParts);
HRESULT GetRootMoniker(
[out] IMoniker **ppMoniker);
}
[
uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3),
object
]
interface IMimeMessageCallback : IUnknown
{
HRESULT OnWebPageSplitter(
[in] DWORD cInlined,
[in] IStream *ppStream);
}
[
uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9),
object
]
interface IPersistMime : IPersist
{
/* FIXME: fill this in */
}
[
uuid(c558834f-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeMessageParts : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(c558834d-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeEnumHeaderRows : IUnknown
{
typedef struct tagENUMHEADERROW
{
HHEADERROW hRow;
LPSTR pszHeader;
LPSTR pszData;
ULONG cchData;
DWORD_PTR dwReserved;
} ENUMHEADERROW, *LPENUMHEADERROW;
/* FIXME: fill this in */
}
[
uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeEnumProperties : IUnknown
{
typedef struct tagENUMPROPERTY
{
LPSTR pszName;
HHEADERROW hRow;
DWORD dwPropId;
} ENUMPROPERTY, *LPENUMPROPERTY;
/* FIXME: fill this in */
}
[
uuid(c5588354-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeEnumAddressTypes : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(c5588350-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeEnumMessageParts : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(64577981-86d7-11d1-bdfc-00c04fa31009),
object
]
interface IHashTable : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(c5588351-7f86-11d0-8252-00c04fd85ab4),
object
]
interface IMimeAllocator : IMalloc
{
typedef [unique] IMimeAllocator *LPMIMEALLOCATOR;
HRESULT FreeParamInfoArray(
[in] ULONG cParams,
[in] LPMIMEPARAMINFO prgParam,
[in] boolean fFreeArray);
HRESULT FreeAddressList(
[in,out] LPADDRESSLIST pList);
HRESULT FreeAddressProps(
[in,out] LPADDRESSPROPS pAddress);
HRESULT ReleaseObjects(
[in] ULONG cObjects,
[in] IUnknown **prgpUnknown,
[in] boolean fFreeArray);
HRESULT FreeEnumHeaderRowArray(
[in] ULONG cRows,
[in] LPENUMHEADERROW prgRow,
[in] boolean fFreeArray);
HRESULT FreeEnumPropertyArray(
[in] ULONG cProps,
[in] LPENUMPROPERTY prgProp,
[in] boolean fFreeArray);
HRESULT FreeThumbprint(
[in] THUMBBLOB *pthumbprint);
HRESULT PropVariantClear(
[in] LPPROPVARIANT pProp);
}
[
uuid(feceaffd-c441-11d1-960e-00c04fbd7c09),
object
]
interface IMimeObjResolver : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009),
object
]
interface IFontCache : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009),
object
]
interface IFontCacheNotify : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(70183210-7b36-11d2-8c12-00c04fa31009),
object
]
interface IMimeEditTag : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(d09ee528-7b38-11d2-8c12-00c04fa31009),
object
]
interface IMimeEditTagCollection : IUnknown
{
/* FIXME: fill this in */
}
[
uuid(ba715ae0-a740-11d2-8b22-0080c76b34c6),
local
]
interface IMimeSecurityCallback : IUnknown
{
/* FIXME: fill this in */
cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_UNKNOWN 0")
cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYTRANS 1")
cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYAGREE 2")
cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_MAIL_LIST 3")
cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_CERTIFICATE 0")
cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_KEYTRANS 1")
cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_PROVIDER 2")
cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_EPHEMERAL_KEYAGREE 3")
cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_STATIC_KEYAGREE 4")
cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_CERTIFICATE 0")
cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_ISSUERSERIAL 1")
cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_KEY_ID 2")
}
}
cpp_quote("#ifdef __cplusplus")
cpp_quote(" extern \"C\" {")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);")
cpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);")
cpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);")
cpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);")
cpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);")
cpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
cpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
cpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);")
cpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);")
cpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);")
cpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);")
cpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);")
cpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);")
cpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);")
cpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);")
cpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);")
cpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);")
cpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);")
cpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);")
cpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);")
cpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);")
cpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);")
cpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);")
cpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);")
cpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);")
cpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);")
cpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);")
cpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);")
cpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);")
cpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);")
cpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);")
cpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);")
cpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);")
cpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);")
cpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);")
cpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);")
cpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);")
cpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);")
cpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);")
cpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);")
cpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);")
cpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);")
cpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);")
cpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);")
cpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);")
cpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);")
cpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);")
cpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);")
cpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);")
cpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);")
cpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);")
cpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);")
cpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);")
cpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);")
cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);")
cpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);")
cpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);")
cpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);")
cpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);")
cpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);")
cpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);")
cpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);")
cpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);")
cpp_quote("#ifdef __cplusplus")
cpp_quote("}")
cpp_quote("#endif")