1*c2c66affSColin Finck/* 2*c2c66affSColin Finck * Copyright 2007 Robert Shearman for CodeWeavers 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or 5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public 6*c2c66affSColin Finck * License as published by the Free Software Foundation; either 7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version. 8*c2c66affSColin Finck * 9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful, 10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*c2c66affSColin Finck * Lesser General Public License for more details. 13*c2c66affSColin Finck * 14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public 15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software 16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17*c2c66affSColin Finck */ 18*c2c66affSColin Finck 19*c2c66affSColin Finckimport "ocidl.idl"; 20*c2c66affSColin Finckimport "objidl.idl"; 21*c2c66affSColin Finckimport "propidl.idl"; 22*c2c66affSColin Finck 23*c2c66affSColin Finck#define DECLARE_HANDLE(name) typedef void *name 24*c2c66affSColin Finck 25*c2c66affSColin Finckinterface IMimeMessageCallback; 26*c2c66affSColin Finckinterface IMimeEnumAddressTypes; 27*c2c66affSColin Finckinterface IMimeMessageParts; 28*c2c66affSColin Finckinterface IMimeMessageTree; 29*c2c66affSColin Finckinterface IMimeBody; 30*c2c66affSColin Finckinterface IMimeEnumProperties; 31*c2c66affSColin Finck 32*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") 33*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") 34*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") 35*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_IMimeSecurity, 0xfd853cde, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") 36*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_IVirtualStream, 0xfd853cdf, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") 37*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_IMimeHtmlProtocol,0x5300401,0xbcbc, 0x11d0, 0x85, 0xe3, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") 38*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_MimeEdit, 0x1c82ead9, 0x508e, 0x11d1, 0x8d, 0xcf, 0x0, 0xc0, 0x4f, 0xb9, 0x51, 0xf9);") 39*c2c66affSColin Finck 40*c2c66affSColin Finckcpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01") 41*c2c66affSColin Finckcpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02") 42*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_ENCTYPE 0x800cce03") 43*c2c66affSColin Finckcpp_quote("#define MIME_E_BOUNDARY_MISMATCH 0x800cce04") 44*c2c66affSColin Finckcpp_quote("#define MIME_E_NOT_FOUND 0x800cce05") 45*c2c66affSColin Finckcpp_quote("#define MIME_E_NO_DATA 0x800cce05") 46*c2c66affSColin Finckcpp_quote("#define MIME_E_BUFFER_TOO_SMALL 0x800cce06") 47*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_ITEM_FLAGS 0x800cce07") 48*c2c66affSColin Finckcpp_quote("#define MIME_E_ONE_LINE_ITEME 0x800cce08") 49*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_HANDLE 0x800cce09") 50*c2c66affSColin Finckcpp_quote("#define MIME_E_CHARSET_TRANSLATE 0x800cce0a") 51*c2c66affSColin Finckcpp_quote("#define MIME_E_NOT_INITIALIZED 0x800cce0b") 52*c2c66affSColin Finck 53*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_OPTION_VALUE 0x800cce1f") 54*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_OPTION_ID 0x800cce20") 55*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_HEADER_NAME 0x800cce21") 56*c2c66affSColin Finckcpp_quote("#define MIME_E_NOT_BOUND 0x800cce22") 57*c2c66affSColin Finckcpp_quote("#define MIME_E_MAX_SIZE_TOO_SMALL 0x800cce23") 58*c2c66affSColin Finckcpp_quote("#define MIME_E_MULTIPART_HAS_CHILDREN 0x800cce25") 59*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_PROP_FLAGS 0x800cce26") 60*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_ADDRESS_TYPE 0x800cce27") 61*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_OBJECT_IID 0x800cce28") 62*c2c66affSColin Finckcpp_quote("#define MIME_E_MLANG_DLL_NOT_FOUND 0x800cce29") 63*c2c66affSColin Finckcpp_quote("#define MIME_E_ROOT_NOT_EMPTY 0x800cce2a") 64*c2c66affSColin Finckcpp_quote("#define MIME_E_MLANG_BAD_DLL 0x800cce2b") 65*c2c66affSColin Finckcpp_quote("#define MIME_E_REG_OPEN_KEY 0x800cce2c") 66*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_INET_DATE 0x800cce2d") 67*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_BODYTYPE 0x800cce2e") 68*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_DELETE_TYPE 0x800cce2f") 69*c2c66affSColin Finckcpp_quote("#define MIME_E_OPTION_HAS_NO_VALUE 0x800cce30") 70*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_CHARSET_TYPE 0x800cce31") 71*c2c66affSColin Finck 72*c2c66affSColin Finckcpp_quote("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38") 73*c2c66affSColin Finck 74*c2c66affSColin Finckcpp_quote("#define MIME_E_SECURITY_NOOP 0x800cceb1") 75*c2c66affSColin Finckcpp_quote("#define MIME_S_SECURITY_NOOP 0x000cceb1") 76*c2c66affSColin Finck 77*c2c66affSColin Finckcpp_quote("typedef enum tagMIMEPROPID {") 78*c2c66affSColin Finckcpp_quote(" PID_HDR_NEWSGROUP = 2,") 79*c2c66affSColin Finckcpp_quote(" PID_HDR_NEWSGROUPS = 3,") 80*c2c66affSColin Finckcpp_quote(" PID_HDR_REFS = 4,") 81*c2c66affSColin Finckcpp_quote(" PID_HDR_SUBJECT = 5,") 82*c2c66affSColin Finckcpp_quote(" PID_HDR_FROM = 6,") 83*c2c66affSColin Finckcpp_quote(" PID_HDR_MESSAGEID = 7,") 84*c2c66affSColin Finckcpp_quote(" PID_HDR_RETURNPATH = 8,") 85*c2c66affSColin Finckcpp_quote(" PID_HDR_RR = 9,") 86*c2c66affSColin Finckcpp_quote(" PID_HDR_RETRCPTO = 10,") 87*c2c66affSColin Finckcpp_quote(" PID_HDR_APPARTO = 11,") 88*c2c66affSColin Finckcpp_quote(" PID_HDR_DATE = 12,") 89*c2c66affSColin Finckcpp_quote(" PID_HDR_RECEIVED = 13,") 90*c2c66affSColin Finckcpp_quote(" PID_HDR_REPLYTO = 14,") 91*c2c66affSColin Finckcpp_quote(" PID_HDR_XMAILER = 15,") 92*c2c66affSColin Finckcpp_quote(" PID_HDR_BCC = 16,") 93*c2c66affSColin Finckcpp_quote(" PID_HDR_MIMEVER = 17,") 94*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTTYPE = 18,") 95*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTXFER = 19,") 96*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTID = 20,") 97*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTDESC = 21,") 98*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTDISP = 22,") 99*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTBASE = 23,") 100*c2c66affSColin Finckcpp_quote(" PID_HDR_CNTLOC = 24,") 101*c2c66affSColin Finckcpp_quote(" PID_HDR_TO = 25,") 102*c2c66affSColin Finckcpp_quote(" PID_HDR_PATH = 26,") 103*c2c66affSColin Finckcpp_quote(" PID_HDR_FOLLOWUPTO = 27,") 104*c2c66affSColin Finckcpp_quote(" PID_HDR_EXPIRES = 28,") 105*c2c66affSColin Finckcpp_quote(" PID_HDR_CC = 29,") 106*c2c66affSColin Finckcpp_quote(" PID_HDR_CONTROL = 30,") 107*c2c66affSColin Finckcpp_quote(" PID_HDR_DISTRIB = 31,") 108*c2c66affSColin Finckcpp_quote(" PID_HDR_KEYWORDS = 32,") 109*c2c66affSColin Finckcpp_quote(" PID_HDR_SUMMARY = 33,") 110*c2c66affSColin Finckcpp_quote(" PID_HDR_APPROVED = 34,") 111*c2c66affSColin Finckcpp_quote(" PID_HDR_LINES = 35,") 112*c2c66affSColin Finckcpp_quote(" PID_HDR_XREF = 36,") 113*c2c66affSColin Finckcpp_quote(" PID_HDR_ORG = 37,") 114*c2c66affSColin Finckcpp_quote(" PID_HDR_XNEWSRDR = 38,") 115*c2c66affSColin Finckcpp_quote(" PID_HDR_XPRI = 39,") 116*c2c66affSColin Finckcpp_quote(" PID_HDR_XMSPRI = 40,") 117*c2c66affSColin Finckcpp_quote(" PID_PAR_FILENAME = 41,") 118*c2c66affSColin Finckcpp_quote(" PID_PAR_BOUNDARY = 42,") 119*c2c66affSColin Finckcpp_quote(" PID_PAR_CHARSET = 43,") 120*c2c66affSColin Finckcpp_quote(" PID_PAR_NAME = 44,") 121*c2c66affSColin Finckcpp_quote(" PID_ATT_FILENAME = 45,") 122*c2c66affSColin Finckcpp_quote(" PID_ATT_GENFNAME = 46,") 123*c2c66affSColin Finckcpp_quote(" PID_ATT_PRITYPE = 47,") 124*c2c66affSColin Finckcpp_quote(" PID_ATT_SUBTYPE = 48,") 125*c2c66affSColin Finckcpp_quote(" PID_ATT_NORMSUBJ = 49,") 126*c2c66affSColin Finckcpp_quote(" PID_ATT_ILLEGAL = 50,") 127*c2c66affSColin Finckcpp_quote(" PID_ATT_RENDERED = 51,") 128*c2c66affSColin Finckcpp_quote(" PID_ATT_SENTTIME = 52,") 129*c2c66affSColin Finckcpp_quote(" PID_ATT_RECVTIME = 53,") 130*c2c66affSColin Finckcpp_quote(" PID_ATT_PRIORITY = 54,") 131*c2c66affSColin Finckcpp_quote(" PID_HDR_COMMENT = 55,") 132*c2c66affSColin Finckcpp_quote(" PID_HDR_ENCODING = 56,") 133*c2c66affSColin Finckcpp_quote(" PID_HDR_ENCRYPTED = 57,") 134*c2c66affSColin Finckcpp_quote(" PID_HDR_OFFSETS = 58,") 135*c2c66affSColin Finckcpp_quote(" PID_HDR_XUNSENT = 59,") 136*c2c66affSColin Finckcpp_quote(" PID_HDR_ARTICLEID = 60,") 137*c2c66affSColin Finckcpp_quote(" PID_HDR_SENDER = 61,") 138*c2c66affSColin Finckcpp_quote(" PID_ATT_SERVER = 62,") 139*c2c66affSColin Finckcpp_quote(" PID_ATT_ACCOUNT = 63,") 140*c2c66affSColin Finckcpp_quote(" PID_ATT_UIDL = 64,") 141*c2c66affSColin Finckcpp_quote(" PID_ATT_STOREMSGID = 65,") 142*c2c66affSColin Finckcpp_quote(" PID_ATT_USERNAME = 66,") 143*c2c66affSColin Finckcpp_quote(" PID_ATT_FORWARDTO = 67,") 144*c2c66affSColin Finckcpp_quote(" PID_ATT_STOREFOLDERID = 68,") 145*c2c66affSColin Finckcpp_quote(" PID_ATT_GHOSTED = 69,") 146*c2c66affSColin Finckcpp_quote(" PID_ATT_UNCACHEDSIZE = 70,") 147*c2c66affSColin Finckcpp_quote(" PID_ATT_COMBINED = 71,") 148*c2c66affSColin Finckcpp_quote(" PID_ATT_AUTOINLINED = 72,") 149*c2c66affSColin Finckcpp_quote(" PID_HDR_DISP_NOTIFICATION_TO = 73,") 150*c2c66affSColin Finckcpp_quote(" PID_PAR_REPLYTYPE = 74,") 151*c2c66affSColin Finckcpp_quote(" PID_PAR_FORMAT = 75,") 152*c2c66affSColin Finckcpp_quote(" PID_ATT_FORMAT = 76,") 153*c2c66affSColin Finckcpp_quote(" PID_HDR_INREPLYTO = 77,") 154*c2c66affSColin Finckcpp_quote(" PID_ATT_ACCOUNTNAME = 78,") 155*c2c66affSColin Finckcpp_quote(" PID_LAST = 79,") 156*c2c66affSColin Finckcpp_quote("} MIMEPROPID;") 157*c2c66affSColin Finck 158*c2c66affSColin Finckcpp_quote("#define ISPIDSTR(_name) (((DWORD_PTR)(_name) >> 16) == 0)") 159*c2c66affSColin Finckcpp_quote("#define STRTOPID(_name) ((DWORD)((DWORD_PTR)((LPCSTR)(_name))))") 160*c2c66affSColin Finckcpp_quote("#define PIDTOSTR(_id) ((LPCSTR)((DWORD_PTR)(_id)))") 161*c2c66affSColin Finck 162*c2c66affSColin Finckcpp_quote("#define TYPEDID_ID(_typedid) (((ULONG)(_typedid))>>16)") 163*c2c66affSColin Finckcpp_quote("#define TYPEDID_MASK ((ULONG)0xffff)") 164*c2c66affSColin Finckcpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))") 165*c2c66affSColin Finck 166*c2c66affSColin Finckcpp_quote("#define OID_ALLOW_8BIT_HEADER (0x00010000 | VT_BOOL)") 167*c2c66affSColin Finckcpp_quote("#define OID_CBMAX_HEADER_LINE (0x00020000 | VT_UI4)") 168*c2c66affSColin Finckcpp_quote("#define OID_SAVE_FORMAT (0x00030000 | VT_UI4)") 169*c2c66affSColin Finckcpp_quote("#define OID_WRAP_BODY_TEXT (0x00040000 | VT_BOOL)") 170*c2c66affSColin Finckcpp_quote("#define OID_CBMAX_BODY_LINE (0x00050000 | VT_UI4)") 171*c2c66affSColin Finckcpp_quote("#define OID_TRANSMIT_BODY_ENCODING (0x00060000 | VT_UI4)") 172*c2c66affSColin Finckcpp_quote("#define OID_TRANSMIT_TEXT_ENCODING (0x00070000 | VT_UI4)") 173*c2c66affSColin Finckcpp_quote("#define OID_GENERATE_MESSAGE_ID (0x00080000 | VT_BOOL)") 174*c2c66affSColin Finckcpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)") 175*c2c66affSColin Finckcpp_quote("#define OID_CLEANUP_TREE_ON_SAVE (0x000f0000 | VT_BOOL)") 176*c2c66affSColin Finckcpp_quote("#define OID_BODY_REMOVE_NBSP (0x00140000 | VT_BOOL)") 177*c2c66affSColin Finckcpp_quote("#define OID_DEFAULT_BODY_CHARSET (0x00150000 | VT_UI4)") 178*c2c66affSColin Finckcpp_quote("#define OID_DEFAULT_HEADER_CHARSET (0x00160000 | VT_UI4)") 179*c2c66affSColin Finckcpp_quote("#define OID_DBCS_ESCAPE_IS_8BIT (0x00170000 | VT_BOOL)") 180*c2c66affSColin Finckcpp_quote("#define OID_SECURITY_TYPE (0x00180000 | VT_UI4)") 181*c2c66affSColin Finckcpp_quote("#define OID_SECURITY_HWND_OWNER (0x00320000 | VT_UI4)") 182*c2c66affSColin Finckcpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)") 183*c2c66affSColin Finckcpp_quote("#define OID_CAN_INLINE_TEXT_BODIES (0x00380000 | VT_BOOL)") 184*c2c66affSColin Finckcpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)") 185*c2c66affSColin Finckcpp_quote("#define OID_SAVEBODY_KEEPBOUNDARY (0x00400000 | VT_BOOL)") 186*c2c66affSColin Finck 187*c2c66affSColin Finckcpp_quote("#define OID_SECURITY_2KEY_CERT_BAG (0x00590000 | VT_VECTOR | VT_UI4)") 188*c2c66affSColin Finckcpp_quote("#define OID_SECURITY_2KEY_CERT_BAG_64 (0x00590000 | VT_VECTOR | VT_UI8)") 189*c2c66affSColin Finck 190*c2c66affSColin Finck[ 191*c2c66affSColin Finck uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4), 192*c2c66affSColin Finck version(1.0) 193*c2c66affSColin Finck] 194*c2c66affSColin Fincklibrary MIMEOLE 195*c2c66affSColin Finck{ 196*c2c66affSColin Finck importlib("stdole2.tlb"); 197*c2c66affSColin Finck 198*c2c66affSColin Finck DECLARE_HANDLE(HCHARSET); 199*c2c66affSColin Finck DECLARE_HANDLE(HBODY); 200*c2c66affSColin Finck DECLARE_HANDLE(HHEADERROW); 201*c2c66affSColin Finck 202*c2c66affSColin Finck typedef HCHARSET *LPHCHARSET; 203*c2c66affSColin Finck typedef HBODY *LPHBODY; 204*c2c66affSColin Finck typedef HHEADERROW *LPHHEADERROW; 205*c2c66affSColin Finck typedef DWORD TYPEDID; 206*c2c66affSColin Finck typedef const PROPVARIANT *LPCPROPVARIANT; 207*c2c66affSColin Finck typedef const BLOB *LPCBLOB; 208*c2c66affSColin Finck 209*c2c66affSColin Finck typedef enum tagRELOADTYPE 210*c2c66affSColin Finck { 211*c2c66affSColin Finck RELOAD_HEADER_NONE, 212*c2c66affSColin Finck RELOAD_HEADER_RESET, 213*c2c66affSColin Finck RELOAD_HEADER_APPEND, 214*c2c66affSColin Finck RELOAD_HEADER_REPLACE, 215*c2c66affSColin Finck } RELOADTYPE; 216*c2c66affSColin Finck 217*c2c66affSColin Finck typedef enum tagMIMESAVETYPE 218*c2c66affSColin Finck { 219*c2c66affSColin Finck SAVE_RFC822, 220*c2c66affSColin Finck SAVE_RFC1521, 221*c2c66affSColin Finck } MIMESAVETYPE; 222*c2c66affSColin Finck 223*c2c66affSColin Finck typedef enum tagCSETAPPLYTYPE 224*c2c66affSColin Finck { 225*c2c66affSColin Finck CSET_APPLY_UNTAGGED, 226*c2c66affSColin Finck CSET_APPLY_ALL, 227*c2c66affSColin Finck CSET_APPLY_TAG_ALL, 228*c2c66affSColin Finck } CSETAPPLYTYPE; 229*c2c66affSColin Finck 230*c2c66affSColin Finck typedef enum tagENCODINGTYPE 231*c2c66affSColin Finck { 232*c2c66affSColin Finck IET_BINARY, 233*c2c66affSColin Finck IET_BASE64, 234*c2c66affSColin Finck IET_UUENCODE, 235*c2c66affSColin Finck IET_QP, 236*c2c66affSColin Finck IET_7BIT, 237*c2c66affSColin Finck IET_8BIT, 238*c2c66affSColin Finck IET_INETCSET, 239*c2c66affSColin Finck IET_UNICODE, 240*c2c66affSColin Finck IET_RFC1522, 241*c2c66affSColin Finck IET_ENCODED, 242*c2c66affSColin Finck IET_CURRENT, 243*c2c66affSColin Finck IET_UNKNOWN, 244*c2c66affSColin Finck IET_BINHEX40, 245*c2c66affSColin Finck IET_LAST 246*c2c66affSColin Finck } ENCODINGTYPE; 247*c2c66affSColin Finck 248*c2c66affSColin Finck const SHORT IET_DECODED = IET_BINARY; 249*c2c66affSColin Finck 250*c2c66affSColin Finck const SHORT CCHMAX_HEADER_LINE = 1000; 251*c2c66affSColin Finck 252*c2c66affSColin Finck [ 253*c2c66affSColin Finck uuid(c5588349-7f86-11d0-8252-00c04fd85ab4), 254*c2c66affSColin Finck object 255*c2c66affSColin Finck ] 256*c2c66affSColin Finck interface IMimeInternational : IUnknown 257*c2c66affSColin Finck { 258*c2c66affSColin Finck typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL; 259*c2c66affSColin Finck typedef DWORD CODEPAGEID; 260*c2c66affSColin Finck 261*c2c66affSColin Finck const CODEPAGEID CP_USASCII = 1252; 262*c2c66affSColin Finck const CODEPAGEID CP_UNICODE = 1200; 263*c2c66affSColin Finck const CODEPAGEID CP_JAUTODETECT = 50932; 264*c2c66affSColin Finck const CODEPAGEID CP_KAUTODETECT = 50949; 265*c2c66affSColin Finck const CODEPAGEID CP_ISO2022JPESC = 50221; 266*c2c66affSColin Finck const CODEPAGEID CP_ISO2022JPSIO = 50222; 267*c2c66affSColin Finck 268*c2c66affSColin Finck const SHORT CCHMAX_CSET_NAME = 128; 269*c2c66affSColin Finck const SHORT CCHMAX_LANG_NAME = 128; 270*c2c66affSColin Finck const SHORT CCHMAX_FACE_NAME = 128; 271*c2c66affSColin Finck 272*c2c66affSColin Finck typedef struct tagINETCSETINFO 273*c2c66affSColin Finck { 274*c2c66affSColin Finck CHAR szName[CCHMAX_CSET_NAME]; 275*c2c66affSColin Finck HCHARSET hCharset; 276*c2c66affSColin Finck CODEPAGEID cpiWindows; 277*c2c66affSColin Finck CODEPAGEID cpiInternet; 278*c2c66affSColin Finck DWORD dwReserved1; 279*c2c66affSColin Finck } INETCSETINFO, *LPINETCSETINFO; 280*c2c66affSColin Finck 281*c2c66affSColin Finck typedef enum tagINETLANGMASK 282*c2c66affSColin Finck { 283*c2c66affSColin Finck ILM_FAMILY = 0x01, 284*c2c66affSColin Finck ILM_NAME = 0x02, 285*c2c66affSColin Finck ILM_BODYCSET = 0x04, 286*c2c66affSColin Finck ILM_HEADERCSET = 0x08, 287*c2c66affSColin Finck ILM_WEBCSET = 0x10, 288*c2c66affSColin Finck ILM_FIXEDFONT = 0x20, 289*c2c66affSColin Finck ILM_VARIABLEFONT = 0x40, 290*c2c66affSColin Finck } INETLANGMASK; 291*c2c66affSColin Finck 292*c2c66affSColin Finck typedef struct tagCODEPAGEINFO 293*c2c66affSColin Finck { 294*c2c66affSColin Finck DWORD dwMask; 295*c2c66affSColin Finck CODEPAGEID cpiCodePage; 296*c2c66affSColin Finck BOOL fIsValidCodePage; 297*c2c66affSColin Finck ULONG ulMaxCharSize; 298*c2c66affSColin Finck BOOL fInternetCP; 299*c2c66affSColin Finck CODEPAGEID cpiFamily; 300*c2c66affSColin Finck CHAR szName[CCHMAX_LANG_NAME]; 301*c2c66affSColin Finck CHAR szBodyCset[CCHMAX_CSET_NAME]; 302*c2c66affSColin Finck CHAR szHeaderCset[CCHMAX_CSET_NAME]; 303*c2c66affSColin Finck CHAR szWebCset[CCHMAX_CSET_NAME]; 304*c2c66affSColin Finck CHAR szFixedFont[CCHMAX_FACE_NAME]; 305*c2c66affSColin Finck CHAR szVariableFont[CCHMAX_FACE_NAME]; 306*c2c66affSColin Finck ENCODINGTYPE ietNewsDefault; 307*c2c66affSColin Finck ENCODINGTYPE ietMailDefault; 308*c2c66affSColin Finck DWORD dwReserved1; 309*c2c66affSColin Finck } CODEPAGEINFO, *LPCODEPAGEINFO; 310*c2c66affSColin Finck 311*c2c66affSColin Finck typedef struct tagRFC1522INFO 312*c2c66affSColin Finck { 313*c2c66affSColin Finck BOOL fRfc1522Allowed; 314*c2c66affSColin Finck BOOL fRfc1522Used; 315*c2c66affSColin Finck BOOL fAllow8bit; 316*c2c66affSColin Finck HCHARSET hRfc1522Cset; 317*c2c66affSColin Finck } RFC1522INFO, *LPRFC1522INFO; 318*c2c66affSColin Finck 319*c2c66affSColin Finck typedef enum tagCHARSETTYPE 320*c2c66affSColin Finck { 321*c2c66affSColin Finck CHARSET_BODY, 322*c2c66affSColin Finck CHARSET_HEADER, 323*c2c66affSColin Finck CHARSET_WEB, 324*c2c66affSColin Finck } CHARSETTYPE; 325*c2c66affSColin Finck 326*c2c66affSColin Finck 327*c2c66affSColin Finck HRESULT SetDefaultCharset( 328*c2c66affSColin Finck [in] HCHARSET hCharset); 329*c2c66affSColin Finck HRESULT GetDefaultCharset( 330*c2c66affSColin Finck [out] LPHCHARSET phCharset); 331*c2c66affSColin Finck HRESULT GetCodePageCharset( 332*c2c66affSColin Finck [in] CODEPAGEID cpiCodePage, 333*c2c66affSColin Finck [in] CHARSETTYPE ctCsetType, 334*c2c66affSColin Finck [out] LPHCHARSET phCharset); 335*c2c66affSColin Finck HRESULT FindCharset( 336*c2c66affSColin Finck [in] LPCSTR pszCharset, 337*c2c66affSColin Finck [out] LPHCHARSET phCharset); 338*c2c66affSColin Finck HRESULT GetCharsetInfo( 339*c2c66affSColin Finck [in] HCHARSET hCharset, 340*c2c66affSColin Finck [in, out] LPINETCSETINFO pCsetInfo); 341*c2c66affSColin Finck HRESULT GetCodePageInfo( 342*c2c66affSColin Finck [in] CODEPAGEID cpiCodePage, 343*c2c66affSColin Finck [in, out] LPCODEPAGEINFO pCodePageInfo); 344*c2c66affSColin Finck HRESULT CanConvertCodePages( 345*c2c66affSColin Finck [in] CODEPAGEID cpiSource, 346*c2c66affSColin Finck [in] CODEPAGEID cpiDest); 347*c2c66affSColin Finck HRESULT DecodeHeader( 348*c2c66affSColin Finck [in] HCHARSET hCharset, 349*c2c66affSColin Finck [in] LPCSTR pszData, 350*c2c66affSColin Finck [in, out] LPPROPVARIANT pDecoded, 351*c2c66affSColin Finck [in, out] LPRFC1522INFO pRfc1522Info); 352*c2c66affSColin Finck HRESULT EncodeHeader( 353*c2c66affSColin Finck [in] HCHARSET hCharset, 354*c2c66affSColin Finck [in] LPPROPVARIANT pData, 355*c2c66affSColin Finck [out] LPSTR *ppszEncoded, 356*c2c66affSColin Finck [in, out] LPRFC1522INFO pRfc1522Info); 357*c2c66affSColin Finck HRESULT ConvertBuffer( 358*c2c66affSColin Finck [in] CODEPAGEID cpiSource, 359*c2c66affSColin Finck [in] CODEPAGEID cpiDest, 360*c2c66affSColin Finck [in] LPBLOB pIn, 361*c2c66affSColin Finck [in, out] LPBLOB pOut, 362*c2c66affSColin Finck [out] ULONG *pcbRead); 363*c2c66affSColin Finck HRESULT ConvertString( 364*c2c66affSColin Finck [in] CODEPAGEID cpiSource, 365*c2c66affSColin Finck [in] CODEPAGEID cpiDest, 366*c2c66affSColin Finck [in] LPPROPVARIANT pIn, 367*c2c66affSColin Finck [in, out] LPPROPVARIANT pOut); 368*c2c66affSColin Finck HRESULT MLANG_ConvertInetReset(void); 369*c2c66affSColin Finck HRESULT MLANG_ConvertInetString( 370*c2c66affSColin Finck [in] CODEPAGEID cpiSource, 371*c2c66affSColin Finck [in] CODEPAGEID cpiDest, 372*c2c66affSColin Finck [in] LPCSTR pSource, 373*c2c66affSColin Finck [in] int *pnSizeOfSource, 374*c2c66affSColin Finck [in,out,unique] LPSTR pDestination, 375*c2c66affSColin Finck [in] int *pnDstSize); 376*c2c66affSColin Finck HRESULT Rfc1522Decode( 377*c2c66affSColin Finck [in] LPCSTR pszValue, 378*c2c66affSColin Finck [in,ref] LPSTR pszCharset, 379*c2c66affSColin Finck [in] ULONG cchmax, 380*c2c66affSColin Finck [out] LPSTR *ppszDecoded); 381*c2c66affSColin Finck HRESULT Rfc1522Encode( 382*c2c66affSColin Finck [in] LPCSTR pszValue, 383*c2c66affSColin Finck [in] HCHARSET hCharset, 384*c2c66affSColin Finck [out] LPSTR *ppszEncoded); 385*c2c66affSColin Finck } 386*c2c66affSColin Finck 387*c2c66affSColin Finck [ 388*c2c66affSColin Finck uuid(c5588353-7f86-11d0-8252-00c04fd85ab4), 389*c2c66affSColin Finck object 390*c2c66affSColin Finck ] 391*c2c66affSColin Finck interface IMimeSecurity : IUnknown 392*c2c66affSColin Finck { 393*c2c66affSColin Finck typedef [unique] IMimeSecurity *LPMIMESECURITY; 394*c2c66affSColin Finck 395*c2c66affSColin Finck cpp_quote("#ifdef __WINE_WINCRYPT_H") 396*c2c66affSColin Finck cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;") 397*c2c66affSColin Finck cpp_quote("#else") 398*c2c66affSColin Finck typedef const void *PCX509CERT; 399*c2c66affSColin Finck typedef void *HCERTSTORE; 400*c2c66affSColin Finck cpp_quote("#endif") 401*c2c66affSColin Finck 402*c2c66affSColin Finck typedef BLOB THUMBBLOB; 403*c2c66affSColin Finck typedef void *HCAPICERTSTORE; 404*c2c66affSColin Finck 405*c2c66affSColin Finck cpp_quote("#define MST_NONE 0x00000000") 406*c2c66affSColin Finck cpp_quote("#define MST_THIS_SIGN 0x00000001") 407*c2c66affSColin Finck cpp_quote("#define MST_THIS_ENCRYPT 0x00000002") 408*c2c66affSColin Finck cpp_quote("#define MST_BLOB_FLAG 0x00000004") 409*c2c66affSColin Finck cpp_quote("#define MST_THIS_BLOBSIGN (MST_BLOB_FLAG | MST_THIS_SIGN)") 410*c2c66affSColin Finck cpp_quote("#define MST_CHILD_SIGN 0x00000100") 411*c2c66affSColin Finck cpp_quote("#define MST_CHILD_ENCRYPT 0x00000200") 412*c2c66affSColin Finck cpp_quote("#define MST_SUBMSG_SIGN 0x00001000") 413*c2c66affSColin Finck cpp_quote("#define MST_SUBMSG_ENCRYPT 0x00002000") 414*c2c66affSColin Finck cpp_quote("#define MST_RECEIPT_REQUEST 0x00010000") 415*c2c66affSColin Finck cpp_quote("#define MST_CLASS_SMIME_V1 0x00000000") 416*c2c66affSColin Finck cpp_quote("#define MST_CLASS_PGP 0x01000000") 417*c2c66affSColin Finck 418*c2c66affSColin Finck typedef enum tagCERTSTATE 419*c2c66affSColin Finck { 420*c2c66affSColin Finck CERTIFICATE_OK, 421*c2c66affSColin Finck CERTIFICATE_NOT_PRESENT, 422*c2c66affSColin Finck CERTIFICATE_EXPIRED, 423*c2c66affSColin Finck CERTIFICATE_CHAIN_TOO_LONG, 424*c2c66affSColin Finck CERTIFICATE_MISSING_ISSUER, 425*c2c66affSColin Finck CERTIFICATE_CRL_LISTED, 426*c2c66affSColin Finck CERTIFICATE_NOT_TRUSTED, 427*c2c66affSColin Finck CERTIFICATE_INVALID, 428*c2c66affSColin Finck CERTIFICATE_ERROR, 429*c2c66affSColin Finck CERTIFICATE_NOPRINT, 430*c2c66affSColin Finck CERTIFICATE_UNKNOWN 431*c2c66affSColin Finck } CERTSTATE; 432*c2c66affSColin Finck 433*c2c66affSColin Finck typedef enum tagCERTNAMETYPE 434*c2c66affSColin Finck { 435*c2c66affSColin Finck SIMPLE, 436*c2c66affSColin Finck OID, 437*c2c66affSColin Finck X500, 438*c2c66affSColin Finck } CERTNAMETYPE; 439*c2c66affSColin Finck 440*c2c66affSColin Finck typedef enum tagCERTDATAID 441*c2c66affSColin Finck { 442*c2c66affSColin Finck CDID_EMAIL, 443*c2c66affSColin Finck CDID_MAX 444*c2c66affSColin Finck } CERTDATAID; 445*c2c66affSColin Finck 446*c2c66affSColin Finck typedef struct tagX509CERTRESULT 447*c2c66affSColin Finck { 448*c2c66affSColin Finck DWORD cEntries; 449*c2c66affSColin Finck CERTSTATE *rgcs; 450*c2c66affSColin Finck PCX509CERT *rgpCert; 451*c2c66affSColin Finck } X509CERTRESULT, *PX509CERTRESULT; 452*c2c66affSColin Finck typedef const X509CERTRESULT *PCX509CERTRESULT; 453*c2c66affSColin Finck 454*c2c66affSColin Finck HRESULT InitNew(void); 455*c2c66affSColin Finck 456*c2c66affSColin Finck HRESULT CheckInit(void); 457*c2c66affSColin Finck 458*c2c66affSColin Finck HRESULT EncodeMessage( 459*c2c66affSColin Finck [in] IMimeMessageTree */*const*/ pTree, 460*c2c66affSColin Finck [in] DWORD dwFlags); 461*c2c66affSColin Finck 462*c2c66affSColin Finck HRESULT EncodeBody( 463*c2c66affSColin Finck [in] IMimeMessageTree */*const*/ pTree, 464*c2c66affSColin Finck [in] HBODY hEncodeRoot, 465*c2c66affSColin Finck [in] DWORD dwFlags); 466*c2c66affSColin Finck 467*c2c66affSColin Finck HRESULT DecodeMessage( 468*c2c66affSColin Finck [in] IMimeMessageTree */*const*/ pTree, 469*c2c66affSColin Finck [in] DWORD dwFlags); 470*c2c66affSColin Finck 471*c2c66affSColin Finck HRESULT DecodeBody( 472*c2c66affSColin Finck [in] IMimeMessageTree */*const*/ pTree, 473*c2c66affSColin Finck [in] HBODY hDecodeRoot, 474*c2c66affSColin Finck [in] DWORD dwFlags); 475*c2c66affSColin Finck 476*c2c66affSColin Finck HRESULT EnumCertificates( 477*c2c66affSColin Finck [in] HCAPICERTSTORE hc, 478*c2c66affSColin Finck [in] DWORD dwUsage, 479*c2c66affSColin Finck [in] PCX509CERT pPrev, 480*c2c66affSColin Finck [out] PCX509CERT *ppCert); 481*c2c66affSColin Finck 482*c2c66affSColin Finck HRESULT GetCertificateName( 483*c2c66affSColin Finck [in] const PCX509CERT pX509Cert, 484*c2c66affSColin Finck [in] const CERTNAMETYPE cn, 485*c2c66affSColin Finck [out] LPSTR *ppszName); 486*c2c66affSColin Finck 487*c2c66affSColin Finck HRESULT GetMessageType( 488*c2c66affSColin Finck [in] const HWND hwndParent, 489*c2c66affSColin Finck [in] IMimeBody */*const*/ pBody, 490*c2c66affSColin Finck [out] DWORD */*const*/ pdwSecType); 491*c2c66affSColin Finck 492*c2c66affSColin Finck HRESULT GetCertData( 493*c2c66affSColin Finck [in] const PCX509CERT pX509Cert, 494*c2c66affSColin Finck [in] const CERTDATAID dataid, 495*c2c66affSColin Finck [out, ref] LPPROPVARIANT pValue); 496*c2c66affSColin Finck } 497*c2c66affSColin Finck 498*c2c66affSColin Finck [ 499*c2c66affSColin Finck uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4), 500*c2c66affSColin Finck object 501*c2c66affSColin Finck ] 502*c2c66affSColin Finck interface IMimeHeaderTable : IPersistStream 503*c2c66affSColin Finck { 504*c2c66affSColin Finck /* FIXME: fill this in */ 505*c2c66affSColin Finck } 506*c2c66affSColin Finck 507*c2c66affSColin Finck [ 508*c2c66affSColin Finck uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4), 509*c2c66affSColin Finck object 510*c2c66affSColin Finck ] 511*c2c66affSColin Finck interface IMimePropertySchema : IUnknown 512*c2c66affSColin Finck { 513*c2c66affSColin Finck typedef [unique] IMimePropertySchema *LPMIMEPROPERTYSCHEMA; 514*c2c66affSColin Finck 515*c2c66affSColin Finck typedef enum tagMIMEPROPFLAGS 516*c2c66affSColin Finck { 517*c2c66affSColin Finck MPF_INETCSET = 0x01, 518*c2c66affSColin Finck MPF_RFC1522 = 0x02, 519*c2c66affSColin Finck MPF_ADDRESS = 0x04, 520*c2c66affSColin Finck MPF_HASPARAMS = 0x08, 521*c2c66affSColin Finck MPF_MIME = 0x10, 522*c2c66affSColin Finck MPF_READONLY = 0x20 523*c2c66affSColin Finck } MIMEPROPFLAGS; 524*c2c66affSColin Finck 525*c2c66affSColin Finck HRESULT RegisterProperty( 526*c2c66affSColin Finck [in] const char *name, 527*c2c66affSColin Finck [in] DWORD flags, 528*c2c66affSColin Finck [in] DWORD rownumber, 529*c2c66affSColin Finck [in] VARTYPE vtdefault, 530*c2c66affSColin Finck [out] DWORD *propid); 531*c2c66affSColin Finck 532*c2c66affSColin Finck HRESULT ModifyProperty( 533*c2c66affSColin Finck [in] const char *name, 534*c2c66affSColin Finck [in] DWORD flags, 535*c2c66affSColin Finck [in] DWORD rownumber, 536*c2c66affSColin Finck [in] VARTYPE vtdefault); 537*c2c66affSColin Finck 538*c2c66affSColin Finck HRESULT GetPropertyId( 539*c2c66affSColin Finck [in] const char *name, 540*c2c66affSColin Finck [out] DWORD *propid); 541*c2c66affSColin Finck 542*c2c66affSColin Finck HRESULT GetPropertyName( 543*c2c66affSColin Finck [in] DWORD propid, 544*c2c66affSColin Finck [out] char **name); 545*c2c66affSColin Finck 546*c2c66affSColin Finck HRESULT RegisterAddressType( 547*c2c66affSColin Finck [in] const char *name, 548*c2c66affSColin Finck [out] DWORD *adrtype); 549*c2c66affSColin Finck } 550*c2c66affSColin Finck 551*c2c66affSColin Finck [ 552*c2c66affSColin Finck uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4), 553*c2c66affSColin Finck object 554*c2c66affSColin Finck ] 555*c2c66affSColin Finck interface IMimePropertySet : IPersistStreamInit 556*c2c66affSColin Finck { 557*c2c66affSColin Finck typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET; 558*c2c66affSColin Finck 559*c2c66affSColin Finck cpp_quote("#define PDF_ENCODED 0x00000001") 560*c2c66affSColin Finck cpp_quote("#define PDF_NAMEINDATA 0x00000002") 561*c2c66affSColin Finck cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)") 562*c2c66affSColin Finck cpp_quote("#define PDF_NOCOMMENTS 0x00000008") 563*c2c66affSColin Finck cpp_quote("#define PDF_SAVENOENCODE 0x00000010") 564*c2c66affSColin Finck cpp_quote("#define PDF_VECTOR 0x00000020") 565*c2c66affSColin Finck 566*c2c66affSColin Finck typedef struct tagMIMEPARAMINFO 567*c2c66affSColin Finck { 568*c2c66affSColin Finck LPSTR pszName; 569*c2c66affSColin Finck LPSTR pszData; 570*c2c66affSColin Finck } MIMEPARAMINFO, *LPMIMEPARAMINFO; 571*c2c66affSColin Finck 572*c2c66affSColin Finck typedef enum tagPROPINFOMASK 573*c2c66affSColin Finck { 574*c2c66affSColin Finck PIM_CHARSET = 0x01, 575*c2c66affSColin Finck PIM_ENCODINGTYPE = 0x02, 576*c2c66affSColin Finck PIM_ROWNUMBER = 0x04, 577*c2c66affSColin Finck PIM_FLAGS = 0x08, 578*c2c66affSColin Finck PIM_PROPID = 0x10, 579*c2c66affSColin Finck PIM_VALUES = 0x20, 580*c2c66affSColin Finck PIM_VTDEFAULT = 0x40, 581*c2c66affSColin Finck PIM_VTCURRENT = 0x80 582*c2c66affSColin Finck } PROPINFOMASK; 583*c2c66affSColin Finck 584*c2c66affSColin Finck typedef struct tagMIMEPROPINFO 585*c2c66affSColin Finck { 586*c2c66affSColin Finck DWORD dwMask; 587*c2c66affSColin Finck HCHARSET hCharset; 588*c2c66affSColin Finck ENCODINGTYPE ietEncoding; 589*c2c66affSColin Finck DWORD dwRowNumber; 590*c2c66affSColin Finck DWORD dwFlags; 591*c2c66affSColin Finck DWORD dwPropId; 592*c2c66affSColin Finck DWORD cValues; 593*c2c66affSColin Finck VARTYPE vtDefault; 594*c2c66affSColin Finck VARTYPE vtCurrent; 595*c2c66affSColin Finck } MIMEPROPINFO, *LPMIMEPROPINFO; 596*c2c66affSColin Finck typedef const MIMEPROPINFO *LPCMIMEPROPINFO; 597*c2c66affSColin Finck 598*c2c66affSColin Finck HRESULT GetPropInfo( 599*c2c66affSColin Finck [in] LPCSTR pszName, 600*c2c66affSColin Finck [in,out] LPMIMEPROPINFO pInfo); 601*c2c66affSColin Finck 602*c2c66affSColin Finck HRESULT SetPropInfo( 603*c2c66affSColin Finck [in] LPCSTR pszName, 604*c2c66affSColin Finck [in] LPCMIMEPROPINFO pInfo); 605*c2c66affSColin Finck 606*c2c66affSColin Finckcpp_quote("#ifdef WINE_NO_UNICODE_MACROS") 607*c2c66affSColin Finckcpp_quote("#undef GetProp") 608*c2c66affSColin Finckcpp_quote("#undef SetProp") 609*c2c66affSColin Finckcpp_quote("#undef EnumProps") 610*c2c66affSColin Finckcpp_quote("#endif") 611*c2c66affSColin Finck HRESULT GetProp( 612*c2c66affSColin Finck [in] LPCSTR pszName, 613*c2c66affSColin Finck [in] DWORD dwFlags, 614*c2c66affSColin Finck [in,out] LPPROPVARIANT pValue); 615*c2c66affSColin Finck 616*c2c66affSColin Finck HRESULT SetProp( 617*c2c66affSColin Finck [in] LPCSTR pszName, 618*c2c66affSColin Finck [in] DWORD dwFlags, 619*c2c66affSColin Finck [in] LPCPROPVARIANT pValue); 620*c2c66affSColin Finck 621*c2c66affSColin Finck HRESULT AppendProp( 622*c2c66affSColin Finck [in] LPCSTR pszName, 623*c2c66affSColin Finck [in] DWORD dwFlags, 624*c2c66affSColin Finck [in] LPPROPVARIANT pValue); 625*c2c66affSColin Finck 626*c2c66affSColin Finck HRESULT DeleteProp( 627*c2c66affSColin Finck [in] LPCSTR pszName); 628*c2c66affSColin Finck 629*c2c66affSColin Finck HRESULT CopyProps( 630*c2c66affSColin Finck [in] ULONG cNames, 631*c2c66affSColin Finck [in,unique] LPCSTR *prgszName, 632*c2c66affSColin Finck [in] IMimePropertySet *pPropertySet); 633*c2c66affSColin Finck 634*c2c66affSColin Finck HRESULT MoveProps( 635*c2c66affSColin Finck [in] ULONG cNames, 636*c2c66affSColin Finck [in] LPCSTR *prgszName, 637*c2c66affSColin Finck [in] IMimePropertySet *pPropertySet); 638*c2c66affSColin Finck 639*c2c66affSColin Finck HRESULT DeleteExcept( 640*c2c66affSColin Finck [in] ULONG cNames, 641*c2c66affSColin Finck [in] LPCSTR *prgszName); 642*c2c66affSColin Finck 643*c2c66affSColin Finck HRESULT QueryProp( 644*c2c66affSColin Finck [in] LPCSTR pszName, 645*c2c66affSColin Finck [in] LPCSTR pszCriteria, 646*c2c66affSColin Finck [in] boolean fSubString, 647*c2c66affSColin Finck [in] boolean fCaseSensitive); 648*c2c66affSColin Finck 649*c2c66affSColin Finck HRESULT GetCharset( 650*c2c66affSColin Finck [out] LPHCHARSET phCharset); 651*c2c66affSColin Finck 652*c2c66affSColin Finck HRESULT SetCharset( 653*c2c66affSColin Finck [in] HCHARSET hCharset, 654*c2c66affSColin Finck [in] CSETAPPLYTYPE applytype); 655*c2c66affSColin Finck 656*c2c66affSColin Finck HRESULT GetParameters( 657*c2c66affSColin Finck [in] LPCSTR pszName, 658*c2c66affSColin Finck [out] ULONG *pcParams, 659*c2c66affSColin Finck [out] LPMIMEPARAMINFO *pprgParam); 660*c2c66affSColin Finck 661*c2c66affSColin Finck HRESULT IsContentType( 662*c2c66affSColin Finck [in] LPCSTR pszPriType, 663*c2c66affSColin Finck [in,unique] LPCSTR pszSubType); 664*c2c66affSColin Finck 665*c2c66affSColin Finck HRESULT BindToObject( 666*c2c66affSColin Finck [in] REFIID riid, 667*c2c66affSColin Finck [out,iid_is(riid)] void **ppvObject); 668*c2c66affSColin Finck 669*c2c66affSColin Finck HRESULT Clone( 670*c2c66affSColin Finck [out] IMimePropertySet **ppPropertySet); 671*c2c66affSColin Finck 672*c2c66affSColin Finck HRESULT SetOption( 673*c2c66affSColin Finck [in] const TYPEDID oid, 674*c2c66affSColin Finck [in] LPCPROPVARIANT pValue); 675*c2c66affSColin Finck 676*c2c66affSColin Finck HRESULT GetOption( 677*c2c66affSColin Finck [in] const TYPEDID oid, 678*c2c66affSColin Finck [in,out] LPPROPVARIANT pValue); 679*c2c66affSColin Finck 680*c2c66affSColin Finck cpp_quote("#define EPF_NONAME 0x00000001") 681*c2c66affSColin Finck 682*c2c66affSColin Finck HRESULT EnumProps( 683*c2c66affSColin Finck [in] DWORD dwFlags, 684*c2c66affSColin Finck [out] IMimeEnumProperties **ppEnum); 685*c2c66affSColin Finck 686*c2c66affSColin Finck } 687*c2c66affSColin Finck 688*c2c66affSColin Finck [ 689*c2c66affSColin Finck uuid(c558834a-7f86-11d0-8252-00c04fd85ab4), 690*c2c66affSColin Finck object 691*c2c66affSColin Finck ] 692*c2c66affSColin Finck interface IMimeAddressTable : IUnknown 693*c2c66affSColin Finck { 694*c2c66affSColin Finck typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE; 695*c2c66affSColin Finck 696*c2c66affSColin Finck DECLARE_HANDLE(HADDRESS); 697*c2c66affSColin Finck typedef HADDRESS *LPHADDRESS; 698*c2c66affSColin Finck typedef DWORD IADDRESSTYPE; 699*c2c66affSColin Finck 700*c2c66affSColin Finck typedef enum tagADDRESSFORMAT 701*c2c66affSColin Finck { 702*c2c66affSColin Finck AFT_DISPLAY_FRIENDLY, 703*c2c66affSColin Finck AFT_DISPLAY_EMAIL, 704*c2c66affSColin Finck AFT_DISPLAY_BOTH, 705*c2c66affSColin Finck AFT_RFC822_DECODED, 706*c2c66affSColin Finck AFT_RFC822_ENCODED, 707*c2c66affSColin Finck AFT_RFC822_TRANSMIT, 708*c2c66affSColin Finck } ADDRESSFORMAT; 709*c2c66affSColin Finck 710*c2c66affSColin Finck cpp_quote("#define IAT_UNKNOWN 0x00000000") 711*c2c66affSColin Finck cpp_quote("#define IAT_FROM 0x00000001") 712*c2c66affSColin Finck cpp_quote("#define IAT_SENDER 0x00000002") 713*c2c66affSColin Finck cpp_quote("#define IAT_TO 0x00000004") 714*c2c66affSColin Finck cpp_quote("#define IAT_CC 0x00000008") 715*c2c66affSColin Finck cpp_quote("#define IAT_BCC 0x00000010") 716*c2c66affSColin Finck cpp_quote("#define IAT_REPLYTO 0x00000020") 717*c2c66affSColin Finck cpp_quote("#define IAT_RETURNPATH 0x00000040") 718*c2c66affSColin Finck cpp_quote("#define IAT_RETRCPTTO 0x00000080") 719*c2c66affSColin Finck cpp_quote("#define IAT_RR 0x00000100") 720*c2c66affSColin Finck cpp_quote("#define IAT_APPARTO 0x00000200") 721*c2c66affSColin Finck cpp_quote("#define IAT_DISP_NOTIFICATION_TO 0x00000400") 722*c2c66affSColin Finck cpp_quote("#define IAT_ALL 0xffffffff") 723*c2c66affSColin Finck cpp_quote("#define IAT_KNOWN (IAT_FROM | IAT_TO | IAT_CC | IAT_BCC | IAT_REPLYTO | IAT_SENDER)") 724*c2c66affSColin Finck cpp_quote("#define IAT_RECIPS (IAT_TO | IAT_CC | IAT_BCC)") 725*c2c66affSColin Finck 726*c2c66affSColin Finck typedef struct tagADDRESSPROPS 727*c2c66affSColin Finck { 728*c2c66affSColin Finck DWORD dwProps; 729*c2c66affSColin Finck HADDRESS hAddress; 730*c2c66affSColin Finck ENCODINGTYPE ietFriendly; 731*c2c66affSColin Finck HCHARSET hCharset; 732*c2c66affSColin Finck DWORD dwAdrType; 733*c2c66affSColin Finck LPSTR pszFriendly; 734*c2c66affSColin Finck LPWSTR pwszReserved; 735*c2c66affSColin Finck LPSTR pszEmail; 736*c2c66affSColin Finck CERTSTATE certstate; 737*c2c66affSColin Finck THUMBBLOB tbSigning; 738*c2c66affSColin Finck THUMBBLOB tbEncryption; 739*c2c66affSColin Finck DWORD dwCookie; 740*c2c66affSColin Finck DWORD dwReserved1; 741*c2c66affSColin Finck DWORD dwReserved2; 742*c2c66affSColin Finck } ADDRESSPROPS, *LPADDRESSPROPS; 743*c2c66affSColin Finck 744*c2c66affSColin Finck cpp_quote("#define IAP_CHARSET 0x00000001") 745*c2c66affSColin Finck cpp_quote("#define IAP_HANDLE 0x00000002") 746*c2c66affSColin Finck cpp_quote("#define IAP_ADRTYPE 0x00000004") 747*c2c66affSColin Finck cpp_quote("#define IAP_FRIENDLY 0x00000008") 748*c2c66affSColin Finck cpp_quote("#define IAP_EMAIL 0x00000020") 749*c2c66affSColin Finck cpp_quote("#define IAP_CERTSTATE 0x00000100") 750*c2c66affSColin Finck cpp_quote("#define IAP_SIGNING_PRINT 0x00000200") 751*c2c66affSColin Finck cpp_quote("#define IAP_ENCRYPTION_PRINT 0x00000400") 752*c2c66affSColin Finck cpp_quote("#define IAP_ENCODING 0x00000800") 753*c2c66affSColin Finck cpp_quote("#define IAP_COOKIE 0x00001000") 754*c2c66affSColin Finck cpp_quote("#define IAP_FRIENDLYW 0x00002000") 755*c2c66affSColin Finck cpp_quote("#define IAP_ALL 0xffffffff") 756*c2c66affSColin Finck 757*c2c66affSColin Finck typedef struct tagADDRESSLIST 758*c2c66affSColin Finck { 759*c2c66affSColin Finck ULONG cAdrs; 760*c2c66affSColin Finck LPADDRESSPROPS prgAdr; 761*c2c66affSColin Finck } ADDRESSLIST, *LPADDRESSLIST; 762*c2c66affSColin Finck 763*c2c66affSColin Finck HRESULT Append( 764*c2c66affSColin Finck [in] DWORD addrtype, 765*c2c66affSColin Finck [in] ENCODINGTYPE encoding, 766*c2c66affSColin Finck [in] const char *friendly, 767*c2c66affSColin Finck [in,unique] const char *email, 768*c2c66affSColin Finck [in,out,unique] HADDRESS *address); 769*c2c66affSColin Finck 770*c2c66affSColin Finck HRESULT Insert( 771*c2c66affSColin Finck [in] ADDRESSPROPS *addressprop, 772*c2c66affSColin Finck [in,out,unique] HADDRESS *address); 773*c2c66affSColin Finck 774*c2c66affSColin Finck HRESULT SetProps( 775*c2c66affSColin Finck [in] HADDRESS address, 776*c2c66affSColin Finck [in] ADDRESSPROPS *addressprop); 777*c2c66affSColin Finck 778*c2c66affSColin Finck HRESULT GetProps( 779*c2c66affSColin Finck [in] HADDRESS address, 780*c2c66affSColin Finck [in] ADDRESSPROPS *addressprop); 781*c2c66affSColin Finck 782*c2c66affSColin Finck HRESULT GetSender( 783*c2c66affSColin Finck [in,out] ADDRESSPROPS *addressprop); 784*c2c66affSColin Finck 785*c2c66affSColin Finck HRESULT CountTypes( 786*c2c66affSColin Finck [in] DWORD addrtype, 787*c2c66affSColin Finck [out] ULONG *count); 788*c2c66affSColin Finck 789*c2c66affSColin Finck HRESULT GetTypes( 790*c2c66affSColin Finck [in] DWORD addrtype, 791*c2c66affSColin Finck [in] DWORD dwProps, 792*c2c66affSColin Finck [in,out] ADDRESSLIST *list); 793*c2c66affSColin Finck 794*c2c66affSColin Finck HRESULT EnumTypes( 795*c2c66affSColin Finck [in] DWORD addrtype, 796*c2c66affSColin Finck [in] DWORD props, 797*c2c66affSColin Finck [out] IMimeEnumAddressTypes **types); 798*c2c66affSColin Finck 799*c2c66affSColin Finck HRESULT Delete( 800*c2c66affSColin Finck [in] HADDRESS hAddress); 801*c2c66affSColin Finck 802*c2c66affSColin Finck HRESULT DeleteTypes( 803*c2c66affSColin Finck [in] DWORD addrtype); 804*c2c66affSColin Finck 805*c2c66affSColin Finck HRESULT GetFormat( 806*c2c66affSColin Finck [in] DWORD addrtype, 807*c2c66affSColin Finck [in] ADDRESSFORMAT addrformat, 808*c2c66affSColin Finck [out] char **format); 809*c2c66affSColin Finck 810*c2c66affSColin Finck HRESULT AppendRfc822( 811*c2c66affSColin Finck [in] DWORD addrtype, 812*c2c66affSColin Finck [in] ENCODINGTYPE encoding, 813*c2c66affSColin Finck [in] const char *rfcaddr); 814*c2c66affSColin Finck 815*c2c66affSColin Finck HRESULT ParseRfc822( 816*c2c66affSColin Finck [in] DWORD addrtype, 817*c2c66affSColin Finck [in] ENCODINGTYPE encoding, 818*c2c66affSColin Finck [in] const char *rfcaddr, 819*c2c66affSColin Finck [in,out] ADDRESSLIST *list); 820*c2c66affSColin Finck 821*c2c66affSColin Finck HRESULT Clone( 822*c2c66affSColin Finck [out] IMimeAddressTable **table); 823*c2c66affSColin Finck 824*c2c66affSColin Finck HRESULT BindToObject( 825*c2c66affSColin Finck [in] REFIID riid, 826*c2c66affSColin Finck [out, iid_is(riid)] void **obj); 827*c2c66affSColin Finck } 828*c2c66affSColin Finck 829*c2c66affSColin Finck [ 830*c2c66affSColin Finck uuid(ee519f11-851a-11d0-8252-00c04fd85ab4), 831*c2c66affSColin Finck object 832*c2c66affSColin Finck ] 833*c2c66affSColin Finck interface IMimeWebDocument : IUnknown 834*c2c66affSColin Finck { 835*c2c66affSColin Finck /* FIXME: fill this in */ 836*c2c66affSColin Finck } 837*c2c66affSColin Finck 838*c2c66affSColin Finck [ 839*c2c66affSColin Finck uuid(c558834c-7f86-11d0-8252-00c04fd85ab4), 840*c2c66affSColin Finck object 841*c2c66affSColin Finck ] 842*c2c66affSColin Finck interface IMimeBody : IMimePropertySet 843*c2c66affSColin Finck { 844*c2c66affSColin Finck typedef [unique] IMimeBody *LPMIMEBODY; 845*c2c66affSColin Finck 846*c2c66affSColin Finck typedef enum tagIMSGBODYTYPE 847*c2c66affSColin Finck { 848*c2c66affSColin Finck IBT_SECURE, 849*c2c66affSColin Finck IBT_ATTACHMENT, 850*c2c66affSColin Finck IBT_EMPTY, 851*c2c66affSColin Finck IBT_CSETTAGGED, 852*c2c66affSColin Finck IBT_AUTOATTACH, 853*c2c66affSColin Finck } IMSGBODYTYPE; 854*c2c66affSColin Finck 855*c2c66affSColin Finck typedef struct tagBODYOFFSETS 856*c2c66affSColin Finck { 857*c2c66affSColin Finck DWORD cbBoundaryStart; 858*c2c66affSColin Finck DWORD cbHeaderStart; 859*c2c66affSColin Finck DWORD cbBodyStart; 860*c2c66affSColin Finck DWORD cbBodyEnd; 861*c2c66affSColin Finck } BODYOFFSETS, *LPBODYOFFSETS; 862*c2c66affSColin Finck 863*c2c66affSColin Finck typedef struct tagTRANSMITINFO 864*c2c66affSColin Finck { 865*c2c66affSColin Finck ENCODINGTYPE ietCurrent; 866*c2c66affSColin Finck ENCODINGTYPE ietXmitMime; 867*c2c66affSColin Finck ENCODINGTYPE ietXmit822; 868*c2c66affSColin Finck ULONG cbLongestLine; 869*c2c66affSColin Finck ULONG cExtended; 870*c2c66affSColin Finck ULONG ulPercentExt; 871*c2c66affSColin Finck ULONG cbSize; 872*c2c66affSColin Finck ULONG cLines; 873*c2c66affSColin Finck } TRANSMITINFO, *LPTRANSMITINFO; 874*c2c66affSColin Finck 875*c2c66affSColin Finck HRESULT IsType( 876*c2c66affSColin Finck [in] IMSGBODYTYPE bodytype); 877*c2c66affSColin Finck 878*c2c66affSColin Finck HRESULT SetDisplayName( 879*c2c66affSColin Finck [in] LPCSTR pszDisplay); 880*c2c66affSColin Finck 881*c2c66affSColin Finck HRESULT GetDisplayName( 882*c2c66affSColin Finck [out] LPSTR *ppszDisplay); 883*c2c66affSColin Finck 884*c2c66affSColin Finck HRESULT GetOffsets( 885*c2c66affSColin Finck [out] LPBODYOFFSETS pOffsets); 886*c2c66affSColin Finck 887*c2c66affSColin Finck HRESULT GetCurrentEncoding( 888*c2c66affSColin Finck [out] ENCODINGTYPE *pietEncoding); 889*c2c66affSColin Finck 890*c2c66affSColin Finck HRESULT SetCurrentEncoding( 891*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding); 892*c2c66affSColin Finck 893*c2c66affSColin Finck HRESULT GetEstimatedSize( 894*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 895*c2c66affSColin Finck [out] ULONG *pcbSize); 896*c2c66affSColin Finck 897*c2c66affSColin Finck HRESULT GetDataHere( 898*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 899*c2c66affSColin Finck [in] IStream *pStream); 900*c2c66affSColin Finck 901*c2c66affSColin Finck HRESULT GetData( 902*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 903*c2c66affSColin Finck [out] IStream **ppStream); 904*c2c66affSColin Finck 905*c2c66affSColin Finck HRESULT SetData( 906*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 907*c2c66affSColin Finck [in,unique] LPCSTR pszPriType, 908*c2c66affSColin Finck [in,unique] LPCSTR pszSubType, 909*c2c66affSColin Finck [in] REFIID riid, 910*c2c66affSColin Finck [in,iid_is(riid)] LPVOID pvObject); 911*c2c66affSColin Finck 912*c2c66affSColin Finck HRESULT EmptyData(void); 913*c2c66affSColin Finck 914*c2c66affSColin Finck HRESULT CopyTo( 915*c2c66affSColin Finck [in] IMimeBody *pBody); 916*c2c66affSColin Finck 917*c2c66affSColin Finck HRESULT GetTransmitInfo( 918*c2c66affSColin Finck [in,out] LPTRANSMITINFO pTransmitInfo); 919*c2c66affSColin Finck 920*c2c66affSColin Finck HRESULT SaveToFile( 921*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 922*c2c66affSColin Finck [in] LPCSTR pszFilePath); 923*c2c66affSColin Finck 924*c2c66affSColin Finck HRESULT GetHandle( 925*c2c66affSColin Finck [out] LPHBODY phBody); 926*c2c66affSColin Finck 927*c2c66affSColin Finck } 928*c2c66affSColin Finck 929*c2c66affSColin Finck [ 930*c2c66affSColin Finck uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4), 931*c2c66affSColin Finck object 932*c2c66affSColin Finck ] 933*c2c66affSColin Finck interface IMimeMessageTree : IPersistStreamInit 934*c2c66affSColin Finck { 935*c2c66affSColin Finck typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE; 936*c2c66affSColin Finck 937*c2c66affSColin Finck const HBODY HBODY_ROOT = (HBODY)-1; 938*c2c66affSColin Finck 939*c2c66affSColin Finck typedef enum tagBODYLOCATION 940*c2c66affSColin Finck { 941*c2c66affSColin Finck IBL_ROOT, 942*c2c66affSColin Finck IBL_PARENT, 943*c2c66affSColin Finck IBL_FIRST, 944*c2c66affSColin Finck IBL_LAST, 945*c2c66affSColin Finck IBL_NEXT, 946*c2c66affSColin Finck IBL_PREVIOUS, 947*c2c66affSColin Finck } BODYLOCATION; 948*c2c66affSColin Finck 949*c2c66affSColin Finck typedef struct tagFINDBODY 950*c2c66affSColin Finck { 951*c2c66affSColin Finck LPSTR pszPriType; 952*c2c66affSColin Finck LPSTR pszSubType; 953*c2c66affSColin Finck DWORD dwReserved; 954*c2c66affSColin Finck } FINDBODY, *LPFINDBODY; 955*c2c66affSColin Finck 956*c2c66affSColin Finck HRESULT GetMessageSource( 957*c2c66affSColin Finck [out] IStream **ppStream, 958*c2c66affSColin Finck [in] DWORD dwFlags); 959*c2c66affSColin Finck 960*c2c66affSColin Finck HRESULT GetMessageSize( 961*c2c66affSColin Finck [out] ULONG *pcbSize, 962*c2c66affSColin Finck [in] DWORD dwFlags); 963*c2c66affSColin Finck 964*c2c66affSColin Finck HRESULT LoadOffsetTable( 965*c2c66affSColin Finck [in] IStream *pStream); 966*c2c66affSColin Finck 967*c2c66affSColin Finck HRESULT SaveOffsetTable( 968*c2c66affSColin Finck [in] IStream *pStream, 969*c2c66affSColin Finck [in] DWORD dwFlags); 970*c2c66affSColin Finck 971*c2c66affSColin Finck HRESULT GetFlags( 972*c2c66affSColin Finck [out] DWORD *pdwFlags); 973*c2c66affSColin Finck 974*c2c66affSColin Finck HRESULT Commit( 975*c2c66affSColin Finck [in] DWORD dwFlags); 976*c2c66affSColin Finck 977*c2c66affSColin Finck HRESULT HandsOffStorage(); 978*c2c66affSColin Finck 979*c2c66affSColin Finck HRESULT BindToObject( 980*c2c66affSColin Finck [in] const HBODY hBody, 981*c2c66affSColin Finck [in] REFIID riid, 982*c2c66affSColin Finck [out, iid_is(riid)] void **ppvObject); 983*c2c66affSColin Finck 984*c2c66affSColin Finck HRESULT SaveBody( 985*c2c66affSColin Finck [in] HBODY hBody, 986*c2c66affSColin Finck [in] DWORD dwFlags, 987*c2c66affSColin Finck [in] IStream *pStream); 988*c2c66affSColin Finck 989*c2c66affSColin Finck HRESULT InsertBody( 990*c2c66affSColin Finck [in] BODYLOCATION location, 991*c2c66affSColin Finck [in] HBODY hPivot, 992*c2c66affSColin Finck [out] LPHBODY phBody); 993*c2c66affSColin Finck 994*c2c66affSColin Finck HRESULT GetBody( 995*c2c66affSColin Finck [in] BODYLOCATION location, 996*c2c66affSColin Finck [in] HBODY hPivot, 997*c2c66affSColin Finck [out] LPHBODY phBody); 998*c2c66affSColin Finck 999*c2c66affSColin Finck HRESULT DeleteBody( 1000*c2c66affSColin Finck [in] HBODY hBody, 1001*c2c66affSColin Finck [in] DWORD dwFlags); 1002*c2c66affSColin Finck 1003*c2c66affSColin Finck HRESULT MoveBody( 1004*c2c66affSColin Finck [in] HBODY hBody, 1005*c2c66affSColin Finck [in] BODYLOCATION location); 1006*c2c66affSColin Finck 1007*c2c66affSColin Finck HRESULT CountBodies( 1008*c2c66affSColin Finck [in] HBODY hParent, 1009*c2c66affSColin Finck [in] boolean fRecurse, 1010*c2c66affSColin Finck [out] ULONG *pcBodies); 1011*c2c66affSColin Finck 1012*c2c66affSColin Finck HRESULT FindFirst( 1013*c2c66affSColin Finck [in, out] LPFINDBODY pFindBody, 1014*c2c66affSColin Finck [out] LPHBODY phBody); 1015*c2c66affSColin Finck 1016*c2c66affSColin Finck HRESULT FindNext( 1017*c2c66affSColin Finck [in, out] LPFINDBODY pFindBody, 1018*c2c66affSColin Finck [out] LPHBODY phBody); 1019*c2c66affSColin Finck 1020*c2c66affSColin Finck HRESULT ResolveURL( 1021*c2c66affSColin Finck [in] HBODY hRelated, 1022*c2c66affSColin Finck [in] LPCSTR pszBase, 1023*c2c66affSColin Finck [in] LPCSTR pszURL, 1024*c2c66affSColin Finck [in] DWORD dwFlags, 1025*c2c66affSColin Finck [out] LPHBODY phBody); 1026*c2c66affSColin Finck 1027*c2c66affSColin Finck HRESULT ToMultipart( 1028*c2c66affSColin Finck [in] HBODY hBody, 1029*c2c66affSColin Finck [in] LPCSTR pszSubType, 1030*c2c66affSColin Finck [out] LPHBODY phMultipart); 1031*c2c66affSColin Finck 1032*c2c66affSColin Finck HRESULT GetBodyOffsets( 1033*c2c66affSColin Finck [in] HBODY hBody, 1034*c2c66affSColin Finck [in, out] LPBODYOFFSETS pOffsets); 1035*c2c66affSColin Finck 1036*c2c66affSColin Finck HRESULT GetCharset( 1037*c2c66affSColin Finck [out] LPHCHARSET phCharset); 1038*c2c66affSColin Finck 1039*c2c66affSColin Finck HRESULT SetCharset( 1040*c2c66affSColin Finck [in] HCHARSET hCharset, 1041*c2c66affSColin Finck [in] CSETAPPLYTYPE applytype); 1042*c2c66affSColin Finck 1043*c2c66affSColin Finck HRESULT IsBodyType( 1044*c2c66affSColin Finck [in] HBODY hBody, 1045*c2c66affSColin Finck [in] IMSGBODYTYPE bodytype); 1046*c2c66affSColin Finck 1047*c2c66affSColin Finck HRESULT IsContentType( 1048*c2c66affSColin Finck [in] HBODY hBody, 1049*c2c66affSColin Finck [in] LPCSTR pszPriType, 1050*c2c66affSColin Finck [in] LPCSTR pszSubType); 1051*c2c66affSColin Finck 1052*c2c66affSColin Finck HRESULT QueryBodyProp( 1053*c2c66affSColin Finck [in] HBODY hBody, 1054*c2c66affSColin Finck [in] LPCSTR pszName, 1055*c2c66affSColin Finck [in] LPCSTR pszCriteria, 1056*c2c66affSColin Finck [in] boolean fSubString, 1057*c2c66affSColin Finck [in] boolean fCaseSensitive); 1058*c2c66affSColin Finck 1059*c2c66affSColin Finck HRESULT GetBodyProp( 1060*c2c66affSColin Finck [in] HBODY hBody, 1061*c2c66affSColin Finck [in] LPCSTR pszName, 1062*c2c66affSColin Finck [in] DWORD dwFlags, 1063*c2c66affSColin Finck [in, out] LPPROPVARIANT pValue); 1064*c2c66affSColin Finck 1065*c2c66affSColin Finck HRESULT SetBodyProp( 1066*c2c66affSColin Finck [in] HBODY hBody, 1067*c2c66affSColin Finck [in] LPCSTR pszName, 1068*c2c66affSColin Finck [in] DWORD dwFlags, 1069*c2c66affSColin Finck [in] LPCPROPVARIANT pValue); 1070*c2c66affSColin Finck 1071*c2c66affSColin Finck HRESULT DeleteBodyProp( 1072*c2c66affSColin Finck [in] HBODY hBody, 1073*c2c66affSColin Finck [in] LPCSTR pszName); 1074*c2c66affSColin Finck 1075*c2c66affSColin Finck HRESULT SetOption( 1076*c2c66affSColin Finck [in] const TYPEDID oid, 1077*c2c66affSColin Finck [in] LPCPROPVARIANT pValue); 1078*c2c66affSColin Finck 1079*c2c66affSColin Finck HRESULT GetOption( 1080*c2c66affSColin Finck [in] const TYPEDID oid, 1081*c2c66affSColin Finck [in, out] LPPROPVARIANT pValue); 1082*c2c66affSColin Finck } 1083*c2c66affSColin Finck 1084*c2c66affSColin Finck [ 1085*c2c66affSColin Finck uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4), 1086*c2c66affSColin Finck object 1087*c2c66affSColin Finck ] 1088*c2c66affSColin Finck interface IMimeMessage : IMimeMessageTree 1089*c2c66affSColin Finck { 1090*c2c66affSColin Finck typedef [unique] IMimeMessage *LPMIMEMESSAGE; 1091*c2c66affSColin Finck 1092*c2c66affSColin Finck typedef DWORD TEXTTYPE; 1093*c2c66affSColin Finck 1094*c2c66affSColin Finck typedef enum tagIMSGFLAGS 1095*c2c66affSColin Finck { 1096*c2c66affSColin Finck IMF_ATTACHMENTS = 0x00000001, 1097*c2c66affSColin Finck IMF_MULTIPART = 0x00000002, 1098*c2c66affSColin Finck IMF_SUBMULTIPART = 0x00000004, 1099*c2c66affSColin Finck IMF_MIME = 0x00000008, 1100*c2c66affSColin Finck IMF_HTML = 0x00000010, 1101*c2c66affSColin Finck IMF_PLAIN = 0x00000020, 1102*c2c66affSColin Finck IMF_PARTIAL = 0x00000040, 1103*c2c66affSColin Finck IMF_SIGNED = 0x00000080, 1104*c2c66affSColin Finck IMF_ENCRYPTED = 0x00000100, 1105*c2c66affSColin Finck IMF_TNEF = 0x00000200, 1106*c2c66affSColin Finck IMF_MHTML = 0x00000400, 1107*c2c66affSColin Finck IMF_SECURE = 0x00000800, 1108*c2c66affSColin Finck IMF_TEXT = 0x00001000, 1109*c2c66affSColin Finck IMF_CSETTAGGED = 0x00002000, 1110*c2c66affSColin Finck IMF_NEWS = 0x00004000, 1111*c2c66affSColin Finck IMF_VOICEMAIL = 0x00008000, 1112*c2c66affSColin Finck IMF_HASVCARD = 0x00010000, 1113*c2c66affSColin Finck IMF_RFC1154 = 0x00020000, 1114*c2c66affSColin Finck } IMSGFLAGS; 1115*c2c66affSColin Finck 1116*c2c66affSColin Finck typedef enum tagIMSGPRIORITY 1117*c2c66affSColin Finck { 1118*c2c66affSColin Finck IMSG_PRI_LOW = 5, 1119*c2c66affSColin Finck IMSG_PRI_NORMAL = 3, 1120*c2c66affSColin Finck IMSG_PRI_HIGH = 1, 1121*c2c66affSColin Finck } IMSGPRIORITY; 1122*c2c66affSColin Finck 1123*c2c66affSColin Finck cpp_quote("#define WPF_HTML 0x00000001") 1124*c2c66affSColin Finck cpp_quote("#define WPF_AUTOINLINE 0x00000002") 1125*c2c66affSColin Finck cpp_quote("#define WPF_SLIDESHOW 0x00000004") 1126*c2c66affSColin Finck cpp_quote("#define WPF_ATTACHLINKS 0x00000008") 1127*c2c66affSColin Finck cpp_quote("#define WPF_IMAGESONLY 0x00000010") 1128*c2c66affSColin Finck cpp_quote("#define WPF_NOMETACHARSET 0x00000020") 1129*c2c66affSColin Finck 1130*c2c66affSColin Finck typedef struct tagWEPAGEOPTIONS 1131*c2c66affSColin Finck { 1132*c2c66affSColin Finck DWORD cbSize; 1133*c2c66affSColin Finck DWORD dwFlags; 1134*c2c66affSColin Finck DWORD dwDelay; 1135*c2c66affSColin Finck WCHAR wchQuote; 1136*c2c66affSColin Finck } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS; 1137*c2c66affSColin Finck 1138*c2c66affSColin Finck cpp_quote("#define TXT_PLAIN 1") 1139*c2c66affSColin Finck cpp_quote("#define TXT_HTML 2") 1140*c2c66affSColin Finck 1141*c2c66affSColin Finck HRESULT CreateWebPage( 1142*c2c66affSColin Finck [in] IStream *pRootStm, 1143*c2c66affSColin Finck [in] LPWEBPAGEOPTIONS pOptions, 1144*c2c66affSColin Finck [in] IMimeMessageCallback *pCallback, 1145*c2c66affSColin Finck [out] IMoniker **ppMoniker); 1146*c2c66affSColin Finck 1147*c2c66affSColin Finck HRESULT GetProp( 1148*c2c66affSColin Finck [in] LPCSTR pszName, 1149*c2c66affSColin Finck [in] DWORD dwFlags, 1150*c2c66affSColin Finck [in,out] LPPROPVARIANT pValue); 1151*c2c66affSColin Finck 1152*c2c66affSColin Finck HRESULT SetProp( 1153*c2c66affSColin Finck [in] LPCSTR pszName, 1154*c2c66affSColin Finck [in] DWORD dwFlags, 1155*c2c66affSColin Finck [in] LPCPROPVARIANT pValue); 1156*c2c66affSColin Finck 1157*c2c66affSColin Finck HRESULT DeleteProp( 1158*c2c66affSColin Finck [in] LPCSTR pszName); 1159*c2c66affSColin Finck 1160*c2c66affSColin Finck HRESULT QueryProp( 1161*c2c66affSColin Finck [in] LPCSTR pszName, 1162*c2c66affSColin Finck [in] LPCSTR pszCriteria, 1163*c2c66affSColin Finck [in] boolean fSubString, 1164*c2c66affSColin Finck [in] boolean fCaseSensitive); 1165*c2c66affSColin Finck 1166*c2c66affSColin Finck HRESULT GetTextBody( 1167*c2c66affSColin Finck [in] DWORD dwTxtType, 1168*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 1169*c2c66affSColin Finck [out] IStream **pStream, 1170*c2c66affSColin Finck [out] LPHBODY phBody); 1171*c2c66affSColin Finck 1172*c2c66affSColin Finck HRESULT SetTextBody( 1173*c2c66affSColin Finck [in] DWORD dwTxtType, 1174*c2c66affSColin Finck [in] ENCODINGTYPE ietEncoding, 1175*c2c66affSColin Finck [in] HBODY hAlternative, 1176*c2c66affSColin Finck [in] IStream *pStream, 1177*c2c66affSColin Finck [out] LPHBODY phBody); 1178*c2c66affSColin Finck 1179*c2c66affSColin Finck HRESULT AttachObject( 1180*c2c66affSColin Finck [in] REFIID riid, 1181*c2c66affSColin Finck [in, iid_is(riid)] void *pvObject, 1182*c2c66affSColin Finck [out] LPHBODY phBody); 1183*c2c66affSColin Finck 1184*c2c66affSColin Finck HRESULT AttachFile( 1185*c2c66affSColin Finck [in] LPCSTR pszFilePath, 1186*c2c66affSColin Finck [in] IStream *pstmFile, 1187*c2c66affSColin Finck [out] LPHBODY phBody); 1188*c2c66affSColin Finck 1189*c2c66affSColin Finck HRESULT AttachURL( 1190*c2c66affSColin Finck [in] LPCSTR pszBase, 1191*c2c66affSColin Finck [in] LPCSTR pszURL, 1192*c2c66affSColin Finck [in] DWORD dwFlags, 1193*c2c66affSColin Finck [in] IStream *pstmURL, 1194*c2c66affSColin Finck [out] LPSTR *ppszCIDURL, 1195*c2c66affSColin Finck [out] LPHBODY phBody); 1196*c2c66affSColin Finck 1197*c2c66affSColin Finck HRESULT GetAttachments( 1198*c2c66affSColin Finck [out] ULONG *pcAttach, 1199*c2c66affSColin Finck [out] LPHBODY *pprghAttach); 1200*c2c66affSColin Finck 1201*c2c66affSColin Finck HRESULT GetAddressTable( 1202*c2c66affSColin Finck [out] IMimeAddressTable **ppTable); 1203*c2c66affSColin Finck 1204*c2c66affSColin Finck HRESULT GetSender( 1205*c2c66affSColin Finck [in, out] LPADDRESSPROPS pAddress); 1206*c2c66affSColin Finck 1207*c2c66affSColin Finck HRESULT GetAddressTypes( 1208*c2c66affSColin Finck [in] DWORD dwAdrTypes, 1209*c2c66affSColin Finck [in] DWORD dwProps, 1210*c2c66affSColin Finck [in, out] LPADDRESSLIST pList); 1211*c2c66affSColin Finck 1212*c2c66affSColin Finck HRESULT GetAddressFormat( 1213*c2c66affSColin Finck [in] DWORD dwAdrTypes, 1214*c2c66affSColin Finck [in] ADDRESSFORMAT format, 1215*c2c66affSColin Finck [out] LPSTR *ppszFormat); 1216*c2c66affSColin Finck 1217*c2c66affSColin Finck HRESULT EnumAddressTypes( 1218*c2c66affSColin Finck [in] DWORD dwAdrTypes, 1219*c2c66affSColin Finck [in] DWORD dwProps, 1220*c2c66affSColin Finck [out] IMimeEnumAddressTypes **ppEnum); 1221*c2c66affSColin Finck 1222*c2c66affSColin Finck HRESULT SplitMessage( 1223*c2c66affSColin Finck [in] ULONG cbMaxPart, 1224*c2c66affSColin Finck [out] IMimeMessageParts **ppParts); 1225*c2c66affSColin Finck 1226*c2c66affSColin Finck HRESULT GetRootMoniker( 1227*c2c66affSColin Finck [out] IMoniker **ppMoniker); 1228*c2c66affSColin Finck } 1229*c2c66affSColin Finck 1230*c2c66affSColin Finck [ 1231*c2c66affSColin Finck uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3), 1232*c2c66affSColin Finck object 1233*c2c66affSColin Finck ] 1234*c2c66affSColin Finck interface IMimeMessageCallback : IUnknown 1235*c2c66affSColin Finck { 1236*c2c66affSColin Finck HRESULT OnWebPageSplitter( 1237*c2c66affSColin Finck [in] DWORD cInlined, 1238*c2c66affSColin Finck [in] IStream *ppStream); 1239*c2c66affSColin Finck } 1240*c2c66affSColin Finck 1241*c2c66affSColin Finck [ 1242*c2c66affSColin Finck uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9), 1243*c2c66affSColin Finck object 1244*c2c66affSColin Finck ] 1245*c2c66affSColin Finck interface IPersistMime : IPersist 1246*c2c66affSColin Finck { 1247*c2c66affSColin Finck /* FIXME: fill this in */ 1248*c2c66affSColin Finck } 1249*c2c66affSColin Finck 1250*c2c66affSColin Finck [ 1251*c2c66affSColin Finck uuid(c558834f-7f86-11d0-8252-00c04fd85ab4), 1252*c2c66affSColin Finck object 1253*c2c66affSColin Finck ] 1254*c2c66affSColin Finck interface IMimeMessageParts : IUnknown 1255*c2c66affSColin Finck { 1256*c2c66affSColin Finck /* FIXME: fill this in */ 1257*c2c66affSColin Finck } 1258*c2c66affSColin Finck 1259*c2c66affSColin Finck [ 1260*c2c66affSColin Finck uuid(c558834d-7f86-11d0-8252-00c04fd85ab4), 1261*c2c66affSColin Finck object 1262*c2c66affSColin Finck ] 1263*c2c66affSColin Finck interface IMimeEnumHeaderRows : IUnknown 1264*c2c66affSColin Finck { 1265*c2c66affSColin Finck typedef struct tagENUMHEADERROW 1266*c2c66affSColin Finck { 1267*c2c66affSColin Finck HHEADERROW hRow; 1268*c2c66affSColin Finck LPSTR pszHeader; 1269*c2c66affSColin Finck LPSTR pszData; 1270*c2c66affSColin Finck ULONG cchData; 1271*c2c66affSColin Finck DWORD_PTR dwReserved; 1272*c2c66affSColin Finck } ENUMHEADERROW, *LPENUMHEADERROW; 1273*c2c66affSColin Finck 1274*c2c66affSColin Finck /* FIXME: fill this in */ 1275*c2c66affSColin Finck } 1276*c2c66affSColin Finck 1277*c2c66affSColin Finck [ 1278*c2c66affSColin Finck uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4), 1279*c2c66affSColin Finck object 1280*c2c66affSColin Finck ] 1281*c2c66affSColin Finck interface IMimeEnumProperties : IUnknown 1282*c2c66affSColin Finck { 1283*c2c66affSColin Finck typedef [unique] IMimeEnumProperties *LPMIMEENUMPROPERTIES; 1284*c2c66affSColin Finck 1285*c2c66affSColin Finck typedef struct tagENUMPROPERTY 1286*c2c66affSColin Finck { 1287*c2c66affSColin Finck LPSTR pszName; 1288*c2c66affSColin Finck HHEADERROW hRow; 1289*c2c66affSColin Finck DWORD dwPropId; 1290*c2c66affSColin Finck } ENUMPROPERTY, *LPENUMPROPERTY; 1291*c2c66affSColin Finck 1292*c2c66affSColin Finck HRESULT Next( 1293*c2c66affSColin Finck [in] ULONG cFetch, 1294*c2c66affSColin Finck [in, out] LPENUMPROPERTY prgProp, 1295*c2c66affSColin Finck [out] ULONG *pcFetched); 1296*c2c66affSColin Finck 1297*c2c66affSColin Finck HRESULT Skip( 1298*c2c66affSColin Finck [in] ULONG cItems); 1299*c2c66affSColin Finck 1300*c2c66affSColin Finck HRESULT Reset(void); 1301*c2c66affSColin Finck 1302*c2c66affSColin Finck HRESULT Clone( 1303*c2c66affSColin Finck [out] IMimeEnumProperties **ppEnum); 1304*c2c66affSColin Finck 1305*c2c66affSColin Finck HRESULT Count( 1306*c2c66affSColin Finck [out] ULONG *pcItems); 1307*c2c66affSColin Finck 1308*c2c66affSColin Finck } 1309*c2c66affSColin Finck 1310*c2c66affSColin Finck [ 1311*c2c66affSColin Finck uuid(c5588354-7f86-11d0-8252-00c04fd85ab4), 1312*c2c66affSColin Finck object 1313*c2c66affSColin Finck ] 1314*c2c66affSColin Finck interface IMimeEnumAddressTypes : IUnknown 1315*c2c66affSColin Finck { 1316*c2c66affSColin Finck /* FIXME: fill this in */ 1317*c2c66affSColin Finck } 1318*c2c66affSColin Finck 1319*c2c66affSColin Finck [ 1320*c2c66affSColin Finck uuid(c5588350-7f86-11d0-8252-00c04fd85ab4), 1321*c2c66affSColin Finck object 1322*c2c66affSColin Finck ] 1323*c2c66affSColin Finck interface IMimeEnumMessageParts : IUnknown 1324*c2c66affSColin Finck { 1325*c2c66affSColin Finck /* FIXME: fill this in */ 1326*c2c66affSColin Finck } 1327*c2c66affSColin Finck 1328*c2c66affSColin Finck [ 1329*c2c66affSColin Finck uuid(64577981-86d7-11d1-bdfc-00c04fa31009), 1330*c2c66affSColin Finck object 1331*c2c66affSColin Finck ] 1332*c2c66affSColin Finck interface IHashTable : IUnknown 1333*c2c66affSColin Finck { 1334*c2c66affSColin Finck /* FIXME: fill this in */ 1335*c2c66affSColin Finck } 1336*c2c66affSColin Finck 1337*c2c66affSColin Finck [ 1338*c2c66affSColin Finck uuid(c5588351-7f86-11d0-8252-00c04fd85ab4), 1339*c2c66affSColin Finck object 1340*c2c66affSColin Finck ] 1341*c2c66affSColin Finck interface IMimeAllocator : IMalloc 1342*c2c66affSColin Finck { 1343*c2c66affSColin Finck typedef [unique] IMimeAllocator *LPMIMEALLOCATOR; 1344*c2c66affSColin Finck 1345*c2c66affSColin Finck HRESULT FreeParamInfoArray( 1346*c2c66affSColin Finck [in] ULONG cParams, 1347*c2c66affSColin Finck [in] LPMIMEPARAMINFO prgParam, 1348*c2c66affSColin Finck [in] boolean fFreeArray); 1349*c2c66affSColin Finck 1350*c2c66affSColin Finck HRESULT FreeAddressList( 1351*c2c66affSColin Finck [in,out] LPADDRESSLIST pList); 1352*c2c66affSColin Finck 1353*c2c66affSColin Finck HRESULT FreeAddressProps( 1354*c2c66affSColin Finck [in,out] LPADDRESSPROPS pAddress); 1355*c2c66affSColin Finck 1356*c2c66affSColin Finck HRESULT ReleaseObjects( 1357*c2c66affSColin Finck [in] ULONG cObjects, 1358*c2c66affSColin Finck [in] IUnknown **prgpUnknown, 1359*c2c66affSColin Finck [in] boolean fFreeArray); 1360*c2c66affSColin Finck 1361*c2c66affSColin Finck HRESULT FreeEnumHeaderRowArray( 1362*c2c66affSColin Finck [in] ULONG cRows, 1363*c2c66affSColin Finck [in] LPENUMHEADERROW prgRow, 1364*c2c66affSColin Finck [in] boolean fFreeArray); 1365*c2c66affSColin Finck 1366*c2c66affSColin Finck HRESULT FreeEnumPropertyArray( 1367*c2c66affSColin Finck [in] ULONG cProps, 1368*c2c66affSColin Finck [in] LPENUMPROPERTY prgProp, 1369*c2c66affSColin Finck [in] boolean fFreeArray); 1370*c2c66affSColin Finck 1371*c2c66affSColin Finck HRESULT FreeThumbprint( 1372*c2c66affSColin Finck [in] THUMBBLOB *pthumbprint); 1373*c2c66affSColin Finck 1374*c2c66affSColin Finck HRESULT PropVariantClear( 1375*c2c66affSColin Finck [in] LPPROPVARIANT pProp); 1376*c2c66affSColin Finck 1377*c2c66affSColin Finck } 1378*c2c66affSColin Finck 1379*c2c66affSColin Finck [ 1380*c2c66affSColin Finck uuid(feceaffd-c441-11d1-960e-00c04fbd7c09), 1381*c2c66affSColin Finck object 1382*c2c66affSColin Finck ] 1383*c2c66affSColin Finck interface IMimeObjResolver : IUnknown 1384*c2c66affSColin Finck { 1385*c2c66affSColin Finck /* FIXME: fill this in */ 1386*c2c66affSColin Finck } 1387*c2c66affSColin Finck 1388*c2c66affSColin Finck [ 1389*c2c66affSColin Finck uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009), 1390*c2c66affSColin Finck object 1391*c2c66affSColin Finck ] 1392*c2c66affSColin Finck interface IFontCache : IUnknown 1393*c2c66affSColin Finck { 1394*c2c66affSColin Finck /* FIXME: fill this in */ 1395*c2c66affSColin Finck } 1396*c2c66affSColin Finck 1397*c2c66affSColin Finck [ 1398*c2c66affSColin Finck uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009), 1399*c2c66affSColin Finck object 1400*c2c66affSColin Finck ] 1401*c2c66affSColin Finck interface IFontCacheNotify : IUnknown 1402*c2c66affSColin Finck { 1403*c2c66affSColin Finck /* FIXME: fill this in */ 1404*c2c66affSColin Finck } 1405*c2c66affSColin Finck 1406*c2c66affSColin Finck [ 1407*c2c66affSColin Finck uuid(70183210-7b36-11d2-8c12-00c04fa31009), 1408*c2c66affSColin Finck object 1409*c2c66affSColin Finck ] 1410*c2c66affSColin Finck interface IMimeEditTag : IUnknown 1411*c2c66affSColin Finck { 1412*c2c66affSColin Finck /* FIXME: fill this in */ 1413*c2c66affSColin Finck } 1414*c2c66affSColin Finck 1415*c2c66affSColin Finck [ 1416*c2c66affSColin Finck uuid(d09ee528-7b38-11d2-8c12-00c04fa31009), 1417*c2c66affSColin Finck object 1418*c2c66affSColin Finck ] 1419*c2c66affSColin Finck interface IMimeEditTagCollection : IUnknown 1420*c2c66affSColin Finck { 1421*c2c66affSColin Finck /* FIXME: fill this in */ 1422*c2c66affSColin Finck } 1423*c2c66affSColin Finck 1424*c2c66affSColin Finck [ 1425*c2c66affSColin Finck uuid(ba715ae0-a740-11d2-8b22-0080c76b34c6), 1426*c2c66affSColin Finck local 1427*c2c66affSColin Finck ] 1428*c2c66affSColin Finck interface IMimeSecurityCallback : IUnknown 1429*c2c66affSColin Finck { 1430*c2c66affSColin Finck /* FIXME: fill this in */ 1431*c2c66affSColin Finck 1432*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_UNKNOWN 0") 1433*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYTRANS 1") 1434*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYAGREE 2") 1435*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_MAIL_LIST 3") 1436*c2c66affSColin Finck 1437*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_CERTIFICATE 0") 1438*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_KEYTRANS 1") 1439*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_PROVIDER 2") 1440*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_EPHEMERAL_KEYAGREE 3") 1441*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_STATIC_KEYAGREE 4") 1442*c2c66affSColin Finck 1443*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_CERTIFICATE 0") 1444*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_ISSUERSERIAL 1") 1445*c2c66affSColin Finck cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_KEY_ID 2") 1446*c2c66affSColin Finck 1447*c2c66affSColin Finck } 1448*c2c66affSColin Finck} 1449*c2c66affSColin Finck 1450*c2c66affSColin Finckcpp_quote("#ifdef __cplusplus") 1451*c2c66affSColin Finckcpp_quote(" extern \"C\" {") 1452*c2c66affSColin Finckcpp_quote("#endif") 1453*c2c66affSColin Finck 1454*c2c66affSColin Finckcpp_quote("") 1455*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);") 1456*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);") 1457*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);") 1458*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);") 1459*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);") 1460*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);") 1461*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);") 1462*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);") 1463*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);") 1464*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);") 1465*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);") 1466*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);") 1467*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);") 1468*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);") 1469*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);") 1470*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);") 1471*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);") 1472*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);") 1473*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);") 1474*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);") 1475*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);") 1476*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);") 1477*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);") 1478*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);") 1479*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);") 1480*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);") 1481*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);") 1482*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);") 1483*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);") 1484*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);") 1485*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);") 1486*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);") 1487*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);") 1488*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);") 1489*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);") 1490*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);") 1491*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);") 1492*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);") 1493*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);") 1494*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);") 1495*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);") 1496*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);") 1497*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);") 1498*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);") 1499*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);") 1500*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);") 1501*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);") 1502*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);") 1503*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);") 1504*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);") 1505*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);") 1506*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);") 1507*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);") 1508*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);") 1509*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);") 1510*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);") 1511*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);") 1512*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);") 1513*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);") 1514*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);") 1515*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);") 1516*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);") 1517*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);") 1518*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);") 1519*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);") 1520*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);") 1521*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);") 1522*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);") 1523*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);") 1524*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);") 1525*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);") 1526*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);") 1527*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);") 1528*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);") 1529*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);") 1530*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);") 1531*c2c66affSColin Finck 1532*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);") 1533*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);") 1534*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);") 1535*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);") 1536*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);") 1537*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);") 1538*c2c66affSColin Finck 1539*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema**);") 1540*c2c66affSColin Finckcpp_quote("HRESULT WINAPI MimeGetAddressFormatW(REFIID,void*,DWORD,ADDRESSFORMAT,WCHAR**);") 1541*c2c66affSColin Finckcpp_quote("#ifdef __cplusplus") 1542*c2c66affSColin Finckcpp_quote("}") 1543*c2c66affSColin Finckcpp_quote("#endif") 1544