1442 lines
49 KiB
Plaintext
1442 lines
49 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_GUID(CLSID_IMimeSecurity, 0xfd853cde, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
|
cpp_quote("DEFINE_GUID(CLSID_IVirtualStream, 0xfd853cdf, 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_OPTION_VALUE 0x800cce1f")
|
|
cpp_quote("#define MIME_E_INVALID_OPTION_ID 0x800cce20")
|
|
cpp_quote("#define MIME_E_INVALID_HEADER_NAME 0x800cce21")
|
|
cpp_quote("#define MIME_E_NOT_BOUND 0x800cce22")
|
|
cpp_quote("#define MIME_E_MAX_SIZE_TOO_SMALL 0x800cce23")
|
|
cpp_quote("#define MIME_E_MULTIPART_HAS_CHILDREN 0x800cce25")
|
|
cpp_quote("#define MIME_E_INVALID_PROP_FLAGS 0x800cce26")
|
|
cpp_quote("#define MIME_E_INVALID_ADDRESS_TYPE 0x800cce27")
|
|
cpp_quote("#define MIME_E_INVALID_OBJECT_IID 0x800cce28")
|
|
cpp_quote("#define MIME_E_MLANG_DLL_NOT_FOUND 0x800cce29")
|
|
cpp_quote("#define MIME_E_ROOT_NOT_EMPTY 0x800cce2a")
|
|
cpp_quote("#define MIME_E_MLANG_BAD_DLL 0x800cce2b")
|
|
cpp_quote("#define MIME_E_REG_OPEN_KEY 0x800cce2c")
|
|
cpp_quote("#define MIME_E_INVALID_INET_DATE 0x800cce2d")
|
|
cpp_quote("#define MIME_E_INVALID_BODYTYPE 0x800cce2e")
|
|
cpp_quote("#define MIME_E_INVALID_DELETE_TYPE 0x800cce2f")
|
|
cpp_quote("#define MIME_E_OPTION_HAS_NO_VALUE 0x800cce30")
|
|
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_CONTROL = 30,")
|
|
cpp_quote(" PID_HDR_DISTRIB = 31,")
|
|
cpp_quote(" PID_HDR_KEYWORDS = 32,")
|
|
cpp_quote(" PID_HDR_SUMMARY = 33,")
|
|
cpp_quote(" PID_HDR_APPROVED = 34,")
|
|
cpp_quote(" PID_HDR_LINES = 35,")
|
|
cpp_quote(" PID_HDR_XREF = 36,")
|
|
cpp_quote(" PID_HDR_ORG = 37,")
|
|
cpp_quote(" PID_HDR_XNEWSRDR = 38,")
|
|
cpp_quote(" PID_HDR_XPRI = 39,")
|
|
cpp_quote(" PID_HDR_XMSPRI = 40,")
|
|
cpp_quote(" PID_PAR_FILENAME = 41,")
|
|
cpp_quote(" PID_PAR_BOUNDARY = 42,")
|
|
cpp_quote(" PID_PAR_CHARSET = 43,")
|
|
cpp_quote(" PID_PAR_NAME = 44,")
|
|
cpp_quote(" PID_ATT_FILENAME = 45,")
|
|
cpp_quote(" PID_ATT_GENFNAME = 46,")
|
|
cpp_quote(" PID_ATT_PRITYPE = 47,")
|
|
cpp_quote(" PID_ATT_SUBTYPE = 48,")
|
|
cpp_quote(" PID_ATT_NORMSUBJ = 49,")
|
|
cpp_quote(" PID_ATT_ILLEGAL = 50,")
|
|
cpp_quote(" PID_ATT_RENDERED = 51,")
|
|
cpp_quote(" PID_ATT_SENTTIME = 52,")
|
|
cpp_quote(" PID_ATT_RECVTIME = 53,")
|
|
cpp_quote(" PID_ATT_PRIORITY = 54,")
|
|
cpp_quote(" PID_HDR_COMMENT = 55,")
|
|
cpp_quote(" PID_HDR_ENCODING = 56,")
|
|
cpp_quote(" PID_HDR_ENCRYPTED = 57,")
|
|
cpp_quote(" PID_HDR_OFFSETS = 58,")
|
|
cpp_quote(" PID_HDR_XUNSENT = 59,")
|
|
cpp_quote(" PID_HDR_ARTICLEID = 60,")
|
|
cpp_quote(" PID_HDR_SENDER = 61,")
|
|
cpp_quote(" PID_ATT_SERVER = 62,")
|
|
cpp_quote(" PID_ATT_ACCOUNT = 63,")
|
|
cpp_quote(" PID_ATT_UIDL = 64,")
|
|
cpp_quote(" PID_ATT_STOREMSGID = 65,")
|
|
cpp_quote(" PID_ATT_USERNAME = 66,")
|
|
cpp_quote(" PID_ATT_FORWARDTO = 67,")
|
|
cpp_quote(" PID_ATT_STOREFOLDERID = 68,")
|
|
cpp_quote(" PID_ATT_GHOSTED = 69,")
|
|
cpp_quote(" PID_ATT_UNCACHEDSIZE = 70,")
|
|
cpp_quote(" PID_ATT_COMBINED = 71,")
|
|
cpp_quote(" PID_ATT_AUTOINLINED = 72,")
|
|
cpp_quote(" PID_HDR_DISP_NOTIFICATION_TO = 73,")
|
|
cpp_quote(" PID_PAR_REPLYTYPE = 74,")
|
|
cpp_quote(" PID_PAR_FORMAT = 75,")
|
|
cpp_quote(" PID_ATT_FORMAT = 76,")
|
|
cpp_quote(" PID_HDR_INREPLYTO = 77,")
|
|
cpp_quote(" PID_ATT_ACCOUNTNAME = 78,")
|
|
cpp_quote(" PID_LAST = 79,")
|
|
cpp_quote("} MIMEPROPID;")
|
|
|
|
cpp_quote("#define TYPEDID_MASK ((ULONG)0xffff)")
|
|
cpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
|
|
|
|
cpp_quote("#define OID_ALLOW_8BIT_HEADER (0x00010000 | VT_BOOL)")
|
|
cpp_quote("#define OID_CBMAX_HEADER_LINE (0x00020000 | VT_UI4)")
|
|
cpp_quote("#define OID_SAVE_FORMAT (0x00030000 | VT_UI4)")
|
|
cpp_quote("#define OID_WRAP_BODY_TEXT (0x00040000 | VT_BOOL)")
|
|
cpp_quote("#define OID_CBMAX_BODY_LINE (0x00050000 | VT_UI4)")
|
|
cpp_quote("#define OID_TRANSMIT_BODY_ENCODING (0x00060000 | VT_UI4)")
|
|
cpp_quote("#define OID_TRANSMIT_TEXT_ENCODING (0x00070000 | VT_UI4)")
|
|
cpp_quote("#define OID_GENERATE_MESSAGE_ID (0x00080000 | VT_BOOL)")
|
|
cpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)")
|
|
cpp_quote("#define OID_CLEANUP_TREE_ON_SAVE (0x000f0000 | VT_BOOL)")
|
|
cpp_quote("#define OID_BODY_REMOVE_NBSP (0x00140000 | VT_BOOL)")
|
|
cpp_quote("#define OID_DEFAULT_BODY_CHARSET (0x00150000 | VT_UI4)")
|
|
cpp_quote("#define OID_DEFAULT_HEADER_CHARSET (0x00160000 | VT_UI4)")
|
|
cpp_quote("#define OID_DBCS_ESCAPE_IS_8BIT (0x00170000 | 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_CAN_INLINE_TEXT_BODIES (0x00380000 | VT_BOOL)")
|
|
cpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)")
|
|
cpp_quote("#define OID_SAVEBODY_KEEPBOUNDARY (0x00400000 | 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 CanConvertCodePages(
|
|
[in] CODEPAGEID cpiSource,
|
|
[in] CODEPAGEID cpiDest);
|
|
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(void);
|
|
HRESULT MLANG_ConvertInetString(
|
|
[in] CODEPAGEID cpiSource,
|
|
[in] CODEPAGEID cpiDest,
|
|
[in] LPCSTR pSource,
|
|
[in] int *pnSizeOfSource,
|
|
[in,out,unique] LPSTR pDestination,
|
|
[in] int *pnDstSize);
|
|
HRESULT Rfc1522Decode(
|
|
[in] LPCSTR pszValue,
|
|
[in,ref] LPSTR 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 [unique] IMimePropertySchema *LPMIMEPROPERTYSCHEMA;
|
|
|
|
typedef enum tagMIMEPROPFLAGS
|
|
{
|
|
MPF_INETCSET = 0x01,
|
|
MPF_RFC1522 = 0x02,
|
|
MPF_ADDRESS = 0x04,
|
|
MPF_HASPARAMS = 0x08,
|
|
MPF_MIME = 0x10,
|
|
MPF_READONLY = 0x20
|
|
} MIMEPROPFLAGS;
|
|
|
|
HRESULT RegisterProperty(
|
|
[in] const char *name,
|
|
[in] DWORD flags,
|
|
[in] DWORD rownumber,
|
|
[in] VARTYPE vtdefault,
|
|
[out] DWORD *propid);
|
|
|
|
HRESULT ModifyProperty(
|
|
[in] const char *name,
|
|
[in] DWORD flags,
|
|
[in] DWORD rownumber,
|
|
[in] VARTYPE vtdefault);
|
|
|
|
HRESULT GetPropertyId(
|
|
[in] const char *name,
|
|
[out] DWORD *propid);
|
|
|
|
HRESULT GetPropertyName(
|
|
[in] DWORD propid,
|
|
[out] char **name);
|
|
|
|
HRESULT RegisterAddressType(
|
|
[in] const char *name,
|
|
[out] DWORD *adrtype);
|
|
}
|
|
|
|
[
|
|
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;
|
|
} ADDRESSPROPS, *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 [unique] IMimeEnumProperties *LPMIMEENUMPROPERTIES;
|
|
|
|
typedef struct tagENUMPROPERTY
|
|
{
|
|
LPSTR pszName;
|
|
HHEADERROW hRow;
|
|
DWORD dwPropId;
|
|
} ENUMPROPERTY, *LPENUMPROPERTY;
|
|
|
|
HRESULT Next(
|
|
[in] ULONG cFetch,
|
|
[in, out] LPENUMPROPERTY prgProp,
|
|
[out] ULONG *pcFetched);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG cItems);
|
|
|
|
HRESULT Reset(void);
|
|
|
|
HRESULT Clone(
|
|
[out] IMimeEnumProperties **ppEnum);
|
|
|
|
HRESULT Count(
|
|
[out] ULONG *pcItems);
|
|
|
|
}
|
|
|
|
[
|
|
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("HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema**);")
|
|
cpp_quote("HRESULT WINAPI MimeGetAddressFormatW(REFIID,void*,DWORD,ADDRESSFORMAT,WCHAR**);")
|
|
cpp_quote("#ifdef __cplusplus")
|
|
cpp_quote("}")
|
|
cpp_quote("#endif")
|