Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

9633 lines
312 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 6.00.0361 */
  3. /* Compiler settings for mimeole.idl:
  4. Oicf, W1, Zp8, env=Win32 (32b run)
  5. protocol : dce , ms_ext, c_ext
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. //@@MIDL_FILE_HEADING( )
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __mimeole_h__
  27. #define __mimeole_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */
  32. #ifndef __IMimeInternational_FWD_DEFINED__
  33. #define __IMimeInternational_FWD_DEFINED__
  34. typedef interface IMimeInternational IMimeInternational;
  35. #endif /* __IMimeInternational_FWD_DEFINED__ */
  36. #ifndef __IMimeSecurity_FWD_DEFINED__
  37. #define __IMimeSecurity_FWD_DEFINED__
  38. typedef interface IMimeSecurity IMimeSecurity;
  39. #endif /* __IMimeSecurity_FWD_DEFINED__ */
  40. #ifndef __IMimeHeaderTable_FWD_DEFINED__
  41. #define __IMimeHeaderTable_FWD_DEFINED__
  42. typedef interface IMimeHeaderTable IMimeHeaderTable;
  43. #endif /* __IMimeHeaderTable_FWD_DEFINED__ */
  44. #ifndef __IMimePropertySchema_FWD_DEFINED__
  45. #define __IMimePropertySchema_FWD_DEFINED__
  46. typedef interface IMimePropertySchema IMimePropertySchema;
  47. #endif /* __IMimePropertySchema_FWD_DEFINED__ */
  48. #ifndef __IMimePropertySet_FWD_DEFINED__
  49. #define __IMimePropertySet_FWD_DEFINED__
  50. typedef interface IMimePropertySet IMimePropertySet;
  51. #endif /* __IMimePropertySet_FWD_DEFINED__ */
  52. #ifndef __IMimeAddressTable_FWD_DEFINED__
  53. #define __IMimeAddressTable_FWD_DEFINED__
  54. typedef interface IMimeAddressTable IMimeAddressTable;
  55. #endif /* __IMimeAddressTable_FWD_DEFINED__ */
  56. #ifndef __IMimeWebDocument_FWD_DEFINED__
  57. #define __IMimeWebDocument_FWD_DEFINED__
  58. typedef interface IMimeWebDocument IMimeWebDocument;
  59. #endif /* __IMimeWebDocument_FWD_DEFINED__ */
  60. #ifndef __IMimeBody_FWD_DEFINED__
  61. #define __IMimeBody_FWD_DEFINED__
  62. typedef interface IMimeBody IMimeBody;
  63. #endif /* __IMimeBody_FWD_DEFINED__ */
  64. #ifndef __IMimeMessageTree_FWD_DEFINED__
  65. #define __IMimeMessageTree_FWD_DEFINED__
  66. typedef interface IMimeMessageTree IMimeMessageTree;
  67. #endif /* __IMimeMessageTree_FWD_DEFINED__ */
  68. #ifndef __IMimeMessage_FWD_DEFINED__
  69. #define __IMimeMessage_FWD_DEFINED__
  70. typedef interface IMimeMessage IMimeMessage;
  71. #endif /* __IMimeMessage_FWD_DEFINED__ */
  72. #ifndef __IMimeMessageCallback_FWD_DEFINED__
  73. #define __IMimeMessageCallback_FWD_DEFINED__
  74. typedef interface IMimeMessageCallback IMimeMessageCallback;
  75. #endif /* __IMimeMessageCallback_FWD_DEFINED__ */
  76. #ifndef __IPersistMime_FWD_DEFINED__
  77. #define __IPersistMime_FWD_DEFINED__
  78. typedef interface IPersistMime IPersistMime;
  79. #endif /* __IPersistMime_FWD_DEFINED__ */
  80. #ifndef __IMimeMessageParts_FWD_DEFINED__
  81. #define __IMimeMessageParts_FWD_DEFINED__
  82. typedef interface IMimeMessageParts IMimeMessageParts;
  83. #endif /* __IMimeMessageParts_FWD_DEFINED__ */
  84. #ifndef __IMimeEnumHeaderRows_FWD_DEFINED__
  85. #define __IMimeEnumHeaderRows_FWD_DEFINED__
  86. typedef interface IMimeEnumHeaderRows IMimeEnumHeaderRows;
  87. #endif /* __IMimeEnumHeaderRows_FWD_DEFINED__ */
  88. #ifndef __IMimeEnumProperties_FWD_DEFINED__
  89. #define __IMimeEnumProperties_FWD_DEFINED__
  90. typedef interface IMimeEnumProperties IMimeEnumProperties;
  91. #endif /* __IMimeEnumProperties_FWD_DEFINED__ */
  92. #ifndef __IMimeEnumAddressTypes_FWD_DEFINED__
  93. #define __IMimeEnumAddressTypes_FWD_DEFINED__
  94. typedef interface IMimeEnumAddressTypes IMimeEnumAddressTypes;
  95. #endif /* __IMimeEnumAddressTypes_FWD_DEFINED__ */
  96. #ifndef __IMimeEnumMessageParts_FWD_DEFINED__
  97. #define __IMimeEnumMessageParts_FWD_DEFINED__
  98. typedef interface IMimeEnumMessageParts IMimeEnumMessageParts;
  99. #endif /* __IMimeEnumMessageParts_FWD_DEFINED__ */
  100. #ifndef __IHashTable_FWD_DEFINED__
  101. #define __IHashTable_FWD_DEFINED__
  102. typedef interface IHashTable IHashTable;
  103. #endif /* __IHashTable_FWD_DEFINED__ */
  104. #ifndef __IMimeAllocator_FWD_DEFINED__
  105. #define __IMimeAllocator_FWD_DEFINED__
  106. typedef interface IMimeAllocator IMimeAllocator;
  107. #endif /* __IMimeAllocator_FWD_DEFINED__ */
  108. #ifndef __IMimeObjResolver_FWD_DEFINED__
  109. #define __IMimeObjResolver_FWD_DEFINED__
  110. typedef interface IMimeObjResolver IMimeObjResolver;
  111. #endif /* __IMimeObjResolver_FWD_DEFINED__ */
  112. #ifndef __IFontCache_FWD_DEFINED__
  113. #define __IFontCache_FWD_DEFINED__
  114. typedef interface IFontCache IFontCache;
  115. #endif /* __IFontCache_FWD_DEFINED__ */
  116. #ifndef __IFontCacheNotify_FWD_DEFINED__
  117. #define __IFontCacheNotify_FWD_DEFINED__
  118. typedef interface IFontCacheNotify IFontCacheNotify;
  119. #endif /* __IFontCacheNotify_FWD_DEFINED__ */
  120. #ifndef __IMimeEditTag_FWD_DEFINED__
  121. #define __IMimeEditTag_FWD_DEFINED__
  122. typedef interface IMimeEditTag IMimeEditTag;
  123. #endif /* __IMimeEditTag_FWD_DEFINED__ */
  124. #ifndef __IMimeEditTagCollection_FWD_DEFINED__
  125. #define __IMimeEditTagCollection_FWD_DEFINED__
  126. typedef interface IMimeEditTagCollection IMimeEditTagCollection;
  127. #endif /* __IMimeEditTagCollection_FWD_DEFINED__ */
  128. /* header files for imported files */
  129. #include "ocidl.h"
  130. #include "propidl.h"
  131. #ifdef __cplusplus
  132. extern "C"{
  133. #endif
  134. void * __RPC_USER MIDL_user_allocate(size_t);
  135. void __RPC_USER MIDL_user_free( void * );
  136. /* interface __MIDL_itf_mimeole_0000 */
  137. /* [local] */
  138. #if (_WIN32_OE >= 0x0500)
  139. #endif //_WIN32_OE
  140. //--------------------------------------------------------------------------------
  141. // MIMEOLE.H
  142. //--------------------------------------------------------------------------------
  143. // (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.
  144. //
  145. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  146. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  147. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  148. // PARTICULAR PURPOSE.
  149. //--------------------------------------------------------------------------------
  150. #pragma comment(lib,"uuid.lib")
  151. // --------------------------------------------------------------------------------
  152. // GUIDS
  153. // --------------------------------------------------------------------------------
  154. // {E4B28371-83B0-11d0-8259-00C04FD85AB4}
  155. DEFINE_GUID(LIBID_MIMEOLE, 0xe4b28371, 0x83b0, 0x11d0, 0x82, 0x59, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  156. // {05300401-BCBC-11d0-85E3-00C04FD85AB4}
  157. DEFINE_GUID(CLSID_IMimeHtmlProtocol, 0x5300401, 0xbcbc, 0x11d0, 0x85, 0xe3, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  158. // {C5588354-7F86-11d0-8252-00C04FD85AB4}
  159. DEFINE_GUID(IID_IMimeEnumAddressTypes, 0xc5588354, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  160. // {EE519F11-851A-11d0-825C-00C04FD85AB4}
  161. DEFINE_GUID(IID_IMimeWebDocument, 0xee519f11, 0x851a, 0x11d0, 0x82, 0x5c, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  162. // {FD853CEF-7F86-11d0-8252-00C04FD85AB4}
  163. DEFINE_GUID(IID_IUnicodeStream, 0xfd853cef, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  164. // {C558834A-7F86-11d0-8252-00C04FD85AB4}
  165. DEFINE_GUID(IID_IMimeAddressTable, 0xc558834a, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  166. // {C558834B-7F86-11d0-8252-00C04FD85AB4}
  167. DEFINE_GUID(IID_IMimeAddressInfo, 0xc558834b, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  168. // {C558834D-7F86-11d0-8252-00C04FD85AB4}
  169. DEFINE_GUID(IID_IMimeEnumHeaderRows, 0xc558834d, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  170. // {C558834E-7F86-11d0-8252-00C04FD85AB4}
  171. DEFINE_GUID(IID_IMimeInlineSupport, 0xc558834e, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  172. // {C5588350-7F86-11d0-8252-00C04FD85AB4}
  173. DEFINE_GUID(IID_IMimeEnumMessageParts, 0xc5588350, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  174. // {FD853CD9-7F86-11d0-8252-00C04FD85AB4}
  175. DEFINE_GUID(CLSID_IMimeInternational, 0xfd853cd9, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  176. // {C5588349-7F86-11d0-8252-00C04FD85AB4}
  177. DEFINE_GUID(IID_IMimeInternational, 0xc5588349, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  178. // {FD853CDB-7F86-11d0-8252-00C04FD85AB4}
  179. DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  180. // {C558834C-7F86-11d0-8252-00C04FD85AB4}
  181. DEFINE_GUID(IID_IMimeBody, 0xc558834c, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  182. // {FD853CDC-7F86-11d0-8252-00C04FD85AB4}
  183. DEFINE_GUID(CLSID_IMimeMessageParts, 0xfd853cdc, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  184. // {C558834F-7F86-11d0-8252-00C04FD85AB4}
  185. DEFINE_GUID(IID_IMimeMessageParts, 0xc558834f, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  186. // {FD853CDD-7F86-11d0-8252-00C04FD85AB4}
  187. DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  188. // {C5588351-7F86-11d0-8252-00C04FD85AB4}
  189. DEFINE_GUID(IID_IMimeAllocator, 0xc5588351, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  190. // {FD853CDE-7F86-11d0-8252-00C04FD85AB4}
  191. DEFINE_GUID(CLSID_IMimeSecurity, 0xfd853cde, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  192. // {C5588353-7F86-11d0-8252-00C04FD85AB4}
  193. DEFINE_GUID(IID_IMimeSecurity, 0xc5588353, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  194. // {FD853CDF-7F86-11d0-8252-00C04FD85AB4}
  195. DEFINE_GUID(CLSID_IVirtualStream, 0xfd853cdf, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  196. // {C5588359-7F86-11d0-8252-00C04FD85AB4}
  197. DEFINE_GUID(IID_IVirtualStream, 0xc5588359, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  198. // {FD853CE0-7F86-11d0-8252-00C04FD85AB4}
  199. DEFINE_GUID(CLSID_IMimeHeaderTable, 0xfd853ce0, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  200. // {FD853CD1-7F86-11d0-8252-00C04FD85AB4}
  201. DEFINE_GUID(IID_IMimeHeaderTable, 0xfd853cd1, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  202. // {FD853CE1-7F86-11d0-8252-00C04FD85AB4}
  203. DEFINE_GUID(CLSID_IMimePropertySet, 0xfd853ce1, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  204. // {FD853CD3-7F86-11d0-8252-00C04FD85AB4}
  205. DEFINE_GUID(IID_IMimePropertySet, 0xfd853cd3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  206. // {FD853CE2-7F86-11d0-8252-00C04FD85AB4}
  207. DEFINE_GUID(CLSID_IMimeMessageTree, 0xfd853ce2, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  208. // {FD853CD4-7F86-11d0-8252-00C04FD85AB4}
  209. DEFINE_GUID(IID_IMimeMessageTree, 0xfd853cd4, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  210. // {FD853CE3-7F86-11d0-8252-00C04FD85AB4}
  211. DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  212. // {FD853CD5-7F86-11d0-8252-00C04FD85AB4}
  213. DEFINE_GUID(IID_IMimeMessage, 0xfd853cd5, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  214. // {FD853CED-7F86-11d0-8252-00C04FD85AB4}
  215. DEFINE_GUID(CLSID_IMimePropertySchema, 0xfd853ced, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  216. // {FD853CEC-7F86-11d0-8252-00C04FD85AB4}
  217. DEFINE_GUID(IID_IMimePropertySchema, 0xfd853cec, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  218. // {FD853CEE-7F86-11d0-8252-00C04FD85AB4}
  219. DEFINE_GUID(IID_IMimeEnumProperties, 0xfd853cee, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  220. // {DE4AD8DA-555F-11d1-8DD0-00C04FB951F9}
  221. DEFINE_GUID(IID_IPersistMime, 0xde4ad8da, 0x555f, 0x11d1, 0x8d, 0xd0, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xf9);
  222. // {761AA641-7BDA-11d1-8AA9-00C04FB951F3}
  223. DEFINE_GUID(IID_IMimeMessageCallback, 0x761aa641, 0x7bda, 0x11d1, 0x8a, 0xa9, 0x0, 0xc0, 0x4f, 0xb9, 0x51, 0xf3);
  224. #if (_WIN32_OE >= 0x0500)
  225. // {1C82EAD9-508E-11d1-8DCF-00C04FB951F9}
  226. DEFINE_GUID(CLSID_MimeEdit, 0x1c82ead9, 0x508e, 0x11d1, 0x8d, 0xcf, 0x0, 0xc0, 0x4f, 0xb9, 0x51, 0xf9);
  227. // {1C82EADA-508E-11d1-8DCF-00C04FB951F9}
  228. DEFINE_GUID(CMDSETID_MimeEdit, 0x1c82eada, 0x508e, 0x11d1, 0x8d, 0xcf, 0x0, 0xc0, 0x4f, 0xb9, 0x51, 0xf9);
  229. // {1C82EADB-508E-11d1-8DCF-00C04FB951F9}
  230. DEFINE_GUID(CMDSETID_MimeEditHost, 0x1c82eadb, 0x508e, 0x11d1, 0x8d, 0xcf, 0x0, 0xc0, 0x4f, 0xb9, 0x51, 0xf9);
  231. // {64577981-86D7-11d1-BDFC-00C04FA31009}
  232. DEFINE_GUID(IID_IHashTable, 0x64577981, 0x86d7, 0x11d1, 0xbd, 0xfc, 0x0, 0xc0, 0x4f, 0xa3, 0x10, 0x9);
  233. // {64577982-86D7-11d1-BDFC-00C04FA31009}
  234. DEFINE_GUID(CLSID_IHashTable, 0x64577982, 0x86d7, 0x11d1, 0xbd, 0xfc, 0x0, 0xc0, 0x4f, 0xa3, 0x10, 0x9);
  235. // {B0D17FC2-7BC4-11d1-BDFA-00C04FA31009}
  236. DEFINE_GUID(CLSID_IFontCache, 0xb0d17fc2, 0x7bc4, 0x11d1, 0xbd, 0xfa, 0x0, 0xc0, 0x4f, 0xa3, 0x10, 0x9);
  237. // {B0D17FC4-7BC4-11d1-BDFA-00C04FA31009}
  238. DEFINE_GUID(IID_IFontCache, 0xb0d17fc4, 0x7bc4, 0x11d1, 0xbd, 0xfa, 0x0, 0xc0, 0x4f, 0xa3, 0x10, 0x9);
  239. // {B0D17FC5-7BC4-11d1-BDFA-00C04FA31009}
  240. DEFINE_GUID(IID_IFontCacheNotify, 0xb0d17fc5, 0x7bc4, 0x11d1, 0xbd, 0xfa, 0x0, 0xc0, 0x4f, 0xa3, 0x10, 0x9);
  241. // {35461E30-C488-11d1-960E-00C04FBD7C09}
  242. DEFINE_GUID(CLSID_IMimeObjResolver, 0x35461e30, 0xc488, 0x11d1, 0x96, 0xe, 0x0, 0xc0, 0x4f, 0xbd, 0x7c, 0x9);
  243. // {FECEAFFD-C441-11d1-960E-00C04FBD7C09}
  244. DEFINE_GUID(IID_IMimeObjResolver, 0xfeceaffd, 0xc441, 0x11d1, 0x96, 0xe, 0x0, 0xc0, 0x4f, 0xbd, 0x7c, 0x9);
  245. // {70183210-7b36-11d2-8c12-00c04fa31009}
  246. DEFINE_GUID(IID_IMimeEditTag, 0x70183210, 0x7b36, 0x11d2, 0x8c, 0x12, 0x00, 0xc0, 0x4f, 0xa3, 0x10, 0x09);
  247. // {d09ee528-7b38-11d2-8c12-00c04fa31009}
  248. DEFINE_GUID(IID_IMimeEditTagCollection, 0xd09ee528, 0x7b38, 0x11d2, 0x8c, 0x12, 0x00, 0xc0, 0x4f, 0xa3, 0x10, 0x09);
  249. #endif //_WIN32_OE
  250. // --------------------------------------------------------------------------------
  251. // Errors
  252. // --------------------------------------------------------------------------------
  253. #ifndef FACILITY_INTERNET
  254. #define FACILITY_INTERNET 12
  255. #endif
  256. #ifndef HR_E
  257. #define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)
  258. #endif
  259. #ifndef HR_S
  260. #define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)
  261. #endif
  262. #ifndef HR_CODE
  263. #define HR_CODE(hr) (INT)(hr & 0xffff)
  264. #endif
  265. // --------------------------------------------------------------------------------
  266. // MIMEOLE Failure Return Values
  267. // --------------------------------------------------------------------------------
  268. #define MIME_E_REG_CREATE_KEY HR_E(0xCE01)
  269. #define MIME_E_REG_QUERY_INFO HR_E(0xCE02)
  270. #define MIME_E_INVALID_ENCTYPE HR_E(0xCE03)
  271. #define MIME_E_BOUNDARY_MISMATCH HR_E(0xCE04)
  272. #define MIME_E_NOT_FOUND HR_E(0xCE05)
  273. #define MIME_E_NO_DATA HR_E(0xCE05)
  274. #define MIME_E_BUFFER_TOO_SMALL HR_E(0xCE06)
  275. #define MIME_E_INVALID_ITEM_FLAGS HR_E(0xCE07)
  276. #define MIME_E_ONE_LINE_ITEM HR_E(0xCE08)
  277. #define MIME_E_INVALID_HANDLE HR_E(0xCE09)
  278. #define MIME_E_CHARSET_TRANSLATE HR_E(0xCE0A)
  279. #define MIME_E_NOT_INITIALIZED HR_E(0xCE0B)
  280. #define MIME_E_NO_MORE_ROWS HR_E(0xCE0C)
  281. #define MIME_E_ALREADY_BOUND HR_E(0xCE0D)
  282. #define MIME_E_CANT_RESET_ROOT HR_E(0xCE0E)
  283. #define MIME_E_INSERT_NOT_ALLOWED HR_E(0xCE0F)
  284. #define MIME_E_BAD_BODY_LOCATION HR_E(0xCE10)
  285. #define MIME_E_NOT_MULTIPART HR_E(0xCE11)
  286. #define MIME_E_NO_MULTIPART_BOUNDARY HR_E(0xCE12)
  287. #define MIME_E_CONVERT_NOT_NEEDED HR_E(0xCE13)
  288. #define MIME_E_CANT_MOVE_BODY HR_E(0xCE14)
  289. #define MIME_E_UNKNOWN_BODYTREE_VERSION HR_E(0xCE15)
  290. #define MIME_E_NOTHING_TO_SAVE HR_E(0xCE16)
  291. #define MIME_E_NEED_SAVE_MESSAGE HR_E(0xCE17)
  292. #define MIME_E_NOTHING_TO_REVERT HR_E(0xCE18)
  293. #define MIME_E_MSG_SIZE_DIFF HR_E(0xCE19)
  294. #define MIME_E_CANT_RESET_PARENT HR_E(0xCE1A)
  295. #define MIME_E_CORRUPT_CACHE_TREE HR_E(0xCE1B)
  296. #define MIME_E_BODYTREE_OUT_OF_SYNC HR_E(0xCE1C)
  297. #define MIME_E_INVALID_ENCODINGTYPE HR_E(0xCE1D)
  298. #define MIME_E_MULTIPART_NO_DATA HR_E(0xCE1E)
  299. #define MIME_E_INVALID_OPTION_VALUE HR_E(0xCE1F)
  300. #define MIME_E_INVALID_OPTION_ID HR_E(0xCE20)
  301. #define MIME_E_INVALID_HEADER_NAME HR_E(0xCE21)
  302. #define MIME_E_NOT_BOUND HR_E(0xCE22)
  303. #define MIME_E_MAX_SIZE_TOO_SMALL HR_E(0xCE23)
  304. #define MIME_E_MULTIPART_HAS_CHILDREN HR_E(0xCE25)
  305. #define MIME_E_INVALID_PROP_FLAGS HR_E(0xCE26)
  306. #define MIME_E_INVALID_ADDRESS_TYPE HR_E(0xCE27)
  307. #define MIME_E_INVALID_OBJECT_IID HR_E(0xCE28)
  308. #define MIME_E_MLANG_DLL_NOT_FOUND HR_E(0xCE29)
  309. #define MIME_E_ROOT_NOT_EMPTY HR_E(0xCE2A)
  310. #define MIME_E_MLANG_BAD_DLL HR_E(0xCE2B)
  311. #define MIME_E_REG_OPEN_KEY HR_E(0xCE2C)
  312. #define MIME_E_INVALID_INET_DATE HR_E(0xCE2D)
  313. #define MIME_E_INVALID_BODYTYPE HR_E(0xCE2E)
  314. #define MIME_E_INVALID_DELETE_TYPE HR_E(0xCE2F)
  315. #define MIME_E_OPTION_HAS_NO_VALUE HR_E(0xCE30)
  316. #define MIME_E_INVALID_CHARSET_TYPE HR_E(0xCE31)
  317. #define MIME_E_VARTYPE_NO_CONVERT HR_E(0xCE32)
  318. #define MIME_E_INVALID_VARTYPE HR_E(0xCE33)
  319. #define MIME_E_NO_MORE_ADDRESS_TYPES HR_E(0xCE34)
  320. #define MIME_E_INVALID_ENCODING_TYPE HR_E(0xCE35)
  321. #define MIME_S_ILLEGAL_LINES_FOUND HR_S(0xCE36)
  322. #define MIME_S_MIME_VERSION HR_S(0xCE37)
  323. #define MIME_E_INVALID_TEXT_TYPE HR_E(0xCE38)
  324. #define MIME_E_READ_ONLY HR_E(0xCE39)
  325. #define MIME_S_INVALID_MESSAGE HR_S(0xCE3A)
  326. #define MIME_S_CHARSET_CONFLICT HR_S(0xCE3B)
  327. #define MIME_E_UNSUPPORTED_VARTYPE HR_E(0xCE3C)
  328. #define MIME_S_NO_CHARSET_CONVERT HR_S(0xCE3D)
  329. #define MIME_E_URL_NOTFOUND HR_E(0xCE3E)
  330. #define MIME_E_BAD_TEXT_DATA HR_E(0xCE3F)
  331. #define MIME_E_NO_SIGNER HR_S(0xCE40)
  332. // ---------------------------------------------------------------------------
  333. // MIMEOLE Security Error Return Values
  334. // ---------------------------------------------------------------------------
  335. #define MIME_E_SECURITY_NOTINIT HR_E(0xCEA0)
  336. #define MIME_E_SECURITY_LOADCRYPT32 HR_E(0xCEA1)
  337. #define MIME_E_SECURITY_BADPROCADDR HR_E(0xCEA2)
  338. #define MIME_E_SECURITY_NODEFAULT HR_E(0xCEB0)
  339. #define MIME_E_SECURITY_NOOP HR_E(0xCEB1)
  340. #define MIME_S_SECURITY_NOOP HR_S(0xCEB1)
  341. #define MIME_S_SECURITY_NONE HR_S(0xCEB2)
  342. #define MIME_S_SECURITY_ERROROCCURED HR_S(0xCEB3)
  343. #define MIME_E_SECURITY_USERCHOICE HR_E(0xCEB4)
  344. #define MIME_E_SECURITY_UNKMSGTYPE HR_E(0xCEB5)
  345. #define MIME_E_SECURITY_BADMESSAGE HR_E(0xCEB6)
  346. #define MIME_E_SECURITY_BADCONTENT HR_E(0xCEB7)
  347. #define MIME_E_SECURITY_BADSECURETYPE HR_E(0xCEB8)
  348. #define MIME_E_SECURITY_CLASSNOTSUPPORTED HR_E(0xCEB9)
  349. #define MIME_S_SECURITY_RECURSEONLY HR_S(0xCEBA)
  350. #define MIME_E_SECURITY_BADSTORE HR_E(0xCED0)
  351. #define MIME_S_SECURITY_NOCERT HR_S(0xCED1)
  352. #define MIME_E_SECURITY_NOCERT HR_E(0xCED1)
  353. #define MIME_E_SECURITY_CERTERROR HR_E(0xCED2)
  354. #define MIME_S_SECURITY_CERTERROR HR_S(0xCED2)
  355. #define MIME_S_SECURITY_NODEFCERT HR_S(0xCED3)
  356. #define MIME_E_SECURITY_BADSIGNATURE HR_E(0xCEE0)
  357. #define MIME_E_SECURITY_MULTSIGNERS HR_E(0xCEE1)
  358. #define MIME_E_SECURITY_NOSIGNINGCERT HR_E(0xCEE2)
  359. #define MIME_E_SECURITY_CANTDECRYPT HR_E(0xCEF0)
  360. #define MIME_E_SECURITY_ENCRYPTNOSENDERCERT HR_E(0xCEF1)
  361. #define MIME_S_SECURITY_NOSENDERCERT HR_S(0xCEF2)
  362. #if (_WIN32_OE >= 0x0500)
  363. // --------------------------------------------------------------------------------
  364. // MIMEEDIT Failure Return Values
  365. // --------------------------------------------------------------------------------
  366. #define MIMEEDIT_E_UNEXPECTED HR_E(0x1700)
  367. #define MIMEEDIT_E_DODEFAULT HR_E(0x1701)
  368. #define MIMEEDIT_E_LOADLIBRARYFAILURE HR_E(0x1702)
  369. #define MIMEEDIT_E_USERCANCEL HR_E(0x1703)
  370. #define MIMEEDIT_E_CHARSETNOTFOUND HR_E(0x1704)
  371. #define MIMEEDIT_E_ILLEGALBODYFORMAT HR_E(0x1705)
  372. #define MIMEEDIT_E_CANNOTSAVEUNTILPARSECOMPLETE HR_E(0x1706)
  373. #define MIMEEDIT_E_CANNOTSAVEWHILESOURCEEDITING HR_E(0x1707)
  374. // --------------------------------------------------------------------------------
  375. // MIMEEDIT Success Return Values
  376. // --------------------------------------------------------------------------------
  377. #define MIMEEDIT_S_OPENFILE HR_S(0x1750)
  378. #define MIMEEDIT_S_SAVEFILE HR_S(0x1751)
  379. // --------------------------------------------------------------------------------
  380. // MIMEEDIT Warning Return Values
  381. // --------------------------------------------------------------------------------
  382. #define MIMEEDIT_W_DOWNLOADNOTCOMPLETE HR_S(0x1760)
  383. #define MIMEEDIT_W_BADURLSNOTATTACHED HR_S(0x1761)
  384. #endif //_WIN32_OE
  385. // --------------------------------------------------------------------------------
  386. // String Definition Macros
  387. // --------------------------------------------------------------------------------
  388. #ifdef __cplusplus
  389. #define EXTERN_C extern "C"
  390. #else
  391. #define EXTERN_C extern
  392. #endif
  393. #ifndef STRCONSTA
  394. #ifdef DEFINE_STRCONST
  395. #define STRCONSTA(x,y) EXTERN_C const char x[] = y
  396. #define STRCONSTW(x,y) EXTERN_C const WCHAR x[] = L##y
  397. #else
  398. #define STRCONSTA(x,y) EXTERN_C const char x[]
  399. #define STRCONSTW(x,y) EXTERN_C const WCHAR x[]
  400. #endif
  401. #endif
  402. // --------------------------------------------------------------------------------
  403. // rfc822 Headers
  404. // --------------------------------------------------------------------------------
  405. STRCONSTA(STR_HDR_FROM, "From");
  406. STRCONSTA(STR_HDR_TO, "To");
  407. STRCONSTA(STR_HDR_CC, "Cc");
  408. STRCONSTA(STR_HDR_BCC, "Bcc");
  409. STRCONSTA(STR_HDR_SENDER, "Sender");
  410. STRCONSTA(STR_HDR_REPLYTO, "Reply-To");
  411. STRCONSTA(STR_HDR_RETURNPATH, "Return-Path");
  412. STRCONSTA(STR_HDR_RR, "Rr");
  413. STRCONSTA(STR_HDR_RETRCPTTO, "Return-Receipt-To");
  414. STRCONSTA(STR_HDR_APPARTO, "Apparently-To");
  415. STRCONSTA(STR_HDR_DATE, "Date");
  416. STRCONSTA(STR_HDR_RECEIVED, "Received");
  417. STRCONSTA(STR_HDR_MESSAGEID, "Message-ID");
  418. STRCONSTA(STR_HDR_XMAILER, "X-Mailer");
  419. STRCONSTA(STR_HDR_ENCODING, "Encoding");
  420. STRCONSTA(STR_HDR_ENCRYPTED, "Encrypted");
  421. STRCONSTA(STR_HDR_COMMENT, "Comment");
  422. STRCONSTA(STR_HDR_SUBJECT, "Subject");
  423. STRCONSTA(STR_HDR_MIMEVER, "MIME-Version");
  424. STRCONSTA(STR_HDR_CNTTYPE, "Content-Type");
  425. STRCONSTA(STR_HDR_CNTXFER, "Content-Transfer-Encoding");
  426. STRCONSTA(STR_HDR_CNTID, "Content-ID");
  427. STRCONSTA(STR_HDR_CNTDESC, "Content-Description");
  428. STRCONSTA(STR_HDR_CNTDISP, "Content-Disposition");
  429. STRCONSTA(STR_HDR_CNTBASE, "Content-Base");
  430. STRCONSTA(STR_HDR_CNTLOC, "Content-Location");
  431. STRCONSTA(STR_HDR_NEWSGROUPS, "Newsgroups");
  432. STRCONSTA(STR_HDR_PATH, "Path");
  433. STRCONSTA(STR_HDR_FOLLOWUPTO, "Followup-To");
  434. STRCONSTA(STR_HDR_EXPIRES, "Expires");
  435. STRCONSTA(STR_HDR_REFS, "References");
  436. STRCONSTA(STR_HDR_CONTROL, "Control");
  437. STRCONSTA(STR_HDR_DISTRIB, "Distribution");
  438. STRCONSTA(STR_HDR_KEYWORDS, "Keywords");
  439. STRCONSTA(STR_HDR_SUMMARY, "Summary");
  440. STRCONSTA(STR_HDR_APPROVED, "Approved");
  441. STRCONSTA(STR_HDR_LINES, "Lines");
  442. STRCONSTA(STR_HDR_XREF, "Xref");
  443. STRCONSTA(STR_HDR_ORG, "Organization");
  444. STRCONSTA(STR_HDR_XNEWSRDR, "X-Newsreader");
  445. STRCONSTA(STR_HDR_XPRI, "X-Priority");
  446. STRCONSTA(STR_HDR_XMSPRI, "X-MSMail-Priority");
  447. STRCONSTA(STR_HDR_OFFSETS, "X-Offsets");
  448. STRCONSTA(STR_HDR_XUNSENT, "X-Unsent");
  449. STRCONSTA(STR_HDR_ARTICLEID, "X-ArticleId");
  450. STRCONSTA(STR_HDR_NEWSGROUP, "X-Newsgroup");
  451. STRCONSTA(STR_HDR_XVOICEMAIL, "X-VoiceMail");
  452. // --------------------------------------------------------------------------------
  453. // Parameters Available through IMimePropertySet/IMimeBody
  454. // --------------------------------------------------------------------------------
  455. STRCONSTA(STR_PAR_CHARSET, "par:content-type:charset");
  456. STRCONSTA(STR_PAR_NUMBER, "par:content-type:number");
  457. STRCONSTA(STR_PAR_TOTAL, "par:content-type:total");
  458. STRCONSTA(STR_PAR_ID, "par:content-type:id");
  459. STRCONSTA(STR_PAR_BOUNDARY, "par:content-type:boundary");
  460. STRCONSTA(STR_PAR_NAME, "par:content-type:name");
  461. STRCONSTA(STR_PAR_PROTOCOL, "par:content-type:protocol");
  462. STRCONSTA(STR_PAR_MICALG, "par:content-type:micalg");
  463. STRCONSTA(STR_PAR_FILENAME, "par:content-disposition:filename");
  464. STRCONSTA(STR_PAR_TYPE, "par:content-type:type");
  465. STRCONSTA(STR_PAR_START, "par:content-type:start");
  466. #if (_WIN32_OE >= 0x0500)
  467. STRCONSTA(STR_PAR_ACCESSTYPE, "par:content-type:access-type");
  468. STRCONSTA(STR_PAR_XURL, "par:content-type:X-URL");
  469. STRCONSTA(STR_PAR_SIZE, "par:content-type:size");
  470. STRCONSTA(STR_PAR_SMIMETYPE, "par:content-type:smime-type");
  471. #endif
  472. // --------------------------------------------------------------------------------
  473. // Attributes Available through IMimePropertySet/IMimeBody
  474. // --------------------------------------------------------------------------------
  475. STRCONSTA(STR_ATT_FILENAME, "att:filename");
  476. STRCONSTA(STR_ATT_GENFNAME, "att:generated-filename");
  477. STRCONSTA(STR_ATT_PRITYPE, "att:pri-content-type");
  478. STRCONSTA(STR_ATT_SUBTYPE, "att:sub-content-type");
  479. STRCONSTA(STR_ATT_NORMSUBJ, "att:normalized-subject");
  480. STRCONSTA(STR_ATT_ILLEGAL, "att:illegal-lines");
  481. STRCONSTA(STR_ATT_RENDERED, "att:rendered"); // VT_UI4 - TRUE or FALSE
  482. STRCONSTA(STR_ATT_AUTOINLINED, "att:auto-inlined"); // VT_UI4 - TRUE or FALSE
  483. STRCONSTA(STR_ATT_SENTTIME, "att:sent-time");
  484. STRCONSTA(STR_ATT_RECVTIME, "att:received-time");
  485. STRCONSTA(STR_ATT_PRIORITY, "att:priority");
  486. STRCONSTA(STR_ATT_SERVER, "att:athena-server"); // VT_LPSTR
  487. #ifdef OE5_BETA2
  488. STRCONSTA(STR_ATT_ACCOUNTNAME, "att:athena-account-name"); // VT_LPSTR
  489. #else
  490. STRCONSTA(STR_ATT_ACCOUNT, "att:athena-account"); // VT_LPSTR
  491. #endif
  492. STRCONSTA(STR_ATT_UIDL, "att:athena-pop3-uidl"); // VT_LPSTR
  493. STRCONSTA(STR_ATT_STOREMSGID, "att:athena-store-msgid"); // VT_UI4
  494. STRCONSTA(STR_ATT_USERNAME, "att:athena-user-name"); // VT_LPSTR
  495. STRCONSTA(STR_ATT_FORWARDTO, "att:athena-forward-to"); // VT_LPSTR
  496. STRCONSTA(STR_ATT_STOREFOLDERID, "att:athena-store-fdrid"); // VT_UI4
  497. STRCONSTA(STR_ATT_GHOSTED, "att:athena-ghosted"); // VT_I4
  498. STRCONSTA(STR_ATT_UNCACHEDSIZE, "att:athena-uncachedsize"); // VT_UI4
  499. STRCONSTA(STR_ATT_COMBINED, "att:athena-combined"); // VT_UI4
  500. #ifdef OE5_BETA2
  501. STRCONSTA(STR_ATT_ACCOUNTID, "att:athena-account-id"); // VT_LPSTR
  502. #endif
  503. // --------------------------------------------------------------------------------
  504. // MIME Content Types
  505. // --------------------------------------------------------------------------------
  506. STRCONSTA(STR_MIME_TEXT_PLAIN, "text/plain");
  507. STRCONSTA(STR_MIME_TEXT_HTML, "text/html");
  508. STRCONSTA(STR_MIME_APPL_STREAM, "application/octet-stream");
  509. STRCONSTA(STR_MIME_MPART_MIXED, "multipart/mixed");
  510. STRCONSTA(STR_MIME_MPART_ALT, "multipart/alternative");
  511. STRCONSTA(STR_MIME_MPART_RELATED, "multipart/related");
  512. STRCONSTA(STR_MIME_MSG_PART, "message/partial");
  513. STRCONSTA(STR_MIME_MSG_RFC822, "message/rfc822");
  514. STRCONSTA(STR_MIME_APPLY_MSTNEF, "application/ms-tnef");
  515. STRCONSTA(STR_MIME_APPL_PKCS7SIG, "application/x-pkcs7-signature");
  516. STRCONSTA(STR_MIME_APPL_PKCS7SIG_1, "application/pkcs7-signature");
  517. STRCONSTA(STR_MIME_TEXT_ENRCICHED, "text/enriched");
  518. // --------------------------------------------------------------------------------
  519. // MIME Primary Content Types
  520. // --------------------------------------------------------------------------------
  521. STRCONSTA(STR_CNT_TEXT, "text");
  522. STRCONSTA(STR_CNT_MULTIPART, "multipart");
  523. STRCONSTA(STR_CNT_MESSAGE, "message");
  524. STRCONSTA(STR_CNT_IMAGE, "image");
  525. STRCONSTA(STR_CNT_AUDIO, "audio");
  526. STRCONSTA(STR_CNT_VIDEO, "video");
  527. STRCONSTA(STR_CNT_APPLICATION, "application");
  528. // --------------------------------------------------------------------------------
  529. // MIME Secondary Content Types
  530. // --------------------------------------------------------------------------------
  531. STRCONSTA(STR_SUB_PLAIN, "plain");
  532. STRCONSTA(STR_SUB_HTML, "html");
  533. STRCONSTA(STR_SUB_ENRICHED, "enriched");
  534. STRCONSTA(STR_SUB_RTF, "ms-rtf");
  535. STRCONSTA(STR_SUB_MIXED, "mixed");
  536. STRCONSTA(STR_SUB_PARALLEL, "parallel");
  537. STRCONSTA(STR_SUB_DIGEST, "digest");
  538. STRCONSTA(STR_SUB_RELATED, "related");
  539. STRCONSTA(STR_SUB_ALTERNATIVE, "alternative");
  540. STRCONSTA(STR_SUB_RFC822, "rfc822");
  541. STRCONSTA(STR_SUB_PARTIAL, "partial");
  542. STRCONSTA(STR_SUB_EXTERNAL, "external-body");
  543. STRCONSTA(STR_SUB_OCTETSTREAM, "octet-stream");
  544. STRCONSTA(STR_SUB_POSTSCRIPT, "postscript");
  545. STRCONSTA(STR_SUB_GIF, "gif");
  546. STRCONSTA(STR_SUB_JPEG, "jpeg");
  547. STRCONSTA(STR_SUB_BASIC, "basic");
  548. STRCONSTA(STR_SUB_MPEG, "mpeg");
  549. STRCONSTA(STR_SUB_MSTNEF, "ms-tnef");
  550. STRCONSTA(STR_SUB_MSWORD, "msword");
  551. STRCONSTA(STR_SUB_WAV, "wav");
  552. STRCONSTA(STR_SUB_PKCS7MIME, "pkcs7-mime"); // non-standard
  553. STRCONSTA(STR_SUB_PKCS7SIG, "pkcs7-signature"); // non-standard
  554. STRCONSTA(STR_SUB_XPKCS7MIME, "x-pkcs7-mime");
  555. STRCONSTA(STR_SUB_XPKCS7SIG, "x-pkcs7-signature");
  556. STRCONSTA(STR_SUB_SIGNED, "signed");
  557. STRCONSTA(STR_SUB_BINHEX, "mac-binhex40");
  558. STRCONSTA(STR_SUB_VCARD, "x-vcard");
  559. // --------------------------------------------------------------------------------
  560. // MIME Content-Transfer-Encoding Types
  561. // --------------------------------------------------------------------------------
  562. STRCONSTA(STR_ENC_7BIT, "7bit");
  563. STRCONSTA(STR_ENC_QP, "quoted-printable");
  564. STRCONSTA(STR_ENC_BASE64, "base64");
  565. STRCONSTA(STR_ENC_8BIT, "8bit");
  566. STRCONSTA(STR_ENC_BINARY, "binary");
  567. STRCONSTA(STR_ENC_UUENCODE, "uuencode");
  568. STRCONSTA(STR_ENC_XUUENCODE, "x-uuencode");
  569. STRCONSTA(STR_ENC_XUUE, "x-uue");
  570. STRCONSTA(STR_ENC_BINHEX40, "mac-binhex40");
  571. // --------------------------------------------------------------------------------
  572. // MIME Content-Disposition Types
  573. // --------------------------------------------------------------------------------
  574. STRCONSTA(STR_DIS_INLINE, "inline");
  575. STRCONSTA(STR_DIS_ATTACHMENT, "attachment");
  576. // --------------------------------------------------------------------------------
  577. // MIME Protocol Types
  578. // --------------------------------------------------------------------------------
  579. STRCONSTA(STR_PRO_SHA1, "sha1");
  580. STRCONSTA(STR_PRO_MD5, "rsa-md5");
  581. // --------------------------------------------------------------------------------
  582. // Known Priority Strings
  583. // --------------------------------------------------------------------------------
  584. STRCONSTA(STR_PRI_MS_HIGH, "High");
  585. STRCONSTA(STR_PRI_MS_NORMAL, "Normal");
  586. STRCONSTA(STR_PRI_MS_LOW, "Low");
  587. STRCONSTA(STR_PRI_HIGH, "1");
  588. STRCONSTA(STR_PRI_NORMAL, "3");
  589. STRCONSTA(STR_PRI_LOW, "5");
  590. // --------------------------------------------------------------------------------
  591. // IMimeMessage IDataObject clipboard formats (also include CF_TEXT)
  592. // --------------------------------------------------------------------------------
  593. STRCONSTA(STR_CF_HTML, "HTML Format");
  594. STRCONSTA(STR_CF_INETMSG, "Internet Message (rfc822/rfc1522)");
  595. STRCONSTA(STR_CF_RFC822, "message/rfc822");
  596. // --------------------------------------------------------------------------------
  597. // PIDSTRING - Use in GetProp, SetProp, QueryProp, DeleteProp
  598. // --------------------------------------------------------------------------------
  599. #define PID_BASE 2
  600. #define PIDTOSTR(_dwPropId) ((LPCSTR)((DWORD_PTR)(_dwPropId)))
  601. #define STRTOPID(_pszName) ((DWORD)((DWORD_PTR)((LPCSTR)(_pszName))))
  602. #define ISPIDSTR(_pszName) ((HIWORD((DWORD_PTR)(_pszName)) == 0))
  603. #define ISKNOWNPID(_dwPropId) (_dwPropId >= PID_BASE && _dwPropId < PID_LAST)
  604. // --------------------------------------------------------------------------------
  605. // Mime Property Ids
  606. // --------------------------------------------------------------------------------
  607. typedef enum tagMIMEPROPID {
  608. PID_HDR_NEWSGROUP = 2,
  609. PID_HDR_NEWSGROUPS = 3,
  610. PID_HDR_REFS = 4,
  611. PID_HDR_SUBJECT = 5,
  612. PID_HDR_FROM = 6,
  613. PID_HDR_MESSAGEID = 7,
  614. PID_HDR_RETURNPATH = 8,
  615. PID_HDR_RR = 9,
  616. PID_HDR_RETRCPTTO = 10,
  617. PID_HDR_APPARTO = 11,
  618. PID_HDR_DATE = 12,
  619. PID_HDR_RECEIVED = 13,
  620. PID_HDR_REPLYTO = 14,
  621. PID_HDR_XMAILER = 15,
  622. PID_HDR_BCC = 16,
  623. PID_HDR_MIMEVER = 17,
  624. PID_HDR_CNTTYPE = 18,
  625. PID_HDR_CNTXFER = 19,
  626. PID_HDR_CNTID = 20,
  627. PID_HDR_CNTDESC = 21,
  628. PID_HDR_CNTDISP = 22,
  629. PID_HDR_CNTBASE = 23,
  630. PID_HDR_CNTLOC = 24,
  631. PID_HDR_TO = 25,
  632. PID_HDR_PATH = 26,
  633. PID_HDR_FOLLOWUPTO = 27,
  634. PID_HDR_EXPIRES = 28,
  635. PID_HDR_CC = 29,
  636. PID_HDR_CONTROL = 30,
  637. PID_HDR_DISTRIB = 31,
  638. PID_HDR_KEYWORDS = 32,
  639. PID_HDR_SUMMARY = 33,
  640. PID_HDR_APPROVED = 34,
  641. PID_HDR_LINES = 35,
  642. PID_HDR_XREF = 36,
  643. PID_HDR_ORG = 37,
  644. PID_HDR_XNEWSRDR = 38,
  645. PID_HDR_XPRI = 39,
  646. PID_HDR_XMSPRI = 40,
  647. PID_PAR_FILENAME = 41,
  648. PID_PAR_BOUNDARY = 42,
  649. PID_PAR_CHARSET = 43,
  650. PID_PAR_NAME = 44,
  651. PID_ATT_FILENAME = 45,
  652. PID_ATT_GENFNAME = 46,
  653. PID_ATT_PRITYPE = 47,
  654. PID_ATT_SUBTYPE = 48,
  655. PID_ATT_NORMSUBJ = 49,
  656. PID_ATT_ILLEGAL = 50,
  657. PID_ATT_RENDERED = 51,
  658. PID_ATT_SENTTIME = 52,
  659. PID_ATT_RECVTIME = 53,
  660. PID_ATT_PRIORITY = 54,
  661. PID_HDR_COMMENT = 55,
  662. PID_HDR_ENCODING = 56,
  663. PID_HDR_ENCRYPTED = 57,
  664. PID_HDR_OFFSETS = 58,
  665. PID_HDR_XUNSENT = 59,
  666. PID_HDR_ARTICLEID = 60,
  667. PID_HDR_SENDER = 61,
  668. PID_ATT_SERVER = 62,
  669. #ifdef OE5_BETA2
  670. PID_ATT_ACCOUNTID = 63,
  671. #else
  672. PID_ATT_ACCOUNT = 63,
  673. #endif
  674. PID_ATT_UIDL = 64,
  675. PID_ATT_STOREMSGID = 65,
  676. PID_ATT_USERNAME = 66,
  677. PID_ATT_FORWARDTO = 67,
  678. PID_ATT_STOREFOLDERID = 68,
  679. PID_ATT_GHOSTED = 69,
  680. PID_ATT_UNCACHEDSIZE = 70,
  681. PID_ATT_COMBINED = 71,
  682. PID_ATT_AUTOINLINED = 72,
  683. PID_LAST = 73
  684. } MIMEPROPID;
  685. // --------------------------------------------------------------------------------
  686. // Variant Typed Identifiers
  687. // --------------------------------------------------------------------------------
  688. #define TYPEDID_MASK ((ULONG)0x0000FFFF)
  689. #define TYPEDID_TYPE(_typedid) (VARTYPE)(((ULONG)(_typedid)) & TYPEDID_MASK)
  690. #define TYPEDID_ID(_typedid) (((ULONG)(_typedid))>>16)
  691. #define TYPEDID(_vartype,_id) ((((TYPEDID)(_id))<<16)|((ULONG)(_vartype)))
  692. // --------------------------------------------------------------------------------
  693. // Options Ids
  694. // --------------------------------------------------------------------------------
  695. #define OID_ALLOW_8BIT_HEADER TYPEDID(VT_BOOL, 0x0001) // TRUE or FALSE
  696. #define OID_CBMAX_HEADER_LINE TYPEDID(VT_UI4, 0x0002) // Bytes
  697. #define OID_SAVE_FORMAT TYPEDID(VT_UI4, 0x0003) // SAVE_RFC822 or SAVE_RFC1521 (mime)
  698. #define OID_WRAP_BODY_TEXT TYPEDID(VT_BOOL, 0x0004) // TRUE or FALSE
  699. #define OID_CBMAX_BODY_LINE TYPEDID(VT_UI4, 0x0005) // Bytes
  700. #define OID_TRANSMIT_BODY_ENCODING TYPEDID(VT_UI4, 0x0006) // ENCODINGTYPE
  701. #define OID_TRANSMIT_TEXT_ENCODING TYPEDID(VT_UI4, 0x0007) // ENCODINGTYPE, IMimeMessageTree
  702. #define OID_GENERATE_MESSAGE_ID TYPEDID(VT_BOOL, 0x0008) // TRUE or FALSE
  703. #define OID_HIDE_TNEF_ATTACHMENTS TYPEDID(VT_BOOL, 0X000E) // TRUE or FALSE
  704. #define OID_CLEANUP_TREE_ON_SAVE TYPEDID(VT_BOOL, 0X000F) // TRUE or FALSE
  705. #define OID_BODY_REMOVE_NBSP TYPEDID(VT_BOOL, 0x0014) // TRUE or FALSE
  706. #define OID_DEFAULT_BODY_CHARSET TYPEDID(VT_UI4, 0x0015) // HCHARSET
  707. #define OID_DEFAULT_HEADER_CHARSET TYPEDID(VT_UI4, 0x0016) // HCHARSET
  708. #define OID_DBCS_ESCAPE_IS_8BIT TYPEDID(VT_BOOL, 0x0017) // TRUE or FALSE
  709. #define OID_SECURITY_TYPE TYPEDID(VT_UI4, 0x0018)
  710. #define OID_SECURITY_ALG_HASH TYPEDID(VT_BLOB, 0x0019)
  711. #define OID_SECURITY_ALG_BULK TYPEDID(VT_BLOB, 0x0020)
  712. #define OID_SECURITY_CERT_SIGNING TYPEDID(VT_UI4, 0x0021)
  713. #define OID_SECURITY_CERT_DECRYPTION TYPEDID(VT_UI4, 0x0022)
  714. #define OID_SECURITY_RG_CERT_ENCRYPT TYPEDID(VT_VECTOR | VT_UI4, 0x0023)
  715. #define OID_SECURITY_HCERTSTORE TYPEDID(VT_UI4, 0x0024)
  716. #define OID_SECURITY_RG_CERT_BAG TYPEDID(VT_VECTOR | VT_UI4, 0x0025)
  717. #define OID_SECURITY_CRL TYPEDID(VT_BLOB, 0x0026)
  718. #define OID_SECURITY_SEARCHSTORES TYPEDID(VT_VECTOR | VT_UI4, 0x0027)
  719. #define OID_SECURITY_RG_IASN TYPEDID(VT_VECTOR | VT_UI4, 0x0028)
  720. #define OID_SECURITY_SYMCAPS TYPEDID(VT_BLOB, 0x0029)
  721. #define OID_SECURITY_AUTHATTR TYPEDID(VT_BLOB, 0x002A)
  722. #define OID_SECURITY_UNAUTHATTR TYPEDID(VT_BLOB, 0x002B)
  723. #define OID_SECURITY_SIGNTIME TYPEDID(VT_FILETIME,0x002C)
  724. #define OID_SECURITY_USER_VALIDITY TYPEDID(VT_UI4, 0x002D)
  725. #define OID_SECURITY_RO_MSG_VALIDITY TYPEDID(VT_UI4, 0x002E) // read-only
  726. #define OID_SECURITY_HCRYPTPROV TYPEDID(VT_UI4, 0x002F)
  727. #define OID_SECURITY_ENCODE_FLAGS TYPEDID(VT_UI4, 0x0030)
  728. #define OID_SECURITY_CERT_INCLUDED TYPEDID(VT_BOOL, 0x0031) // read-only
  729. #define OID_SECURITY_HWND_OWNER TYPEDID(VT_UI4, 0x0032)
  730. #define OID_SECURITY_REQUESTED_CTE TYPEDID(VT_I4, 0x0033)
  731. #define OID_NO_DEFAULT_CNTTYPE TYPEDID(VT_BOOL, 0x0034)
  732. #define OID_XMIT_PLAIN_TEXT_ENCODING TYPEDID(VT_UI4, 0x0035) // ENCODINGTYPE, IMimeMessageTree
  733. #define OID_XMIT_HTML_TEXT_ENCODING TYPEDID(VT_UI4, 0x0036) // ENCODINGTYPE, IMimeMessageTree
  734. #define OID_HEADER_RELOAD_TYPE TYPEDID(VT_UI4, 0x0037) // RELOADTYPE IMimeMessageTree or IMimeBody or IMimePropertySet
  735. #define OID_CAN_INLINE_TEXT_BODIES TYPEDID(VT_BOOL, 0x0038) // TRUE or FALSE
  736. #define OID_SHOW_MACBINARY TYPEDID(VT_BOOL, 0x0039) // TRUE or FALSE
  737. #define OID_SAVEBODY_KEEPBOUNDARY TYPEDID(VT_BOOL, 0x0040) // TRUE or FALSE
  738. #if (_WIN32_OE >= 0x0500)
  739. #define OID_SECURITY_ALG_HASH_RG TYPEDID(VT_VECTOR | VT_VARIANT, 0x0019)
  740. #define OID_SECURITY_CERT_SIGNING_RG TYPEDID(VT_VECTOR | VT_UI4, 0x0021)
  741. #define OID_SECURITY_SYMCAPS_RG TYPEDID(VT_VECTOR | VT_VARIANT, 0x0029)
  742. #define OID_SECURITY_AUTHATTR_RG TYPEDID(VT_VECTOR | VT_VARIANT, 0x002A)
  743. #define OID_SECURITY_UNAUTHATTR_RG TYPEDID(VT_VECTOR | VT_VARIANT, 0x002B)
  744. #define OID_SECURITY_SIGNTIME_RG TYPEDID(VT_VECTOR | VT_FILETIME, 0x002C)
  745. #define OID_SECURITY_USER_VALIDITY_RG TYPEDID(VT_VECTOR | VT_UI4, 0x002D)
  746. #define OID_SECURITY_RO_MSG_VALIDITY_RG TYPEDID(VT_VECTOR | VT_UI4, 0x002E) // read-only
  747. #define OID_SUPPORT_EXTERNAL_BODY TYPEDID(VT_BOOL, 0x0041) // TRUE or FALSE
  748. #define OID_LOAD_USE_BIND_FILE TYPEDID(VT_BOOL, 0x0042) // TRUE or FALSE
  749. #define OID_SECURITY_SIGNATURE_COUNT TYPEDID(VT_UI4, 0x0043) // Size of SECURITY LAYER arrays
  750. #define OID_HANDSOFF_ONSAVE TYPEDID(VT_BOOL, 0x0044) // TRUE or FALSE
  751. #define OID_SECURITY_RECEIPT TYPEDID(VT_BLOB, 0x0045) // Receipt body
  752. #define OID_NOSECURITY_ONSAVE TYPEDID(VT_BOOL, 0x0046) // TRUE or FALSE
  753. #define OID_DECODE_RFC1154 TYPEDID(VT_BOOL, 0x0047) // TRUE or FALSE
  754. #endif
  755. // --------------------------------------------------------------------------------
  756. // Default Option Values
  757. // --------------------------------------------------------------------------------
  758. #define DEF_ALLOW_8BIT_HEADER FALSE
  759. #define DEF_CBMAX_HEADER_LINE 1000
  760. #define DEF_SAVE_FORMAT SAVE_RFC1521
  761. #define DEF_WRAP_BODY_TEXT TRUE
  762. #define DEF_CBMAX_BODY_LINE 74
  763. #define DEF_GENERATE_MESSAGE_ID FALSE
  764. #define DEF_HASH_ALG_ID 0x8004 //SHA //N needed?
  765. #define DEF_ENCRYPTION_ALG_ID 0x6602 //RC2 //N needed?
  766. #define DEF_INCLUDE_SENDER_CERT FALSE
  767. #define DEF_HIDE_TNEF_ATTACHMENTS TRUE
  768. #define DEF_CLEANUP_TREE_ON_SAVE TRUE
  769. #define DEF_BODY_REMOVE_NBSP TRUE
  770. #define DEF_SECURITY_IGNOREMASK 0
  771. #define DEF_DBCS_ESCAPE_IS_8BIT FALSE
  772. #define DEF_TRANSMIT_BODY_ENCODING IET_UNKNOWN
  773. #define DEF_TRANSMIT_TEXT_ENCODING IET_UNKNOWN
  774. #define DEF_XMIT_PLAIN_TEXT_ENCODING IET_UNKNOWN
  775. #define DEF_XMIT_HTML_TEXT_ENCODING IET_UNKNOWN
  776. #define DEF_NO_DEFAULT_CNTTYPE FALSE
  777. #define DEF_HEADER_RELOAD_TYPE_TREE RELOAD_HEADER_RESET
  778. #define DEF_HEADER_RELOAD_TYPE_PROPSET RELOAD_HEADER_NONE
  779. #define DEF_CAN_INLINE_TEXT_BODIES FALSE
  780. #define DEF_SHOW_MACBINARY FALSE
  781. #define DEF_SAVEBODY_KEEPBOUNDARY FALSE
  782. #if (_WIN32_OE >= 0x0500)
  783. #define DEF_SUPPORT_EXTERNAL_BODY FALSE
  784. #define DEF_LOAD_USE_BIND_FILE FALSE
  785. #define DEF_HANDSOFF_ONSAVE FALSE
  786. #define DEF_DECODE_RFC1154 FALSE
  787. #endif
  788. // --------------------------------------------------------------------------------
  789. // Min-Max Option Values
  790. // --------------------------------------------------------------------------------
  791. #define MAX_CBMAX_HEADER_LINE 0xffffffff
  792. #define MIN_CBMAX_HEADER_LINE 76
  793. #define MAX_CBMAX_BODY_LINE 0xffffffff
  794. #define MIN_CBMAX_BODY_LINE 30
  795. // --------------------------------------------------------------------------------
  796. // LIBID_MIMEOLE
  797. // --------------------------------------------------------------------------------
  798. extern RPC_IF_HANDLE __MIDL_itf_mimeole_0000_v0_0_c_ifspec;
  799. extern RPC_IF_HANDLE __MIDL_itf_mimeole_0000_v0_0_s_ifspec;
  800. #ifndef __MIMEOLE_LIBRARY_DEFINED__
  801. #define __MIMEOLE_LIBRARY_DEFINED__
  802. /* library MIMEOLE */
  803. /* [version][helpstring][uuid] */
  804. struct HCHARSET__
  805. {
  806. DWORD unused;
  807. } ;
  808. typedef const struct HCHARSET__ *HCHARSET;
  809. typedef HCHARSET *LPHCHARSET;
  810. struct HBODY__
  811. {
  812. DWORD unused;
  813. } ;
  814. typedef const struct HBODY__ *HBODY;
  815. typedef HBODY *LPHBODY;
  816. struct HHEADERROW__
  817. {
  818. DWORD unused;
  819. } ;
  820. typedef const struct HHEADERROW__ *HHEADERROW;
  821. typedef HHEADERROW *LPHHEADERROW;
  822. typedef DWORD TYPEDID;
  823. typedef const PROPVARIANT *LPCPROPVARIANT;
  824. typedef const BLOB *LPCBLOB;
  825. typedef
  826. enum tagRELOADTYPE
  827. { RELOAD_HEADER_NONE = 0,
  828. RELOAD_HEADER_RESET = RELOAD_HEADER_NONE + 1,
  829. RELOAD_HEADER_APPEND = RELOAD_HEADER_RESET + 1,
  830. RELOAD_HEADER_REPLACE = RELOAD_HEADER_APPEND + 1
  831. } RELOADTYPE;
  832. typedef
  833. enum tagMIMESAVETYPE
  834. { SAVE_RFC822 = 0,
  835. SAVE_RFC1521 = SAVE_RFC822 + 1
  836. } MIMESAVETYPE;
  837. typedef
  838. enum tagCSETAPPLYTYPE
  839. { CSET_APPLY_UNTAGGED = 0,
  840. CSET_APPLY_ALL = CSET_APPLY_UNTAGGED + 1,
  841. CSET_APPLY_TAG_ALL = CSET_APPLY_ALL + 1
  842. } CSETAPPLYTYPE;
  843. typedef
  844. enum tagENCODINGTYPE
  845. { IET_BINARY = 0,
  846. IET_BASE64 = IET_BINARY + 1,
  847. IET_UUENCODE = IET_BASE64 + 1,
  848. IET_QP = IET_UUENCODE + 1,
  849. IET_7BIT = IET_QP + 1,
  850. IET_8BIT = IET_7BIT + 1,
  851. IET_INETCSET = IET_8BIT + 1,
  852. IET_UNICODE = IET_INETCSET + 1,
  853. IET_RFC1522 = IET_UNICODE + 1,
  854. IET_ENCODED = IET_RFC1522 + 1,
  855. IET_CURRENT = IET_ENCODED + 1,
  856. IET_UNKNOWN = IET_CURRENT + 1,
  857. IET_BINHEX40 = IET_UNKNOWN + 1,
  858. IET_LAST = IET_BINHEX40 + 1
  859. } ENCODINGTYPE;
  860. #define IET_DECODED ( IET_BINARY )
  861. #define CCHMAX_HEADER_LINE ( 1000 )
  862. EXTERN_C const IID LIBID_MIMEOLE;
  863. #ifndef __IMimeInternational_INTERFACE_DEFINED__
  864. #define __IMimeInternational_INTERFACE_DEFINED__
  865. /* interface IMimeInternational */
  866. /* [object][helpstring][uuid] */
  867. typedef /* [unique] */ IMimeInternational *LPMIMEINTERNATIONAL;
  868. typedef DWORD CODEPAGEID;
  869. #define CP_USASCII ( 1252 )
  870. #define CP_UNICODE ( 1200 )
  871. #define CP_JAUTODETECT ( 50932 )
  872. #define CP_KAUTODETECT ( 50949 )
  873. #define CP_ISO2022JPESC ( 50221 )
  874. #define CP_ISO2022JPSIO ( 50222 )
  875. #define CCHMAX_CSET_NAME ( 128 )
  876. #define CCHMAX_LANG_NAME ( 128 )
  877. #define CCHMAX_FACE_NAME ( 128 )
  878. typedef struct tagINETCSETINFO
  879. {
  880. CHAR szName[ 128 ];
  881. HCHARSET hCharset;
  882. CODEPAGEID cpiWindows;
  883. CODEPAGEID cpiInternet;
  884. DWORD dwReserved1;
  885. } INETCSETINFO;
  886. typedef struct tagINETCSETINFO *LPINETCSETINFO;
  887. typedef
  888. enum tagINETLANGMASK
  889. { ILM_FAMILY = 0x1,
  890. ILM_NAME = 0x2,
  891. ILM_BODYCSET = 0x4,
  892. ILM_HEADERCSET = 0x8,
  893. ILM_WEBCSET = 0x10,
  894. ILM_FIXEDFONT = 0x20,
  895. ILM_VARIABLEFONT = 0x40
  896. } INETLANGMASK;
  897. typedef struct tagCODEPAGEINFO
  898. {
  899. DWORD dwMask;
  900. CODEPAGEID cpiCodePage;
  901. BOOL fIsValidCodePage;
  902. ULONG ulMaxCharSize;
  903. BOOL fInternetCP;
  904. CODEPAGEID cpiFamily;
  905. CHAR szName[ 128 ];
  906. CHAR szBodyCset[ 128 ];
  907. CHAR szHeaderCset[ 128 ];
  908. CHAR szWebCset[ 128 ];
  909. CHAR szFixedFont[ 128 ];
  910. CHAR szVariableFont[ 128 ];
  911. ENCODINGTYPE ietNewsDefault;
  912. ENCODINGTYPE ietMailDefault;
  913. DWORD dwReserved1;
  914. } CODEPAGEINFO;
  915. typedef struct tagCODEPAGEINFO *LPCODEPAGEINFO;
  916. typedef struct tagRFC1522INFO
  917. {
  918. BOOL fRfc1522Allowed;
  919. BOOL fRfc1522Used;
  920. BOOL fAllow8bit;
  921. HCHARSET hRfc1522Cset;
  922. } RFC1522INFO;
  923. typedef struct tagRFC1522INFO *LPRFC1522INFO;
  924. typedef
  925. enum tagCHARSETTYPE
  926. { CHARSET_BODY = 0,
  927. CHARSET_HEADER = CHARSET_BODY + 1,
  928. CHARSET_WEB = CHARSET_HEADER + 1
  929. } CHARSETTYPE;
  930. EXTERN_C const IID IID_IMimeInternational;
  931. #if defined(__cplusplus) && !defined(CINTERFACE)
  932. MIDL_INTERFACE("C5588349-7F86-11d0-8252-00C04FD85AB4")
  933. IMimeInternational : public IUnknown
  934. {
  935. public:
  936. virtual HRESULT STDMETHODCALLTYPE SetDefaultCharset(
  937. /* [in] */ HCHARSET hCharset) = 0;
  938. virtual HRESULT STDMETHODCALLTYPE GetDefaultCharset(
  939. /* [out] */ LPHCHARSET phCharset) = 0;
  940. virtual HRESULT STDMETHODCALLTYPE GetCodePageCharset(
  941. /* [in] */ CODEPAGEID cpiCodePage,
  942. /* [in] */ CHARSETTYPE ctCsetType,
  943. /* [out] */ LPHCHARSET phCharset) = 0;
  944. virtual HRESULT STDMETHODCALLTYPE FindCharset(
  945. /* [in] */ LPCSTR pszCharset,
  946. /* [out] */ LPHCHARSET phCharset) = 0;
  947. virtual HRESULT STDMETHODCALLTYPE GetCharsetInfo(
  948. /* [in] */ HCHARSET hCharset,
  949. /* [out][in] */ LPINETCSETINFO pCsetInfo) = 0;
  950. virtual HRESULT STDMETHODCALLTYPE GetCodePageInfo(
  951. /* [in] */ CODEPAGEID cpiCodePage,
  952. /* [out][in] */ LPCODEPAGEINFO pCodePageInfo) = 0;
  953. virtual HRESULT STDMETHODCALLTYPE CanConvertCodePages(
  954. /* [in] */ CODEPAGEID cpiSource,
  955. /* [in] */ CODEPAGEID cpiDest) = 0;
  956. virtual HRESULT STDMETHODCALLTYPE DecodeHeader(
  957. /* [in] */ HCHARSET hCharset,
  958. /* [in] */ LPCSTR pszData,
  959. /* [out][in] */ LPPROPVARIANT pDecoded,
  960. /* [out][in] */ LPRFC1522INFO pRfc1522Info) = 0;
  961. virtual HRESULT STDMETHODCALLTYPE EncodeHeader(
  962. /* [in] */ HCHARSET hCharset,
  963. /* [in] */ LPPROPVARIANT pData,
  964. /* [out] */ LPSTR *ppszEncoded,
  965. /* [out][in] */ LPRFC1522INFO pRfc1522Info) = 0;
  966. virtual HRESULT STDMETHODCALLTYPE ConvertBuffer(
  967. /* [in] */ CODEPAGEID cpiSource,
  968. /* [in] */ CODEPAGEID cpiDest,
  969. /* [in] */ LPBLOB pIn,
  970. /* [out][in] */ LPBLOB pOut,
  971. /* [out] */ ULONG *pcbRead) = 0;
  972. virtual HRESULT STDMETHODCALLTYPE ConvertString(
  973. /* [in] */ CODEPAGEID cpiSource,
  974. /* [in] */ CODEPAGEID cpiDest,
  975. /* [in] */ LPPROPVARIANT pIn,
  976. /* [out][in] */ LPPROPVARIANT pOut) = 0;
  977. virtual HRESULT STDMETHODCALLTYPE MLANG_ConvertInetReset( void) = 0;
  978. virtual HRESULT STDMETHODCALLTYPE MLANG_ConvertInetString(
  979. /* [in] */ CODEPAGEID cpiSource,
  980. /* [in] */ CODEPAGEID cpiDest,
  981. /* [in] */ LPCSTR pSource,
  982. /* [in] */ int *pnSizeOfSource,
  983. /* [out] */ LPSTR pDestination,
  984. /* [in] */ int *pnDstSize) = 0;
  985. virtual HRESULT STDMETHODCALLTYPE Rfc1522Decode(
  986. /* [in] */ LPCSTR pszValue,
  987. /* [ref][in] */ LPSTR pszCharset,
  988. /* [in] */ ULONG cchmax,
  989. /* [out] */ LPSTR *ppszDecoded) = 0;
  990. virtual HRESULT STDMETHODCALLTYPE Rfc1522Encode(
  991. /* [in] */ LPCSTR pszValue,
  992. /* [in] */ HCHARSET hCharset,
  993. /* [out] */ LPSTR *ppszEncoded) = 0;
  994. };
  995. #else /* C style interface */
  996. typedef struct IMimeInternationalVtbl
  997. {
  998. BEGIN_INTERFACE
  999. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1000. IMimeInternational * This,
  1001. /* [in] */ REFIID riid,
  1002. /* [iid_is][out] */ void **ppvObject);
  1003. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1004. IMimeInternational * This);
  1005. ULONG ( STDMETHODCALLTYPE *Release )(
  1006. IMimeInternational * This);
  1007. HRESULT ( STDMETHODCALLTYPE *SetDefaultCharset )(
  1008. IMimeInternational * This,
  1009. /* [in] */ HCHARSET hCharset);
  1010. HRESULT ( STDMETHODCALLTYPE *GetDefaultCharset )(
  1011. IMimeInternational * This,
  1012. /* [out] */ LPHCHARSET phCharset);
  1013. HRESULT ( STDMETHODCALLTYPE *GetCodePageCharset )(
  1014. IMimeInternational * This,
  1015. /* [in] */ CODEPAGEID cpiCodePage,
  1016. /* [in] */ CHARSETTYPE ctCsetType,
  1017. /* [out] */ LPHCHARSET phCharset);
  1018. HRESULT ( STDMETHODCALLTYPE *FindCharset )(
  1019. IMimeInternational * This,
  1020. /* [in] */ LPCSTR pszCharset,
  1021. /* [out] */ LPHCHARSET phCharset);
  1022. HRESULT ( STDMETHODCALLTYPE *GetCharsetInfo )(
  1023. IMimeInternational * This,
  1024. /* [in] */ HCHARSET hCharset,
  1025. /* [out][in] */ LPINETCSETINFO pCsetInfo);
  1026. HRESULT ( STDMETHODCALLTYPE *GetCodePageInfo )(
  1027. IMimeInternational * This,
  1028. /* [in] */ CODEPAGEID cpiCodePage,
  1029. /* [out][in] */ LPCODEPAGEINFO pCodePageInfo);
  1030. HRESULT ( STDMETHODCALLTYPE *CanConvertCodePages )(
  1031. IMimeInternational * This,
  1032. /* [in] */ CODEPAGEID cpiSource,
  1033. /* [in] */ CODEPAGEID cpiDest);
  1034. HRESULT ( STDMETHODCALLTYPE *DecodeHeader )(
  1035. IMimeInternational * This,
  1036. /* [in] */ HCHARSET hCharset,
  1037. /* [in] */ LPCSTR pszData,
  1038. /* [out][in] */ LPPROPVARIANT pDecoded,
  1039. /* [out][in] */ LPRFC1522INFO pRfc1522Info);
  1040. HRESULT ( STDMETHODCALLTYPE *EncodeHeader )(
  1041. IMimeInternational * This,
  1042. /* [in] */ HCHARSET hCharset,
  1043. /* [in] */ LPPROPVARIANT pData,
  1044. /* [out] */ LPSTR *ppszEncoded,
  1045. /* [out][in] */ LPRFC1522INFO pRfc1522Info);
  1046. HRESULT ( STDMETHODCALLTYPE *ConvertBuffer )(
  1047. IMimeInternational * This,
  1048. /* [in] */ CODEPAGEID cpiSource,
  1049. /* [in] */ CODEPAGEID cpiDest,
  1050. /* [in] */ LPBLOB pIn,
  1051. /* [out][in] */ LPBLOB pOut,
  1052. /* [out] */ ULONG *pcbRead);
  1053. HRESULT ( STDMETHODCALLTYPE *ConvertString )(
  1054. IMimeInternational * This,
  1055. /* [in] */ CODEPAGEID cpiSource,
  1056. /* [in] */ CODEPAGEID cpiDest,
  1057. /* [in] */ LPPROPVARIANT pIn,
  1058. /* [out][in] */ LPPROPVARIANT pOut);
  1059. HRESULT ( STDMETHODCALLTYPE *MLANG_ConvertInetReset )(
  1060. IMimeInternational * This);
  1061. HRESULT ( STDMETHODCALLTYPE *MLANG_ConvertInetString )(
  1062. IMimeInternational * This,
  1063. /* [in] */ CODEPAGEID cpiSource,
  1064. /* [in] */ CODEPAGEID cpiDest,
  1065. /* [in] */ LPCSTR pSource,
  1066. /* [in] */ int *pnSizeOfSource,
  1067. /* [out] */ LPSTR pDestination,
  1068. /* [in] */ int *pnDstSize);
  1069. HRESULT ( STDMETHODCALLTYPE *Rfc1522Decode )(
  1070. IMimeInternational * This,
  1071. /* [in] */ LPCSTR pszValue,
  1072. /* [ref][in] */ LPSTR pszCharset,
  1073. /* [in] */ ULONG cchmax,
  1074. /* [out] */ LPSTR *ppszDecoded);
  1075. HRESULT ( STDMETHODCALLTYPE *Rfc1522Encode )(
  1076. IMimeInternational * This,
  1077. /* [in] */ LPCSTR pszValue,
  1078. /* [in] */ HCHARSET hCharset,
  1079. /* [out] */ LPSTR *ppszEncoded);
  1080. END_INTERFACE
  1081. } IMimeInternationalVtbl;
  1082. interface IMimeInternational
  1083. {
  1084. CONST_VTBL struct IMimeInternationalVtbl *lpVtbl;
  1085. };
  1086. #ifdef COBJMACROS
  1087. #define IMimeInternational_QueryInterface(This,riid,ppvObject) \
  1088. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1089. #define IMimeInternational_AddRef(This) \
  1090. (This)->lpVtbl -> AddRef(This)
  1091. #define IMimeInternational_Release(This) \
  1092. (This)->lpVtbl -> Release(This)
  1093. #define IMimeInternational_SetDefaultCharset(This,hCharset) \
  1094. (This)->lpVtbl -> SetDefaultCharset(This,hCharset)
  1095. #define IMimeInternational_GetDefaultCharset(This,phCharset) \
  1096. (This)->lpVtbl -> GetDefaultCharset(This,phCharset)
  1097. #define IMimeInternational_GetCodePageCharset(This,cpiCodePage,ctCsetType,phCharset) \
  1098. (This)->lpVtbl -> GetCodePageCharset(This,cpiCodePage,ctCsetType,phCharset)
  1099. #define IMimeInternational_FindCharset(This,pszCharset,phCharset) \
  1100. (This)->lpVtbl -> FindCharset(This,pszCharset,phCharset)
  1101. #define IMimeInternational_GetCharsetInfo(This,hCharset,pCsetInfo) \
  1102. (This)->lpVtbl -> GetCharsetInfo(This,hCharset,pCsetInfo)
  1103. #define IMimeInternational_GetCodePageInfo(This,cpiCodePage,pCodePageInfo) \
  1104. (This)->lpVtbl -> GetCodePageInfo(This,cpiCodePage,pCodePageInfo)
  1105. #define IMimeInternational_CanConvertCodePages(This,cpiSource,cpiDest) \
  1106. (This)->lpVtbl -> CanConvertCodePages(This,cpiSource,cpiDest)
  1107. #define IMimeInternational_DecodeHeader(This,hCharset,pszData,pDecoded,pRfc1522Info) \
  1108. (This)->lpVtbl -> DecodeHeader(This,hCharset,pszData,pDecoded,pRfc1522Info)
  1109. #define IMimeInternational_EncodeHeader(This,hCharset,pData,ppszEncoded,pRfc1522Info) \
  1110. (This)->lpVtbl -> EncodeHeader(This,hCharset,pData,ppszEncoded,pRfc1522Info)
  1111. #define IMimeInternational_ConvertBuffer(This,cpiSource,cpiDest,pIn,pOut,pcbRead) \
  1112. (This)->lpVtbl -> ConvertBuffer(This,cpiSource,cpiDest,pIn,pOut,pcbRead)
  1113. #define IMimeInternational_ConvertString(This,cpiSource,cpiDest,pIn,pOut) \
  1114. (This)->lpVtbl -> ConvertString(This,cpiSource,cpiDest,pIn,pOut)
  1115. #define IMimeInternational_MLANG_ConvertInetReset(This) \
  1116. (This)->lpVtbl -> MLANG_ConvertInetReset(This)
  1117. #define IMimeInternational_MLANG_ConvertInetString(This,cpiSource,cpiDest,pSource,pnSizeOfSource,pDestination,pnDstSize) \
  1118. (This)->lpVtbl -> MLANG_ConvertInetString(This,cpiSource,cpiDest,pSource,pnSizeOfSource,pDestination,pnDstSize)
  1119. #define IMimeInternational_Rfc1522Decode(This,pszValue,pszCharset,cchmax,ppszDecoded) \
  1120. (This)->lpVtbl -> Rfc1522Decode(This,pszValue,pszCharset,cchmax,ppszDecoded)
  1121. #define IMimeInternational_Rfc1522Encode(This,pszValue,hCharset,ppszEncoded) \
  1122. (This)->lpVtbl -> Rfc1522Encode(This,pszValue,hCharset,ppszEncoded)
  1123. #endif /* COBJMACROS */
  1124. #endif /* C style interface */
  1125. HRESULT STDMETHODCALLTYPE IMimeInternational_SetDefaultCharset_Proxy(
  1126. IMimeInternational * This,
  1127. /* [in] */ HCHARSET hCharset);
  1128. void __RPC_STUB IMimeInternational_SetDefaultCharset_Stub(
  1129. IRpcStubBuffer *This,
  1130. IRpcChannelBuffer *_pRpcChannelBuffer,
  1131. PRPC_MESSAGE _pRpcMessage,
  1132. DWORD *_pdwStubPhase);
  1133. HRESULT STDMETHODCALLTYPE IMimeInternational_GetDefaultCharset_Proxy(
  1134. IMimeInternational * This,
  1135. /* [out] */ LPHCHARSET phCharset);
  1136. void __RPC_STUB IMimeInternational_GetDefaultCharset_Stub(
  1137. IRpcStubBuffer *This,
  1138. IRpcChannelBuffer *_pRpcChannelBuffer,
  1139. PRPC_MESSAGE _pRpcMessage,
  1140. DWORD *_pdwStubPhase);
  1141. HRESULT STDMETHODCALLTYPE IMimeInternational_GetCodePageCharset_Proxy(
  1142. IMimeInternational * This,
  1143. /* [in] */ CODEPAGEID cpiCodePage,
  1144. /* [in] */ CHARSETTYPE ctCsetType,
  1145. /* [out] */ LPHCHARSET phCharset);
  1146. void __RPC_STUB IMimeInternational_GetCodePageCharset_Stub(
  1147. IRpcStubBuffer *This,
  1148. IRpcChannelBuffer *_pRpcChannelBuffer,
  1149. PRPC_MESSAGE _pRpcMessage,
  1150. DWORD *_pdwStubPhase);
  1151. HRESULT STDMETHODCALLTYPE IMimeInternational_FindCharset_Proxy(
  1152. IMimeInternational * This,
  1153. /* [in] */ LPCSTR pszCharset,
  1154. /* [out] */ LPHCHARSET phCharset);
  1155. void __RPC_STUB IMimeInternational_FindCharset_Stub(
  1156. IRpcStubBuffer *This,
  1157. IRpcChannelBuffer *_pRpcChannelBuffer,
  1158. PRPC_MESSAGE _pRpcMessage,
  1159. DWORD *_pdwStubPhase);
  1160. HRESULT STDMETHODCALLTYPE IMimeInternational_GetCharsetInfo_Proxy(
  1161. IMimeInternational * This,
  1162. /* [in] */ HCHARSET hCharset,
  1163. /* [out][in] */ LPINETCSETINFO pCsetInfo);
  1164. void __RPC_STUB IMimeInternational_GetCharsetInfo_Stub(
  1165. IRpcStubBuffer *This,
  1166. IRpcChannelBuffer *_pRpcChannelBuffer,
  1167. PRPC_MESSAGE _pRpcMessage,
  1168. DWORD *_pdwStubPhase);
  1169. HRESULT STDMETHODCALLTYPE IMimeInternational_GetCodePageInfo_Proxy(
  1170. IMimeInternational * This,
  1171. /* [in] */ CODEPAGEID cpiCodePage,
  1172. /* [out][in] */ LPCODEPAGEINFO pCodePageInfo);
  1173. void __RPC_STUB IMimeInternational_GetCodePageInfo_Stub(
  1174. IRpcStubBuffer *This,
  1175. IRpcChannelBuffer *_pRpcChannelBuffer,
  1176. PRPC_MESSAGE _pRpcMessage,
  1177. DWORD *_pdwStubPhase);
  1178. HRESULT STDMETHODCALLTYPE IMimeInternational_CanConvertCodePages_Proxy(
  1179. IMimeInternational * This,
  1180. /* [in] */ CODEPAGEID cpiSource,
  1181. /* [in] */ CODEPAGEID cpiDest);
  1182. void __RPC_STUB IMimeInternational_CanConvertCodePages_Stub(
  1183. IRpcStubBuffer *This,
  1184. IRpcChannelBuffer *_pRpcChannelBuffer,
  1185. PRPC_MESSAGE _pRpcMessage,
  1186. DWORD *_pdwStubPhase);
  1187. HRESULT STDMETHODCALLTYPE IMimeInternational_DecodeHeader_Proxy(
  1188. IMimeInternational * This,
  1189. /* [in] */ HCHARSET hCharset,
  1190. /* [in] */ LPCSTR pszData,
  1191. /* [out][in] */ LPPROPVARIANT pDecoded,
  1192. /* [out][in] */ LPRFC1522INFO pRfc1522Info);
  1193. void __RPC_STUB IMimeInternational_DecodeHeader_Stub(
  1194. IRpcStubBuffer *This,
  1195. IRpcChannelBuffer *_pRpcChannelBuffer,
  1196. PRPC_MESSAGE _pRpcMessage,
  1197. DWORD *_pdwStubPhase);
  1198. HRESULT STDMETHODCALLTYPE IMimeInternational_EncodeHeader_Proxy(
  1199. IMimeInternational * This,
  1200. /* [in] */ HCHARSET hCharset,
  1201. /* [in] */ LPPROPVARIANT pData,
  1202. /* [out] */ LPSTR *ppszEncoded,
  1203. /* [out][in] */ LPRFC1522INFO pRfc1522Info);
  1204. void __RPC_STUB IMimeInternational_EncodeHeader_Stub(
  1205. IRpcStubBuffer *This,
  1206. IRpcChannelBuffer *_pRpcChannelBuffer,
  1207. PRPC_MESSAGE _pRpcMessage,
  1208. DWORD *_pdwStubPhase);
  1209. HRESULT STDMETHODCALLTYPE IMimeInternational_ConvertBuffer_Proxy(
  1210. IMimeInternational * This,
  1211. /* [in] */ CODEPAGEID cpiSource,
  1212. /* [in] */ CODEPAGEID cpiDest,
  1213. /* [in] */ LPBLOB pIn,
  1214. /* [out][in] */ LPBLOB pOut,
  1215. /* [out] */ ULONG *pcbRead);
  1216. void __RPC_STUB IMimeInternational_ConvertBuffer_Stub(
  1217. IRpcStubBuffer *This,
  1218. IRpcChannelBuffer *_pRpcChannelBuffer,
  1219. PRPC_MESSAGE _pRpcMessage,
  1220. DWORD *_pdwStubPhase);
  1221. HRESULT STDMETHODCALLTYPE IMimeInternational_ConvertString_Proxy(
  1222. IMimeInternational * This,
  1223. /* [in] */ CODEPAGEID cpiSource,
  1224. /* [in] */ CODEPAGEID cpiDest,
  1225. /* [in] */ LPPROPVARIANT pIn,
  1226. /* [out][in] */ LPPROPVARIANT pOut);
  1227. void __RPC_STUB IMimeInternational_ConvertString_Stub(
  1228. IRpcStubBuffer *This,
  1229. IRpcChannelBuffer *_pRpcChannelBuffer,
  1230. PRPC_MESSAGE _pRpcMessage,
  1231. DWORD *_pdwStubPhase);
  1232. HRESULT STDMETHODCALLTYPE IMimeInternational_MLANG_ConvertInetReset_Proxy(
  1233. IMimeInternational * This);
  1234. void __RPC_STUB IMimeInternational_MLANG_ConvertInetReset_Stub(
  1235. IRpcStubBuffer *This,
  1236. IRpcChannelBuffer *_pRpcChannelBuffer,
  1237. PRPC_MESSAGE _pRpcMessage,
  1238. DWORD *_pdwStubPhase);
  1239. HRESULT STDMETHODCALLTYPE IMimeInternational_MLANG_ConvertInetString_Proxy(
  1240. IMimeInternational * This,
  1241. /* [in] */ CODEPAGEID cpiSource,
  1242. /* [in] */ CODEPAGEID cpiDest,
  1243. /* [in] */ LPCSTR pSource,
  1244. /* [in] */ int *pnSizeOfSource,
  1245. /* [out] */ LPSTR pDestination,
  1246. /* [in] */ int *pnDstSize);
  1247. void __RPC_STUB IMimeInternational_MLANG_ConvertInetString_Stub(
  1248. IRpcStubBuffer *This,
  1249. IRpcChannelBuffer *_pRpcChannelBuffer,
  1250. PRPC_MESSAGE _pRpcMessage,
  1251. DWORD *_pdwStubPhase);
  1252. HRESULT STDMETHODCALLTYPE IMimeInternational_Rfc1522Decode_Proxy(
  1253. IMimeInternational * This,
  1254. /* [in] */ LPCSTR pszValue,
  1255. /* [ref][in] */ LPSTR pszCharset,
  1256. /* [in] */ ULONG cchmax,
  1257. /* [out] */ LPSTR *ppszDecoded);
  1258. void __RPC_STUB IMimeInternational_Rfc1522Decode_Stub(
  1259. IRpcStubBuffer *This,
  1260. IRpcChannelBuffer *_pRpcChannelBuffer,
  1261. PRPC_MESSAGE _pRpcMessage,
  1262. DWORD *_pdwStubPhase);
  1263. HRESULT STDMETHODCALLTYPE IMimeInternational_Rfc1522Encode_Proxy(
  1264. IMimeInternational * This,
  1265. /* [in] */ LPCSTR pszValue,
  1266. /* [in] */ HCHARSET hCharset,
  1267. /* [out] */ LPSTR *ppszEncoded);
  1268. void __RPC_STUB IMimeInternational_Rfc1522Encode_Stub(
  1269. IRpcStubBuffer *This,
  1270. IRpcChannelBuffer *_pRpcChannelBuffer,
  1271. PRPC_MESSAGE _pRpcMessage,
  1272. DWORD *_pdwStubPhase);
  1273. #endif /* __IMimeInternational_INTERFACE_DEFINED__ */
  1274. #ifndef __IMimeSecurity_INTERFACE_DEFINED__
  1275. #define __IMimeSecurity_INTERFACE_DEFINED__
  1276. /* interface IMimeSecurity */
  1277. /* [object][helpstring][uuid] */
  1278. typedef /* [unique] */ IMimeSecurity *LPMIMESECURITY;
  1279. typedef /* [unique] */ const IMimeSecurity *LPCMIMESECURITY;
  1280. typedef BLOB THUMBBLOB;
  1281. typedef void *HCAPICERTSTORE;
  1282. #ifndef __WINCRYPT_H__
  1283. typedef const void *PCX509CERT;
  1284. typedef void *HCERTSTORE;
  1285. #else
  1286. typedef PCCERT_CONTEXT PCX509CERT;
  1287. #endif
  1288. #ifndef IMS_ALGIDDEF
  1289. #define IMS_ALGIDDEF
  1290. typedef unsigned int ALG_ID;
  1291. #endif
  1292. // -------------------------------------------------------------------
  1293. // ITT_* - thumbprint types
  1294. // -------------------------------------------------------------------
  1295. typedef DWORD ITHUMBPRINTTYPE;
  1296. #define ITT_SIGNING 0x00000001
  1297. #define ITT_ENCRYPTION 0x00000002
  1298. // -------------------------------------------------------------------
  1299. // SEF_* - Secure Encoding Flags
  1300. // must not overlap the EBF flags
  1301. // -------------------------------------------------------------------
  1302. #define SEF_ENCRYPTWITHNOSENDERCERT 0x00000001
  1303. #define SEF_SENDERSCERTPROVIDED 0x00000002
  1304. #define SEF_MASK 0x0000ffff
  1305. // -------------------------------------------------------------------
  1306. // EBF_* - Enchanted Broccoli Forest, also Encode Body Flags
  1307. // must not overlap the SEF flags
  1308. // -------------------------------------------------------------------
  1309. #define EBF_RECURSE 0x00010000
  1310. #define EBF_COMMITIFDIRTY 0x00020000
  1311. #define EBF_MASK 0xffff0000
  1312. // -------------------------------------------------------------------
  1313. // MSV_* - MIME Security Validity
  1314. // -------------------------------------------------------------------
  1315. #define MSV_OK 0x00000000
  1316. #define MSV_BADSIGNATURE 0X00000001
  1317. #define MSV_UNVERIFIABLE 0X00000002
  1318. #define MSV_UNKHASH 0X00000004
  1319. #define MSV_MALFORMEDSIG 0X00000080
  1320. #define MSV_SIGNATURE_MASK 0X000000ff
  1321. #define MSV_EXPIRED_SIGNINGCERT 0X00000100
  1322. #define MSV_SIGNING_MASK 0X00000f00
  1323. #define MSV_CANTDECRYPT 0X00001000
  1324. #define MSV_ENC_FOR_EXPIREDCERT 0X00002000
  1325. #define MSV_ENCRYPT_MASK 0x000ff000
  1326. #define MSV_INVALID 0X01000000
  1327. #define MSV_MSG_MASK 0x0f000000
  1328. // -------------------------------------------------------------------
  1329. // MST_* - MIME Security Type
  1330. // -------------------------------------------------------------------
  1331. #define MST_NONE 0x00000000
  1332. #define MST_THIS_SIGN 0x00000001
  1333. #define MST_THIS_ENCRYPT 0x00000002
  1334. #define MST_THIS_BLOBSIGN 0x00000005 // MST_BLOB_FLAG|MST_THIS_SIGN
  1335. #define MST_CHILD_SIGN 0x00000100
  1336. #define MST_CHILD_ENCRYPT 0x00000200
  1337. #define MST_SUBMSG_SIGN 0x00001000
  1338. #define MST_SUBMSG_ENCRYPT 0x00002000
  1339. #define MST_THIS_MASK 0x000000ff
  1340. #define MST_CHILD_MASK 0x00000f00
  1341. #define MST_SUBMSG_MASK 0x0000f000
  1342. #define MST_DESCENDENT_MASK 0x0000ff00 //(MST_CHILD|MST_SUBMSG)
  1343. #define MST_SIGN_MASK 0x00001101
  1344. #define MST_ENCRYPT_MASK 0x00002202
  1345. #define MST_BLOB_FLAG 0x00000004
  1346. #define MST_TYPE_MASK 0x0000ffff
  1347. #define MST_RECEIPT_REQUEST 0x00010000
  1348. #define MST_CLASS_SMIME_V1 0x00000000
  1349. #define MST_CLASS_PGP 0x01000000
  1350. #define MST_CLASS_MASK 0xff000000
  1351. typedef
  1352. enum tagCERTSTATE
  1353. { CERTIFICATE_OK = 0,
  1354. CERTIFICATE_NOT_PRESENT = CERTIFICATE_OK + 1,
  1355. CERTIFICATE_EXPIRED = CERTIFICATE_NOT_PRESENT + 1,
  1356. CERTIFICATE_CHAIN_TOO_LONG = CERTIFICATE_EXPIRED + 1,
  1357. CERTIFICATE_MISSING_ISSUER = CERTIFICATE_CHAIN_TOO_LONG + 1,
  1358. CERTIFICATE_CRL_LISTED = CERTIFICATE_MISSING_ISSUER + 1,
  1359. CERTIFICATE_NOT_TRUSTED = CERTIFICATE_CRL_LISTED + 1,
  1360. CERTIFICATE_INVALID = CERTIFICATE_NOT_TRUSTED + 1,
  1361. CERTIFICATE_ERROR = CERTIFICATE_INVALID + 1,
  1362. CERTIFICATE_NOPRINT = CERTIFICATE_ERROR + 1,
  1363. CERTIFICATE_UNKNOWN = CERTIFICATE_NOPRINT + 1
  1364. } CERTSTATE;
  1365. typedef
  1366. enum tagCERTNAMETYPE
  1367. { SIMPLE = 0,
  1368. OID = SIMPLE + 1,
  1369. X500 = OID + 1
  1370. } CERTNAMETYPE;
  1371. typedef
  1372. enum tagCERTDATAID
  1373. { CDID_EMAIL = 0,
  1374. CDID_MAX = CDID_EMAIL + 1
  1375. } CERTDATAID;
  1376. typedef struct tagX509CERTRESULT
  1377. {
  1378. DWORD cEntries;
  1379. CERTSTATE *rgcs;
  1380. PCX509CERT *rgpCert;
  1381. } X509CERTRESULT;
  1382. typedef struct tagX509CERTRESULT *PX509CERTRESULT;
  1383. typedef const X509CERTRESULT *PCX509CERTRESULT;
  1384. EXTERN_C const IID IID_IMimeSecurity;
  1385. #if defined(__cplusplus) && !defined(CINTERFACE)
  1386. MIDL_INTERFACE("C5588353-7F86-11d0-8252-00C04FD85AB4")
  1387. IMimeSecurity : public IUnknown
  1388. {
  1389. public:
  1390. virtual HRESULT STDMETHODCALLTYPE InitNew( void) = 0;
  1391. virtual HRESULT STDMETHODCALLTYPE CheckInit( void) = 0;
  1392. virtual HRESULT STDMETHODCALLTYPE EncodeMessage(
  1393. /* [in] */ IMimeMessageTree *const pTree,
  1394. /* [in] */ DWORD dwFlags) = 0;
  1395. virtual HRESULT STDMETHODCALLTYPE EncodeBody(
  1396. /* [in] */ IMimeMessageTree *const pTree,
  1397. /* [in] */ HBODY hEncodeRoot,
  1398. /* [in] */ DWORD dwFlags) = 0;
  1399. virtual HRESULT STDMETHODCALLTYPE DecodeMessage(
  1400. /* [in] */ IMimeMessageTree *const pTree,
  1401. /* [in] */ DWORD dwFlags) = 0;
  1402. virtual HRESULT STDMETHODCALLTYPE DecodeBody(
  1403. /* [in] */ IMimeMessageTree *const pTree,
  1404. /* [in] */ HBODY hDecodeRoot,
  1405. /* [in] */ DWORD dwFlags) = 0;
  1406. virtual HRESULT STDMETHODCALLTYPE EnumCertificates(
  1407. /* [in] */ HCAPICERTSTORE hc,
  1408. /* [in] */ DWORD dwUsage,
  1409. /* [in] */ PCX509CERT pPrev,
  1410. /* [out] */ PCX509CERT *ppCert) = 0;
  1411. virtual HRESULT STDMETHODCALLTYPE GetCertificateName(
  1412. /* [in] */ const PCX509CERT pX509Cert,
  1413. /* [in] */ const CERTNAMETYPE cn,
  1414. /* [out] */ LPSTR *ppszName) = 0;
  1415. virtual HRESULT STDMETHODCALLTYPE GetMessageType(
  1416. /* [in] */ const HWND hwndParent,
  1417. /* [in] */ IMimeBody *const pBody,
  1418. /* [out] */ DWORD *const pdwSecType) = 0;
  1419. virtual HRESULT STDMETHODCALLTYPE GetCertData(
  1420. /* [in] */ const PCX509CERT pX509Cert,
  1421. /* [in] */ const CERTDATAID dataid,
  1422. /* [ref][out] */ LPPROPVARIANT pValue) = 0;
  1423. };
  1424. #else /* C style interface */
  1425. typedef struct IMimeSecurityVtbl
  1426. {
  1427. BEGIN_INTERFACE
  1428. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1429. IMimeSecurity * This,
  1430. /* [in] */ REFIID riid,
  1431. /* [iid_is][out] */ void **ppvObject);
  1432. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1433. IMimeSecurity * This);
  1434. ULONG ( STDMETHODCALLTYPE *Release )(
  1435. IMimeSecurity * This);
  1436. HRESULT ( STDMETHODCALLTYPE *InitNew )(
  1437. IMimeSecurity * This);
  1438. HRESULT ( STDMETHODCALLTYPE *CheckInit )(
  1439. IMimeSecurity * This);
  1440. HRESULT ( STDMETHODCALLTYPE *EncodeMessage )(
  1441. IMimeSecurity * This,
  1442. /* [in] */ IMimeMessageTree *const pTree,
  1443. /* [in] */ DWORD dwFlags);
  1444. HRESULT ( STDMETHODCALLTYPE *EncodeBody )(
  1445. IMimeSecurity * This,
  1446. /* [in] */ IMimeMessageTree *const pTree,
  1447. /* [in] */ HBODY hEncodeRoot,
  1448. /* [in] */ DWORD dwFlags);
  1449. HRESULT ( STDMETHODCALLTYPE *DecodeMessage )(
  1450. IMimeSecurity * This,
  1451. /* [in] */ IMimeMessageTree *const pTree,
  1452. /* [in] */ DWORD dwFlags);
  1453. HRESULT ( STDMETHODCALLTYPE *DecodeBody )(
  1454. IMimeSecurity * This,
  1455. /* [in] */ IMimeMessageTree *const pTree,
  1456. /* [in] */ HBODY hDecodeRoot,
  1457. /* [in] */ DWORD dwFlags);
  1458. HRESULT ( STDMETHODCALLTYPE *EnumCertificates )(
  1459. IMimeSecurity * This,
  1460. /* [in] */ HCAPICERTSTORE hc,
  1461. /* [in] */ DWORD dwUsage,
  1462. /* [in] */ PCX509CERT pPrev,
  1463. /* [out] */ PCX509CERT *ppCert);
  1464. HRESULT ( STDMETHODCALLTYPE *GetCertificateName )(
  1465. IMimeSecurity * This,
  1466. /* [in] */ const PCX509CERT pX509Cert,
  1467. /* [in] */ const CERTNAMETYPE cn,
  1468. /* [out] */ LPSTR *ppszName);
  1469. HRESULT ( STDMETHODCALLTYPE *GetMessageType )(
  1470. IMimeSecurity * This,
  1471. /* [in] */ const HWND hwndParent,
  1472. /* [in] */ IMimeBody *const pBody,
  1473. /* [out] */ DWORD *const pdwSecType);
  1474. HRESULT ( STDMETHODCALLTYPE *GetCertData )(
  1475. IMimeSecurity * This,
  1476. /* [in] */ const PCX509CERT pX509Cert,
  1477. /* [in] */ const CERTDATAID dataid,
  1478. /* [ref][out] */ LPPROPVARIANT pValue);
  1479. END_INTERFACE
  1480. } IMimeSecurityVtbl;
  1481. interface IMimeSecurity
  1482. {
  1483. CONST_VTBL struct IMimeSecurityVtbl *lpVtbl;
  1484. };
  1485. #ifdef COBJMACROS
  1486. #define IMimeSecurity_QueryInterface(This,riid,ppvObject) \
  1487. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1488. #define IMimeSecurity_AddRef(This) \
  1489. (This)->lpVtbl -> AddRef(This)
  1490. #define IMimeSecurity_Release(This) \
  1491. (This)->lpVtbl -> Release(This)
  1492. #define IMimeSecurity_InitNew(This) \
  1493. (This)->lpVtbl -> InitNew(This)
  1494. #define IMimeSecurity_CheckInit(This) \
  1495. (This)->lpVtbl -> CheckInit(This)
  1496. #define IMimeSecurity_EncodeMessage(This,pTree,dwFlags) \
  1497. (This)->lpVtbl -> EncodeMessage(This,pTree,dwFlags)
  1498. #define IMimeSecurity_EncodeBody(This,pTree,hEncodeRoot,dwFlags) \
  1499. (This)->lpVtbl -> EncodeBody(This,pTree,hEncodeRoot,dwFlags)
  1500. #define IMimeSecurity_DecodeMessage(This,pTree,dwFlags) \
  1501. (This)->lpVtbl -> DecodeMessage(This,pTree,dwFlags)
  1502. #define IMimeSecurity_DecodeBody(This,pTree,hDecodeRoot,dwFlags) \
  1503. (This)->lpVtbl -> DecodeBody(This,pTree,hDecodeRoot,dwFlags)
  1504. #define IMimeSecurity_EnumCertificates(This,hc,dwUsage,pPrev,ppCert) \
  1505. (This)->lpVtbl -> EnumCertificates(This,hc,dwUsage,pPrev,ppCert)
  1506. #define IMimeSecurity_GetCertificateName(This,pX509Cert,cn,ppszName) \
  1507. (This)->lpVtbl -> GetCertificateName(This,pX509Cert,cn,ppszName)
  1508. #define IMimeSecurity_GetMessageType(This,hwndParent,pBody,pdwSecType) \
  1509. (This)->lpVtbl -> GetMessageType(This,hwndParent,pBody,pdwSecType)
  1510. #define IMimeSecurity_GetCertData(This,pX509Cert,dataid,pValue) \
  1511. (This)->lpVtbl -> GetCertData(This,pX509Cert,dataid,pValue)
  1512. #endif /* COBJMACROS */
  1513. #endif /* C style interface */
  1514. HRESULT STDMETHODCALLTYPE IMimeSecurity_InitNew_Proxy(
  1515. IMimeSecurity * This);
  1516. void __RPC_STUB IMimeSecurity_InitNew_Stub(
  1517. IRpcStubBuffer *This,
  1518. IRpcChannelBuffer *_pRpcChannelBuffer,
  1519. PRPC_MESSAGE _pRpcMessage,
  1520. DWORD *_pdwStubPhase);
  1521. HRESULT STDMETHODCALLTYPE IMimeSecurity_CheckInit_Proxy(
  1522. IMimeSecurity * This);
  1523. void __RPC_STUB IMimeSecurity_CheckInit_Stub(
  1524. IRpcStubBuffer *This,
  1525. IRpcChannelBuffer *_pRpcChannelBuffer,
  1526. PRPC_MESSAGE _pRpcMessage,
  1527. DWORD *_pdwStubPhase);
  1528. HRESULT STDMETHODCALLTYPE IMimeSecurity_EncodeMessage_Proxy(
  1529. IMimeSecurity * This,
  1530. /* [in] */ IMimeMessageTree *const pTree,
  1531. /* [in] */ DWORD dwFlags);
  1532. void __RPC_STUB IMimeSecurity_EncodeMessage_Stub(
  1533. IRpcStubBuffer *This,
  1534. IRpcChannelBuffer *_pRpcChannelBuffer,
  1535. PRPC_MESSAGE _pRpcMessage,
  1536. DWORD *_pdwStubPhase);
  1537. HRESULT STDMETHODCALLTYPE IMimeSecurity_EncodeBody_Proxy(
  1538. IMimeSecurity * This,
  1539. /* [in] */ IMimeMessageTree *const pTree,
  1540. /* [in] */ HBODY hEncodeRoot,
  1541. /* [in] */ DWORD dwFlags);
  1542. void __RPC_STUB IMimeSecurity_EncodeBody_Stub(
  1543. IRpcStubBuffer *This,
  1544. IRpcChannelBuffer *_pRpcChannelBuffer,
  1545. PRPC_MESSAGE _pRpcMessage,
  1546. DWORD *_pdwStubPhase);
  1547. HRESULT STDMETHODCALLTYPE IMimeSecurity_DecodeMessage_Proxy(
  1548. IMimeSecurity * This,
  1549. /* [in] */ IMimeMessageTree *const pTree,
  1550. /* [in] */ DWORD dwFlags);
  1551. void __RPC_STUB IMimeSecurity_DecodeMessage_Stub(
  1552. IRpcStubBuffer *This,
  1553. IRpcChannelBuffer *_pRpcChannelBuffer,
  1554. PRPC_MESSAGE _pRpcMessage,
  1555. DWORD *_pdwStubPhase);
  1556. HRESULT STDMETHODCALLTYPE IMimeSecurity_DecodeBody_Proxy(
  1557. IMimeSecurity * This,
  1558. /* [in] */ IMimeMessageTree *const pTree,
  1559. /* [in] */ HBODY hDecodeRoot,
  1560. /* [in] */ DWORD dwFlags);
  1561. void __RPC_STUB IMimeSecurity_DecodeBody_Stub(
  1562. IRpcStubBuffer *This,
  1563. IRpcChannelBuffer *_pRpcChannelBuffer,
  1564. PRPC_MESSAGE _pRpcMessage,
  1565. DWORD *_pdwStubPhase);
  1566. HRESULT STDMETHODCALLTYPE IMimeSecurity_EnumCertificates_Proxy(
  1567. IMimeSecurity * This,
  1568. /* [in] */ HCAPICERTSTORE hc,
  1569. /* [in] */ DWORD dwUsage,
  1570. /* [in] */ PCX509CERT pPrev,
  1571. /* [out] */ PCX509CERT *ppCert);
  1572. void __RPC_STUB IMimeSecurity_EnumCertificates_Stub(
  1573. IRpcStubBuffer *This,
  1574. IRpcChannelBuffer *_pRpcChannelBuffer,
  1575. PRPC_MESSAGE _pRpcMessage,
  1576. DWORD *_pdwStubPhase);
  1577. HRESULT STDMETHODCALLTYPE IMimeSecurity_GetCertificateName_Proxy(
  1578. IMimeSecurity * This,
  1579. /* [in] */ const PCX509CERT pX509Cert,
  1580. /* [in] */ const CERTNAMETYPE cn,
  1581. /* [out] */ LPSTR *ppszName);
  1582. void __RPC_STUB IMimeSecurity_GetCertificateName_Stub(
  1583. IRpcStubBuffer *This,
  1584. IRpcChannelBuffer *_pRpcChannelBuffer,
  1585. PRPC_MESSAGE _pRpcMessage,
  1586. DWORD *_pdwStubPhase);
  1587. HRESULT STDMETHODCALLTYPE IMimeSecurity_GetMessageType_Proxy(
  1588. IMimeSecurity * This,
  1589. /* [in] */ const HWND hwndParent,
  1590. /* [in] */ IMimeBody *const pBody,
  1591. /* [out] */ DWORD *const pdwSecType);
  1592. void __RPC_STUB IMimeSecurity_GetMessageType_Stub(
  1593. IRpcStubBuffer *This,
  1594. IRpcChannelBuffer *_pRpcChannelBuffer,
  1595. PRPC_MESSAGE _pRpcMessage,
  1596. DWORD *_pdwStubPhase);
  1597. HRESULT STDMETHODCALLTYPE IMimeSecurity_GetCertData_Proxy(
  1598. IMimeSecurity * This,
  1599. /* [in] */ const PCX509CERT pX509Cert,
  1600. /* [in] */ const CERTDATAID dataid,
  1601. /* [ref][out] */ LPPROPVARIANT pValue);
  1602. void __RPC_STUB IMimeSecurity_GetCertData_Stub(
  1603. IRpcStubBuffer *This,
  1604. IRpcChannelBuffer *_pRpcChannelBuffer,
  1605. PRPC_MESSAGE _pRpcMessage,
  1606. DWORD *_pdwStubPhase);
  1607. #endif /* __IMimeSecurity_INTERFACE_DEFINED__ */
  1608. #ifndef __IMimeHeaderTable_INTERFACE_DEFINED__
  1609. #define __IMimeHeaderTable_INTERFACE_DEFINED__
  1610. /* interface IMimeHeaderTable */
  1611. /* [object][helpstring][uuid] */
  1612. typedef struct tagFINDHEADER
  1613. {
  1614. LPCSTR pszHeader;
  1615. DWORD dwReserved;
  1616. } FINDHEADER;
  1617. typedef struct tagFINDHEADER *LPFINDHEADER;
  1618. typedef struct tagHEADERROWINFO
  1619. {
  1620. DWORD dwRowNumber;
  1621. ULONG cboffStart;
  1622. ULONG cboffColon;
  1623. ULONG cboffEnd;
  1624. } HEADERROWINFO;
  1625. typedef struct tagHEADERROWINFO *LPHEADERROWINFO;
  1626. typedef
  1627. enum tagHEADERTABLEFLAGS
  1628. { HTF_NAMEINDATA = 0x1,
  1629. HTF_ENUMHANDLESONLY = 0x2
  1630. } HEADERTABLEFLAGS;
  1631. EXTERN_C const IID IID_IMimeHeaderTable;
  1632. #if defined(__cplusplus) && !defined(CINTERFACE)
  1633. MIDL_INTERFACE("FD853CD1-7F86-11d0-8252-00C04FD85AB4")
  1634. IMimeHeaderTable : public IPersistStream
  1635. {
  1636. public:
  1637. virtual HRESULT STDMETHODCALLTYPE FindFirstRow(
  1638. /* [in] */ LPFINDHEADER pFindHeader,
  1639. /* [out] */ LPHHEADERROW phRow) = 0;
  1640. virtual HRESULT STDMETHODCALLTYPE FindNextRow(
  1641. /* [in] */ LPFINDHEADER pFindHeader,
  1642. /* [out] */ LPHHEADERROW phRow) = 0;
  1643. virtual HRESULT STDMETHODCALLTYPE CountRows(
  1644. /* [in] */ LPCSTR pszHeader,
  1645. /* [out] */ ULONG *pcRows) = 0;
  1646. virtual HRESULT STDMETHODCALLTYPE AppendRow(
  1647. /* [in] */ LPCSTR pszHeader,
  1648. /* [in] */ DWORD dwFlags,
  1649. /* [in] */ LPCSTR pszData,
  1650. /* [in] */ ULONG cchData,
  1651. /* [out] */ LPHHEADERROW phRow) = 0;
  1652. virtual HRESULT STDMETHODCALLTYPE DeleteRow(
  1653. /* [in] */ HHEADERROW hRow) = 0;
  1654. virtual HRESULT STDMETHODCALLTYPE GetRowData(
  1655. /* [in] */ HHEADERROW hRow,
  1656. /* [in] */ DWORD dwFlags,
  1657. /* [out] */ LPSTR *ppszData,
  1658. /* [out] */ ULONG *pcchData) = 0;
  1659. virtual HRESULT STDMETHODCALLTYPE SetRowData(
  1660. /* [in] */ HHEADERROW hRow,
  1661. /* [in] */ DWORD dwFlags,
  1662. /* [in] */ LPCSTR pszData,
  1663. /* [in] */ ULONG cchData) = 0;
  1664. virtual HRESULT STDMETHODCALLTYPE GetRowInfo(
  1665. /* [in] */ HHEADERROW hRow,
  1666. /* [out][in] */ LPHEADERROWINFO pInfo) = 0;
  1667. virtual HRESULT STDMETHODCALLTYPE SetRowNumber(
  1668. /* [in] */ HHEADERROW hRow,
  1669. /* [in] */ DWORD dwRowNumber) = 0;
  1670. virtual HRESULT STDMETHODCALLTYPE EnumRows(
  1671. /* [in] */ LPCSTR pszHeader,
  1672. /* [in] */ DWORD dwFlags,
  1673. /* [out] */ IMimeEnumHeaderRows **ppEnum) = 0;
  1674. virtual HRESULT STDMETHODCALLTYPE Clone(
  1675. /* [out] */ IMimeHeaderTable **ppTable) = 0;
  1676. virtual HRESULT STDMETHODCALLTYPE BindToObject(
  1677. /* [in] */ REFIID riid,
  1678. /* [iid_is][out] */ void **ppvObject) = 0;
  1679. };
  1680. #else /* C style interface */
  1681. typedef struct IMimeHeaderTableVtbl
  1682. {
  1683. BEGIN_INTERFACE
  1684. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1685. IMimeHeaderTable * This,
  1686. /* [in] */ REFIID riid,
  1687. /* [iid_is][out] */ void **ppvObject);
  1688. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1689. IMimeHeaderTable * This);
  1690. ULONG ( STDMETHODCALLTYPE *Release )(
  1691. IMimeHeaderTable * This);
  1692. HRESULT ( STDMETHODCALLTYPE *GetClassID )(
  1693. IMimeHeaderTable * This,
  1694. /* [out] */ CLSID *pClassID);
  1695. HRESULT ( STDMETHODCALLTYPE *IsDirty )(
  1696. IMimeHeaderTable * This);
  1697. HRESULT ( STDMETHODCALLTYPE *Load )(
  1698. IMimeHeaderTable * This,
  1699. /* [unique][in] */ IStream *pStm);
  1700. HRESULT ( STDMETHODCALLTYPE *Save )(
  1701. IMimeHeaderTable * This,
  1702. /* [unique][in] */ IStream *pStm,
  1703. /* [in] */ BOOL fClearDirty);
  1704. HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
  1705. IMimeHeaderTable * This,
  1706. /* [out] */ ULARGE_INTEGER *pcbSize);
  1707. HRESULT ( STDMETHODCALLTYPE *FindFirstRow )(
  1708. IMimeHeaderTable * This,
  1709. /* [in] */ LPFINDHEADER pFindHeader,
  1710. /* [out] */ LPHHEADERROW phRow);
  1711. HRESULT ( STDMETHODCALLTYPE *FindNextRow )(
  1712. IMimeHeaderTable * This,
  1713. /* [in] */ LPFINDHEADER pFindHeader,
  1714. /* [out] */ LPHHEADERROW phRow);
  1715. HRESULT ( STDMETHODCALLTYPE *CountRows )(
  1716. IMimeHeaderTable * This,
  1717. /* [in] */ LPCSTR pszHeader,
  1718. /* [out] */ ULONG *pcRows);
  1719. HRESULT ( STDMETHODCALLTYPE *AppendRow )(
  1720. IMimeHeaderTable * This,
  1721. /* [in] */ LPCSTR pszHeader,
  1722. /* [in] */ DWORD dwFlags,
  1723. /* [in] */ LPCSTR pszData,
  1724. /* [in] */ ULONG cchData,
  1725. /* [out] */ LPHHEADERROW phRow);
  1726. HRESULT ( STDMETHODCALLTYPE *DeleteRow )(
  1727. IMimeHeaderTable * This,
  1728. /* [in] */ HHEADERROW hRow);
  1729. HRESULT ( STDMETHODCALLTYPE *GetRowData )(
  1730. IMimeHeaderTable * This,
  1731. /* [in] */ HHEADERROW hRow,
  1732. /* [in] */ DWORD dwFlags,
  1733. /* [out] */ LPSTR *ppszData,
  1734. /* [out] */ ULONG *pcchData);
  1735. HRESULT ( STDMETHODCALLTYPE *SetRowData )(
  1736. IMimeHeaderTable * This,
  1737. /* [in] */ HHEADERROW hRow,
  1738. /* [in] */ DWORD dwFlags,
  1739. /* [in] */ LPCSTR pszData,
  1740. /* [in] */ ULONG cchData);
  1741. HRESULT ( STDMETHODCALLTYPE *GetRowInfo )(
  1742. IMimeHeaderTable * This,
  1743. /* [in] */ HHEADERROW hRow,
  1744. /* [out][in] */ LPHEADERROWINFO pInfo);
  1745. HRESULT ( STDMETHODCALLTYPE *SetRowNumber )(
  1746. IMimeHeaderTable * This,
  1747. /* [in] */ HHEADERROW hRow,
  1748. /* [in] */ DWORD dwRowNumber);
  1749. HRESULT ( STDMETHODCALLTYPE *EnumRows )(
  1750. IMimeHeaderTable * This,
  1751. /* [in] */ LPCSTR pszHeader,
  1752. /* [in] */ DWORD dwFlags,
  1753. /* [out] */ IMimeEnumHeaderRows **ppEnum);
  1754. HRESULT ( STDMETHODCALLTYPE *Clone )(
  1755. IMimeHeaderTable * This,
  1756. /* [out] */ IMimeHeaderTable **ppTable);
  1757. HRESULT ( STDMETHODCALLTYPE *BindToObject )(
  1758. IMimeHeaderTable * This,
  1759. /* [in] */ REFIID riid,
  1760. /* [iid_is][out] */ void **ppvObject);
  1761. END_INTERFACE
  1762. } IMimeHeaderTableVtbl;
  1763. interface IMimeHeaderTable
  1764. {
  1765. CONST_VTBL struct IMimeHeaderTableVtbl *lpVtbl;
  1766. };
  1767. #ifdef COBJMACROS
  1768. #define IMimeHeaderTable_QueryInterface(This,riid,ppvObject) \
  1769. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1770. #define IMimeHeaderTable_AddRef(This) \
  1771. (This)->lpVtbl -> AddRef(This)
  1772. #define IMimeHeaderTable_Release(This) \
  1773. (This)->lpVtbl -> Release(This)
  1774. #define IMimeHeaderTable_GetClassID(This,pClassID) \
  1775. (This)->lpVtbl -> GetClassID(This,pClassID)
  1776. #define IMimeHeaderTable_IsDirty(This) \
  1777. (This)->lpVtbl -> IsDirty(This)
  1778. #define IMimeHeaderTable_Load(This,pStm) \
  1779. (This)->lpVtbl -> Load(This,pStm)
  1780. #define IMimeHeaderTable_Save(This,pStm,fClearDirty) \
  1781. (This)->lpVtbl -> Save(This,pStm,fClearDirty)
  1782. #define IMimeHeaderTable_GetSizeMax(This,pcbSize) \
  1783. (This)->lpVtbl -> GetSizeMax(This,pcbSize)
  1784. #define IMimeHeaderTable_FindFirstRow(This,pFindHeader,phRow) \
  1785. (This)->lpVtbl -> FindFirstRow(This,pFindHeader,phRow)
  1786. #define IMimeHeaderTable_FindNextRow(This,pFindHeader,phRow) \
  1787. (This)->lpVtbl -> FindNextRow(This,pFindHeader,phRow)
  1788. #define IMimeHeaderTable_CountRows(This,pszHeader,pcRows) \
  1789. (This)->lpVtbl -> CountRows(This,pszHeader,pcRows)
  1790. #define IMimeHeaderTable_AppendRow(This,pszHeader,dwFlags,pszData,cchData,phRow) \
  1791. (This)->lpVtbl -> AppendRow(This,pszHeader,dwFlags,pszData,cchData,phRow)
  1792. #define IMimeHeaderTable_DeleteRow(This,hRow) \
  1793. (This)->lpVtbl -> DeleteRow(This,hRow)
  1794. #define IMimeHeaderTable_GetRowData(This,hRow,dwFlags,ppszData,pcchData) \
  1795. (This)->lpVtbl -> GetRowData(This,hRow,dwFlags,ppszData,pcchData)
  1796. #define IMimeHeaderTable_SetRowData(This,hRow,dwFlags,pszData,cchData) \
  1797. (This)->lpVtbl -> SetRowData(This,hRow,dwFlags,pszData,cchData)
  1798. #define IMimeHeaderTable_GetRowInfo(This,hRow,pInfo) \
  1799. (This)->lpVtbl -> GetRowInfo(This,hRow,pInfo)
  1800. #define IMimeHeaderTable_SetRowNumber(This,hRow,dwRowNumber) \
  1801. (This)->lpVtbl -> SetRowNumber(This,hRow,dwRowNumber)
  1802. #define IMimeHeaderTable_EnumRows(This,pszHeader,dwFlags,ppEnum) \
  1803. (This)->lpVtbl -> EnumRows(This,pszHeader,dwFlags,ppEnum)
  1804. #define IMimeHeaderTable_Clone(This,ppTable) \
  1805. (This)->lpVtbl -> Clone(This,ppTable)
  1806. #define IMimeHeaderTable_BindToObject(This,riid,ppvObject) \
  1807. (This)->lpVtbl -> BindToObject(This,riid,ppvObject)
  1808. #endif /* COBJMACROS */
  1809. #endif /* C style interface */
  1810. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_FindFirstRow_Proxy(
  1811. IMimeHeaderTable * This,
  1812. /* [in] */ LPFINDHEADER pFindHeader,
  1813. /* [out] */ LPHHEADERROW phRow);
  1814. void __RPC_STUB IMimeHeaderTable_FindFirstRow_Stub(
  1815. IRpcStubBuffer *This,
  1816. IRpcChannelBuffer *_pRpcChannelBuffer,
  1817. PRPC_MESSAGE _pRpcMessage,
  1818. DWORD *_pdwStubPhase);
  1819. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_FindNextRow_Proxy(
  1820. IMimeHeaderTable * This,
  1821. /* [in] */ LPFINDHEADER pFindHeader,
  1822. /* [out] */ LPHHEADERROW phRow);
  1823. void __RPC_STUB IMimeHeaderTable_FindNextRow_Stub(
  1824. IRpcStubBuffer *This,
  1825. IRpcChannelBuffer *_pRpcChannelBuffer,
  1826. PRPC_MESSAGE _pRpcMessage,
  1827. DWORD *_pdwStubPhase);
  1828. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_CountRows_Proxy(
  1829. IMimeHeaderTable * This,
  1830. /* [in] */ LPCSTR pszHeader,
  1831. /* [out] */ ULONG *pcRows);
  1832. void __RPC_STUB IMimeHeaderTable_CountRows_Stub(
  1833. IRpcStubBuffer *This,
  1834. IRpcChannelBuffer *_pRpcChannelBuffer,
  1835. PRPC_MESSAGE _pRpcMessage,
  1836. DWORD *_pdwStubPhase);
  1837. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_AppendRow_Proxy(
  1838. IMimeHeaderTable * This,
  1839. /* [in] */ LPCSTR pszHeader,
  1840. /* [in] */ DWORD dwFlags,
  1841. /* [in] */ LPCSTR pszData,
  1842. /* [in] */ ULONG cchData,
  1843. /* [out] */ LPHHEADERROW phRow);
  1844. void __RPC_STUB IMimeHeaderTable_AppendRow_Stub(
  1845. IRpcStubBuffer *This,
  1846. IRpcChannelBuffer *_pRpcChannelBuffer,
  1847. PRPC_MESSAGE _pRpcMessage,
  1848. DWORD *_pdwStubPhase);
  1849. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_DeleteRow_Proxy(
  1850. IMimeHeaderTable * This,
  1851. /* [in] */ HHEADERROW hRow);
  1852. void __RPC_STUB IMimeHeaderTable_DeleteRow_Stub(
  1853. IRpcStubBuffer *This,
  1854. IRpcChannelBuffer *_pRpcChannelBuffer,
  1855. PRPC_MESSAGE _pRpcMessage,
  1856. DWORD *_pdwStubPhase);
  1857. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_GetRowData_Proxy(
  1858. IMimeHeaderTable * This,
  1859. /* [in] */ HHEADERROW hRow,
  1860. /* [in] */ DWORD dwFlags,
  1861. /* [out] */ LPSTR *ppszData,
  1862. /* [out] */ ULONG *pcchData);
  1863. void __RPC_STUB IMimeHeaderTable_GetRowData_Stub(
  1864. IRpcStubBuffer *This,
  1865. IRpcChannelBuffer *_pRpcChannelBuffer,
  1866. PRPC_MESSAGE _pRpcMessage,
  1867. DWORD *_pdwStubPhase);
  1868. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_SetRowData_Proxy(
  1869. IMimeHeaderTable * This,
  1870. /* [in] */ HHEADERROW hRow,
  1871. /* [in] */ DWORD dwFlags,
  1872. /* [in] */ LPCSTR pszData,
  1873. /* [in] */ ULONG cchData);
  1874. void __RPC_STUB IMimeHeaderTable_SetRowData_Stub(
  1875. IRpcStubBuffer *This,
  1876. IRpcChannelBuffer *_pRpcChannelBuffer,
  1877. PRPC_MESSAGE _pRpcMessage,
  1878. DWORD *_pdwStubPhase);
  1879. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_GetRowInfo_Proxy(
  1880. IMimeHeaderTable * This,
  1881. /* [in] */ HHEADERROW hRow,
  1882. /* [out][in] */ LPHEADERROWINFO pInfo);
  1883. void __RPC_STUB IMimeHeaderTable_GetRowInfo_Stub(
  1884. IRpcStubBuffer *This,
  1885. IRpcChannelBuffer *_pRpcChannelBuffer,
  1886. PRPC_MESSAGE _pRpcMessage,
  1887. DWORD *_pdwStubPhase);
  1888. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_SetRowNumber_Proxy(
  1889. IMimeHeaderTable * This,
  1890. /* [in] */ HHEADERROW hRow,
  1891. /* [in] */ DWORD dwRowNumber);
  1892. void __RPC_STUB IMimeHeaderTable_SetRowNumber_Stub(
  1893. IRpcStubBuffer *This,
  1894. IRpcChannelBuffer *_pRpcChannelBuffer,
  1895. PRPC_MESSAGE _pRpcMessage,
  1896. DWORD *_pdwStubPhase);
  1897. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_EnumRows_Proxy(
  1898. IMimeHeaderTable * This,
  1899. /* [in] */ LPCSTR pszHeader,
  1900. /* [in] */ DWORD dwFlags,
  1901. /* [out] */ IMimeEnumHeaderRows **ppEnum);
  1902. void __RPC_STUB IMimeHeaderTable_EnumRows_Stub(
  1903. IRpcStubBuffer *This,
  1904. IRpcChannelBuffer *_pRpcChannelBuffer,
  1905. PRPC_MESSAGE _pRpcMessage,
  1906. DWORD *_pdwStubPhase);
  1907. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_Clone_Proxy(
  1908. IMimeHeaderTable * This,
  1909. /* [out] */ IMimeHeaderTable **ppTable);
  1910. void __RPC_STUB IMimeHeaderTable_Clone_Stub(
  1911. IRpcStubBuffer *This,
  1912. IRpcChannelBuffer *_pRpcChannelBuffer,
  1913. PRPC_MESSAGE _pRpcMessage,
  1914. DWORD *_pdwStubPhase);
  1915. HRESULT STDMETHODCALLTYPE IMimeHeaderTable_BindToObject_Proxy(
  1916. IMimeHeaderTable * This,
  1917. /* [in] */ REFIID riid,
  1918. /* [iid_is][out] */ void **ppvObject);
  1919. void __RPC_STUB IMimeHeaderTable_BindToObject_Stub(
  1920. IRpcStubBuffer *This,
  1921. IRpcChannelBuffer *_pRpcChannelBuffer,
  1922. PRPC_MESSAGE _pRpcMessage,
  1923. DWORD *_pdwStubPhase);
  1924. #endif /* __IMimeHeaderTable_INTERFACE_DEFINED__ */
  1925. #ifndef __IMimePropertySchema_INTERFACE_DEFINED__
  1926. #define __IMimePropertySchema_INTERFACE_DEFINED__
  1927. /* interface IMimePropertySchema */
  1928. /* [object][helpstring][uuid] */
  1929. typedef /* [unique] */ IMimePropertySchema *LPMIMEPROPERTYSCHEMA;
  1930. typedef
  1931. enum tagMIMEPROPFLAGS
  1932. { MPF_INETCSET = 0x1,
  1933. MPF_RFC1522 = 0x2,
  1934. MPF_ADDRESS = 0x4,
  1935. MPF_HASPARAMS = 0x8,
  1936. MPF_MIME = 0x10,
  1937. MPF_READONLY = 0x20
  1938. } MIMEPROPFLAGS;
  1939. EXTERN_C const IID IID_IMimePropertySchema;
  1940. #if defined(__cplusplus) && !defined(CINTERFACE)
  1941. MIDL_INTERFACE("FD853CEC-7F86-11d0-8252-00C04FD85AB4")
  1942. IMimePropertySchema : public IUnknown
  1943. {
  1944. public:
  1945. virtual HRESULT STDMETHODCALLTYPE RegisterProperty(
  1946. /* [in] */ LPCSTR pszName,
  1947. /* [in] */ DWORD dwFlags,
  1948. /* [in] */ DWORD dwRowNumber,
  1949. /* [in] */ VARTYPE vtDefault,
  1950. /* [out] */ LPDWORD pdwPropId) = 0;
  1951. virtual HRESULT STDMETHODCALLTYPE ModifyProperty(
  1952. /* [in] */ LPCSTR pszName,
  1953. /* [in] */ DWORD dwFlags,
  1954. /* [in] */ DWORD dwRowNumber,
  1955. /* [in] */ VARTYPE vtDefault) = 0;
  1956. virtual HRESULT STDMETHODCALLTYPE GetPropertyId(
  1957. /* [in] */ LPCSTR pszName,
  1958. /* [out] */ LPDWORD pdwPropId) = 0;
  1959. virtual HRESULT STDMETHODCALLTYPE GetPropertyName(
  1960. /* [in] */ DWORD dwPropId,
  1961. /* [out] */ LPSTR *ppszName) = 0;
  1962. virtual HRESULT STDMETHODCALLTYPE RegisterAddressType(
  1963. /* [in] */ LPCSTR pszName,
  1964. /* [out] */ LPDWORD pdwAdrType) = 0;
  1965. };
  1966. #else /* C style interface */
  1967. typedef struct IMimePropertySchemaVtbl
  1968. {
  1969. BEGIN_INTERFACE
  1970. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1971. IMimePropertySchema * This,
  1972. /* [in] */ REFIID riid,
  1973. /* [iid_is][out] */ void **ppvObject);
  1974. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1975. IMimePropertySchema * This);
  1976. ULONG ( STDMETHODCALLTYPE *Release )(
  1977. IMimePropertySchema * This);
  1978. HRESULT ( STDMETHODCALLTYPE *RegisterProperty )(
  1979. IMimePropertySchema * This,
  1980. /* [in] */ LPCSTR pszName,
  1981. /* [in] */ DWORD dwFlags,
  1982. /* [in] */ DWORD dwRowNumber,
  1983. /* [in] */ VARTYPE vtDefault,
  1984. /* [out] */ LPDWORD pdwPropId);
  1985. HRESULT ( STDMETHODCALLTYPE *ModifyProperty )(
  1986. IMimePropertySchema * This,
  1987. /* [in] */ LPCSTR pszName,
  1988. /* [in] */ DWORD dwFlags,
  1989. /* [in] */ DWORD dwRowNumber,
  1990. /* [in] */ VARTYPE vtDefault);
  1991. HRESULT ( STDMETHODCALLTYPE *GetPropertyId )(
  1992. IMimePropertySchema * This,
  1993. /* [in] */ LPCSTR pszName,
  1994. /* [out] */ LPDWORD pdwPropId);
  1995. HRESULT ( STDMETHODCALLTYPE *GetPropertyName )(
  1996. IMimePropertySchema * This,
  1997. /* [in] */ DWORD dwPropId,
  1998. /* [out] */ LPSTR *ppszName);
  1999. HRESULT ( STDMETHODCALLTYPE *RegisterAddressType )(
  2000. IMimePropertySchema * This,
  2001. /* [in] */ LPCSTR pszName,
  2002. /* [out] */ LPDWORD pdwAdrType);
  2003. END_INTERFACE
  2004. } IMimePropertySchemaVtbl;
  2005. interface IMimePropertySchema
  2006. {
  2007. CONST_VTBL struct IMimePropertySchemaVtbl *lpVtbl;
  2008. };
  2009. #ifdef COBJMACROS
  2010. #define IMimePropertySchema_QueryInterface(This,riid,ppvObject) \
  2011. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2012. #define IMimePropertySchema_AddRef(This) \
  2013. (This)->lpVtbl -> AddRef(This)
  2014. #define IMimePropertySchema_Release(This) \
  2015. (This)->lpVtbl -> Release(This)
  2016. #define IMimePropertySchema_RegisterProperty(This,pszName,dwFlags,dwRowNumber,vtDefault,pdwPropId) \
  2017. (This)->lpVtbl -> RegisterProperty(This,pszName,dwFlags,dwRowNumber,vtDefault,pdwPropId)
  2018. #define IMimePropertySchema_ModifyProperty(This,pszName,dwFlags,dwRowNumber,vtDefault) \
  2019. (This)->lpVtbl -> ModifyProperty(This,pszName,dwFlags,dwRowNumber,vtDefault)
  2020. #define IMimePropertySchema_GetPropertyId(This,pszName,pdwPropId) \
  2021. (This)->lpVtbl -> GetPropertyId(This,pszName,pdwPropId)
  2022. #define IMimePropertySchema_GetPropertyName(This,dwPropId,ppszName) \
  2023. (This)->lpVtbl -> GetPropertyName(This,dwPropId,ppszName)
  2024. #define IMimePropertySchema_RegisterAddressType(This,pszName,pdwAdrType) \
  2025. (This)->lpVtbl -> RegisterAddressType(This,pszName,pdwAdrType)
  2026. #endif /* COBJMACROS */
  2027. #endif /* C style interface */
  2028. HRESULT STDMETHODCALLTYPE IMimePropertySchema_RegisterProperty_Proxy(
  2029. IMimePropertySchema * This,
  2030. /* [in] */ LPCSTR pszName,
  2031. /* [in] */ DWORD dwFlags,
  2032. /* [in] */ DWORD dwRowNumber,
  2033. /* [in] */ VARTYPE vtDefault,
  2034. /* [out] */ LPDWORD pdwPropId);
  2035. void __RPC_STUB IMimePropertySchema_RegisterProperty_Stub(
  2036. IRpcStubBuffer *This,
  2037. IRpcChannelBuffer *_pRpcChannelBuffer,
  2038. PRPC_MESSAGE _pRpcMessage,
  2039. DWORD *_pdwStubPhase);
  2040. HRESULT STDMETHODCALLTYPE IMimePropertySchema_ModifyProperty_Proxy(
  2041. IMimePropertySchema * This,
  2042. /* [in] */ LPCSTR pszName,
  2043. /* [in] */ DWORD dwFlags,
  2044. /* [in] */ DWORD dwRowNumber,
  2045. /* [in] */ VARTYPE vtDefault);
  2046. void __RPC_STUB IMimePropertySchema_ModifyProperty_Stub(
  2047. IRpcStubBuffer *This,
  2048. IRpcChannelBuffer *_pRpcChannelBuffer,
  2049. PRPC_MESSAGE _pRpcMessage,
  2050. DWORD *_pdwStubPhase);
  2051. HRESULT STDMETHODCALLTYPE IMimePropertySchema_GetPropertyId_Proxy(
  2052. IMimePropertySchema * This,
  2053. /* [in] */ LPCSTR pszName,
  2054. /* [out] */ LPDWORD pdwPropId);
  2055. void __RPC_STUB IMimePropertySchema_GetPropertyId_Stub(
  2056. IRpcStubBuffer *This,
  2057. IRpcChannelBuffer *_pRpcChannelBuffer,
  2058. PRPC_MESSAGE _pRpcMessage,
  2059. DWORD *_pdwStubPhase);
  2060. HRESULT STDMETHODCALLTYPE IMimePropertySchema_GetPropertyName_Proxy(
  2061. IMimePropertySchema * This,
  2062. /* [in] */ DWORD dwPropId,
  2063. /* [out] */ LPSTR *ppszName);
  2064. void __RPC_STUB IMimePropertySchema_GetPropertyName_Stub(
  2065. IRpcStubBuffer *This,
  2066. IRpcChannelBuffer *_pRpcChannelBuffer,
  2067. PRPC_MESSAGE _pRpcMessage,
  2068. DWORD *_pdwStubPhase);
  2069. HRESULT STDMETHODCALLTYPE IMimePropertySchema_RegisterAddressType_Proxy(
  2070. IMimePropertySchema * This,
  2071. /* [in] */ LPCSTR pszName,
  2072. /* [out] */ LPDWORD pdwAdrType);
  2073. void __RPC_STUB IMimePropertySchema_RegisterAddressType_Stub(
  2074. IRpcStubBuffer *This,
  2075. IRpcChannelBuffer *_pRpcChannelBuffer,
  2076. PRPC_MESSAGE _pRpcMessage,
  2077. DWORD *_pdwStubPhase);
  2078. #endif /* __IMimePropertySchema_INTERFACE_DEFINED__ */
  2079. #ifndef __IMimePropertySet_INTERFACE_DEFINED__
  2080. #define __IMimePropertySet_INTERFACE_DEFINED__
  2081. /* interface IMimePropertySet */
  2082. /* [object][helpstring][uuid] */
  2083. typedef /* [unique] */ IMimePropertySet *LPMIMEPROPERTYSET;
  2084. #define PDF_ENCODED 0x00000001
  2085. #define PDF_NAMEINDATA 0x00000002
  2086. #define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)
  2087. #define PDF_NOCOMMENTS 0x00000008
  2088. #define PDF_SAVENOENCODE 0x00000010
  2089. #define PDF_VECTOR 0x00000020
  2090. typedef struct tagMIMEPARAMINFO
  2091. {
  2092. LPSTR pszName;
  2093. LPSTR pszData;
  2094. } MIMEPARAMINFO;
  2095. typedef struct tagMIMEPARAMINFO *LPMIMEPARAMINFO;
  2096. typedef
  2097. enum tagPROPINFOMASK
  2098. { PIM_CHARSET = 0x1,
  2099. PIM_ENCODINGTYPE = 0x2,
  2100. PIM_ROWNUMBER = 0x4,
  2101. PIM_FLAGS = 0x8,
  2102. PIM_PROPID = 0x10,
  2103. PIM_VALUES = 0x20,
  2104. PIM_VTDEFAULT = 0x40,
  2105. PIM_VTCURRENT = 0x80
  2106. } PROPINFOMASK;
  2107. typedef struct tagMIMEPROPINFO
  2108. {
  2109. DWORD dwMask;
  2110. HCHARSET hCharset;
  2111. ENCODINGTYPE ietEncoding;
  2112. DWORD dwRowNumber;
  2113. DWORD dwFlags;
  2114. DWORD dwPropId;
  2115. DWORD cValues;
  2116. VARTYPE vtDefault;
  2117. VARTYPE vtCurrent;
  2118. } MIMEPROPINFO;
  2119. typedef struct tagMIMEPROPINFO *LPMIMEPROPINFO;
  2120. typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
  2121. #define EPF_NONAME 0x00000001
  2122. EXTERN_C const IID IID_IMimePropertySet;
  2123. #if defined(__cplusplus) && !defined(CINTERFACE)
  2124. MIDL_INTERFACE("FD853CD3-7F86-11d0-8252-00C04FD85AB4")
  2125. IMimePropertySet : public IPersistStreamInit
  2126. {
  2127. public:
  2128. virtual HRESULT STDMETHODCALLTYPE GetPropInfo(
  2129. /* [in] */ LPCSTR pszName,
  2130. /* [out][in] */ LPMIMEPROPINFO pInfo) = 0;
  2131. virtual HRESULT STDMETHODCALLTYPE SetPropInfo(
  2132. /* [in] */ LPCSTR pszName,
  2133. /* [in] */ LPCMIMEPROPINFO pInfo) = 0;
  2134. virtual HRESULT STDMETHODCALLTYPE GetProp(
  2135. /* [in] */ LPCSTR pszName,
  2136. /* [in] */ DWORD dwFlags,
  2137. /* [out][in] */ LPPROPVARIANT pValue) = 0;
  2138. virtual HRESULT STDMETHODCALLTYPE SetProp(
  2139. /* [in] */ LPCSTR pszName,
  2140. /* [in] */ DWORD dwFlags,
  2141. /* [in] */ LPCPROPVARIANT pValue) = 0;
  2142. virtual HRESULT STDMETHODCALLTYPE AppendProp(
  2143. /* [in] */ LPCSTR pszName,
  2144. /* [in] */ DWORD dwFlags,
  2145. /* [in] */ LPPROPVARIANT pValue) = 0;
  2146. virtual HRESULT STDMETHODCALLTYPE DeleteProp(
  2147. /* [in] */ LPCSTR pszName) = 0;
  2148. virtual HRESULT STDMETHODCALLTYPE CopyProps(
  2149. /* [in] */ ULONG cNames,
  2150. /* [in] */ LPCSTR *prgszName,
  2151. /* [in] */ IMimePropertySet *pPropertySet) = 0;
  2152. virtual HRESULT STDMETHODCALLTYPE MoveProps(
  2153. /* [in] */ ULONG cNames,
  2154. /* [in] */ LPCSTR *prgszName,
  2155. /* [in] */ IMimePropertySet *pPropertySet) = 0;
  2156. virtual HRESULT STDMETHODCALLTYPE DeleteExcept(
  2157. /* [in] */ ULONG cNames,
  2158. /* [in] */ LPCSTR *prgszName) = 0;
  2159. virtual HRESULT STDMETHODCALLTYPE QueryProp(
  2160. /* [in] */ LPCSTR pszName,
  2161. /* [in] */ LPCSTR pszCriteria,
  2162. /* [in] */ boolean fSubString,
  2163. /* [in] */ boolean fCaseSensitive) = 0;
  2164. virtual HRESULT STDMETHODCALLTYPE GetCharset(
  2165. /* [out] */ LPHCHARSET phCharset) = 0;
  2166. virtual HRESULT STDMETHODCALLTYPE SetCharset(
  2167. /* [in] */ HCHARSET hCharset,
  2168. /* [in] */ CSETAPPLYTYPE applytype) = 0;
  2169. virtual HRESULT STDMETHODCALLTYPE GetParameters(
  2170. /* [in] */ LPCSTR pszName,
  2171. /* [out] */ ULONG *pcParams,
  2172. /* [out] */ LPMIMEPARAMINFO *pprgParam) = 0;
  2173. virtual HRESULT STDMETHODCALLTYPE IsContentType(
  2174. /* [in] */ LPCSTR pszPriType,
  2175. /* [in] */ LPCSTR pszSubType) = 0;
  2176. virtual HRESULT STDMETHODCALLTYPE BindToObject(
  2177. /* [in] */ REFIID riid,
  2178. /* [iid_is][out] */ void **ppvObject) = 0;
  2179. virtual HRESULT STDMETHODCALLTYPE Clone(
  2180. /* [out] */ IMimePropertySet **ppPropertySet) = 0;
  2181. virtual HRESULT STDMETHODCALLTYPE SetOption(
  2182. /* [in] */ const TYPEDID oid,
  2183. /* [in] */ LPCPROPVARIANT pValue) = 0;
  2184. virtual HRESULT STDMETHODCALLTYPE GetOption(
  2185. /* [in] */ const TYPEDID oid,
  2186. /* [out][in] */ LPPROPVARIANT pValue) = 0;
  2187. virtual HRESULT STDMETHODCALLTYPE EnumProps(
  2188. /* [in] */ DWORD dwFlags,
  2189. /* [out] */ IMimeEnumProperties **ppEnum) = 0;
  2190. };
  2191. #else /* C style interface */
  2192. typedef struct IMimePropertySetVtbl
  2193. {
  2194. BEGIN_INTERFACE
  2195. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2196. IMimePropertySet * This,
  2197. /* [in] */ REFIID riid,
  2198. /* [iid_is][out] */ void **ppvObject);
  2199. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2200. IMimePropertySet * This);
  2201. ULONG ( STDMETHODCALLTYPE *Release )(
  2202. IMimePropertySet * This);
  2203. HRESULT ( STDMETHODCALLTYPE *GetClassID )(
  2204. IMimePropertySet * This,
  2205. /* [out] */ CLSID *pClassID);
  2206. HRESULT ( STDMETHODCALLTYPE *IsDirty )(
  2207. IMimePropertySet * This);
  2208. HRESULT ( STDMETHODCALLTYPE *Load )(
  2209. IMimePropertySet * This,
  2210. /* [in] */ LPSTREAM pStm);
  2211. HRESULT ( STDMETHODCALLTYPE *Save )(
  2212. IMimePropertySet * This,
  2213. /* [in] */ LPSTREAM pStm,
  2214. /* [in] */ BOOL fClearDirty);
  2215. HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
  2216. IMimePropertySet * This,
  2217. /* [out] */ ULARGE_INTEGER *pCbSize);
  2218. HRESULT ( STDMETHODCALLTYPE *InitNew )(
  2219. IMimePropertySet * This);
  2220. HRESULT ( STDMETHODCALLTYPE *GetPropInfo )(
  2221. IMimePropertySet * This,
  2222. /* [in] */ LPCSTR pszName,
  2223. /* [out][in] */ LPMIMEPROPINFO pInfo);
  2224. HRESULT ( STDMETHODCALLTYPE *SetPropInfo )(
  2225. IMimePropertySet * This,
  2226. /* [in] */ LPCSTR pszName,
  2227. /* [in] */ LPCMIMEPROPINFO pInfo);
  2228. HRESULT ( STDMETHODCALLTYPE *GetProp )(
  2229. IMimePropertySet * This,
  2230. /* [in] */ LPCSTR pszName,
  2231. /* [in] */ DWORD dwFlags,
  2232. /* [out][in] */ LPPROPVARIANT pValue);
  2233. HRESULT ( STDMETHODCALLTYPE *SetProp )(
  2234. IMimePropertySet * This,
  2235. /* [in] */ LPCSTR pszName,
  2236. /* [in] */ DWORD dwFlags,
  2237. /* [in] */ LPCPROPVARIANT pValue);
  2238. HRESULT ( STDMETHODCALLTYPE *AppendProp )(
  2239. IMimePropertySet * This,
  2240. /* [in] */ LPCSTR pszName,
  2241. /* [in] */ DWORD dwFlags,
  2242. /* [in] */ LPPROPVARIANT pValue);
  2243. HRESULT ( STDMETHODCALLTYPE *DeleteProp )(
  2244. IMimePropertySet * This,
  2245. /* [in] */ LPCSTR pszName);
  2246. HRESULT ( STDMETHODCALLTYPE *CopyProps )(
  2247. IMimePropertySet * This,
  2248. /* [in] */ ULONG cNames,
  2249. /* [in] */ LPCSTR *prgszName,
  2250. /* [in] */ IMimePropertySet *pPropertySet);
  2251. HRESULT ( STDMETHODCALLTYPE *MoveProps )(
  2252. IMimePropertySet * This,
  2253. /* [in] */ ULONG cNames,
  2254. /* [in] */ LPCSTR *prgszName,
  2255. /* [in] */ IMimePropertySet *pPropertySet);
  2256. HRESULT ( STDMETHODCALLTYPE *DeleteExcept )(
  2257. IMimePropertySet * This,
  2258. /* [in] */ ULONG cNames,
  2259. /* [in] */ LPCSTR *prgszName);
  2260. HRESULT ( STDMETHODCALLTYPE *QueryProp )(
  2261. IMimePropertySet * This,
  2262. /* [in] */ LPCSTR pszName,
  2263. /* [in] */ LPCSTR pszCriteria,
  2264. /* [in] */ boolean fSubString,
  2265. /* [in] */ boolean fCaseSensitive);
  2266. HRESULT ( STDMETHODCALLTYPE *GetCharset )(
  2267. IMimePropertySet * This,
  2268. /* [out] */ LPHCHARSET phCharset);
  2269. HRESULT ( STDMETHODCALLTYPE *SetCharset )(
  2270. IMimePropertySet * This,
  2271. /* [in] */ HCHARSET hCharset,
  2272. /* [in] */ CSETAPPLYTYPE applytype);
  2273. HRESULT ( STDMETHODCALLTYPE *GetParameters )(
  2274. IMimePropertySet * This,
  2275. /* [in] */ LPCSTR pszName,
  2276. /* [out] */ ULONG *pcParams,
  2277. /* [out] */ LPMIMEPARAMINFO *pprgParam);
  2278. HRESULT ( STDMETHODCALLTYPE *IsContentType )(
  2279. IMimePropertySet * This,
  2280. /* [in] */ LPCSTR pszPriType,
  2281. /* [in] */ LPCSTR pszSubType);
  2282. HRESULT ( STDMETHODCALLTYPE *BindToObject )(
  2283. IMimePropertySet * This,
  2284. /* [in] */ REFIID riid,
  2285. /* [iid_is][out] */ void **ppvObject);
  2286. HRESULT ( STDMETHODCALLTYPE *Clone )(
  2287. IMimePropertySet * This,
  2288. /* [out] */ IMimePropertySet **ppPropertySet);
  2289. HRESULT ( STDMETHODCALLTYPE *SetOption )(
  2290. IMimePropertySet * This,
  2291. /* [in] */ const TYPEDID oid,
  2292. /* [in] */ LPCPROPVARIANT pValue);
  2293. HRESULT ( STDMETHODCALLTYPE *GetOption )(
  2294. IMimePropertySet * This,
  2295. /* [in] */ const TYPEDID oid,
  2296. /* [out][in] */ LPPROPVARIANT pValue);
  2297. HRESULT ( STDMETHODCALLTYPE *EnumProps )(
  2298. IMimePropertySet * This,
  2299. /* [in] */ DWORD dwFlags,
  2300. /* [out] */ IMimeEnumProperties **ppEnum);
  2301. END_INTERFACE
  2302. } IMimePropertySetVtbl;
  2303. interface IMimePropertySet
  2304. {
  2305. CONST_VTBL struct IMimePropertySetVtbl *lpVtbl;
  2306. };
  2307. #ifdef COBJMACROS
  2308. #define IMimePropertySet_QueryInterface(This,riid,ppvObject) \
  2309. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2310. #define IMimePropertySet_AddRef(This) \
  2311. (This)->lpVtbl -> AddRef(This)
  2312. #define IMimePropertySet_Release(This) \
  2313. (This)->lpVtbl -> Release(This)
  2314. #define IMimePropertySet_GetClassID(This,pClassID) \
  2315. (This)->lpVtbl -> GetClassID(This,pClassID)
  2316. #define IMimePropertySet_IsDirty(This) \
  2317. (This)->lpVtbl -> IsDirty(This)
  2318. #define IMimePropertySet_Load(This,pStm) \
  2319. (This)->lpVtbl -> Load(This,pStm)
  2320. #define IMimePropertySet_Save(This,pStm,fClearDirty) \
  2321. (This)->lpVtbl -> Save(This,pStm,fClearDirty)
  2322. #define IMimePropertySet_GetSizeMax(This,pCbSize) \
  2323. (This)->lpVtbl -> GetSizeMax(This,pCbSize)
  2324. #define IMimePropertySet_InitNew(This) \
  2325. (This)->lpVtbl -> InitNew(This)
  2326. #define IMimePropertySet_GetPropInfo(This,pszName,pInfo) \
  2327. (This)->lpVtbl -> GetPropInfo(This,pszName,pInfo)
  2328. #define IMimePropertySet_SetPropInfo(This,pszName,pInfo) \
  2329. (This)->lpVtbl -> SetPropInfo(This,pszName,pInfo)
  2330. #define IMimePropertySet_GetProp(This,pszName,dwFlags,pValue) \
  2331. (This)->lpVtbl -> GetProp(This,pszName,dwFlags,pValue)
  2332. #define IMimePropertySet_SetProp(This,pszName,dwFlags,pValue) \
  2333. (This)->lpVtbl -> SetProp(This,pszName,dwFlags,pValue)
  2334. #define IMimePropertySet_AppendProp(This,pszName,dwFlags,pValue) \
  2335. (This)->lpVtbl -> AppendProp(This,pszName,dwFlags,pValue)
  2336. #define IMimePropertySet_DeleteProp(This,pszName) \
  2337. (This)->lpVtbl -> DeleteProp(This,pszName)
  2338. #define IMimePropertySet_CopyProps(This,cNames,prgszName,pPropertySet) \
  2339. (This)->lpVtbl -> CopyProps(This,cNames,prgszName,pPropertySet)
  2340. #define IMimePropertySet_MoveProps(This,cNames,prgszName,pPropertySet) \
  2341. (This)->lpVtbl -> MoveProps(This,cNames,prgszName,pPropertySet)
  2342. #define IMimePropertySet_DeleteExcept(This,cNames,prgszName) \
  2343. (This)->lpVtbl -> DeleteExcept(This,cNames,prgszName)
  2344. #define IMimePropertySet_QueryProp(This,pszName,pszCriteria,fSubString,fCaseSensitive) \
  2345. (This)->lpVtbl -> QueryProp(This,pszName,pszCriteria,fSubString,fCaseSensitive)
  2346. #define IMimePropertySet_GetCharset(This,phCharset) \
  2347. (This)->lpVtbl -> GetCharset(This,phCharset)
  2348. #define IMimePropertySet_SetCharset(This,hCharset,applytype) \
  2349. (This)->lpVtbl -> SetCharset(This,hCharset,applytype)
  2350. #define IMimePropertySet_GetParameters(This,pszName,pcParams,pprgParam) \
  2351. (This)->lpVtbl -> GetParameters(This,pszName,pcParams,pprgParam)
  2352. #define IMimePropertySet_IsContentType(This,pszPriType,pszSubType) \
  2353. (This)->lpVtbl -> IsContentType(This,pszPriType,pszSubType)
  2354. #define IMimePropertySet_BindToObject(This,riid,ppvObject) \
  2355. (This)->lpVtbl -> BindToObject(This,riid,ppvObject)
  2356. #define IMimePropertySet_Clone(This,ppPropertySet) \
  2357. (This)->lpVtbl -> Clone(This,ppPropertySet)
  2358. #define IMimePropertySet_SetOption(This,oid,pValue) \
  2359. (This)->lpVtbl -> SetOption(This,oid,pValue)
  2360. #define IMimePropertySet_GetOption(This,oid,pValue) \
  2361. (This)->lpVtbl -> GetOption(This,oid,pValue)
  2362. #define IMimePropertySet_EnumProps(This,dwFlags,ppEnum) \
  2363. (This)->lpVtbl -> EnumProps(This,dwFlags,ppEnum)
  2364. #endif /* COBJMACROS */
  2365. #endif /* C style interface */
  2366. HRESULT STDMETHODCALLTYPE IMimePropertySet_GetPropInfo_Proxy(
  2367. IMimePropertySet * This,
  2368. /* [in] */ LPCSTR pszName,
  2369. /* [out][in] */ LPMIMEPROPINFO pInfo);
  2370. void __RPC_STUB IMimePropertySet_GetPropInfo_Stub(
  2371. IRpcStubBuffer *This,
  2372. IRpcChannelBuffer *_pRpcChannelBuffer,
  2373. PRPC_MESSAGE _pRpcMessage,
  2374. DWORD *_pdwStubPhase);
  2375. HRESULT STDMETHODCALLTYPE IMimePropertySet_SetPropInfo_Proxy(
  2376. IMimePropertySet * This,
  2377. /* [in] */ LPCSTR pszName,
  2378. /* [in] */ LPCMIMEPROPINFO pInfo);
  2379. void __RPC_STUB IMimePropertySet_SetPropInfo_Stub(
  2380. IRpcStubBuffer *This,
  2381. IRpcChannelBuffer *_pRpcChannelBuffer,
  2382. PRPC_MESSAGE _pRpcMessage,
  2383. DWORD *_pdwStubPhase);
  2384. HRESULT STDMETHODCALLTYPE IMimePropertySet_GetProp_Proxy(
  2385. IMimePropertySet * This,
  2386. /* [in] */ LPCSTR pszName,
  2387. /* [in] */ DWORD dwFlags,
  2388. /* [out][in] */ LPPROPVARIANT pValue);
  2389. void __RPC_STUB IMimePropertySet_GetProp_Stub(
  2390. IRpcStubBuffer *This,
  2391. IRpcChannelBuffer *_pRpcChannelBuffer,
  2392. PRPC_MESSAGE _pRpcMessage,
  2393. DWORD *_pdwStubPhase);
  2394. HRESULT STDMETHODCALLTYPE IMimePropertySet_SetProp_Proxy(
  2395. IMimePropertySet * This,
  2396. /* [in] */ LPCSTR pszName,
  2397. /* [in] */ DWORD dwFlags,
  2398. /* [in] */ LPCPROPVARIANT pValue);
  2399. void __RPC_STUB IMimePropertySet_SetProp_Stub(
  2400. IRpcStubBuffer *This,
  2401. IRpcChannelBuffer *_pRpcChannelBuffer,
  2402. PRPC_MESSAGE _pRpcMessage,
  2403. DWORD *_pdwStubPhase);
  2404. HRESULT STDMETHODCALLTYPE IMimePropertySet_AppendProp_Proxy(
  2405. IMimePropertySet * This,
  2406. /* [in] */ LPCSTR pszName,
  2407. /* [in] */ DWORD dwFlags,
  2408. /* [in] */ LPPROPVARIANT pValue);
  2409. void __RPC_STUB IMimePropertySet_AppendProp_Stub(
  2410. IRpcStubBuffer *This,
  2411. IRpcChannelBuffer *_pRpcChannelBuffer,
  2412. PRPC_MESSAGE _pRpcMessage,
  2413. DWORD *_pdwStubPhase);
  2414. HRESULT STDMETHODCALLTYPE IMimePropertySet_DeleteProp_Proxy(
  2415. IMimePropertySet * This,
  2416. /* [in] */ LPCSTR pszName);
  2417. void __RPC_STUB IMimePropertySet_DeleteProp_Stub(
  2418. IRpcStubBuffer *This,
  2419. IRpcChannelBuffer *_pRpcChannelBuffer,
  2420. PRPC_MESSAGE _pRpcMessage,
  2421. DWORD *_pdwStubPhase);
  2422. HRESULT STDMETHODCALLTYPE IMimePropertySet_CopyProps_Proxy(
  2423. IMimePropertySet * This,
  2424. /* [in] */ ULONG cNames,
  2425. /* [in] */ LPCSTR *prgszName,
  2426. /* [in] */ IMimePropertySet *pPropertySet);
  2427. void __RPC_STUB IMimePropertySet_CopyProps_Stub(
  2428. IRpcStubBuffer *This,
  2429. IRpcChannelBuffer *_pRpcChannelBuffer,
  2430. PRPC_MESSAGE _pRpcMessage,
  2431. DWORD *_pdwStubPhase);
  2432. HRESULT STDMETHODCALLTYPE IMimePropertySet_MoveProps_Proxy(
  2433. IMimePropertySet * This,
  2434. /* [in] */ ULONG cNames,
  2435. /* [in] */ LPCSTR *prgszName,
  2436. /* [in] */ IMimePropertySet *pPropertySet);
  2437. void __RPC_STUB IMimePropertySet_MoveProps_Stub(
  2438. IRpcStubBuffer *This,
  2439. IRpcChannelBuffer *_pRpcChannelBuffer,
  2440. PRPC_MESSAGE _pRpcMessage,
  2441. DWORD *_pdwStubPhase);
  2442. HRESULT STDMETHODCALLTYPE IMimePropertySet_DeleteExcept_Proxy(
  2443. IMimePropertySet * This,
  2444. /* [in] */ ULONG cNames,
  2445. /* [in] */ LPCSTR *prgszName);
  2446. void __RPC_STUB IMimePropertySet_DeleteExcept_Stub(
  2447. IRpcStubBuffer *This,
  2448. IRpcChannelBuffer *_pRpcChannelBuffer,
  2449. PRPC_MESSAGE _pRpcMessage,
  2450. DWORD *_pdwStubPhase);
  2451. HRESULT STDMETHODCALLTYPE IMimePropertySet_QueryProp_Proxy(
  2452. IMimePropertySet * This,
  2453. /* [in] */ LPCSTR pszName,
  2454. /* [in] */ LPCSTR pszCriteria,
  2455. /* [in] */ boolean fSubString,
  2456. /* [in] */ boolean fCaseSensitive);
  2457. void __RPC_STUB IMimePropertySet_QueryProp_Stub(
  2458. IRpcStubBuffer *This,
  2459. IRpcChannelBuffer *_pRpcChannelBuffer,
  2460. PRPC_MESSAGE _pRpcMessage,
  2461. DWORD *_pdwStubPhase);
  2462. HRESULT STDMETHODCALLTYPE IMimePropertySet_GetCharset_Proxy(
  2463. IMimePropertySet * This,
  2464. /* [out] */ LPHCHARSET phCharset);
  2465. void __RPC_STUB IMimePropertySet_GetCharset_Stub(
  2466. IRpcStubBuffer *This,
  2467. IRpcChannelBuffer *_pRpcChannelBuffer,
  2468. PRPC_MESSAGE _pRpcMessage,
  2469. DWORD *_pdwStubPhase);
  2470. HRESULT STDMETHODCALLTYPE IMimePropertySet_SetCharset_Proxy(
  2471. IMimePropertySet * This,
  2472. /* [in] */ HCHARSET hCharset,
  2473. /* [in] */ CSETAPPLYTYPE applytype);
  2474. void __RPC_STUB IMimePropertySet_SetCharset_Stub(
  2475. IRpcStubBuffer *This,
  2476. IRpcChannelBuffer *_pRpcChannelBuffer,
  2477. PRPC_MESSAGE _pRpcMessage,
  2478. DWORD *_pdwStubPhase);
  2479. HRESULT STDMETHODCALLTYPE IMimePropertySet_GetParameters_Proxy(
  2480. IMimePropertySet * This,
  2481. /* [in] */ LPCSTR pszName,
  2482. /* [out] */ ULONG *pcParams,
  2483. /* [out] */ LPMIMEPARAMINFO *pprgParam);
  2484. void __RPC_STUB IMimePropertySet_GetParameters_Stub(
  2485. IRpcStubBuffer *This,
  2486. IRpcChannelBuffer *_pRpcChannelBuffer,
  2487. PRPC_MESSAGE _pRpcMessage,
  2488. DWORD *_pdwStubPhase);
  2489. HRESULT STDMETHODCALLTYPE IMimePropertySet_IsContentType_Proxy(
  2490. IMimePropertySet * This,
  2491. /* [in] */ LPCSTR pszPriType,
  2492. /* [in] */ LPCSTR pszSubType);
  2493. void __RPC_STUB IMimePropertySet_IsContentType_Stub(
  2494. IRpcStubBuffer *This,
  2495. IRpcChannelBuffer *_pRpcChannelBuffer,
  2496. PRPC_MESSAGE _pRpcMessage,
  2497. DWORD *_pdwStubPhase);
  2498. HRESULT STDMETHODCALLTYPE IMimePropertySet_BindToObject_Proxy(
  2499. IMimePropertySet * This,
  2500. /* [in] */ REFIID riid,
  2501. /* [iid_is][out] */ void **ppvObject);
  2502. void __RPC_STUB IMimePropertySet_BindToObject_Stub(
  2503. IRpcStubBuffer *This,
  2504. IRpcChannelBuffer *_pRpcChannelBuffer,
  2505. PRPC_MESSAGE _pRpcMessage,
  2506. DWORD *_pdwStubPhase);
  2507. HRESULT STDMETHODCALLTYPE IMimePropertySet_Clone_Proxy(
  2508. IMimePropertySet * This,
  2509. /* [out] */ IMimePropertySet **ppPropertySet);
  2510. void __RPC_STUB IMimePropertySet_Clone_Stub(
  2511. IRpcStubBuffer *This,
  2512. IRpcChannelBuffer *_pRpcChannelBuffer,
  2513. PRPC_MESSAGE _pRpcMessage,
  2514. DWORD *_pdwStubPhase);
  2515. HRESULT STDMETHODCALLTYPE IMimePropertySet_SetOption_Proxy(
  2516. IMimePropertySet * This,
  2517. /* [in] */ const TYPEDID oid,
  2518. /* [in] */ LPCPROPVARIANT pValue);
  2519. void __RPC_STUB IMimePropertySet_SetOption_Stub(
  2520. IRpcStubBuffer *This,
  2521. IRpcChannelBuffer *_pRpcChannelBuffer,
  2522. PRPC_MESSAGE _pRpcMessage,
  2523. DWORD *_pdwStubPhase);
  2524. HRESULT STDMETHODCALLTYPE IMimePropertySet_GetOption_Proxy(
  2525. IMimePropertySet * This,
  2526. /* [in] */ const TYPEDID oid,
  2527. /* [out][in] */ LPPROPVARIANT pValue);
  2528. void __RPC_STUB IMimePropertySet_GetOption_Stub(
  2529. IRpcStubBuffer *This,
  2530. IRpcChannelBuffer *_pRpcChannelBuffer,
  2531. PRPC_MESSAGE _pRpcMessage,
  2532. DWORD *_pdwStubPhase);
  2533. HRESULT STDMETHODCALLTYPE IMimePropertySet_EnumProps_Proxy(
  2534. IMimePropertySet * This,
  2535. /* [in] */ DWORD dwFlags,
  2536. /* [out] */ IMimeEnumProperties **ppEnum);
  2537. void __RPC_STUB IMimePropertySet_EnumProps_Stub(
  2538. IRpcStubBuffer *This,
  2539. IRpcChannelBuffer *_pRpcChannelBuffer,
  2540. PRPC_MESSAGE _pRpcMessage,
  2541. DWORD *_pdwStubPhase);
  2542. #endif /* __IMimePropertySet_INTERFACE_DEFINED__ */
  2543. #ifndef __IMimeAddressTable_INTERFACE_DEFINED__
  2544. #define __IMimeAddressTable_INTERFACE_DEFINED__
  2545. /* interface IMimeAddressTable */
  2546. /* [object][helpstring][uuid] */
  2547. typedef /* [unique] */ IMimeAddressTable *LPMIMEADDRESSTABLE;
  2548. typedef DWORD IADDRESSTYPE;
  2549. struct HADDRESS__
  2550. {
  2551. DWORD unused;
  2552. } ;
  2553. typedef const struct HADDRESS__ *HADDRESS;
  2554. typedef HADDRESS *LPHADDRESS;
  2555. #define IAT_UNKNOWN 0x00000000
  2556. #define IAT_FROM 0x00000001
  2557. #define IAT_SENDER 0x00000002
  2558. #define IAT_TO 0x00000004
  2559. #define IAT_CC 0x00000008
  2560. #define IAT_BCC 0x00000010
  2561. #define IAT_REPLYTO 0x00000020
  2562. #define IAT_RETURNPATH 0x00000040
  2563. #define IAT_RETRCPTTO 0x00000080
  2564. #define IAT_RR 0x00000100
  2565. #define IAT_APPARTO 0x00000200
  2566. #define IAT_ALL 0xFFFFFFFF
  2567. #define IAT_KNOWN (IAT_FROM | IAT_TO | IAT_CC | IAT_BCC | IAT_REPLYTO | IAT_SENDER)
  2568. #define IAT_RECIPS (IAT_TO | IAT_CC | IAT_BCC)
  2569. typedef
  2570. enum tagADDRESSFORMAT
  2571. { AFT_DISPLAY_FRIENDLY = 0,
  2572. AFT_DISPLAY_EMAIL = AFT_DISPLAY_FRIENDLY + 1,
  2573. AFT_DISPLAY_BOTH = AFT_DISPLAY_EMAIL + 1,
  2574. AFT_RFC822_DECODED = AFT_DISPLAY_BOTH + 1,
  2575. AFT_RFC822_ENCODED = AFT_RFC822_DECODED + 1,
  2576. AFT_RFC822_TRANSMIT = AFT_RFC822_ENCODED + 1
  2577. } ADDRESSFORMAT;
  2578. #define IAP_CHARSET 0x00000001
  2579. #define IAP_HANDLE 0x00000002
  2580. #define IAP_ADRTYPE 0x00000004
  2581. #define IAP_FRIENDLY 0x00000008
  2582. #define IAP_EMAIL 0x00000020
  2583. #define IAP_CERTSTATE 0x00000100
  2584. #define IAP_SIGNING_PRINT 0x00000200
  2585. #define IAP_ENCRYPTION_PRINT 0x00000400
  2586. #define IAP_ENCODING 0x00000800
  2587. #define IAP_COOKIE 0x00001000
  2588. #define IAP_ALL 0xffffffff
  2589. typedef struct tagADDRESSPROPS
  2590. {
  2591. DWORD dwProps;
  2592. HADDRESS hAddress;
  2593. ENCODINGTYPE ietFriendly;
  2594. HCHARSET hCharset;
  2595. DWORD dwAdrType;
  2596. LPSTR pszFriendly;
  2597. LPWSTR pwszReserved;
  2598. LPSTR pszEmail;
  2599. CERTSTATE certstate;
  2600. THUMBBLOB tbSigning;
  2601. THUMBBLOB tbEncryption;
  2602. DWORD dwCookie;
  2603. DWORD dwReserved1;
  2604. DWORD dwReserved2;
  2605. } ADDRESSPROPS;
  2606. typedef struct tagADDRESSPROPS *LPADDRESSPROPS;
  2607. typedef struct tagADDRESSLIST
  2608. {
  2609. ULONG cAdrs;
  2610. LPADDRESSPROPS prgAdr;
  2611. } ADDRESSLIST;
  2612. typedef struct tagADDRESSLIST *LPADDRESSLIST;
  2613. EXTERN_C const IID IID_IMimeAddressTable;
  2614. #if defined(__cplusplus) && !defined(CINTERFACE)
  2615. MIDL_INTERFACE("C558834A-7F86-11d0-8252-00C04FD85AB4")
  2616. IMimeAddressTable : public IUnknown
  2617. {
  2618. public:
  2619. virtual HRESULT STDMETHODCALLTYPE Append(
  2620. /* [in] */ DWORD dwAdrType,
  2621. /* [in] */ ENCODINGTYPE ietFriendly,
  2622. /* [in] */ LPCSTR pszFriendly,
  2623. /* [in] */ LPCSTR pszEmail,
  2624. /* [out] */ LPHADDRESS phAddress) = 0;
  2625. virtual HRESULT STDMETHODCALLTYPE Insert(
  2626. /* [in] */ LPADDRESSPROPS pAddress,
  2627. /* [out] */ LPHADDRESS phAddress) = 0;
  2628. virtual HRESULT STDMETHODCALLTYPE SetProps(
  2629. /* [in] */ HADDRESS hAddress,
  2630. /* [in] */ LPADDRESSPROPS pAddress) = 0;
  2631. virtual HRESULT STDMETHODCALLTYPE GetProps(
  2632. /* [in] */ HADDRESS hAddress,
  2633. /* [in] */ LPADDRESSPROPS pAddress) = 0;
  2634. virtual HRESULT STDMETHODCALLTYPE GetSender(
  2635. /* [out][in] */ LPADDRESSPROPS pAddress) = 0;
  2636. virtual HRESULT STDMETHODCALLTYPE CountTypes(
  2637. /* [in] */ DWORD dwAdrTypes,
  2638. /* [out] */ ULONG *pcAdrs) = 0;
  2639. virtual HRESULT STDMETHODCALLTYPE GetTypes(
  2640. /* [in] */ DWORD dwAdrTypes,
  2641. /* [in] */ DWORD dwProps,
  2642. /* [out][in] */ LPADDRESSLIST pList) = 0;
  2643. virtual HRESULT STDMETHODCALLTYPE EnumTypes(
  2644. /* [in] */ DWORD dwAdrTypes,
  2645. /* [in] */ DWORD dwProps,
  2646. /* [out] */ IMimeEnumAddressTypes **ppEnum) = 0;
  2647. virtual HRESULT STDMETHODCALLTYPE Delete(
  2648. /* [in] */ HADDRESS hAddress) = 0;
  2649. virtual HRESULT STDMETHODCALLTYPE DeleteTypes(
  2650. /* [in] */ DWORD dwAdrTypes) = 0;
  2651. virtual HRESULT STDMETHODCALLTYPE GetFormat(
  2652. /* [in] */ DWORD dwAdrType,
  2653. /* [in] */ ADDRESSFORMAT format,
  2654. /* [out] */ LPSTR *ppszFormat) = 0;
  2655. virtual HRESULT STDMETHODCALLTYPE AppendRfc822(
  2656. /* [in] */ DWORD dwAdrType,
  2657. /* [in] */ ENCODINGTYPE ietEncoding,
  2658. /* [in] */ LPCSTR pszRfc822Adr) = 0;
  2659. virtual HRESULT STDMETHODCALLTYPE ParseRfc822(
  2660. /* [in] */ DWORD dwAdrType,
  2661. /* [in] */ ENCODINGTYPE ietEncoding,
  2662. /* [in] */ LPCSTR pszRfc822Adr,
  2663. /* [out][in] */ LPADDRESSLIST pList) = 0;
  2664. virtual HRESULT STDMETHODCALLTYPE Clone(
  2665. /* [out] */ IMimeAddressTable **ppTable) = 0;
  2666. virtual HRESULT STDMETHODCALLTYPE BindToObject(
  2667. /* [in] */ REFIID riid,
  2668. /* [iid_is][out] */ void **ppvObject) = 0;
  2669. };
  2670. #else /* C style interface */
  2671. typedef struct IMimeAddressTableVtbl
  2672. {
  2673. BEGIN_INTERFACE
  2674. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2675. IMimeAddressTable * This,
  2676. /* [in] */ REFIID riid,
  2677. /* [iid_is][out] */ void **ppvObject);
  2678. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2679. IMimeAddressTable * This);
  2680. ULONG ( STDMETHODCALLTYPE *Release )(
  2681. IMimeAddressTable * This);
  2682. HRESULT ( STDMETHODCALLTYPE *Append )(
  2683. IMimeAddressTable * This,
  2684. /* [in] */ DWORD dwAdrType,
  2685. /* [in] */ ENCODINGTYPE ietFriendly,
  2686. /* [in] */ LPCSTR pszFriendly,
  2687. /* [in] */ LPCSTR pszEmail,
  2688. /* [out] */ LPHADDRESS phAddress);
  2689. HRESULT ( STDMETHODCALLTYPE *Insert )(
  2690. IMimeAddressTable * This,
  2691. /* [in] */ LPADDRESSPROPS pAddress,
  2692. /* [out] */ LPHADDRESS phAddress);
  2693. HRESULT ( STDMETHODCALLTYPE *SetProps )(
  2694. IMimeAddressTable * This,
  2695. /* [in] */ HADDRESS hAddress,
  2696. /* [in] */ LPADDRESSPROPS pAddress);
  2697. HRESULT ( STDMETHODCALLTYPE *GetProps )(
  2698. IMimeAddressTable * This,
  2699. /* [in] */ HADDRESS hAddress,
  2700. /* [in] */ LPADDRESSPROPS pAddress);
  2701. HRESULT ( STDMETHODCALLTYPE *GetSender )(
  2702. IMimeAddressTable * This,
  2703. /* [out][in] */ LPADDRESSPROPS pAddress);
  2704. HRESULT ( STDMETHODCALLTYPE *CountTypes )(
  2705. IMimeAddressTable * This,
  2706. /* [in] */ DWORD dwAdrTypes,
  2707. /* [out] */ ULONG *pcAdrs);
  2708. HRESULT ( STDMETHODCALLTYPE *GetTypes )(
  2709. IMimeAddressTable * This,
  2710. /* [in] */ DWORD dwAdrTypes,
  2711. /* [in] */ DWORD dwProps,
  2712. /* [out][in] */ LPADDRESSLIST pList);
  2713. HRESULT ( STDMETHODCALLTYPE *EnumTypes )(
  2714. IMimeAddressTable * This,
  2715. /* [in] */ DWORD dwAdrTypes,
  2716. /* [in] */ DWORD dwProps,
  2717. /* [out] */ IMimeEnumAddressTypes **ppEnum);
  2718. HRESULT ( STDMETHODCALLTYPE *Delete )(
  2719. IMimeAddressTable * This,
  2720. /* [in] */ HADDRESS hAddress);
  2721. HRESULT ( STDMETHODCALLTYPE *DeleteTypes )(
  2722. IMimeAddressTable * This,
  2723. /* [in] */ DWORD dwAdrTypes);
  2724. HRESULT ( STDMETHODCALLTYPE *GetFormat )(
  2725. IMimeAddressTable * This,
  2726. /* [in] */ DWORD dwAdrType,
  2727. /* [in] */ ADDRESSFORMAT format,
  2728. /* [out] */ LPSTR *ppszFormat);
  2729. HRESULT ( STDMETHODCALLTYPE *AppendRfc822 )(
  2730. IMimeAddressTable * This,
  2731. /* [in] */ DWORD dwAdrType,
  2732. /* [in] */ ENCODINGTYPE ietEncoding,
  2733. /* [in] */ LPCSTR pszRfc822Adr);
  2734. HRESULT ( STDMETHODCALLTYPE *ParseRfc822 )(
  2735. IMimeAddressTable * This,
  2736. /* [in] */ DWORD dwAdrType,
  2737. /* [in] */ ENCODINGTYPE ietEncoding,
  2738. /* [in] */ LPCSTR pszRfc822Adr,
  2739. /* [out][in] */ LPADDRESSLIST pList);
  2740. HRESULT ( STDMETHODCALLTYPE *Clone )(
  2741. IMimeAddressTable * This,
  2742. /* [out] */ IMimeAddressTable **ppTable);
  2743. HRESULT ( STDMETHODCALLTYPE *BindToObject )(
  2744. IMimeAddressTable * This,
  2745. /* [in] */ REFIID riid,
  2746. /* [iid_is][out] */ void **ppvObject);
  2747. END_INTERFACE
  2748. } IMimeAddressTableVtbl;
  2749. interface IMimeAddressTable
  2750. {
  2751. CONST_VTBL struct IMimeAddressTableVtbl *lpVtbl;
  2752. };
  2753. #ifdef COBJMACROS
  2754. #define IMimeAddressTable_QueryInterface(This,riid,ppvObject) \
  2755. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2756. #define IMimeAddressTable_AddRef(This) \
  2757. (This)->lpVtbl -> AddRef(This)
  2758. #define IMimeAddressTable_Release(This) \
  2759. (This)->lpVtbl -> Release(This)
  2760. #define IMimeAddressTable_Append(This,dwAdrType,ietFriendly,pszFriendly,pszEmail,phAddress) \
  2761. (This)->lpVtbl -> Append(This,dwAdrType,ietFriendly,pszFriendly,pszEmail,phAddress)
  2762. #define IMimeAddressTable_Insert(This,pAddress,phAddress) \
  2763. (This)->lpVtbl -> Insert(This,pAddress,phAddress)
  2764. #define IMimeAddressTable_SetProps(This,hAddress,pAddress) \
  2765. (This)->lpVtbl -> SetProps(This,hAddress,pAddress)
  2766. #define IMimeAddressTable_GetProps(This,hAddress,pAddress) \
  2767. (This)->lpVtbl -> GetProps(This,hAddress,pAddress)
  2768. #define IMimeAddressTable_GetSender(This,pAddress) \
  2769. (This)->lpVtbl -> GetSender(This,pAddress)
  2770. #define IMimeAddressTable_CountTypes(This,dwAdrTypes,pcAdrs) \
  2771. (This)->lpVtbl -> CountTypes(This,dwAdrTypes,pcAdrs)
  2772. #define IMimeAddressTable_GetTypes(This,dwAdrTypes,dwProps,pList) \
  2773. (This)->lpVtbl -> GetTypes(This,dwAdrTypes,dwProps,pList)
  2774. #define IMimeAddressTable_EnumTypes(This,dwAdrTypes,dwProps,ppEnum) \
  2775. (This)->lpVtbl -> EnumTypes(This,dwAdrTypes,dwProps,ppEnum)
  2776. #define IMimeAddressTable_Delete(This,hAddress) \
  2777. (This)->lpVtbl -> Delete(This,hAddress)
  2778. #define IMimeAddressTable_DeleteTypes(This,dwAdrTypes) \
  2779. (This)->lpVtbl -> DeleteTypes(This,dwAdrTypes)
  2780. #define IMimeAddressTable_GetFormat(This,dwAdrType,format,ppszFormat) \
  2781. (This)->lpVtbl -> GetFormat(This,dwAdrType,format,ppszFormat)
  2782. #define IMimeAddressTable_AppendRfc822(This,dwAdrType,ietEncoding,pszRfc822Adr) \
  2783. (This)->lpVtbl -> AppendRfc822(This,dwAdrType,ietEncoding,pszRfc822Adr)
  2784. #define IMimeAddressTable_ParseRfc822(This,dwAdrType,ietEncoding,pszRfc822Adr,pList) \
  2785. (This)->lpVtbl -> ParseRfc822(This,dwAdrType,ietEncoding,pszRfc822Adr,pList)
  2786. #define IMimeAddressTable_Clone(This,ppTable) \
  2787. (This)->lpVtbl -> Clone(This,ppTable)
  2788. #define IMimeAddressTable_BindToObject(This,riid,ppvObject) \
  2789. (This)->lpVtbl -> BindToObject(This,riid,ppvObject)
  2790. #endif /* COBJMACROS */
  2791. #endif /* C style interface */
  2792. HRESULT STDMETHODCALLTYPE IMimeAddressTable_Append_Proxy(
  2793. IMimeAddressTable * This,
  2794. /* [in] */ DWORD dwAdrType,
  2795. /* [in] */ ENCODINGTYPE ietFriendly,
  2796. /* [in] */ LPCSTR pszFriendly,
  2797. /* [in] */ LPCSTR pszEmail,
  2798. /* [out] */ LPHADDRESS phAddress);
  2799. void __RPC_STUB IMimeAddressTable_Append_Stub(
  2800. IRpcStubBuffer *This,
  2801. IRpcChannelBuffer *_pRpcChannelBuffer,
  2802. PRPC_MESSAGE _pRpcMessage,
  2803. DWORD *_pdwStubPhase);
  2804. HRESULT STDMETHODCALLTYPE IMimeAddressTable_Insert_Proxy(
  2805. IMimeAddressTable * This,
  2806. /* [in] */ LPADDRESSPROPS pAddress,
  2807. /* [out] */ LPHADDRESS phAddress);
  2808. void __RPC_STUB IMimeAddressTable_Insert_Stub(
  2809. IRpcStubBuffer *This,
  2810. IRpcChannelBuffer *_pRpcChannelBuffer,
  2811. PRPC_MESSAGE _pRpcMessage,
  2812. DWORD *_pdwStubPhase);
  2813. HRESULT STDMETHODCALLTYPE IMimeAddressTable_SetProps_Proxy(
  2814. IMimeAddressTable * This,
  2815. /* [in] */ HADDRESS hAddress,
  2816. /* [in] */ LPADDRESSPROPS pAddress);
  2817. void __RPC_STUB IMimeAddressTable_SetProps_Stub(
  2818. IRpcStubBuffer *This,
  2819. IRpcChannelBuffer *_pRpcChannelBuffer,
  2820. PRPC_MESSAGE _pRpcMessage,
  2821. DWORD *_pdwStubPhase);
  2822. HRESULT STDMETHODCALLTYPE IMimeAddressTable_GetProps_Proxy(
  2823. IMimeAddressTable * This,
  2824. /* [in] */ HADDRESS hAddress,
  2825. /* [in] */ LPADDRESSPROPS pAddress);
  2826. void __RPC_STUB IMimeAddressTable_GetProps_Stub(
  2827. IRpcStubBuffer *This,
  2828. IRpcChannelBuffer *_pRpcChannelBuffer,
  2829. PRPC_MESSAGE _pRpcMessage,
  2830. DWORD *_pdwStubPhase);
  2831. HRESULT STDMETHODCALLTYPE IMimeAddressTable_GetSender_Proxy(
  2832. IMimeAddressTable * This,
  2833. /* [out][in] */ LPADDRESSPROPS pAddress);
  2834. void __RPC_STUB IMimeAddressTable_GetSender_Stub(
  2835. IRpcStubBuffer *This,
  2836. IRpcChannelBuffer *_pRpcChannelBuffer,
  2837. PRPC_MESSAGE _pRpcMessage,
  2838. DWORD *_pdwStubPhase);
  2839. HRESULT STDMETHODCALLTYPE IMimeAddressTable_CountTypes_Proxy(
  2840. IMimeAddressTable * This,
  2841. /* [in] */ DWORD dwAdrTypes,
  2842. /* [out] */ ULONG *pcAdrs);
  2843. void __RPC_STUB IMimeAddressTable_CountTypes_Stub(
  2844. IRpcStubBuffer *This,
  2845. IRpcChannelBuffer *_pRpcChannelBuffer,
  2846. PRPC_MESSAGE _pRpcMessage,
  2847. DWORD *_pdwStubPhase);
  2848. HRESULT STDMETHODCALLTYPE IMimeAddressTable_GetTypes_Proxy(
  2849. IMimeAddressTable * This,
  2850. /* [in] */ DWORD dwAdrTypes,
  2851. /* [in] */ DWORD dwProps,
  2852. /* [out][in] */ LPADDRESSLIST pList);
  2853. void __RPC_STUB IMimeAddressTable_GetTypes_Stub(
  2854. IRpcStubBuffer *This,
  2855. IRpcChannelBuffer *_pRpcChannelBuffer,
  2856. PRPC_MESSAGE _pRpcMessage,
  2857. DWORD *_pdwStubPhase);
  2858. HRESULT STDMETHODCALLTYPE IMimeAddressTable_EnumTypes_Proxy(
  2859. IMimeAddressTable * This,
  2860. /* [in] */ DWORD dwAdrTypes,
  2861. /* [in] */ DWORD dwProps,
  2862. /* [out] */ IMimeEnumAddressTypes **ppEnum);
  2863. void __RPC_STUB IMimeAddressTable_EnumTypes_Stub(
  2864. IRpcStubBuffer *This,
  2865. IRpcChannelBuffer *_pRpcChannelBuffer,
  2866. PRPC_MESSAGE _pRpcMessage,
  2867. DWORD *_pdwStubPhase);
  2868. HRESULT STDMETHODCALLTYPE IMimeAddressTable_Delete_Proxy(
  2869. IMimeAddressTable * This,
  2870. /* [in] */ HADDRESS hAddress);
  2871. void __RPC_STUB IMimeAddressTable_Delete_Stub(
  2872. IRpcStubBuffer *This,
  2873. IRpcChannelBuffer *_pRpcChannelBuffer,
  2874. PRPC_MESSAGE _pRpcMessage,
  2875. DWORD *_pdwStubPhase);
  2876. HRESULT STDMETHODCALLTYPE IMimeAddressTable_DeleteTypes_Proxy(
  2877. IMimeAddressTable * This,
  2878. /* [in] */ DWORD dwAdrTypes);
  2879. void __RPC_STUB IMimeAddressTable_DeleteTypes_Stub(
  2880. IRpcStubBuffer *This,
  2881. IRpcChannelBuffer *_pRpcChannelBuffer,
  2882. PRPC_MESSAGE _pRpcMessage,
  2883. DWORD *_pdwStubPhase);
  2884. HRESULT STDMETHODCALLTYPE IMimeAddressTable_GetFormat_Proxy(
  2885. IMimeAddressTable * This,
  2886. /* [in] */ DWORD dwAdrType,
  2887. /* [in] */ ADDRESSFORMAT format,
  2888. /* [out] */ LPSTR *ppszFormat);
  2889. void __RPC_STUB IMimeAddressTable_GetFormat_Stub(
  2890. IRpcStubBuffer *This,
  2891. IRpcChannelBuffer *_pRpcChannelBuffer,
  2892. PRPC_MESSAGE _pRpcMessage,
  2893. DWORD *_pdwStubPhase);
  2894. HRESULT STDMETHODCALLTYPE IMimeAddressTable_AppendRfc822_Proxy(
  2895. IMimeAddressTable * This,
  2896. /* [in] */ DWORD dwAdrType,
  2897. /* [in] */ ENCODINGTYPE ietEncoding,
  2898. /* [in] */ LPCSTR pszRfc822Adr);
  2899. void __RPC_STUB IMimeAddressTable_AppendRfc822_Stub(
  2900. IRpcStubBuffer *This,
  2901. IRpcChannelBuffer *_pRpcChannelBuffer,
  2902. PRPC_MESSAGE _pRpcMessage,
  2903. DWORD *_pdwStubPhase);
  2904. HRESULT STDMETHODCALLTYPE IMimeAddressTable_ParseRfc822_Proxy(
  2905. IMimeAddressTable * This,
  2906. /* [in] */ DWORD dwAdrType,
  2907. /* [in] */ ENCODINGTYPE ietEncoding,
  2908. /* [in] */ LPCSTR pszRfc822Adr,
  2909. /* [out][in] */ LPADDRESSLIST pList);
  2910. void __RPC_STUB IMimeAddressTable_ParseRfc822_Stub(
  2911. IRpcStubBuffer *This,
  2912. IRpcChannelBuffer *_pRpcChannelBuffer,
  2913. PRPC_MESSAGE _pRpcMessage,
  2914. DWORD *_pdwStubPhase);
  2915. HRESULT STDMETHODCALLTYPE IMimeAddressTable_Clone_Proxy(
  2916. IMimeAddressTable * This,
  2917. /* [out] */ IMimeAddressTable **ppTable);
  2918. void __RPC_STUB IMimeAddressTable_Clone_Stub(
  2919. IRpcStubBuffer *This,
  2920. IRpcChannelBuffer *_pRpcChannelBuffer,
  2921. PRPC_MESSAGE _pRpcMessage,
  2922. DWORD *_pdwStubPhase);
  2923. HRESULT STDMETHODCALLTYPE IMimeAddressTable_BindToObject_Proxy(
  2924. IMimeAddressTable * This,
  2925. /* [in] */ REFIID riid,
  2926. /* [iid_is][out] */ void **ppvObject);
  2927. void __RPC_STUB IMimeAddressTable_BindToObject_Stub(
  2928. IRpcStubBuffer *This,
  2929. IRpcChannelBuffer *_pRpcChannelBuffer,
  2930. PRPC_MESSAGE _pRpcMessage,
  2931. DWORD *_pdwStubPhase);
  2932. #endif /* __IMimeAddressTable_INTERFACE_DEFINED__ */
  2933. #ifndef __IMimeWebDocument_INTERFACE_DEFINED__
  2934. #define __IMimeWebDocument_INTERFACE_DEFINED__
  2935. /* interface IMimeWebDocument */
  2936. /* [object][helpstring][uuid] */
  2937. EXTERN_C const IID IID_IMimeWebDocument;
  2938. #if defined(__cplusplus) && !defined(CINTERFACE)
  2939. MIDL_INTERFACE("EE519F11-851A-11d0-825C-00C04FD85AB4")
  2940. IMimeWebDocument : public IUnknown
  2941. {
  2942. public:
  2943. virtual HRESULT STDMETHODCALLTYPE GetURL(
  2944. /* [out] */ LPSTR *ppszURL) = 0;
  2945. virtual HRESULT STDMETHODCALLTYPE BindToStorage(
  2946. /* [in] */ REFIID riid,
  2947. /* [iid_is][out] */ LPVOID *ppvObject) = 0;
  2948. };
  2949. #else /* C style interface */
  2950. typedef struct IMimeWebDocumentVtbl
  2951. {
  2952. BEGIN_INTERFACE
  2953. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2954. IMimeWebDocument * This,
  2955. /* [in] */ REFIID riid,
  2956. /* [iid_is][out] */ void **ppvObject);
  2957. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2958. IMimeWebDocument * This);
  2959. ULONG ( STDMETHODCALLTYPE *Release )(
  2960. IMimeWebDocument * This);
  2961. HRESULT ( STDMETHODCALLTYPE *GetURL )(
  2962. IMimeWebDocument * This,
  2963. /* [out] */ LPSTR *ppszURL);
  2964. HRESULT ( STDMETHODCALLTYPE *BindToStorage )(
  2965. IMimeWebDocument * This,
  2966. /* [in] */ REFIID riid,
  2967. /* [iid_is][out] */ LPVOID *ppvObject);
  2968. END_INTERFACE
  2969. } IMimeWebDocumentVtbl;
  2970. interface IMimeWebDocument
  2971. {
  2972. CONST_VTBL struct IMimeWebDocumentVtbl *lpVtbl;
  2973. };
  2974. #ifdef COBJMACROS
  2975. #define IMimeWebDocument_QueryInterface(This,riid,ppvObject) \
  2976. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2977. #define IMimeWebDocument_AddRef(This) \
  2978. (This)->lpVtbl -> AddRef(This)
  2979. #define IMimeWebDocument_Release(This) \
  2980. (This)->lpVtbl -> Release(This)
  2981. #define IMimeWebDocument_GetURL(This,ppszURL) \
  2982. (This)->lpVtbl -> GetURL(This,ppszURL)
  2983. #define IMimeWebDocument_BindToStorage(This,riid,ppvObject) \
  2984. (This)->lpVtbl -> BindToStorage(This,riid,ppvObject)
  2985. #endif /* COBJMACROS */
  2986. #endif /* C style interface */
  2987. HRESULT STDMETHODCALLTYPE IMimeWebDocument_GetURL_Proxy(
  2988. IMimeWebDocument * This,
  2989. /* [out] */ LPSTR *ppszURL);
  2990. void __RPC_STUB IMimeWebDocument_GetURL_Stub(
  2991. IRpcStubBuffer *This,
  2992. IRpcChannelBuffer *_pRpcChannelBuffer,
  2993. PRPC_MESSAGE _pRpcMessage,
  2994. DWORD *_pdwStubPhase);
  2995. HRESULT STDMETHODCALLTYPE IMimeWebDocument_BindToStorage_Proxy(
  2996. IMimeWebDocument * This,
  2997. /* [in] */ REFIID riid,
  2998. /* [iid_is][out] */ LPVOID *ppvObject);
  2999. void __RPC_STUB IMimeWebDocument_BindToStorage_Stub(
  3000. IRpcStubBuffer *This,
  3001. IRpcChannelBuffer *_pRpcChannelBuffer,
  3002. PRPC_MESSAGE _pRpcMessage,
  3003. DWORD *_pdwStubPhase);
  3004. #endif /* __IMimeWebDocument_INTERFACE_DEFINED__ */
  3005. #ifndef __IMimeBody_INTERFACE_DEFINED__
  3006. #define __IMimeBody_INTERFACE_DEFINED__
  3007. /* interface IMimeBody */
  3008. /* [object][helpstring][uuid] */
  3009. typedef /* [unique] */ IMimeBody *LPMIMEBODY;
  3010. typedef
  3011. enum tagIMSGBODYTYPE
  3012. { IBT_SECURE = 0,
  3013. IBT_ATTACHMENT = IBT_SECURE + 1,
  3014. IBT_EMPTY = IBT_ATTACHMENT + 1,
  3015. IBT_CSETTAGGED = IBT_EMPTY + 1,
  3016. IBT_AUTOATTACH = IBT_CSETTAGGED + 1
  3017. } IMSGBODYTYPE;
  3018. typedef struct tagBODYOFFSETS
  3019. {
  3020. DWORD cbBoundaryStart;
  3021. DWORD cbHeaderStart;
  3022. DWORD cbBodyStart;
  3023. DWORD cbBodyEnd;
  3024. } BODYOFFSETS;
  3025. typedef struct tagBODYOFFSETS *LPBODYOFFSETS;
  3026. typedef struct tagTRANSMITINFO
  3027. {
  3028. ENCODINGTYPE ietCurrent;
  3029. ENCODINGTYPE ietXmitMime;
  3030. ENCODINGTYPE ietXmit822;
  3031. ULONG cbLongestLine;
  3032. ULONG cExtended;
  3033. ULONG ulPercentExt;
  3034. ULONG cbSize;
  3035. ULONG cLines;
  3036. } TRANSMITINFO;
  3037. typedef struct tagTRANSMITINFO *LPTRANSMITINFO;
  3038. EXTERN_C const IID IID_IMimeBody;
  3039. #if defined(__cplusplus) && !defined(CINTERFACE)
  3040. MIDL_INTERFACE("C558834C-7F86-11d0-8252-00C04FD85AB4")
  3041. IMimeBody : public IMimePropertySet
  3042. {
  3043. public:
  3044. virtual HRESULT STDMETHODCALLTYPE IsType(
  3045. /* [in] */ IMSGBODYTYPE bodytype) = 0;
  3046. virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
  3047. /* [in] */ LPCSTR pszDisplay) = 0;
  3048. virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
  3049. /* [out] */ LPSTR *ppszDisplay) = 0;
  3050. virtual HRESULT STDMETHODCALLTYPE GetOffsets(
  3051. /* [out] */ LPBODYOFFSETS pOffsets) = 0;
  3052. virtual HRESULT STDMETHODCALLTYPE GetCurrentEncoding(
  3053. /* [out] */ ENCODINGTYPE *pietEncoding) = 0;
  3054. virtual HRESULT STDMETHODCALLTYPE SetCurrentEncoding(
  3055. /* [in] */ ENCODINGTYPE ietEncoding) = 0;
  3056. virtual HRESULT STDMETHODCALLTYPE GetEstimatedSize(
  3057. /* [in] */ ENCODINGTYPE ietEncoding,
  3058. /* [out] */ ULONG *pcbSize) = 0;
  3059. virtual HRESULT STDMETHODCALLTYPE GetDataHere(
  3060. /* [in] */ ENCODINGTYPE ietEncoding,
  3061. /* [in] */ IStream *pStream) = 0;
  3062. virtual HRESULT STDMETHODCALLTYPE GetData(
  3063. /* [in] */ ENCODINGTYPE ietEncoding,
  3064. /* [out] */ IStream **ppStream) = 0;
  3065. virtual HRESULT STDMETHODCALLTYPE SetData(
  3066. /* [in] */ ENCODINGTYPE ietEncoding,
  3067. /* [in] */ LPCSTR pszPriType,
  3068. /* [in] */ LPCSTR pszSubType,
  3069. /* [in] */ REFIID riid,
  3070. /* [iid_is][in] */ LPVOID pvObject) = 0;
  3071. virtual HRESULT STDMETHODCALLTYPE EmptyData( void) = 0;
  3072. virtual HRESULT STDMETHODCALLTYPE CopyTo(
  3073. /* [in] */ IMimeBody *pBody) = 0;
  3074. virtual HRESULT STDMETHODCALLTYPE GetTransmitInfo(
  3075. /* [out][in] */ LPTRANSMITINFO pTransmitInfo) = 0;
  3076. virtual HRESULT STDMETHODCALLTYPE SaveToFile(
  3077. /* [in] */ ENCODINGTYPE ietEncoding,
  3078. /* [in] */ LPCSTR pszFilePath) = 0;
  3079. virtual HRESULT STDMETHODCALLTYPE GetHandle(
  3080. /* [out] */ LPHBODY phBody) = 0;
  3081. };
  3082. #else /* C style interface */
  3083. typedef struct IMimeBodyVtbl
  3084. {
  3085. BEGIN_INTERFACE
  3086. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3087. IMimeBody * This,
  3088. /* [in] */ REFIID riid,
  3089. /* [iid_is][out] */ void **ppvObject);
  3090. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3091. IMimeBody * This);
  3092. ULONG ( STDMETHODCALLTYPE *Release )(
  3093. IMimeBody * This);
  3094. HRESULT ( STDMETHODCALLTYPE *GetClassID )(
  3095. IMimeBody * This,
  3096. /* [out] */ CLSID *pClassID);
  3097. HRESULT ( STDMETHODCALLTYPE *IsDirty )(
  3098. IMimeBody * This);
  3099. HRESULT ( STDMETHODCALLTYPE *Load )(
  3100. IMimeBody * This,
  3101. /* [in] */ LPSTREAM pStm);
  3102. HRESULT ( STDMETHODCALLTYPE *Save )(
  3103. IMimeBody * This,
  3104. /* [in] */ LPSTREAM pStm,
  3105. /* [in] */ BOOL fClearDirty);
  3106. HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
  3107. IMimeBody * This,
  3108. /* [out] */ ULARGE_INTEGER *pCbSize);
  3109. HRESULT ( STDMETHODCALLTYPE *InitNew )(
  3110. IMimeBody * This);
  3111. HRESULT ( STDMETHODCALLTYPE *GetPropInfo )(
  3112. IMimeBody * This,
  3113. /* [in] */ LPCSTR pszName,
  3114. /* [out][in] */ LPMIMEPROPINFO pInfo);
  3115. HRESULT ( STDMETHODCALLTYPE *SetPropInfo )(
  3116. IMimeBody * This,
  3117. /* [in] */ LPCSTR pszName,
  3118. /* [in] */ LPCMIMEPROPINFO pInfo);
  3119. HRESULT ( STDMETHODCALLTYPE *GetProp )(
  3120. IMimeBody * This,
  3121. /* [in] */ LPCSTR pszName,
  3122. /* [in] */ DWORD dwFlags,
  3123. /* [out][in] */ LPPROPVARIANT pValue);
  3124. HRESULT ( STDMETHODCALLTYPE *SetProp )(
  3125. IMimeBody * This,
  3126. /* [in] */ LPCSTR pszName,
  3127. /* [in] */ DWORD dwFlags,
  3128. /* [in] */ LPCPROPVARIANT pValue);
  3129. HRESULT ( STDMETHODCALLTYPE *AppendProp )(
  3130. IMimeBody * This,
  3131. /* [in] */ LPCSTR pszName,
  3132. /* [in] */ DWORD dwFlags,
  3133. /* [in] */ LPPROPVARIANT pValue);
  3134. HRESULT ( STDMETHODCALLTYPE *DeleteProp )(
  3135. IMimeBody * This,
  3136. /* [in] */ LPCSTR pszName);
  3137. HRESULT ( STDMETHODCALLTYPE *CopyProps )(
  3138. IMimeBody * This,
  3139. /* [in] */ ULONG cNames,
  3140. /* [in] */ LPCSTR *prgszName,
  3141. /* [in] */ IMimePropertySet *pPropertySet);
  3142. HRESULT ( STDMETHODCALLTYPE *MoveProps )(
  3143. IMimeBody * This,
  3144. /* [in] */ ULONG cNames,
  3145. /* [in] */ LPCSTR *prgszName,
  3146. /* [in] */ IMimePropertySet *pPropertySet);
  3147. HRESULT ( STDMETHODCALLTYPE *DeleteExcept )(
  3148. IMimeBody * This,
  3149. /* [in] */ ULONG cNames,
  3150. /* [in] */ LPCSTR *prgszName);
  3151. HRESULT ( STDMETHODCALLTYPE *QueryProp )(
  3152. IMimeBody * This,
  3153. /* [in] */ LPCSTR pszName,
  3154. /* [in] */ LPCSTR pszCriteria,
  3155. /* [in] */ boolean fSubString,
  3156. /* [in] */ boolean fCaseSensitive);
  3157. HRESULT ( STDMETHODCALLTYPE *GetCharset )(
  3158. IMimeBody * This,
  3159. /* [out] */ LPHCHARSET phCharset);
  3160. HRESULT ( STDMETHODCALLTYPE *SetCharset )(
  3161. IMimeBody * This,
  3162. /* [in] */ HCHARSET hCharset,
  3163. /* [in] */ CSETAPPLYTYPE applytype);
  3164. HRESULT ( STDMETHODCALLTYPE *GetParameters )(
  3165. IMimeBody * This,
  3166. /* [in] */ LPCSTR pszName,
  3167. /* [out] */ ULONG *pcParams,
  3168. /* [out] */ LPMIMEPARAMINFO *pprgParam);
  3169. HRESULT ( STDMETHODCALLTYPE *IsContentType )(
  3170. IMimeBody * This,
  3171. /* [in] */ LPCSTR pszPriType,
  3172. /* [in] */ LPCSTR pszSubType);
  3173. HRESULT ( STDMETHODCALLTYPE *BindToObject )(
  3174. IMimeBody * This,
  3175. /* [in] */ REFIID riid,
  3176. /* [iid_is][out] */ void **ppvObject);
  3177. HRESULT ( STDMETHODCALLTYPE *Clone )(
  3178. IMimeBody * This,
  3179. /* [out] */ IMimePropertySet **ppPropertySet);
  3180. HRESULT ( STDMETHODCALLTYPE *SetOption )(
  3181. IMimeBody * This,
  3182. /* [in] */ const TYPEDID oid,
  3183. /* [in] */ LPCPROPVARIANT pValue);
  3184. HRESULT ( STDMETHODCALLTYPE *GetOption )(
  3185. IMimeBody * This,
  3186. /* [in] */ const TYPEDID oid,
  3187. /* [out][in] */ LPPROPVARIANT pValue);
  3188. HRESULT ( STDMETHODCALLTYPE *EnumProps )(
  3189. IMimeBody * This,
  3190. /* [in] */ DWORD dwFlags,
  3191. /* [out] */ IMimeEnumProperties **ppEnum);
  3192. HRESULT ( STDMETHODCALLTYPE *IsType )(
  3193. IMimeBody * This,
  3194. /* [in] */ IMSGBODYTYPE bodytype);
  3195. HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
  3196. IMimeBody * This,
  3197. /* [in] */ LPCSTR pszDisplay);
  3198. HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
  3199. IMimeBody * This,
  3200. /* [out] */ LPSTR *ppszDisplay);
  3201. HRESULT ( STDMETHODCALLTYPE *GetOffsets )(
  3202. IMimeBody * This,
  3203. /* [out] */ LPBODYOFFSETS pOffsets);
  3204. HRESULT ( STDMETHODCALLTYPE *GetCurrentEncoding )(
  3205. IMimeBody * This,
  3206. /* [out] */ ENCODINGTYPE *pietEncoding);
  3207. HRESULT ( STDMETHODCALLTYPE *SetCurrentEncoding )(
  3208. IMimeBody * This,
  3209. /* [in] */ ENCODINGTYPE ietEncoding);
  3210. HRESULT ( STDMETHODCALLTYPE *GetEstimatedSize )(
  3211. IMimeBody * This,
  3212. /* [in] */ ENCODINGTYPE ietEncoding,
  3213. /* [out] */ ULONG *pcbSize);
  3214. HRESULT ( STDMETHODCALLTYPE *GetDataHere )(
  3215. IMimeBody * This,
  3216. /* [in] */ ENCODINGTYPE ietEncoding,
  3217. /* [in] */ IStream *pStream);
  3218. HRESULT ( STDMETHODCALLTYPE *GetData )(
  3219. IMimeBody * This,
  3220. /* [in] */ ENCODINGTYPE ietEncoding,
  3221. /* [out] */ IStream **ppStream);
  3222. HRESULT ( STDMETHODCALLTYPE *SetData )(
  3223. IMimeBody * This,
  3224. /* [in] */ ENCODINGTYPE ietEncoding,
  3225. /* [in] */ LPCSTR pszPriType,
  3226. /* [in] */ LPCSTR pszSubType,
  3227. /* [in] */ REFIID riid,
  3228. /* [iid_is][in] */ LPVOID pvObject);
  3229. HRESULT ( STDMETHODCALLTYPE *EmptyData )(
  3230. IMimeBody * This);
  3231. HRESULT ( STDMETHODCALLTYPE *CopyTo )(
  3232. IMimeBody * This,
  3233. /* [in] */ IMimeBody *pBody);
  3234. HRESULT ( STDMETHODCALLTYPE *GetTransmitInfo )(
  3235. IMimeBody * This,
  3236. /* [out][in] */ LPTRANSMITINFO pTransmitInfo);
  3237. HRESULT ( STDMETHODCALLTYPE *SaveToFile )(
  3238. IMimeBody * This,
  3239. /* [in] */ ENCODINGTYPE ietEncoding,
  3240. /* [in] */ LPCSTR pszFilePath);
  3241. HRESULT ( STDMETHODCALLTYPE *GetHandle )(
  3242. IMimeBody * This,
  3243. /* [out] */ LPHBODY phBody);
  3244. END_INTERFACE
  3245. } IMimeBodyVtbl;
  3246. interface IMimeBody
  3247. {
  3248. CONST_VTBL struct IMimeBodyVtbl *lpVtbl;
  3249. };
  3250. #ifdef COBJMACROS
  3251. #define IMimeBody_QueryInterface(This,riid,ppvObject) \
  3252. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3253. #define IMimeBody_AddRef(This) \
  3254. (This)->lpVtbl -> AddRef(This)
  3255. #define IMimeBody_Release(This) \
  3256. (This)->lpVtbl -> Release(This)
  3257. #define IMimeBody_GetClassID(This,pClassID) \
  3258. (This)->lpVtbl -> GetClassID(This,pClassID)
  3259. #define IMimeBody_IsDirty(This) \
  3260. (This)->lpVtbl -> IsDirty(This)
  3261. #define IMimeBody_Load(This,pStm) \
  3262. (This)->lpVtbl -> Load(This,pStm)
  3263. #define IMimeBody_Save(This,pStm,fClearDirty) \
  3264. (This)->lpVtbl -> Save(This,pStm,fClearDirty)
  3265. #define IMimeBody_GetSizeMax(This,pCbSize) \
  3266. (This)->lpVtbl -> GetSizeMax(This,pCbSize)
  3267. #define IMimeBody_InitNew(This) \
  3268. (This)->lpVtbl -> InitNew(This)
  3269. #define IMimeBody_GetPropInfo(This,pszName,pInfo) \
  3270. (This)->lpVtbl -> GetPropInfo(This,pszName,pInfo)
  3271. #define IMimeBody_SetPropInfo(This,pszName,pInfo) \
  3272. (This)->lpVtbl -> SetPropInfo(This,pszName,pInfo)
  3273. #define IMimeBody_GetProp(This,pszName,dwFlags,pValue) \
  3274. (This)->lpVtbl -> GetProp(This,pszName,dwFlags,pValue)
  3275. #define IMimeBody_SetProp(This,pszName,dwFlags,pValue) \
  3276. (This)->lpVtbl -> SetProp(This,pszName,dwFlags,pValue)
  3277. #define IMimeBody_AppendProp(This,pszName,dwFlags,pValue) \
  3278. (This)->lpVtbl -> AppendProp(This,pszName,dwFlags,pValue)
  3279. #define IMimeBody_DeleteProp(This,pszName) \
  3280. (This)->lpVtbl -> DeleteProp(This,pszName)
  3281. #define IMimeBody_CopyProps(This,cNames,prgszName,pPropertySet) \
  3282. (This)->lpVtbl -> CopyProps(This,cNames,prgszName,pPropertySet)
  3283. #define IMimeBody_MoveProps(This,cNames,prgszName,pPropertySet) \
  3284. (This)->lpVtbl -> MoveProps(This,cNames,prgszName,pPropertySet)
  3285. #define IMimeBody_DeleteExcept(This,cNames,prgszName) \
  3286. (This)->lpVtbl -> DeleteExcept(This,cNames,prgszName)
  3287. #define IMimeBody_QueryProp(This,pszName,pszCriteria,fSubString,fCaseSensitive) \
  3288. (This)->lpVtbl -> QueryProp(This,pszName,pszCriteria,fSubString,fCaseSensitive)
  3289. #define IMimeBody_GetCharset(This,phCharset) \
  3290. (This)->lpVtbl -> GetCharset(This,phCharset)
  3291. #define IMimeBody_SetCharset(This,hCharset,applytype) \
  3292. (This)->lpVtbl -> SetCharset(This,hCharset,applytype)
  3293. #define IMimeBody_GetParameters(This,pszName,pcParams,pprgParam) \
  3294. (This)->lpVtbl -> GetParameters(This,pszName,pcParams,pprgParam)
  3295. #define IMimeBody_IsContentType(This,pszPriType,pszSubType) \
  3296. (This)->lpVtbl -> IsContentType(This,pszPriType,pszSubType)
  3297. #define IMimeBody_BindToObject(This,riid,ppvObject) \
  3298. (This)->lpVtbl -> BindToObject(This,riid,ppvObject)
  3299. #define IMimeBody_Clone(This,ppPropertySet) \
  3300. (This)->lpVtbl -> Clone(This,ppPropertySet)
  3301. #define IMimeBody_SetOption(This,oid,pValue) \
  3302. (This)->lpVtbl -> SetOption(This,oid,pValue)
  3303. #define IMimeBody_GetOption(This,oid,pValue) \
  3304. (This)->lpVtbl -> GetOption(This,oid,pValue)
  3305. #define IMimeBody_EnumProps(This,dwFlags,ppEnum) \
  3306. (This)->lpVtbl -> EnumProps(This,dwFlags,ppEnum)
  3307. #define IMimeBody_IsType(This,bodytype) \
  3308. (This)->lpVtbl -> IsType(This,bodytype)
  3309. #define IMimeBody_SetDisplayName(This,pszDisplay) \
  3310. (This)->lpVtbl -> SetDisplayName(This,pszDisplay)
  3311. #define IMimeBody_GetDisplayName(This,ppszDisplay) \
  3312. (This)->lpVtbl -> GetDisplayName(This,ppszDisplay)
  3313. #define IMimeBody_GetOffsets(This,pOffsets) \
  3314. (This)->lpVtbl -> GetOffsets(This,pOffsets)
  3315. #define IMimeBody_GetCurrentEncoding(This,pietEncoding) \
  3316. (This)->lpVtbl -> GetCurrentEncoding(This,pietEncoding)
  3317. #define IMimeBody_SetCurrentEncoding(This,ietEncoding) \
  3318. (This)->lpVtbl -> SetCurrentEncoding(This,ietEncoding)
  3319. #define IMimeBody_GetEstimatedSize(This,ietEncoding,pcbSize) \
  3320. (This)->lpVtbl -> GetEstimatedSize(This,ietEncoding,pcbSize)
  3321. #define IMimeBody_GetDataHere(This,ietEncoding,pStream) \
  3322. (This)->lpVtbl -> GetDataHere(This,ietEncoding,pStream)
  3323. #define IMimeBody_GetData(This,ietEncoding,ppStream) \
  3324. (This)->lpVtbl -> GetData(This,ietEncoding,ppStream)
  3325. #define IMimeBody_SetData(This,ietEncoding,pszPriType,pszSubType,riid,pvObject) \
  3326. (This)->lpVtbl -> SetData(This,ietEncoding,pszPriType,pszSubType,riid,pvObject)
  3327. #define IMimeBody_EmptyData(This) \
  3328. (This)->lpVtbl -> EmptyData(This)
  3329. #define IMimeBody_CopyTo(This,pBody) \
  3330. (This)->lpVtbl -> CopyTo(This,pBody)
  3331. #define IMimeBody_GetTransmitInfo(This,pTransmitInfo) \
  3332. (This)->lpVtbl -> GetTransmitInfo(This,pTransmitInfo)
  3333. #define IMimeBody_SaveToFile(This,ietEncoding,pszFilePath) \
  3334. (This)->lpVtbl -> SaveToFile(This,ietEncoding,pszFilePath)
  3335. #define IMimeBody_GetHandle(This,phBody) \
  3336. (This)->lpVtbl -> GetHandle(This,phBody)
  3337. #endif /* COBJMACROS */
  3338. #endif /* C style interface */
  3339. HRESULT STDMETHODCALLTYPE IMimeBody_IsType_Proxy(
  3340. IMimeBody * This,
  3341. /* [in] */ IMSGBODYTYPE bodytype);
  3342. void __RPC_STUB IMimeBody_IsType_Stub(
  3343. IRpcStubBuffer *This,
  3344. IRpcChannelBuffer *_pRpcChannelBuffer,
  3345. PRPC_MESSAGE _pRpcMessage,
  3346. DWORD *_pdwStubPhase);
  3347. HRESULT STDMETHODCALLTYPE IMimeBody_SetDisplayName_Proxy(
  3348. IMimeBody * This,
  3349. /* [in] */ LPCSTR pszDisplay);
  3350. void __RPC_STUB IMimeBody_SetDisplayName_Stub(
  3351. IRpcStubBuffer *This,
  3352. IRpcChannelBuffer *_pRpcChannelBuffer,
  3353. PRPC_MESSAGE _pRpcMessage,
  3354. DWORD *_pdwStubPhase);
  3355. HRESULT STDMETHODCALLTYPE IMimeBody_GetDisplayName_Proxy(
  3356. IMimeBody * This,
  3357. /* [out] */ LPSTR *ppszDisplay);
  3358. void __RPC_STUB IMimeBody_GetDisplayName_Stub(
  3359. IRpcStubBuffer *This,
  3360. IRpcChannelBuffer *_pRpcChannelBuffer,
  3361. PRPC_MESSAGE _pRpcMessage,
  3362. DWORD *_pdwStubPhase);
  3363. HRESULT STDMETHODCALLTYPE IMimeBody_GetOffsets_Proxy(
  3364. IMimeBody * This,
  3365. /* [out] */ LPBODYOFFSETS pOffsets);
  3366. void __RPC_STUB IMimeBody_GetOffsets_Stub(
  3367. IRpcStubBuffer *This,
  3368. IRpcChannelBuffer *_pRpcChannelBuffer,
  3369. PRPC_MESSAGE _pRpcMessage,
  3370. DWORD *_pdwStubPhase);
  3371. HRESULT STDMETHODCALLTYPE IMimeBody_GetCurrentEncoding_Proxy(
  3372. IMimeBody * This,
  3373. /* [out] */ ENCODINGTYPE *pietEncoding);
  3374. void __RPC_STUB IMimeBody_GetCurrentEncoding_Stub(
  3375. IRpcStubBuffer *This,
  3376. IRpcChannelBuffer *_pRpcChannelBuffer,
  3377. PRPC_MESSAGE _pRpcMessage,
  3378. DWORD *_pdwStubPhase);
  3379. HRESULT STDMETHODCALLTYPE IMimeBody_SetCurrentEncoding_Proxy(
  3380. IMimeBody * This,
  3381. /* [in] */ ENCODINGTYPE ietEncoding);
  3382. void __RPC_STUB IMimeBody_SetCurrentEncoding_Stub(
  3383. IRpcStubBuffer *This,
  3384. IRpcChannelBuffer *_pRpcChannelBuffer,
  3385. PRPC_MESSAGE _pRpcMessage,
  3386. DWORD *_pdwStubPhase);
  3387. HRESULT STDMETHODCALLTYPE IMimeBody_GetEstimatedSize_Proxy(
  3388. IMimeBody * This,
  3389. /* [in] */ ENCODINGTYPE ietEncoding,
  3390. /* [out] */ ULONG *pcbSize);
  3391. void __RPC_STUB IMimeBody_GetEstimatedSize_Stub(
  3392. IRpcStubBuffer *This,
  3393. IRpcChannelBuffer *_pRpcChannelBuffer,
  3394. PRPC_MESSAGE _pRpcMessage,
  3395. DWORD *_pdwStubPhase);
  3396. HRESULT STDMETHODCALLTYPE IMimeBody_GetDataHere_Proxy(
  3397. IMimeBody * This,
  3398. /* [in] */ ENCODINGTYPE ietEncoding,
  3399. /* [in] */ IStream *pStream);
  3400. void __RPC_STUB IMimeBody_GetDataHere_Stub(
  3401. IRpcStubBuffer *This,
  3402. IRpcChannelBuffer *_pRpcChannelBuffer,
  3403. PRPC_MESSAGE _pRpcMessage,
  3404. DWORD *_pdwStubPhase);
  3405. HRESULT STDMETHODCALLTYPE IMimeBody_GetData_Proxy(
  3406. IMimeBody * This,
  3407. /* [in] */ ENCODINGTYPE ietEncoding,
  3408. /* [out] */ IStream **ppStream);
  3409. void __RPC_STUB IMimeBody_GetData_Stub(
  3410. IRpcStubBuffer *This,
  3411. IRpcChannelBuffer *_pRpcChannelBuffer,
  3412. PRPC_MESSAGE _pRpcMessage,
  3413. DWORD *_pdwStubPhase);
  3414. HRESULT STDMETHODCALLTYPE IMimeBody_SetData_Proxy(
  3415. IMimeBody * This,
  3416. /* [in] */ ENCODINGTYPE ietEncoding,
  3417. /* [in] */ LPCSTR pszPriType,
  3418. /* [in] */ LPCSTR pszSubType,
  3419. /* [in] */ REFIID riid,
  3420. /* [iid_is][in] */ LPVOID pvObject);
  3421. void __RPC_STUB IMimeBody_SetData_Stub(
  3422. IRpcStubBuffer *This,
  3423. IRpcChannelBuffer *_pRpcChannelBuffer,
  3424. PRPC_MESSAGE _pRpcMessage,
  3425. DWORD *_pdwStubPhase);
  3426. HRESULT STDMETHODCALLTYPE IMimeBody_EmptyData_Proxy(
  3427. IMimeBody * This);
  3428. void __RPC_STUB IMimeBody_EmptyData_Stub(
  3429. IRpcStubBuffer *This,
  3430. IRpcChannelBuffer *_pRpcChannelBuffer,
  3431. PRPC_MESSAGE _pRpcMessage,
  3432. DWORD *_pdwStubPhase);
  3433. HRESULT STDMETHODCALLTYPE IMimeBody_CopyTo_Proxy(
  3434. IMimeBody * This,
  3435. /* [in] */ IMimeBody *pBody);
  3436. void __RPC_STUB IMimeBody_CopyTo_Stub(
  3437. IRpcStubBuffer *This,
  3438. IRpcChannelBuffer *_pRpcChannelBuffer,
  3439. PRPC_MESSAGE _pRpcMessage,
  3440. DWORD *_pdwStubPhase);
  3441. HRESULT STDMETHODCALLTYPE IMimeBody_GetTransmitInfo_Proxy(
  3442. IMimeBody * This,
  3443. /* [out][in] */ LPTRANSMITINFO pTransmitInfo);
  3444. void __RPC_STUB IMimeBody_GetTransmitInfo_Stub(
  3445. IRpcStubBuffer *This,
  3446. IRpcChannelBuffer *_pRpcChannelBuffer,
  3447. PRPC_MESSAGE _pRpcMessage,
  3448. DWORD *_pdwStubPhase);
  3449. HRESULT STDMETHODCALLTYPE IMimeBody_SaveToFile_Proxy(
  3450. IMimeBody * This,
  3451. /* [in] */ ENCODINGTYPE ietEncoding,
  3452. /* [in] */ LPCSTR pszFilePath);
  3453. void __RPC_STUB IMimeBody_SaveToFile_Stub(
  3454. IRpcStubBuffer *This,
  3455. IRpcChannelBuffer *_pRpcChannelBuffer,
  3456. PRPC_MESSAGE _pRpcMessage,
  3457. DWORD *_pdwStubPhase);
  3458. HRESULT STDMETHODCALLTYPE IMimeBody_GetHandle_Proxy(
  3459. IMimeBody * This,
  3460. /* [out] */ LPHBODY phBody);
  3461. void __RPC_STUB IMimeBody_GetHandle_Stub(
  3462. IRpcStubBuffer *This,
  3463. IRpcChannelBuffer *_pRpcChannelBuffer,
  3464. PRPC_MESSAGE _pRpcMessage,
  3465. DWORD *_pdwStubPhase);
  3466. #endif /* __IMimeBody_INTERFACE_DEFINED__ */
  3467. #ifndef __IMimeMessageTree_INTERFACE_DEFINED__
  3468. #define __IMimeMessageTree_INTERFACE_DEFINED__
  3469. /* interface IMimeMessageTree */
  3470. /* [object][helpstring][uuid] */
  3471. typedef /* [unique] */ IMimeMessageTree *LPMIMEMESSAGETREE;
  3472. #define HBODY_ROOT ( ( HBODY )-1 )
  3473. typedef
  3474. enum tagBODYLOCATION
  3475. { IBL_ROOT = 0,
  3476. IBL_PARENT = IBL_ROOT + 1,
  3477. IBL_FIRST = IBL_PARENT + 1,
  3478. IBL_LAST = IBL_FIRST + 1,
  3479. IBL_NEXT = IBL_LAST + 1,
  3480. IBL_PREVIOUS = IBL_NEXT + 1
  3481. } BODYLOCATION;
  3482. typedef struct tagFINDBODY
  3483. {
  3484. LPSTR pszPriType;
  3485. LPSTR pszSubType;
  3486. DWORD dwReserved;
  3487. } FINDBODY;
  3488. typedef struct tagFINDBODY *LPFINDBODY;
  3489. #define COMMIT_ONLYIFDIRTY 0x00000001
  3490. #define COMMIT_REUSESTORAGE 0x00000002
  3491. #define COMMIT_SMIMETRANSFERENCODE 0x00000004
  3492. #define SAVEBODY_KEEPBOUNDARY 0x00000001
  3493. #define DELETE_PROMOTE_CHILDREN 0x00000001
  3494. #define DELETE_CHILDREN_ONLY 0x00000002
  3495. EXTERN_C const IID IID_IMimeMessageTree;
  3496. #if defined(__cplusplus) && !defined(CINTERFACE)
  3497. MIDL_INTERFACE("FD853CD4-7F86-11d0-8252-00C04FD85AB4")
  3498. IMimeMessageTree : public IPersistStreamInit
  3499. {
  3500. public:
  3501. virtual HRESULT STDMETHODCALLTYPE GetMessageSource(
  3502. /* [out] */ IStream **ppStream,
  3503. /* [in] */ DWORD dwFlags) = 0;
  3504. virtual HRESULT STDMETHODCALLTYPE GetMessageSize(
  3505. /* [out] */ ULONG *pcbSize,
  3506. /* [in] */ DWORD dwFlags) = 0;
  3507. virtual HRESULT STDMETHODCALLTYPE LoadOffsetTable(
  3508. /* [in] */ IStream *pStream) = 0;
  3509. virtual HRESULT STDMETHODCALLTYPE SaveOffsetTable(
  3510. /* [in] */ IStream *pStream,
  3511. /* [in] */ DWORD dwFlags) = 0;
  3512. virtual HRESULT STDMETHODCALLTYPE GetFlags(
  3513. /* [out] */ DWORD *pdwFlags) = 0;
  3514. virtual HRESULT STDMETHODCALLTYPE Commit(
  3515. /* [in] */ DWORD dwFlags) = 0;
  3516. virtual HRESULT STDMETHODCALLTYPE HandsOffStorage( void) = 0;
  3517. virtual HRESULT STDMETHODCALLTYPE BindToObject(
  3518. /* [in] */ const HBODY hBody,
  3519. /* [in] */ REFIID riid,
  3520. /* [iid_is][out] */ void **ppvObject) = 0;
  3521. virtual HRESULT STDMETHODCALLTYPE SaveBody(
  3522. /* [in] */ HBODY hBody,
  3523. /* [in] */ DWORD dwFlags,
  3524. /* [in] */ IStream *pStream) = 0;
  3525. virtual HRESULT STDMETHODCALLTYPE InsertBody(
  3526. /* [in] */ BODYLOCATION location,
  3527. /* [in] */ HBODY hPivot,
  3528. /* [out] */ LPHBODY phBody) = 0;
  3529. virtual HRESULT STDMETHODCALLTYPE GetBody(
  3530. /* [in] */ BODYLOCATION location,
  3531. /* [in] */ HBODY hPivot,
  3532. /* [out] */ LPHBODY phBody) = 0;
  3533. virtual HRESULT STDMETHODCALLTYPE DeleteBody(
  3534. /* [in] */ HBODY hBody,
  3535. /* [in] */ DWORD dwFlags) = 0;
  3536. virtual HRESULT STDMETHODCALLTYPE MoveBody(
  3537. /* [in] */ HBODY hBody,
  3538. /* [in] */ BODYLOCATION location) = 0;
  3539. virtual HRESULT STDMETHODCALLTYPE CountBodies(
  3540. /* [in] */ HBODY hParent,
  3541. /* [in] */ boolean fRecurse,
  3542. /* [out] */ ULONG *pcBodies) = 0;
  3543. virtual HRESULT STDMETHODCALLTYPE FindFirst(
  3544. /* [out][in] */ LPFINDBODY pFindBody,
  3545. /* [out] */ LPHBODY phBody) = 0;
  3546. virtual HRESULT STDMETHODCALLTYPE FindNext(
  3547. /* [out][in] */ LPFINDBODY pFindBody,
  3548. /* [out] */ LPHBODY phBody) = 0;
  3549. virtual HRESULT STDMETHODCALLTYPE ResolveURL(
  3550. /* [in] */ HBODY hRelated,
  3551. /* [in] */ LPCSTR pszBase,
  3552. /* [in] */ LPCSTR pszURL,
  3553. /* [in] */ DWORD dwFlags,
  3554. /* [out] */ LPHBODY phBody) = 0;
  3555. virtual HRESULT STDMETHODCALLTYPE ToMultipart(
  3556. /* [in] */ HBODY hBody,
  3557. /* [in] */ LPCSTR pszSubType,
  3558. /* [out] */ LPHBODY phMultipart) = 0;
  3559. virtual HRESULT STDMETHODCALLTYPE GetBodyOffsets(
  3560. /* [in] */ HBODY hBody,
  3561. /* [out][in] */ LPBODYOFFSETS pOffsets) = 0;
  3562. virtual HRESULT STDMETHODCALLTYPE GetCharset(
  3563. /* [out] */ LPHCHARSET phCharset) = 0;
  3564. virtual HRESULT STDMETHODCALLTYPE SetCharset(
  3565. /* [in] */ HCHARSET hCharset,
  3566. /* [in] */ CSETAPPLYTYPE applytype) = 0;
  3567. virtual HRESULT STDMETHODCALLTYPE IsBodyType(
  3568. /* [in] */ HBODY hBody,
  3569. /* [in] */ IMSGBODYTYPE bodytype) = 0;
  3570. virtual HRESULT STDMETHODCALLTYPE IsContentType(
  3571. /* [in] */ HBODY hBody,
  3572. /* [in] */ LPCSTR pszPriType,
  3573. /* [in] */ LPCSTR pszSubType) = 0;
  3574. virtual HRESULT STDMETHODCALLTYPE QueryBodyProp(
  3575. /* [in] */ HBODY hBody,
  3576. /* [in] */ LPCSTR pszName,
  3577. /* [in] */ LPCSTR pszCriteria,
  3578. /* [in] */ boolean fSubString,
  3579. /* [in] */ boolean fCaseSensitive) = 0;
  3580. virtual HRESULT STDMETHODCALLTYPE GetBodyProp(
  3581. /* [in] */ HBODY hBody,
  3582. /* [in] */ LPCSTR pszName,
  3583. /* [in] */ DWORD dwFlags,
  3584. /* [out][in] */ LPPROPVARIANT pValue) = 0;
  3585. virtual HRESULT STDMETHODCALLTYPE SetBodyProp(
  3586. /* [in] */ HBODY hBody,
  3587. /* [in] */ LPCSTR pszName,
  3588. /* [in] */ DWORD dwFlags,
  3589. /* [in] */ LPCPROPVARIANT pValue) = 0;
  3590. virtual HRESULT STDMETHODCALLTYPE DeleteBodyProp(
  3591. /* [in] */ HBODY hBody,
  3592. /* [in] */ LPCSTR pszName) = 0;
  3593. virtual HRESULT STDMETHODCALLTYPE SetOption(
  3594. /* [in] */ const TYPEDID oid,
  3595. /* [in] */ LPCPROPVARIANT pValue) = 0;
  3596. virtual HRESULT STDMETHODCALLTYPE GetOption(
  3597. /* [in] */ const TYPEDID oid,
  3598. /* [out][in] */ LPPROPVARIANT pValue) = 0;
  3599. };
  3600. #else /* C style interface */
  3601. typedef struct IMimeMessageTreeVtbl
  3602. {
  3603. BEGIN_INTERFACE
  3604. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3605. IMimeMessageTree * This,
  3606. /* [in] */ REFIID riid,
  3607. /* [iid_is][out] */ void **ppvObject);
  3608. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3609. IMimeMessageTree * This);
  3610. ULONG ( STDMETHODCALLTYPE *Release )(
  3611. IMimeMessageTree * This);
  3612. HRESULT ( STDMETHODCALLTYPE *GetClassID )(
  3613. IMimeMessageTree * This,
  3614. /* [out] */ CLSID *pClassID);
  3615. HRESULT ( STDMETHODCALLTYPE *IsDirty )(
  3616. IMimeMessageTree * This);
  3617. HRESULT ( STDMETHODCALLTYPE *Load )(
  3618. IMimeMessageTree * This,
  3619. /* [in] */ LPSTREAM pStm);
  3620. HRESULT ( STDMETHODCALLTYPE *Save )(
  3621. IMimeMessageTree * This,
  3622. /* [in] */ LPSTREAM pStm,
  3623. /* [in] */ BOOL fClearDirty);
  3624. HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
  3625. IMimeMessageTree * This,
  3626. /* [out] */ ULARGE_INTEGER *pCbSize);
  3627. HRESULT ( STDMETHODCALLTYPE *InitNew )(
  3628. IMimeMessageTree * This);
  3629. HRESULT ( STDMETHODCALLTYPE *GetMessageSource )(
  3630. IMimeMessageTree * This,
  3631. /* [out] */ IStream **ppStream,
  3632. /* [in] */ DWORD dwFlags);
  3633. HRESULT ( STDMETHODCALLTYPE *GetMessageSize )(
  3634. IMimeMessageTree * This,
  3635. /* [out] */ ULONG *pcbSize,
  3636. /* [in] */ DWORD dwFlags);
  3637. HRESULT ( STDMETHODCALLTYPE *LoadOffsetTable )(
  3638. IMimeMessageTree * This,
  3639. /* [in] */ IStream *pStream);
  3640. HRESULT ( STDMETHODCALLTYPE *SaveOffsetTable )(
  3641. IMimeMessageTree * This,
  3642. /* [in] */ IStream *pStream,
  3643. /* [in] */ DWORD dwFlags);
  3644. HRESULT ( STDMETHODCALLTYPE *GetFlags )(
  3645. IMimeMessageTree * This,
  3646. /* [out] */ DWORD *pdwFlags);
  3647. HRESULT ( STDMETHODCALLTYPE *Commit )(
  3648. IMimeMessageTree * This,
  3649. /* [in] */ DWORD dwFlags);
  3650. HRESULT ( STDMETHODCALLTYPE *HandsOffStorage )(
  3651. IMimeMessageTree * This);
  3652. HRESULT ( STDMETHODCALLTYPE *BindToObject )(
  3653. IMimeMessageTree * This,
  3654. /* [in] */ const HBODY hBody,
  3655. /* [in] */ REFIID riid,
  3656. /* [iid_is][out] */ void **ppvObject);
  3657. HRESULT ( STDMETHODCALLTYPE *SaveBody )(
  3658. IMimeMessageTree * This,
  3659. /* [in] */ HBODY hBody,
  3660. /* [in] */ DWORD dwFlags,
  3661. /* [in] */ IStream *pStream);
  3662. HRESULT ( STDMETHODCALLTYPE *InsertBody )(
  3663. IMimeMessageTree * This,
  3664. /* [in] */ BODYLOCATION location,
  3665. /* [in] */ HBODY hPivot,
  3666. /* [out] */ LPHBODY phBody);
  3667. HRESULT ( STDMETHODCALLTYPE *GetBody )(
  3668. IMimeMessageTree * This,
  3669. /* [in] */ BODYLOCATION location,
  3670. /* [in] */ HBODY hPivot,
  3671. /* [out] */ LPHBODY phBody);
  3672. HRESULT ( STDMETHODCALLTYPE *DeleteBody )(
  3673. IMimeMessageTree * This,
  3674. /* [in] */ HBODY hBody,
  3675. /* [in] */ DWORD dwFlags);
  3676. HRESULT ( STDMETHODCALLTYPE *MoveBody )(
  3677. IMimeMessageTree * This,
  3678. /* [in] */ HBODY hBody,
  3679. /* [in] */ BODYLOCATION location);
  3680. HRESULT ( STDMETHODCALLTYPE *CountBodies )(
  3681. IMimeMessageTree * This,
  3682. /* [in] */ HBODY hParent,
  3683. /* [in] */ boolean fRecurse,
  3684. /* [out] */ ULONG *pcBodies);
  3685. HRESULT ( STDMETHODCALLTYPE *FindFirst )(
  3686. IMimeMessageTree * This,
  3687. /* [out][in] */ LPFINDBODY pFindBody,
  3688. /* [out] */ LPHBODY phBody);
  3689. HRESULT ( STDMETHODCALLTYPE *FindNext )(
  3690. IMimeMessageTree * This,
  3691. /* [out][in] */ LPFINDBODY pFindBody,
  3692. /* [out] */ LPHBODY phBody);
  3693. HRESULT ( STDMETHODCALLTYPE *ResolveURL )(
  3694. IMimeMessageTree * This,
  3695. /* [in] */ HBODY hRelated,
  3696. /* [in] */ LPCSTR pszBase,
  3697. /* [in] */ LPCSTR pszURL,
  3698. /* [in] */ DWORD dwFlags,
  3699. /* [out] */ LPHBODY phBody);
  3700. HRESULT ( STDMETHODCALLTYPE *ToMultipart )(
  3701. IMimeMessageTree * This,
  3702. /* [in] */ HBODY hBody,
  3703. /* [in] */ LPCSTR pszSubType,
  3704. /* [out] */ LPHBODY phMultipart);
  3705. HRESULT ( STDMETHODCALLTYPE *GetBodyOffsets )(
  3706. IMimeMessageTree * This,
  3707. /* [in] */ HBODY hBody,
  3708. /* [out][in] */ LPBODYOFFSETS pOffsets);
  3709. HRESULT ( STDMETHODCALLTYPE *GetCharset )(
  3710. IMimeMessageTree * This,
  3711. /* [out] */ LPHCHARSET phCharset);
  3712. HRESULT ( STDMETHODCALLTYPE *SetCharset )(
  3713. IMimeMessageTree * This,
  3714. /* [in] */ HCHARSET hCharset,
  3715. /* [in] */ CSETAPPLYTYPE applytype);
  3716. HRESULT ( STDMETHODCALLTYPE *IsBodyType )(
  3717. IMimeMessageTree * This,
  3718. /* [in] */ HBODY hBody,
  3719. /* [in] */ IMSGBODYTYPE bodytype);
  3720. HRESULT ( STDMETHODCALLTYPE *IsContentType )(
  3721. IMimeMessageTree * This,
  3722. /* [in] */ HBODY hBody,
  3723. /* [in] */ LPCSTR pszPriType,
  3724. /* [in] */ LPCSTR pszSubType);
  3725. HRESULT ( STDMETHODCALLTYPE *QueryBodyProp )(
  3726. IMimeMessageTree * This,
  3727. /* [in] */ HBODY hBody,
  3728. /* [in] */ LPCSTR pszName,
  3729. /* [in] */ LPCSTR pszCriteria,
  3730. /* [in] */ boolean fSubString,
  3731. /* [in] */ boolean fCaseSensitive);
  3732. HRESULT ( STDMETHODCALLTYPE *GetBodyProp )(
  3733. IMimeMessageTree * This,
  3734. /* [in] */ HBODY hBody,
  3735. /* [in] */ LPCSTR pszName,
  3736. /* [in] */ DWORD dwFlags,
  3737. /* [out][in] */ LPPROPVARIANT pValue);
  3738. HRESULT ( STDMETHODCALLTYPE *SetBodyProp )(
  3739. IMimeMessageTree * This,
  3740. /* [in] */ HBODY hBody,
  3741. /* [in] */ LPCSTR pszName,
  3742. /* [in] */ DWORD dwFlags,
  3743. /* [in] */ LPCPROPVARIANT pValue);
  3744. HRESULT ( STDMETHODCALLTYPE *DeleteBodyProp )(
  3745. IMimeMessageTree * This,
  3746. /* [in] */ HBODY hBody,
  3747. /* [in] */ LPCSTR pszName);
  3748. HRESULT ( STDMETHODCALLTYPE *SetOption )(
  3749. IMimeMessageTree * This,
  3750. /* [in] */ const TYPEDID oid,
  3751. /* [in] */ LPCPROPVARIANT pValue);
  3752. HRESULT ( STDMETHODCALLTYPE *GetOption )(
  3753. IMimeMessageTree * This,
  3754. /* [in] */ const TYPEDID oid,
  3755. /* [out][in] */ LPPROPVARIANT pValue);
  3756. END_INTERFACE
  3757. } IMimeMessageTreeVtbl;
  3758. interface IMimeMessageTree
  3759. {
  3760. CONST_VTBL struct IMimeMessageTreeVtbl *lpVtbl;
  3761. };
  3762. #ifdef COBJMACROS
  3763. #define IMimeMessageTree_QueryInterface(This,riid,ppvObject) \
  3764. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3765. #define IMimeMessageTree_AddRef(This) \
  3766. (This)->lpVtbl -> AddRef(This)
  3767. #define IMimeMessageTree_Release(This) \
  3768. (This)->lpVtbl -> Release(This)
  3769. #define IMimeMessageTree_GetClassID(This,pClassID) \
  3770. (This)->lpVtbl -> GetClassID(This,pClassID)
  3771. #define IMimeMessageTree_IsDirty(This) \
  3772. (This)->lpVtbl -> IsDirty(This)
  3773. #define IMimeMessageTree_Load(This,pStm) \
  3774. (This)->lpVtbl -> Load(This,pStm)
  3775. #define IMimeMessageTree_Save(This,pStm,fClearDirty) \
  3776. (This)->lpVtbl -> Save(This,pStm,fClearDirty)
  3777. #define IMimeMessageTree_GetSizeMax(This,pCbSize) \
  3778. (This)->lpVtbl -> GetSizeMax(This,pCbSize)
  3779. #define IMimeMessageTree_InitNew(This) \
  3780. (This)->lpVtbl -> InitNew(This)
  3781. #define IMimeMessageTree_GetMessageSource(This,ppStream,dwFlags) \
  3782. (This)->lpVtbl -> GetMessageSource(This,ppStream,dwFlags)
  3783. #define IMimeMessageTree_GetMessageSize(This,pcbSize,dwFlags) \
  3784. (This)->lpVtbl -> GetMessageSize(This,pcbSize,dwFlags)
  3785. #define IMimeMessageTree_LoadOffsetTable(This,pStream) \
  3786. (This)->lpVtbl -> LoadOffsetTable(This,pStream)
  3787. #define IMimeMessageTree_SaveOffsetTable(This,pStream,dwFlags) \
  3788. (This)->lpVtbl -> SaveOffsetTable(This,pStream,dwFlags)
  3789. #define IMimeMessageTree_GetFlags(This,pdwFlags) \
  3790. (This)->lpVtbl -> GetFlags(This,pdwFlags)
  3791. #define IMimeMessageTree_Commit(This,dwFlags) \
  3792. (This)->lpVtbl -> Commit(This,dwFlags)
  3793. #define IMimeMessageTree_HandsOffStorage(This) \
  3794. (This)->lpVtbl -> HandsOffStorage(This)
  3795. #define IMimeMessageTree_BindToObject(This,hBody,riid,ppvObject) \
  3796. (This)->lpVtbl -> BindToObject(This,hBody,riid,ppvObject)
  3797. #define IMimeMessageTree_SaveBody(This,hBody,dwFlags,pStream) \
  3798. (This)->lpVtbl -> SaveBody(This,hBody,dwFlags,pStream)
  3799. #define IMimeMessageTree_InsertBody(This,location,hPivot,phBody) \
  3800. (This)->lpVtbl -> InsertBody(This,location,hPivot,phBody)
  3801. #define IMimeMessageTree_GetBody(This,location,hPivot,phBody) \
  3802. (This)->lpVtbl -> GetBody(This,location,hPivot,phBody)
  3803. #define IMimeMessageTree_DeleteBody(This,hBody,dwFlags) \
  3804. (This)->lpVtbl -> DeleteBody(This,hBody,dwFlags)
  3805. #define IMimeMessageTree_MoveBody(This,hBody,location) \
  3806. (This)->lpVtbl -> MoveBody(This,hBody,location)
  3807. #define IMimeMessageTree_CountBodies(This,hParent,fRecurse,pcBodies) \
  3808. (This)->lpVtbl -> CountBodies(This,hParent,fRecurse,pcBodies)
  3809. #define IMimeMessageTree_FindFirst(This,pFindBody,phBody) \
  3810. (This)->lpVtbl -> FindFirst(This,pFindBody,phBody)
  3811. #define IMimeMessageTree_FindNext(This,pFindBody,phBody) \
  3812. (This)->lpVtbl -> FindNext(This,pFindBody,phBody)
  3813. #define IMimeMessageTree_ResolveURL(This,hRelated,pszBase,pszURL,dwFlags,phBody) \
  3814. (This)->lpVtbl -> ResolveURL(This,hRelated,pszBase,pszURL,dwFlags,phBody)
  3815. #define IMimeMessageTree_ToMultipart(This,hBody,pszSubType,phMultipart) \
  3816. (This)->lpVtbl -> ToMultipart(This,hBody,pszSubType,phMultipart)
  3817. #define IMimeMessageTree_GetBodyOffsets(This,hBody,pOffsets) \
  3818. (This)->lpVtbl -> GetBodyOffsets(This,hBody,pOffsets)
  3819. #define IMimeMessageTree_GetCharset(This,phCharset) \
  3820. (This)->lpVtbl -> GetCharset(This,phCharset)
  3821. #define IMimeMessageTree_SetCharset(This,hCharset,applytype) \
  3822. (This)->lpVtbl -> SetCharset(This,hCharset,applytype)
  3823. #define IMimeMessageTree_IsBodyType(This,hBody,bodytype) \
  3824. (This)->lpVtbl -> IsBodyType(This,hBody,bodytype)
  3825. #define IMimeMessageTree_IsContentType(This,hBody,pszPriType,pszSubType) \
  3826. (This)->lpVtbl -> IsContentType(This,hBody,pszPriType,pszSubType)
  3827. #define IMimeMessageTree_QueryBodyProp(This,hBody,pszName,pszCriteria,fSubString,fCaseSensitive) \
  3828. (This)->lpVtbl -> QueryBodyProp(This,hBody,pszName,pszCriteria,fSubString,fCaseSensitive)
  3829. #define IMimeMessageTree_GetBodyProp(This,hBody,pszName,dwFlags,pValue) \
  3830. (This)->lpVtbl -> GetBodyProp(This,hBody,pszName,dwFlags,pValue)
  3831. #define IMimeMessageTree_SetBodyProp(This,hBody,pszName,dwFlags,pValue) \
  3832. (This)->lpVtbl -> SetBodyProp(This,hBody,pszName,dwFlags,pValue)
  3833. #define IMimeMessageTree_DeleteBodyProp(This,hBody,pszName) \
  3834. (This)->lpVtbl -> DeleteBodyProp(This,hBody,pszName)
  3835. #define IMimeMessageTree_SetOption(This,oid,pValue) \
  3836. (This)->lpVtbl -> SetOption(This,oid,pValue)
  3837. #define IMimeMessageTree_GetOption(This,oid,pValue) \
  3838. (This)->lpVtbl -> GetOption(This,oid,pValue)
  3839. #endif /* COBJMACROS */
  3840. #endif /* C style interface */
  3841. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetMessageSource_Proxy(
  3842. IMimeMessageTree * This,
  3843. /* [out] */ IStream **ppStream,
  3844. /* [in] */ DWORD dwFlags);
  3845. void __RPC_STUB IMimeMessageTree_GetMessageSource_Stub(
  3846. IRpcStubBuffer *This,
  3847. IRpcChannelBuffer *_pRpcChannelBuffer,
  3848. PRPC_MESSAGE _pRpcMessage,
  3849. DWORD *_pdwStubPhase);
  3850. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetMessageSize_Proxy(
  3851. IMimeMessageTree * This,
  3852. /* [out] */ ULONG *pcbSize,
  3853. /* [in] */ DWORD dwFlags);
  3854. void __RPC_STUB IMimeMessageTree_GetMessageSize_Stub(
  3855. IRpcStubBuffer *This,
  3856. IRpcChannelBuffer *_pRpcChannelBuffer,
  3857. PRPC_MESSAGE _pRpcMessage,
  3858. DWORD *_pdwStubPhase);
  3859. HRESULT STDMETHODCALLTYPE IMimeMessageTree_LoadOffsetTable_Proxy(
  3860. IMimeMessageTree * This,
  3861. /* [in] */ IStream *pStream);
  3862. void __RPC_STUB IMimeMessageTree_LoadOffsetTable_Stub(
  3863. IRpcStubBuffer *This,
  3864. IRpcChannelBuffer *_pRpcChannelBuffer,
  3865. PRPC_MESSAGE _pRpcMessage,
  3866. DWORD *_pdwStubPhase);
  3867. HRESULT STDMETHODCALLTYPE IMimeMessageTree_SaveOffsetTable_Proxy(
  3868. IMimeMessageTree * This,
  3869. /* [in] */ IStream *pStream,
  3870. /* [in] */ DWORD dwFlags);
  3871. void __RPC_STUB IMimeMessageTree_SaveOffsetTable_Stub(
  3872. IRpcStubBuffer *This,
  3873. IRpcChannelBuffer *_pRpcChannelBuffer,
  3874. PRPC_MESSAGE _pRpcMessage,
  3875. DWORD *_pdwStubPhase);
  3876. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetFlags_Proxy(
  3877. IMimeMessageTree * This,
  3878. /* [out] */ DWORD *pdwFlags);
  3879. void __RPC_STUB IMimeMessageTree_GetFlags_Stub(
  3880. IRpcStubBuffer *This,
  3881. IRpcChannelBuffer *_pRpcChannelBuffer,
  3882. PRPC_MESSAGE _pRpcMessage,
  3883. DWORD *_pdwStubPhase);
  3884. HRESULT STDMETHODCALLTYPE IMimeMessageTree_Commit_Proxy(
  3885. IMimeMessageTree * This,
  3886. /* [in] */ DWORD dwFlags);
  3887. void __RPC_STUB IMimeMessageTree_Commit_Stub(
  3888. IRpcStubBuffer *This,
  3889. IRpcChannelBuffer *_pRpcChannelBuffer,
  3890. PRPC_MESSAGE _pRpcMessage,
  3891. DWORD *_pdwStubPhase);
  3892. HRESULT STDMETHODCALLTYPE IMimeMessageTree_HandsOffStorage_Proxy(
  3893. IMimeMessageTree * This);
  3894. void __RPC_STUB IMimeMessageTree_HandsOffStorage_Stub(
  3895. IRpcStubBuffer *This,
  3896. IRpcChannelBuffer *_pRpcChannelBuffer,
  3897. PRPC_MESSAGE _pRpcMessage,
  3898. DWORD *_pdwStubPhase);
  3899. HRESULT STDMETHODCALLTYPE IMimeMessageTree_BindToObject_Proxy(
  3900. IMimeMessageTree * This,
  3901. /* [in] */ const HBODY hBody,
  3902. /* [in] */ REFIID riid,
  3903. /* [iid_is][out] */ void **ppvObject);
  3904. void __RPC_STUB IMimeMessageTree_BindToObject_Stub(
  3905. IRpcStubBuffer *This,
  3906. IRpcChannelBuffer *_pRpcChannelBuffer,
  3907. PRPC_MESSAGE _pRpcMessage,
  3908. DWORD *_pdwStubPhase);
  3909. HRESULT STDMETHODCALLTYPE IMimeMessageTree_SaveBody_Proxy(
  3910. IMimeMessageTree * This,
  3911. /* [in] */ HBODY hBody,
  3912. /* [in] */ DWORD dwFlags,
  3913. /* [in] */ IStream *pStream);
  3914. void __RPC_STUB IMimeMessageTree_SaveBody_Stub(
  3915. IRpcStubBuffer *This,
  3916. IRpcChannelBuffer *_pRpcChannelBuffer,
  3917. PRPC_MESSAGE _pRpcMessage,
  3918. DWORD *_pdwStubPhase);
  3919. HRESULT STDMETHODCALLTYPE IMimeMessageTree_InsertBody_Proxy(
  3920. IMimeMessageTree * This,
  3921. /* [in] */ BODYLOCATION location,
  3922. /* [in] */ HBODY hPivot,
  3923. /* [out] */ LPHBODY phBody);
  3924. void __RPC_STUB IMimeMessageTree_InsertBody_Stub(
  3925. IRpcStubBuffer *This,
  3926. IRpcChannelBuffer *_pRpcChannelBuffer,
  3927. PRPC_MESSAGE _pRpcMessage,
  3928. DWORD *_pdwStubPhase);
  3929. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetBody_Proxy(
  3930. IMimeMessageTree * This,
  3931. /* [in] */ BODYLOCATION location,
  3932. /* [in] */ HBODY hPivot,
  3933. /* [out] */ LPHBODY phBody);
  3934. void __RPC_STUB IMimeMessageTree_GetBody_Stub(
  3935. IRpcStubBuffer *This,
  3936. IRpcChannelBuffer *_pRpcChannelBuffer,
  3937. PRPC_MESSAGE _pRpcMessage,
  3938. DWORD *_pdwStubPhase);
  3939. HRESULT STDMETHODCALLTYPE IMimeMessageTree_DeleteBody_Proxy(
  3940. IMimeMessageTree * This,
  3941. /* [in] */ HBODY hBody,
  3942. /* [in] */ DWORD dwFlags);
  3943. void __RPC_STUB IMimeMessageTree_DeleteBody_Stub(
  3944. IRpcStubBuffer *This,
  3945. IRpcChannelBuffer *_pRpcChannelBuffer,
  3946. PRPC_MESSAGE _pRpcMessage,
  3947. DWORD *_pdwStubPhase);
  3948. HRESULT STDMETHODCALLTYPE IMimeMessageTree_MoveBody_Proxy(
  3949. IMimeMessageTree * This,
  3950. /* [in] */ HBODY hBody,
  3951. /* [in] */ BODYLOCATION location);
  3952. void __RPC_STUB IMimeMessageTree_MoveBody_Stub(
  3953. IRpcStubBuffer *This,
  3954. IRpcChannelBuffer *_pRpcChannelBuffer,
  3955. PRPC_MESSAGE _pRpcMessage,
  3956. DWORD *_pdwStubPhase);
  3957. HRESULT STDMETHODCALLTYPE IMimeMessageTree_CountBodies_Proxy(
  3958. IMimeMessageTree * This,
  3959. /* [in] */ HBODY hParent,
  3960. /* [in] */ boolean fRecurse,
  3961. /* [out] */ ULONG *pcBodies);
  3962. void __RPC_STUB IMimeMessageTree_CountBodies_Stub(
  3963. IRpcStubBuffer *This,
  3964. IRpcChannelBuffer *_pRpcChannelBuffer,
  3965. PRPC_MESSAGE _pRpcMessage,
  3966. DWORD *_pdwStubPhase);
  3967. HRESULT STDMETHODCALLTYPE IMimeMessageTree_FindFirst_Proxy(
  3968. IMimeMessageTree * This,
  3969. /* [out][in] */ LPFINDBODY pFindBody,
  3970. /* [out] */ LPHBODY phBody);
  3971. void __RPC_STUB IMimeMessageTree_FindFirst_Stub(
  3972. IRpcStubBuffer *This,
  3973. IRpcChannelBuffer *_pRpcChannelBuffer,
  3974. PRPC_MESSAGE _pRpcMessage,
  3975. DWORD *_pdwStubPhase);
  3976. HRESULT STDMETHODCALLTYPE IMimeMessageTree_FindNext_Proxy(
  3977. IMimeMessageTree * This,
  3978. /* [out][in] */ LPFINDBODY pFindBody,
  3979. /* [out] */ LPHBODY phBody);
  3980. void __RPC_STUB IMimeMessageTree_FindNext_Stub(
  3981. IRpcStubBuffer *This,
  3982. IRpcChannelBuffer *_pRpcChannelBuffer,
  3983. PRPC_MESSAGE _pRpcMessage,
  3984. DWORD *_pdwStubPhase);
  3985. HRESULT STDMETHODCALLTYPE IMimeMessageTree_ResolveURL_Proxy(
  3986. IMimeMessageTree * This,
  3987. /* [in] */ HBODY hRelated,
  3988. /* [in] */ LPCSTR pszBase,
  3989. /* [in] */ LPCSTR pszURL,
  3990. /* [in] */ DWORD dwFlags,
  3991. /* [out] */ LPHBODY phBody);
  3992. void __RPC_STUB IMimeMessageTree_ResolveURL_Stub(
  3993. IRpcStubBuffer *This,
  3994. IRpcChannelBuffer *_pRpcChannelBuffer,
  3995. PRPC_MESSAGE _pRpcMessage,
  3996. DWORD *_pdwStubPhase);
  3997. HRESULT STDMETHODCALLTYPE IMimeMessageTree_ToMultipart_Proxy(
  3998. IMimeMessageTree * This,
  3999. /* [in] */ HBODY hBody,
  4000. /* [in] */ LPCSTR pszSubType,
  4001. /* [out] */ LPHBODY phMultipart);
  4002. void __RPC_STUB IMimeMessageTree_ToMultipart_Stub(
  4003. IRpcStubBuffer *This,
  4004. IRpcChannelBuffer *_pRpcChannelBuffer,
  4005. PRPC_MESSAGE _pRpcMessage,
  4006. DWORD *_pdwStubPhase);
  4007. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetBodyOffsets_Proxy(
  4008. IMimeMessageTree * This,
  4009. /* [in] */ HBODY hBody,
  4010. /* [out][in] */ LPBODYOFFSETS pOffsets);
  4011. void __RPC_STUB IMimeMessageTree_GetBodyOffsets_Stub(
  4012. IRpcStubBuffer *This,
  4013. IRpcChannelBuffer *_pRpcChannelBuffer,
  4014. PRPC_MESSAGE _pRpcMessage,
  4015. DWORD *_pdwStubPhase);
  4016. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetCharset_Proxy(
  4017. IMimeMessageTree * This,
  4018. /* [out] */ LPHCHARSET phCharset);
  4019. void __RPC_STUB IMimeMessageTree_GetCharset_Stub(
  4020. IRpcStubBuffer *This,
  4021. IRpcChannelBuffer *_pRpcChannelBuffer,
  4022. PRPC_MESSAGE _pRpcMessage,
  4023. DWORD *_pdwStubPhase);
  4024. HRESULT STDMETHODCALLTYPE IMimeMessageTree_SetCharset_Proxy(
  4025. IMimeMessageTree * This,
  4026. /* [in] */ HCHARSET hCharset,
  4027. /* [in] */ CSETAPPLYTYPE applytype);
  4028. void __RPC_STUB IMimeMessageTree_SetCharset_Stub(
  4029. IRpcStubBuffer *This,
  4030. IRpcChannelBuffer *_pRpcChannelBuffer,
  4031. PRPC_MESSAGE _pRpcMessage,
  4032. DWORD *_pdwStubPhase);
  4033. HRESULT STDMETHODCALLTYPE IMimeMessageTree_IsBodyType_Proxy(
  4034. IMimeMessageTree * This,
  4035. /* [in] */ HBODY hBody,
  4036. /* [in] */ IMSGBODYTYPE bodytype);
  4037. void __RPC_STUB IMimeMessageTree_IsBodyType_Stub(
  4038. IRpcStubBuffer *This,
  4039. IRpcChannelBuffer *_pRpcChannelBuffer,
  4040. PRPC_MESSAGE _pRpcMessage,
  4041. DWORD *_pdwStubPhase);
  4042. HRESULT STDMETHODCALLTYPE IMimeMessageTree_IsContentType_Proxy(
  4043. IMimeMessageTree * This,
  4044. /* [in] */ HBODY hBody,
  4045. /* [in] */ LPCSTR pszPriType,
  4046. /* [in] */ LPCSTR pszSubType);
  4047. void __RPC_STUB IMimeMessageTree_IsContentType_Stub(
  4048. IRpcStubBuffer *This,
  4049. IRpcChannelBuffer *_pRpcChannelBuffer,
  4050. PRPC_MESSAGE _pRpcMessage,
  4051. DWORD *_pdwStubPhase);
  4052. HRESULT STDMETHODCALLTYPE IMimeMessageTree_QueryBodyProp_Proxy(
  4053. IMimeMessageTree * This,
  4054. /* [in] */ HBODY hBody,
  4055. /* [in] */ LPCSTR pszName,
  4056. /* [in] */ LPCSTR pszCriteria,
  4057. /* [in] */ boolean fSubString,
  4058. /* [in] */ boolean fCaseSensitive);
  4059. void __RPC_STUB IMimeMessageTree_QueryBodyProp_Stub(
  4060. IRpcStubBuffer *This,
  4061. IRpcChannelBuffer *_pRpcChannelBuffer,
  4062. PRPC_MESSAGE _pRpcMessage,
  4063. DWORD *_pdwStubPhase);
  4064. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetBodyProp_Proxy(
  4065. IMimeMessageTree * This,
  4066. /* [in] */ HBODY hBody,
  4067. /* [in] */ LPCSTR pszName,
  4068. /* [in] */ DWORD dwFlags,
  4069. /* [out][in] */ LPPROPVARIANT pValue);
  4070. void __RPC_STUB IMimeMessageTree_GetBodyProp_Stub(
  4071. IRpcStubBuffer *This,
  4072. IRpcChannelBuffer *_pRpcChannelBuffer,
  4073. PRPC_MESSAGE _pRpcMessage,
  4074. DWORD *_pdwStubPhase);
  4075. HRESULT STDMETHODCALLTYPE IMimeMessageTree_SetBodyProp_Proxy(
  4076. IMimeMessageTree * This,
  4077. /* [in] */ HBODY hBody,
  4078. /* [in] */ LPCSTR pszName,
  4079. /* [in] */ DWORD dwFlags,
  4080. /* [in] */ LPCPROPVARIANT pValue);
  4081. void __RPC_STUB IMimeMessageTree_SetBodyProp_Stub(
  4082. IRpcStubBuffer *This,
  4083. IRpcChannelBuffer *_pRpcChannelBuffer,
  4084. PRPC_MESSAGE _pRpcMessage,
  4085. DWORD *_pdwStubPhase);
  4086. HRESULT STDMETHODCALLTYPE IMimeMessageTree_DeleteBodyProp_Proxy(
  4087. IMimeMessageTree * This,
  4088. /* [in] */ HBODY hBody,
  4089. /* [in] */ LPCSTR pszName);
  4090. void __RPC_STUB IMimeMessageTree_DeleteBodyProp_Stub(
  4091. IRpcStubBuffer *This,
  4092. IRpcChannelBuffer *_pRpcChannelBuffer,
  4093. PRPC_MESSAGE _pRpcMessage,
  4094. DWORD *_pdwStubPhase);
  4095. HRESULT STDMETHODCALLTYPE IMimeMessageTree_SetOption_Proxy(
  4096. IMimeMessageTree * This,
  4097. /* [in] */ const TYPEDID oid,
  4098. /* [in] */ LPCPROPVARIANT pValue);
  4099. void __RPC_STUB IMimeMessageTree_SetOption_Stub(
  4100. IRpcStubBuffer *This,
  4101. IRpcChannelBuffer *_pRpcChannelBuffer,
  4102. PRPC_MESSAGE _pRpcMessage,
  4103. DWORD *_pdwStubPhase);
  4104. HRESULT STDMETHODCALLTYPE IMimeMessageTree_GetOption_Proxy(
  4105. IMimeMessageTree * This,
  4106. /* [in] */ const TYPEDID oid,
  4107. /* [out][in] */ LPPROPVARIANT pValue);
  4108. void __RPC_STUB IMimeMessageTree_GetOption_Stub(
  4109. IRpcStubBuffer *This,
  4110. IRpcChannelBuffer *_pRpcChannelBuffer,
  4111. PRPC_MESSAGE _pRpcMessage,
  4112. DWORD *_pdwStubPhase);
  4113. #endif /* __IMimeMessageTree_INTERFACE_DEFINED__ */
  4114. #ifndef __IMimeMessage_INTERFACE_DEFINED__
  4115. #define __IMimeMessage_INTERFACE_DEFINED__
  4116. /* interface IMimeMessage */
  4117. /* [object][helpstring][uuid] */
  4118. typedef /* [unique] */ IMimeMessage *LPMIMEMESSAGE;
  4119. typedef DWORD TEXTTYPE;
  4120. typedef
  4121. enum tagIMSGFLAGS
  4122. { IMF_ATTACHMENTS = 0x1,
  4123. IMF_MULTIPART = 0x2,
  4124. IMF_SUBMULTIPART = 0x4,
  4125. IMF_MIME = 0x8,
  4126. IMF_HTML = 0x10,
  4127. IMF_PLAIN = 0x20,
  4128. IMF_PARTIAL = 0x40,
  4129. IMF_SIGNED = 0x80,
  4130. IMF_ENCRYPTED = 0x100,
  4131. IMF_TNEF = 0x200,
  4132. IMF_MHTML = 0x400,
  4133. IMF_SECURE = 0x800,
  4134. IMF_TEXT = 0x1000,
  4135. IMF_CSETTAGGED = 0x2000,
  4136. IMF_NEWS = 0x4000,
  4137. IMF_VOICEMAIL = 0x8000,
  4138. IMF_HASVCARD = 0x10000,
  4139. IMF_RFC1154 = 0x20000
  4140. } IMSGFLAGS;
  4141. typedef
  4142. enum tagIMSGPRIORITY
  4143. { IMSG_PRI_LOW = 5,
  4144. IMSG_PRI_NORMAL = 3,
  4145. IMSG_PRI_HIGH = 1
  4146. } IMSGPRIORITY;
  4147. #define WPF_HTML 0x00000001
  4148. #define WPF_AUTOINLINE 0x00000002
  4149. #define WPF_SLIDESHOW 0x00000004
  4150. #define WPF_ATTACHLINKS 0x00000008
  4151. #define WPF_IMAGESONLY 0x00000010
  4152. #define WPF_NOMETACHARSET 0x00000020
  4153. typedef struct tagWEBPAGEOPTIONS
  4154. {
  4155. DWORD cbSize;
  4156. DWORD dwFlags;
  4157. DWORD dwDelay;
  4158. WCHAR wchQuote;
  4159. } WEBPAGEOPTIONS;
  4160. typedef struct tagWEBPAGEOPTIONS *LPWEBPAGEOPTIONS;
  4161. #define TXT_PLAIN 0x00000001
  4162. #define TXT_HTML 0x00000002
  4163. #define URL_ATTACH_INTO_MIXED 0x00000001
  4164. #define URL_ATTACH_GENERATE_CID 0x00000002
  4165. #define URL_ATTACH_SET_CNTTYPE 0x00000004
  4166. #define URL_RESOLVE_RENDERED 0x00000001
  4167. #define URL_RESULVE_NO_BASE 0x00000002
  4168. EXTERN_C const IID IID_IMimeMessage;
  4169. #if defined(__cplusplus) && !defined(CINTERFACE)
  4170. MIDL_INTERFACE("FD853CD5-7F86-11d0-8252-00C04FD85AB4")
  4171. IMimeMessage : public IMimeMessageTree
  4172. {
  4173. public:
  4174. virtual HRESULT STDMETHODCALLTYPE CreateWebPage(
  4175. /* [in] */ IStream *pRootStm,
  4176. /* [in] */ LPWEBPAGEOPTIONS pOptions,
  4177. /* [in] */ IMimeMessageCallback *pCallback,
  4178. /* [out] */ IMoniker **ppMoniker) = 0;
  4179. virtual HRESULT STDMETHODCALLTYPE GetProp(
  4180. /* [in] */ LPCSTR pszName,
  4181. /* [in] */ DWORD dwFlags,
  4182. /* [out][in] */ LPPROPVARIANT pValue) = 0;
  4183. virtual HRESULT STDMETHODCALLTYPE SetProp(
  4184. /* [in] */ LPCSTR pszName,
  4185. /* [in] */ DWORD dwFlags,
  4186. /* [in] */ LPCPROPVARIANT pValue) = 0;
  4187. virtual HRESULT STDMETHODCALLTYPE DeleteProp(
  4188. /* [in] */ LPCSTR pszName) = 0;
  4189. virtual HRESULT STDMETHODCALLTYPE QueryProp(
  4190. /* [in] */ LPCSTR pszName,
  4191. /* [in] */ LPCSTR pszCriteria,
  4192. /* [in] */ boolean fSubString,
  4193. /* [in] */ boolean fCaseSensitive) = 0;
  4194. virtual HRESULT STDMETHODCALLTYPE GetTextBody(
  4195. /* [in] */ DWORD dwTxtType,
  4196. /* [in] */ ENCODINGTYPE ietEncoding,
  4197. /* [out] */ IStream **ppStream,
  4198. /* [out] */ LPHBODY phBody) = 0;
  4199. virtual HRESULT STDMETHODCALLTYPE SetTextBody(
  4200. /* [in] */ DWORD dwTxtType,
  4201. /* [in] */ ENCODINGTYPE ietEncoding,
  4202. /* [in] */ HBODY hAlternative,
  4203. /* [in] */ IStream *pStream,
  4204. /* [out] */ LPHBODY phBody) = 0;
  4205. virtual HRESULT STDMETHODCALLTYPE AttachObject(
  4206. /* [in] */ REFIID riid,
  4207. /* [iid_is][in] */ void *pvObject,
  4208. /* [out] */ LPHBODY phBody) = 0;
  4209. virtual HRESULT STDMETHODCALLTYPE AttachFile(
  4210. /* [in] */ LPCSTR pszFilePath,
  4211. /* [in] */ IStream *pstmFile,
  4212. /* [out] */ LPHBODY phBody) = 0;
  4213. virtual HRESULT STDMETHODCALLTYPE AttachURL(
  4214. /* [in] */ LPCSTR pszBase,
  4215. /* [in] */ LPCSTR pszURL,
  4216. /* [in] */ DWORD dwFlags,
  4217. /* [in] */ IStream *pstmURL,
  4218. /* [out] */ LPSTR *ppszCIDURL,
  4219. /* [out] */ LPHBODY phBody) = 0;
  4220. virtual HRESULT STDMETHODCALLTYPE GetAttachments(
  4221. /* [out] */ ULONG *pcAttach,
  4222. /* [out] */ LPHBODY *pprghAttach) = 0;
  4223. virtual HRESULT STDMETHODCALLTYPE GetAddressTable(
  4224. /* [out] */ IMimeAddressTable **ppTable) = 0;
  4225. virtual HRESULT STDMETHODCALLTYPE GetSender(
  4226. /* [out][in] */ LPADDRESSPROPS pAddress) = 0;
  4227. virtual HRESULT STDMETHODCALLTYPE GetAddressTypes(
  4228. /* [in] */ DWORD dwAdrTypes,
  4229. /* [in] */ DWORD dwProps,
  4230. /* [out][in] */ LPADDRESSLIST pList) = 0;
  4231. virtual HRESULT STDMETHODCALLTYPE GetAddressFormat(
  4232. /* [in] */ DWORD dwAdrType,
  4233. /* [in] */ ADDRESSFORMAT format,
  4234. /* [out] */ LPSTR *ppszFormat) = 0;
  4235. virtual HRESULT STDMETHODCALLTYPE EnumAddressTypes(
  4236. /* [in] */ DWORD dwAdrTypes,
  4237. /* [in] */ DWORD dwProps,
  4238. /* [out] */ IMimeEnumAddressTypes **ppEnum) = 0;
  4239. virtual HRESULT STDMETHODCALLTYPE SplitMessage(
  4240. /* [in] */ ULONG cbMaxPart,
  4241. /* [out] */ IMimeMessageParts **ppParts) = 0;
  4242. virtual HRESULT STDMETHODCALLTYPE GetRootMoniker(
  4243. /* [out] */ IMoniker **ppMoniker) = 0;
  4244. };
  4245. #else /* C style interface */
  4246. typedef struct IMimeMessageVtbl
  4247. {
  4248. BEGIN_INTERFACE
  4249. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4250. IMimeMessage * This,
  4251. /* [in] */ REFIID riid,
  4252. /* [iid_is][out] */ void **ppvObject);
  4253. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4254. IMimeMessage * This);
  4255. ULONG ( STDMETHODCALLTYPE *Release )(
  4256. IMimeMessage * This);
  4257. HRESULT ( STDMETHODCALLTYPE *GetClassID )(
  4258. IMimeMessage * This,
  4259. /* [out] */ CLSID *pClassID);
  4260. HRESULT ( STDMETHODCALLTYPE *IsDirty )(
  4261. IMimeMessage * This);
  4262. HRESULT ( STDMETHODCALLTYPE *Load )(
  4263. IMimeMessage * This,
  4264. /* [in] */ LPSTREAM pStm);
  4265. HRESULT ( STDMETHODCALLTYPE *Save )(
  4266. IMimeMessage * This,
  4267. /* [in] */ LPSTREAM pStm,
  4268. /* [in] */ BOOL fClearDirty);
  4269. HRESULT ( STDMETHODCALLTYPE *GetSizeMax )(
  4270. IMimeMessage * This,
  4271. /* [out] */ ULARGE_INTEGER *pCbSize);
  4272. HRESULT ( STDMETHODCALLTYPE *InitNew )(
  4273. IMimeMessage * This);
  4274. HRESULT ( STDMETHODCALLTYPE *GetMessageSource )(
  4275. IMimeMessage * This,
  4276. /* [out] */ IStream **ppStream,
  4277. /* [in] */ DWORD dwFlags);
  4278. HRESULT ( STDMETHODCALLTYPE *GetMessageSize )(
  4279. IMimeMessage * This,
  4280. /* [out] */ ULONG *pcbSize,
  4281. /* [in] */ DWORD dwFlags);
  4282. HRESULT ( STDMETHODCALLTYPE *LoadOffsetTable )(
  4283. IMimeMessage * This,
  4284. /* [in] */ IStream *pStream);
  4285. HRESULT ( STDMETHODCALLTYPE *SaveOffsetTable )(
  4286. IMimeMessage * This,
  4287. /* [in] */ IStream *pStream,
  4288. /* [in] */ DWORD dwFlags);
  4289. HRESULT ( STDMETHODCALLTYPE *GetFlags )(
  4290. IMimeMessage * This,
  4291. /* [out] */ DWORD *pdwFlags);
  4292. HRESULT ( STDMETHODCALLTYPE *Commit )(
  4293. IMimeMessage * This,
  4294. /* [in] */ DWORD dwFlags);
  4295. HRESULT ( STDMETHODCALLTYPE *HandsOffStorage )(
  4296. IMimeMessage * This);
  4297. HRESULT ( STDMETHODCALLTYPE *BindToObject )(
  4298. IMimeMessage * This,
  4299. /* [in] */ const HBODY hBody,
  4300. /* [in] */ REFIID riid,
  4301. /* [iid_is][out] */ void **ppvObject);
  4302. HRESULT ( STDMETHODCALLTYPE *SaveBody )(
  4303. IMimeMessage * This,
  4304. /* [in] */ HBODY hBody,
  4305. /* [in] */ DWORD dwFlags,
  4306. /* [in] */ IStream *pStream);
  4307. HRESULT ( STDMETHODCALLTYPE *InsertBody )(
  4308. IMimeMessage * This,
  4309. /* [in] */ BODYLOCATION location,
  4310. /* [in] */ HBODY hPivot,
  4311. /* [out] */ LPHBODY phBody);
  4312. HRESULT ( STDMETHODCALLTYPE *GetBody )(
  4313. IMimeMessage * This,
  4314. /* [in] */ BODYLOCATION location,
  4315. /* [in] */ HBODY hPivot,
  4316. /* [out] */ LPHBODY phBody);
  4317. HRESULT ( STDMETHODCALLTYPE *DeleteBody )(
  4318. IMimeMessage * This,
  4319. /* [in] */ HBODY hBody,
  4320. /* [in] */ DWORD dwFlags);
  4321. HRESULT ( STDMETHODCALLTYPE *MoveBody )(
  4322. IMimeMessage * This,
  4323. /* [in] */ HBODY hBody,
  4324. /* [in] */ BODYLOCATION location);
  4325. HRESULT ( STDMETHODCALLTYPE *CountBodies )(
  4326. IMimeMessage * This,
  4327. /* [in] */ HBODY hParent,
  4328. /* [in] */ boolean fRecurse,
  4329. /* [out] */ ULONG *pcBodies);
  4330. HRESULT ( STDMETHODCALLTYPE *FindFirst )(
  4331. IMimeMessage * This,
  4332. /* [out][in] */ LPFINDBODY pFindBody,
  4333. /* [out] */ LPHBODY phBody);
  4334. HRESULT ( STDMETHODCALLTYPE *FindNext )(
  4335. IMimeMessage * This,
  4336. /* [out][in] */ LPFINDBODY pFindBody,
  4337. /* [out] */ LPHBODY phBody);
  4338. HRESULT ( STDMETHODCALLTYPE *ResolveURL )(
  4339. IMimeMessage * This,
  4340. /* [in] */ HBODY hRelated,
  4341. /* [in] */ LPCSTR pszBase,
  4342. /* [in] */ LPCSTR pszURL,
  4343. /* [in] */ DWORD dwFlags,
  4344. /* [out] */ LPHBODY phBody);
  4345. HRESULT ( STDMETHODCALLTYPE *ToMultipart )(
  4346. IMimeMessage * This,
  4347. /* [in] */ HBODY hBody,
  4348. /* [in] */ LPCSTR pszSubType,
  4349. /* [out] */ LPHBODY phMultipart);
  4350. HRESULT ( STDMETHODCALLTYPE *GetBodyOffsets )(
  4351. IMimeMessage * This,
  4352. /* [in] */ HBODY hBody,
  4353. /* [out][in] */ LPBODYOFFSETS pOffsets);
  4354. HRESULT ( STDMETHODCALLTYPE *GetCharset )(
  4355. IMimeMessage * This,
  4356. /* [out] */ LPHCHARSET phCharset);
  4357. HRESULT ( STDMETHODCALLTYPE *SetCharset )(
  4358. IMimeMessage * This,
  4359. /* [in] */ HCHARSET hCharset,
  4360. /* [in] */ CSETAPPLYTYPE applytype);
  4361. HRESULT ( STDMETHODCALLTYPE *IsBodyType )(
  4362. IMimeMessage * This,
  4363. /* [in] */ HBODY hBody,
  4364. /* [in] */ IMSGBODYTYPE bodytype);
  4365. HRESULT ( STDMETHODCALLTYPE *IsContentType )(
  4366. IMimeMessage * This,
  4367. /* [in] */ HBODY hBody,
  4368. /* [in] */ LPCSTR pszPriType,
  4369. /* [in] */ LPCSTR pszSubType);
  4370. HRESULT ( STDMETHODCALLTYPE *QueryBodyProp )(
  4371. IMimeMessage * This,
  4372. /* [in] */ HBODY hBody,
  4373. /* [in] */ LPCSTR pszName,
  4374. /* [in] */ LPCSTR pszCriteria,
  4375. /* [in] */ boolean fSubString,
  4376. /* [in] */ boolean fCaseSensitive);
  4377. HRESULT ( STDMETHODCALLTYPE *GetBodyProp )(
  4378. IMimeMessage * This,
  4379. /* [in] */ HBODY hBody,
  4380. /* [in] */ LPCSTR pszName,
  4381. /* [in] */ DWORD dwFlags,
  4382. /* [out][in] */ LPPROPVARIANT pValue);
  4383. HRESULT ( STDMETHODCALLTYPE *SetBodyProp )(
  4384. IMimeMessage * This,
  4385. /* [in] */ HBODY hBody,
  4386. /* [in] */ LPCSTR pszName,
  4387. /* [in] */ DWORD dwFlags,
  4388. /* [in] */ LPCPROPVARIANT pValue);
  4389. HRESULT ( STDMETHODCALLTYPE *DeleteBodyProp )(
  4390. IMimeMessage * This,
  4391. /* [in] */ HBODY hBody,
  4392. /* [in] */ LPCSTR pszName);
  4393. HRESULT ( STDMETHODCALLTYPE *SetOption )(
  4394. IMimeMessage * This,
  4395. /* [in] */ const TYPEDID oid,
  4396. /* [in] */ LPCPROPVARIANT pValue);
  4397. HRESULT ( STDMETHODCALLTYPE *GetOption )(
  4398. IMimeMessage * This,
  4399. /* [in] */ const TYPEDID oid,
  4400. /* [out][in] */ LPPROPVARIANT pValue);
  4401. HRESULT ( STDMETHODCALLTYPE *CreateWebPage )(
  4402. IMimeMessage * This,
  4403. /* [in] */ IStream *pRootStm,
  4404. /* [in] */ LPWEBPAGEOPTIONS pOptions,
  4405. /* [in] */ IMimeMessageCallback *pCallback,
  4406. /* [out] */ IMoniker **ppMoniker);
  4407. HRESULT ( STDMETHODCALLTYPE *GetProp )(
  4408. IMimeMessage * This,
  4409. /* [in] */ LPCSTR pszName,
  4410. /* [in] */ DWORD dwFlags,
  4411. /* [out][in] */ LPPROPVARIANT pValue);
  4412. HRESULT ( STDMETHODCALLTYPE *SetProp )(
  4413. IMimeMessage * This,
  4414. /* [in] */ LPCSTR pszName,
  4415. /* [in] */ DWORD dwFlags,
  4416. /* [in] */ LPCPROPVARIANT pValue);
  4417. HRESULT ( STDMETHODCALLTYPE *DeleteProp )(
  4418. IMimeMessage * This,
  4419. /* [in] */ LPCSTR pszName);
  4420. HRESULT ( STDMETHODCALLTYPE *QueryProp )(
  4421. IMimeMessage * This,
  4422. /* [in] */ LPCSTR pszName,
  4423. /* [in] */ LPCSTR pszCriteria,
  4424. /* [in] */ boolean fSubString,
  4425. /* [in] */ boolean fCaseSensitive);
  4426. HRESULT ( STDMETHODCALLTYPE *GetTextBody )(
  4427. IMimeMessage * This,
  4428. /* [in] */ DWORD dwTxtType,
  4429. /* [in] */ ENCODINGTYPE ietEncoding,
  4430. /* [out] */ IStream **ppStream,
  4431. /* [out] */ LPHBODY phBody);
  4432. HRESULT ( STDMETHODCALLTYPE *SetTextBody )(
  4433. IMimeMessage * This,
  4434. /* [in] */ DWORD dwTxtType,
  4435. /* [in] */ ENCODINGTYPE ietEncoding,
  4436. /* [in] */ HBODY hAlternative,
  4437. /* [in] */ IStream *pStream,
  4438. /* [out] */ LPHBODY phBody);
  4439. HRESULT ( STDMETHODCALLTYPE *AttachObject )(
  4440. IMimeMessage * This,
  4441. /* [in] */ REFIID riid,
  4442. /* [iid_is][in] */ void *pvObject,
  4443. /* [out] */ LPHBODY phBody);
  4444. HRESULT ( STDMETHODCALLTYPE *AttachFile )(
  4445. IMimeMessage * This,
  4446. /* [in] */ LPCSTR pszFilePath,
  4447. /* [in] */ IStream *pstmFile,
  4448. /* [out] */ LPHBODY phBody);
  4449. HRESULT ( STDMETHODCALLTYPE *AttachURL )(
  4450. IMimeMessage * This,
  4451. /* [in] */ LPCSTR pszBase,
  4452. /* [in] */ LPCSTR pszURL,
  4453. /* [in] */ DWORD dwFlags,
  4454. /* [in] */ IStream *pstmURL,
  4455. /* [out] */ LPSTR *ppszCIDURL,
  4456. /* [out] */ LPHBODY phBody);
  4457. HRESULT ( STDMETHODCALLTYPE *GetAttachments )(
  4458. IMimeMessage * This,
  4459. /* [out] */ ULONG *pcAttach,
  4460. /* [out] */ LPHBODY *pprghAttach);
  4461. HRESULT ( STDMETHODCALLTYPE *GetAddressTable )(
  4462. IMimeMessage * This,
  4463. /* [out] */ IMimeAddressTable **ppTable);
  4464. HRESULT ( STDMETHODCALLTYPE *GetSender )(
  4465. IMimeMessage * This,
  4466. /* [out][in] */ LPADDRESSPROPS pAddress);
  4467. HRESULT ( STDMETHODCALLTYPE *GetAddressTypes )(
  4468. IMimeMessage * This,
  4469. /* [in] */ DWORD dwAdrTypes,
  4470. /* [in] */ DWORD dwProps,
  4471. /* [out][in] */ LPADDRESSLIST pList);
  4472. HRESULT ( STDMETHODCALLTYPE *GetAddressFormat )(
  4473. IMimeMessage * This,
  4474. /* [in] */ DWORD dwAdrType,
  4475. /* [in] */ ADDRESSFORMAT format,
  4476. /* [out] */ LPSTR *ppszFormat);
  4477. HRESULT ( STDMETHODCALLTYPE *EnumAddressTypes )(
  4478. IMimeMessage * This,
  4479. /* [in] */ DWORD dwAdrTypes,
  4480. /* [in] */ DWORD dwProps,
  4481. /* [out] */ IMimeEnumAddressTypes **ppEnum);
  4482. HRESULT ( STDMETHODCALLTYPE *SplitMessage )(
  4483. IMimeMessage * This,
  4484. /* [in] */ ULONG cbMaxPart,
  4485. /* [out] */ IMimeMessageParts **ppParts);
  4486. HRESULT ( STDMETHODCALLTYPE *GetRootMoniker )(
  4487. IMimeMessage * This,
  4488. /* [out] */ IMoniker **ppMoniker);
  4489. END_INTERFACE
  4490. } IMimeMessageVtbl;
  4491. interface IMimeMessage
  4492. {
  4493. CONST_VTBL struct IMimeMessageVtbl *lpVtbl;
  4494. };
  4495. #ifdef COBJMACROS
  4496. #define IMimeMessage_QueryInterface(This,riid,ppvObject) \
  4497. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4498. #define IMimeMessage_AddRef(This) \
  4499. (This)->lpVtbl -> AddRef(This)
  4500. #define IMimeMessage_Release(This) \
  4501. (This)->lpVtbl -> Release(This)
  4502. #define IMimeMessage_GetClassID(This,pClassID) \
  4503. (This)->lpVtbl -> GetClassID(This,pClassID)
  4504. #define IMimeMessage_IsDirty(This) \
  4505. (This)->lpVtbl -> IsDirty(This)
  4506. #define IMimeMessage_Load(This,pStm) \
  4507. (This)->lpVtbl -> Load(This,pStm)
  4508. #define IMimeMessage_Save(This,pStm,fClearDirty) \
  4509. (This)->lpVtbl -> Save(This,pStm,fClearDirty)
  4510. #define IMimeMessage_GetSizeMax(This,pCbSize) \
  4511. (This)->lpVtbl -> GetSizeMax(This,pCbSize)
  4512. #define IMimeMessage_InitNew(This) \
  4513. (This)->lpVtbl -> InitNew(This)
  4514. #define IMimeMessage_GetMessageSource(This,ppStream,dwFlags) \
  4515. (This)->lpVtbl -> GetMessageSource(This,ppStream,dwFlags)
  4516. #define IMimeMessage_GetMessageSize(This,pcbSize,dwFlags) \
  4517. (This)->lpVtbl -> GetMessageSize(This,pcbSize,dwFlags)
  4518. #define IMimeMessage_LoadOffsetTable(This,pStream) \
  4519. (This)->lpVtbl -> LoadOffsetTable(This,pStream)
  4520. #define IMimeMessage_SaveOffsetTable(This,pStream,dwFlags) \
  4521. (This)->lpVtbl -> SaveOffsetTable(This,pStream,dwFlags)
  4522. #define IMimeMessage_GetFlags(This,pdwFlags) \
  4523. (This)->lpVtbl -> GetFlags(This,pdwFlags)
  4524. #define IMimeMessage_Commit(This,dwFlags) \
  4525. (This)->lpVtbl -> Commit(This,dwFlags)
  4526. #define IMimeMessage_HandsOffStorage(This) \
  4527. (This)->lpVtbl -> HandsOffStorage(This)
  4528. #define IMimeMessage_BindToObject(This,hBody,riid,ppvObject) \
  4529. (This)->lpVtbl -> BindToObject(This,hBody,riid,ppvObject)
  4530. #define IMimeMessage_SaveBody(This,hBody,dwFlags,pStream) \
  4531. (This)->lpVtbl -> SaveBody(This,hBody,dwFlags,pStream)
  4532. #define IMimeMessage_InsertBody(This,location,hPivot,phBody) \
  4533. (This)->lpVtbl -> InsertBody(This,location,hPivot,phBody)
  4534. #define IMimeMessage_GetBody(This,location,hPivot,phBody) \
  4535. (This)->lpVtbl -> GetBody(This,location,hPivot,phBody)
  4536. #define IMimeMessage_DeleteBody(This,hBody,dwFlags) \
  4537. (This)->lpVtbl -> DeleteBody(This,hBody,dwFlags)
  4538. #define IMimeMessage_MoveBody(This,hBody,location) \
  4539. (This)->lpVtbl -> MoveBody(This,hBody,location)
  4540. #define IMimeMessage_CountBodies(This,hParent,fRecurse,pcBodies) \
  4541. (This)->lpVtbl -> CountBodies(This,hParent,fRecurse,pcBodies)
  4542. #define IMimeMessage_FindFirst(This,pFindBody,phBody) \
  4543. (This)->lpVtbl -> FindFirst(This,pFindBody,phBody)
  4544. #define IMimeMessage_FindNext(This,pFindBody,phBody) \
  4545. (This)->lpVtbl -> FindNext(This,pFindBody,phBody)
  4546. #define IMimeMessage_ResolveURL(This,hRelated,pszBase,pszURL,dwFlags,phBody) \
  4547. (This)->lpVtbl -> ResolveURL(This,hRelated,pszBase,pszURL,dwFlags,phBody)
  4548. #define IMimeMessage_ToMultipart(This,hBody,pszSubType,phMultipart) \
  4549. (This)->lpVtbl -> ToMultipart(This,hBody,pszSubType,phMultipart)
  4550. #define IMimeMessage_GetBodyOffsets(This,hBody,pOffsets) \
  4551. (This)->lpVtbl -> GetBodyOffsets(This,hBody,pOffsets)
  4552. #define IMimeMessage_GetCharset(This,phCharset) \
  4553. (This)->lpVtbl -> GetCharset(This,phCharset)
  4554. #define IMimeMessage_SetCharset(This,hCharset,applytype) \
  4555. (This)->lpVtbl -> SetCharset(This,hCharset,applytype)
  4556. #define IMimeMessage_IsBodyType(This,hBody,bodytype) \
  4557. (This)->lpVtbl -> IsBodyType(This,hBody,bodytype)
  4558. #define IMimeMessage_IsContentType(This,hBody,pszPriType,pszSubType) \
  4559. (This)->lpVtbl -> IsContentType(This,hBody,pszPriType,pszSubType)
  4560. #define IMimeMessage_QueryBodyProp(This,hBody,pszName,pszCriteria,fSubString,fCaseSensitive) \
  4561. (This)->lpVtbl -> QueryBodyProp(This,hBody,pszName,pszCriteria,fSubString,fCaseSensitive)
  4562. #define IMimeMessage_GetBodyProp(This,hBody,pszName,dwFlags,pValue) \
  4563. (This)->lpVtbl -> GetBodyProp(This,hBody,pszName,dwFlags,pValue)
  4564. #define IMimeMessage_SetBodyProp(This,hBody,pszName,dwFlags,pValue) \
  4565. (This)->lpVtbl -> SetBodyProp(This,hBody,pszName,dwFlags,pValue)
  4566. #define IMimeMessage_DeleteBodyProp(This,hBody,pszName) \
  4567. (This)->lpVtbl -> DeleteBodyProp(This,hBody,pszName)
  4568. #define IMimeMessage_SetOption(This,oid,pValue) \
  4569. (This)->lpVtbl -> SetOption(This,oid,pValue)
  4570. #define IMimeMessage_GetOption(This,oid,pValue) \
  4571. (This)->lpVtbl -> GetOption(This,oid,pValue)
  4572. #define IMimeMessage_CreateWebPage(This,pRootStm,pOptions,pCallback,ppMoniker) \
  4573. (This)->lpVtbl -> CreateWebPage(This,pRootStm,pOptions,pCallback,ppMoniker)
  4574. #define IMimeMessage_GetProp(This,pszName,dwFlags,pValue) \
  4575. (This)->lpVtbl -> GetProp(This,pszName,dwFlags,pValue)
  4576. #define IMimeMessage_SetProp(This,pszName,dwFlags,pValue) \
  4577. (This)->lpVtbl -> SetProp(This,pszName,dwFlags,pValue)
  4578. #define IMimeMessage_DeleteProp(This,pszName) \
  4579. (This)->lpVtbl -> DeleteProp(This,pszName)
  4580. #define IMimeMessage_QueryProp(This,pszName,pszCriteria,fSubString,fCaseSensitive) \
  4581. (This)->lpVtbl -> QueryProp(This,pszName,pszCriteria,fSubString,fCaseSensitive)
  4582. #define IMimeMessage_GetTextBody(This,dwTxtType,ietEncoding,ppStream,phBody) \
  4583. (This)->lpVtbl -> GetTextBody(This,dwTxtType,ietEncoding,ppStream,phBody)
  4584. #define IMimeMessage_SetTextBody(This,dwTxtType,ietEncoding,hAlternative,pStream,phBody) \
  4585. (This)->lpVtbl -> SetTextBody(This,dwTxtType,ietEncoding,hAlternative,pStream,phBody)
  4586. #define IMimeMessage_AttachObject(This,riid,pvObject,phBody) \
  4587. (This)->lpVtbl -> AttachObject(This,riid,pvObject,phBody)
  4588. #define IMimeMessage_AttachFile(This,pszFilePath,pstmFile,phBody) \
  4589. (This)->lpVtbl -> AttachFile(This,pszFilePath,pstmFile,phBody)
  4590. #define IMimeMessage_AttachURL(This,pszBase,pszURL,dwFlags,pstmURL,ppszCIDURL,phBody) \
  4591. (This)->lpVtbl -> AttachURL(This,pszBase,pszURL,dwFlags,pstmURL,ppszCIDURL,phBody)
  4592. #define IMimeMessage_GetAttachments(This,pcAttach,pprghAttach) \
  4593. (This)->lpVtbl -> GetAttachments(This,pcAttach,pprghAttach)
  4594. #define IMimeMessage_GetAddressTable(This,ppTable) \
  4595. (This)->lpVtbl -> GetAddressTable(This,ppTable)
  4596. #define IMimeMessage_GetSender(This,pAddress) \
  4597. (This)->lpVtbl -> GetSender(This,pAddress)
  4598. #define IMimeMessage_GetAddressTypes(This,dwAdrTypes,dwProps,pList) \
  4599. (This)->lpVtbl -> GetAddressTypes(This,dwAdrTypes,dwProps,pList)
  4600. #define IMimeMessage_GetAddressFormat(This,dwAdrType,format,ppszFormat) \
  4601. (This)->lpVtbl -> GetAddressFormat(This,dwAdrType,format,ppszFormat)
  4602. #define IMimeMessage_EnumAddressTypes(This,dwAdrTypes,dwProps,ppEnum) \
  4603. (This)->lpVtbl -> EnumAddressTypes(This,dwAdrTypes,dwProps,ppEnum)
  4604. #define IMimeMessage_SplitMessage(This,cbMaxPart,ppParts) \
  4605. (This)->lpVtbl -> SplitMessage(This,cbMaxPart,ppParts)
  4606. #define IMimeMessage_GetRootMoniker(This,ppMoniker) \
  4607. (This)->lpVtbl -> GetRootMoniker(This,ppMoniker)
  4608. #endif /* COBJMACROS */
  4609. #endif /* C style interface */
  4610. HRESULT STDMETHODCALLTYPE IMimeMessage_CreateWebPage_Proxy(
  4611. IMimeMessage * This,
  4612. /* [in] */ IStream *pRootStm,
  4613. /* [in] */ LPWEBPAGEOPTIONS pOptions,
  4614. /* [in] */ IMimeMessageCallback *pCallback,
  4615. /* [out] */ IMoniker **ppMoniker);
  4616. void __RPC_STUB IMimeMessage_CreateWebPage_Stub(
  4617. IRpcStubBuffer *This,
  4618. IRpcChannelBuffer *_pRpcChannelBuffer,
  4619. PRPC_MESSAGE _pRpcMessage,
  4620. DWORD *_pdwStubPhase);
  4621. HRESULT STDMETHODCALLTYPE IMimeMessage_GetProp_Proxy(
  4622. IMimeMessage * This,
  4623. /* [in] */ LPCSTR pszName,
  4624. /* [in] */ DWORD dwFlags,
  4625. /* [out][in] */ LPPROPVARIANT pValue);
  4626. void __RPC_STUB IMimeMessage_GetProp_Stub(
  4627. IRpcStubBuffer *This,
  4628. IRpcChannelBuffer *_pRpcChannelBuffer,
  4629. PRPC_MESSAGE _pRpcMessage,
  4630. DWORD *_pdwStubPhase);
  4631. HRESULT STDMETHODCALLTYPE IMimeMessage_SetProp_Proxy(
  4632. IMimeMessage * This,
  4633. /* [in] */ LPCSTR pszName,
  4634. /* [in] */ DWORD dwFlags,
  4635. /* [in] */ LPCPROPVARIANT pValue);
  4636. void __RPC_STUB IMimeMessage_SetProp_Stub(
  4637. IRpcStubBuffer *This,
  4638. IRpcChannelBuffer *_pRpcChannelBuffer,
  4639. PRPC_MESSAGE _pRpcMessage,
  4640. DWORD *_pdwStubPhase);
  4641. HRESULT STDMETHODCALLTYPE IMimeMessage_DeleteProp_Proxy(
  4642. IMimeMessage * This,
  4643. /* [in] */ LPCSTR pszName);
  4644. void __RPC_STUB IMimeMessage_DeleteProp_Stub(
  4645. IRpcStubBuffer *This,
  4646. IRpcChannelBuffer *_pRpcChannelBuffer,
  4647. PRPC_MESSAGE _pRpcMessage,
  4648. DWORD *_pdwStubPhase);
  4649. HRESULT STDMETHODCALLTYPE IMimeMessage_QueryProp_Proxy(
  4650. IMimeMessage * This,
  4651. /* [in] */ LPCSTR pszName,
  4652. /* [in] */ LPCSTR pszCriteria,
  4653. /* [in] */ boolean fSubString,
  4654. /* [in] */ boolean fCaseSensitive);
  4655. void __RPC_STUB IMimeMessage_QueryProp_Stub(
  4656. IRpcStubBuffer *This,
  4657. IRpcChannelBuffer *_pRpcChannelBuffer,
  4658. PRPC_MESSAGE _pRpcMessage,
  4659. DWORD *_pdwStubPhase);
  4660. HRESULT STDMETHODCALLTYPE IMimeMessage_GetTextBody_Proxy(
  4661. IMimeMessage * This,
  4662. /* [in] */ DWORD dwTxtType,
  4663. /* [in] */ ENCODINGTYPE ietEncoding,
  4664. /* [out] */ IStream **ppStream,
  4665. /* [out] */ LPHBODY phBody);
  4666. void __RPC_STUB IMimeMessage_GetTextBody_Stub(
  4667. IRpcStubBuffer *This,
  4668. IRpcChannelBuffer *_pRpcChannelBuffer,
  4669. PRPC_MESSAGE _pRpcMessage,
  4670. DWORD *_pdwStubPhase);
  4671. HRESULT STDMETHODCALLTYPE IMimeMessage_SetTextBody_Proxy(
  4672. IMimeMessage * This,
  4673. /* [in] */ DWORD dwTxtType,
  4674. /* [in] */ ENCODINGTYPE ietEncoding,
  4675. /* [in] */ HBODY hAlternative,
  4676. /* [in] */ IStream *pStream,
  4677. /* [out] */ LPHBODY phBody);
  4678. void __RPC_STUB IMimeMessage_SetTextBody_Stub(
  4679. IRpcStubBuffer *This,
  4680. IRpcChannelBuffer *_pRpcChannelBuffer,
  4681. PRPC_MESSAGE _pRpcMessage,
  4682. DWORD *_pdwStubPhase);
  4683. HRESULT STDMETHODCALLTYPE IMimeMessage_AttachObject_Proxy(
  4684. IMimeMessage * This,
  4685. /* [in] */ REFIID riid,
  4686. /* [iid_is][in] */ void *pvObject,
  4687. /* [out] */ LPHBODY phBody);
  4688. void __RPC_STUB IMimeMessage_AttachObject_Stub(
  4689. IRpcStubBuffer *This,
  4690. IRpcChannelBuffer *_pRpcChannelBuffer,
  4691. PRPC_MESSAGE _pRpcMessage,
  4692. DWORD *_pdwStubPhase);
  4693. HRESULT STDMETHODCALLTYPE IMimeMessage_AttachFile_Proxy(
  4694. IMimeMessage * This,
  4695. /* [in] */ LPCSTR pszFilePath,
  4696. /* [in] */ IStream *pstmFile,
  4697. /* [out] */ LPHBODY phBody);
  4698. void __RPC_STUB IMimeMessage_AttachFile_Stub(
  4699. IRpcStubBuffer *This,
  4700. IRpcChannelBuffer *_pRpcChannelBuffer,
  4701. PRPC_MESSAGE _pRpcMessage,
  4702. DWORD *_pdwStubPhase);
  4703. HRESULT STDMETHODCALLTYPE IMimeMessage_AttachURL_Proxy(
  4704. IMimeMessage * This,
  4705. /* [in] */ LPCSTR pszBase,
  4706. /* [in] */ LPCSTR pszURL,
  4707. /* [in] */ DWORD dwFlags,
  4708. /* [in] */ IStream *pstmURL,
  4709. /* [out] */ LPSTR *ppszCIDURL,
  4710. /* [out] */ LPHBODY phBody);
  4711. void __RPC_STUB IMimeMessage_AttachURL_Stub(
  4712. IRpcStubBuffer *This,
  4713. IRpcChannelBuffer *_pRpcChannelBuffer,
  4714. PRPC_MESSAGE _pRpcMessage,
  4715. DWORD *_pdwStubPhase);
  4716. HRESULT STDMETHODCALLTYPE IMimeMessage_GetAttachments_Proxy(
  4717. IMimeMessage * This,
  4718. /* [out] */ ULONG *pcAttach,
  4719. /* [out] */ LPHBODY *pprghAttach);
  4720. void __RPC_STUB IMimeMessage_GetAttachments_Stub(
  4721. IRpcStubBuffer *This,
  4722. IRpcChannelBuffer *_pRpcChannelBuffer,
  4723. PRPC_MESSAGE _pRpcMessage,
  4724. DWORD *_pdwStubPhase);
  4725. HRESULT STDMETHODCALLTYPE IMimeMessage_GetAddressTable_Proxy(
  4726. IMimeMessage * This,
  4727. /* [out] */ IMimeAddressTable **ppTable);
  4728. void __RPC_STUB IMimeMessage_GetAddressTable_Stub(
  4729. IRpcStubBuffer *This,
  4730. IRpcChannelBuffer *_pRpcChannelBuffer,
  4731. PRPC_MESSAGE _pRpcMessage,
  4732. DWORD *_pdwStubPhase);
  4733. HRESULT STDMETHODCALLTYPE IMimeMessage_GetSender_Proxy(
  4734. IMimeMessage * This,
  4735. /* [out][in] */ LPADDRESSPROPS pAddress);
  4736. void __RPC_STUB IMimeMessage_GetSender_Stub(
  4737. IRpcStubBuffer *This,
  4738. IRpcChannelBuffer *_pRpcChannelBuffer,
  4739. PRPC_MESSAGE _pRpcMessage,
  4740. DWORD *_pdwStubPhase);
  4741. HRESULT STDMETHODCALLTYPE IMimeMessage_GetAddressTypes_Proxy(
  4742. IMimeMessage * This,
  4743. /* [in] */ DWORD dwAdrTypes,
  4744. /* [in] */ DWORD dwProps,
  4745. /* [out][in] */ LPADDRESSLIST pList);
  4746. void __RPC_STUB IMimeMessage_GetAddressTypes_Stub(
  4747. IRpcStubBuffer *This,
  4748. IRpcChannelBuffer *_pRpcChannelBuffer,
  4749. PRPC_MESSAGE _pRpcMessage,
  4750. DWORD *_pdwStubPhase);
  4751. HRESULT STDMETHODCALLTYPE IMimeMessage_GetAddressFormat_Proxy(
  4752. IMimeMessage * This,
  4753. /* [in] */ DWORD dwAdrType,
  4754. /* [in] */ ADDRESSFORMAT format,
  4755. /* [out] */ LPSTR *ppszFormat);
  4756. void __RPC_STUB IMimeMessage_GetAddressFormat_Stub(
  4757. IRpcStubBuffer *This,
  4758. IRpcChannelBuffer *_pRpcChannelBuffer,
  4759. PRPC_MESSAGE _pRpcMessage,
  4760. DWORD *_pdwStubPhase);
  4761. HRESULT STDMETHODCALLTYPE IMimeMessage_EnumAddressTypes_Proxy(
  4762. IMimeMessage * This,
  4763. /* [in] */ DWORD dwAdrTypes,
  4764. /* [in] */ DWORD dwProps,
  4765. /* [out] */ IMimeEnumAddressTypes **ppEnum);
  4766. void __RPC_STUB IMimeMessage_EnumAddressTypes_Stub(
  4767. IRpcStubBuffer *This,
  4768. IRpcChannelBuffer *_pRpcChannelBuffer,
  4769. PRPC_MESSAGE _pRpcMessage,
  4770. DWORD *_pdwStubPhase);
  4771. HRESULT STDMETHODCALLTYPE IMimeMessage_SplitMessage_Proxy(
  4772. IMimeMessage * This,
  4773. /* [in] */ ULONG cbMaxPart,
  4774. /* [out] */ IMimeMessageParts **ppParts);
  4775. void __RPC_STUB IMimeMessage_SplitMessage_Stub(
  4776. IRpcStubBuffer *This,
  4777. IRpcChannelBuffer *_pRpcChannelBuffer,
  4778. PRPC_MESSAGE _pRpcMessage,
  4779. DWORD *_pdwStubPhase);
  4780. HRESULT STDMETHODCALLTYPE IMimeMessage_GetRootMoniker_Proxy(
  4781. IMimeMessage * This,
  4782. /* [out] */ IMoniker **ppMoniker);
  4783. void __RPC_STUB IMimeMessage_GetRootMoniker_Stub(
  4784. IRpcStubBuffer *This,
  4785. IRpcChannelBuffer *_pRpcChannelBuffer,
  4786. PRPC_MESSAGE _pRpcMessage,
  4787. DWORD *_pdwStubPhase);
  4788. #endif /* __IMimeMessage_INTERFACE_DEFINED__ */
  4789. #ifndef __IMimeMessageCallback_INTERFACE_DEFINED__
  4790. #define __IMimeMessageCallback_INTERFACE_DEFINED__
  4791. /* interface IMimeMessageCallback */
  4792. /* [object][helpstring][uuid] */
  4793. typedef IMimeMessageCallback *LPMIMEMESSAGECALLBACK;
  4794. EXTERN_C const IID IID_IMimeMessageCallback;
  4795. #if defined(__cplusplus) && !defined(CINTERFACE)
  4796. MIDL_INTERFACE("761AA641-7BDA-11d1-8AA9-00C04FB951F3")
  4797. IMimeMessageCallback : public IUnknown
  4798. {
  4799. public:
  4800. virtual HRESULT STDMETHODCALLTYPE OnWebPageSplitter(
  4801. /* [in] */ DWORD cInlined,
  4802. /* [in] */ IStream *ppStream) = 0;
  4803. };
  4804. #else /* C style interface */
  4805. typedef struct IMimeMessageCallbackVtbl
  4806. {
  4807. BEGIN_INTERFACE
  4808. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4809. IMimeMessageCallback * This,
  4810. /* [in] */ REFIID riid,
  4811. /* [iid_is][out] */ void **ppvObject);
  4812. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4813. IMimeMessageCallback * This);
  4814. ULONG ( STDMETHODCALLTYPE *Release )(
  4815. IMimeMessageCallback * This);
  4816. HRESULT ( STDMETHODCALLTYPE *OnWebPageSplitter )(
  4817. IMimeMessageCallback * This,
  4818. /* [in] */ DWORD cInlined,
  4819. /* [in] */ IStream *ppStream);
  4820. END_INTERFACE
  4821. } IMimeMessageCallbackVtbl;
  4822. interface IMimeMessageCallback
  4823. {
  4824. CONST_VTBL struct IMimeMessageCallbackVtbl *lpVtbl;
  4825. };
  4826. #ifdef COBJMACROS
  4827. #define IMimeMessageCallback_QueryInterface(This,riid,ppvObject) \
  4828. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4829. #define IMimeMessageCallback_AddRef(This) \
  4830. (This)->lpVtbl -> AddRef(This)
  4831. #define IMimeMessageCallback_Release(This) \
  4832. (This)->lpVtbl -> Release(This)
  4833. #define IMimeMessageCallback_OnWebPageSplitter(This,cInlined,ppStream) \
  4834. (This)->lpVtbl -> OnWebPageSplitter(This,cInlined,ppStream)
  4835. #endif /* COBJMACROS */
  4836. #endif /* C style interface */
  4837. HRESULT STDMETHODCALLTYPE IMimeMessageCallback_OnWebPageSplitter_Proxy(
  4838. IMimeMessageCallback * This,
  4839. /* [in] */ DWORD cInlined,
  4840. /* [in] */ IStream *ppStream);
  4841. void __RPC_STUB IMimeMessageCallback_OnWebPageSplitter_Stub(
  4842. IRpcStubBuffer *This,
  4843. IRpcChannelBuffer *_pRpcChannelBuffer,
  4844. PRPC_MESSAGE _pRpcMessage,
  4845. DWORD *_pdwStubPhase);
  4846. #endif /* __IMimeMessageCallback_INTERFACE_DEFINED__ */
  4847. #ifndef __IPersistMime_INTERFACE_DEFINED__
  4848. #define __IPersistMime_INTERFACE_DEFINED__
  4849. /* interface IPersistMime */
  4850. /* [object][helpstring][uuid] */
  4851. typedef IPersistMime *LPPERSISTMIME;
  4852. #define PMS_HTML 0x00000001
  4853. #define PMS_TEXT 0x00000002
  4854. EXTERN_C const IID IID_IPersistMime;
  4855. #if defined(__cplusplus) && !defined(CINTERFACE)
  4856. MIDL_INTERFACE("DE4AD8DA-555F-11d1-8DD0-00C04FB951F9")
  4857. IPersistMime : public IPersist
  4858. {
  4859. public:
  4860. virtual HRESULT STDMETHODCALLTYPE Load(
  4861. /* [in] */ IMimeMessage *pMsg) = 0;
  4862. virtual HRESULT STDMETHODCALLTYPE Save(
  4863. /* [in] */ IMimeMessage *pMsg,
  4864. /* [in] */ DWORD dwFlags) = 0;
  4865. };
  4866. #else /* C style interface */
  4867. typedef struct IPersistMimeVtbl
  4868. {
  4869. BEGIN_INTERFACE
  4870. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4871. IPersistMime * This,
  4872. /* [in] */ REFIID riid,
  4873. /* [iid_is][out] */ void **ppvObject);
  4874. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4875. IPersistMime * This);
  4876. ULONG ( STDMETHODCALLTYPE *Release )(
  4877. IPersistMime * This);
  4878. HRESULT ( STDMETHODCALLTYPE *GetClassID )(
  4879. IPersistMime * This,
  4880. /* [out] */ CLSID *pClassID);
  4881. HRESULT ( STDMETHODCALLTYPE *Load )(
  4882. IPersistMime * This,
  4883. /* [in] */ IMimeMessage *pMsg);
  4884. HRESULT ( STDMETHODCALLTYPE *Save )(
  4885. IPersistMime * This,
  4886. /* [in] */ IMimeMessage *pMsg,
  4887. /* [in] */ DWORD dwFlags);
  4888. END_INTERFACE
  4889. } IPersistMimeVtbl;
  4890. interface IPersistMime
  4891. {
  4892. CONST_VTBL struct IPersistMimeVtbl *lpVtbl;
  4893. };
  4894. #ifdef COBJMACROS
  4895. #define IPersistMime_QueryInterface(This,riid,ppvObject) \
  4896. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4897. #define IPersistMime_AddRef(This) \
  4898. (This)->lpVtbl -> AddRef(This)
  4899. #define IPersistMime_Release(This) \
  4900. (This)->lpVtbl -> Release(This)
  4901. #define IPersistMime_GetClassID(This,pClassID) \
  4902. (This)->lpVtbl -> GetClassID(This,pClassID)
  4903. #define IPersistMime_Load(This,pMsg) \
  4904. (This)->lpVtbl -> Load(This,pMsg)
  4905. #define IPersistMime_Save(This,pMsg,dwFlags) \
  4906. (This)->lpVtbl -> Save(This,pMsg,dwFlags)
  4907. #endif /* COBJMACROS */
  4908. #endif /* C style interface */
  4909. HRESULT STDMETHODCALLTYPE IPersistMime_Load_Proxy(
  4910. IPersistMime * This,
  4911. /* [in] */ IMimeMessage *pMsg);
  4912. void __RPC_STUB IPersistMime_Load_Stub(
  4913. IRpcStubBuffer *This,
  4914. IRpcChannelBuffer *_pRpcChannelBuffer,
  4915. PRPC_MESSAGE _pRpcMessage,
  4916. DWORD *_pdwStubPhase);
  4917. HRESULT STDMETHODCALLTYPE IPersistMime_Save_Proxy(
  4918. IPersistMime * This,
  4919. /* [in] */ IMimeMessage *pMsg,
  4920. /* [in] */ DWORD dwFlags);
  4921. void __RPC_STUB IPersistMime_Save_Stub(
  4922. IRpcStubBuffer *This,
  4923. IRpcChannelBuffer *_pRpcChannelBuffer,
  4924. PRPC_MESSAGE _pRpcMessage,
  4925. DWORD *_pdwStubPhase);
  4926. #endif /* __IPersistMime_INTERFACE_DEFINED__ */
  4927. #ifndef __IMimeMessageParts_INTERFACE_DEFINED__
  4928. #define __IMimeMessageParts_INTERFACE_DEFINED__
  4929. /* interface IMimeMessageParts */
  4930. /* [object][helpstring][uuid] */
  4931. typedef /* [unique] */ IMimeMessageParts *LPMIMEMESSAGEPARTS;
  4932. EXTERN_C const IID IID_IMimeMessageParts;
  4933. #if defined(__cplusplus) && !defined(CINTERFACE)
  4934. MIDL_INTERFACE("C558834F-7F86-11d0-8252-00C04FD85AB4")
  4935. IMimeMessageParts : public IUnknown
  4936. {
  4937. public:
  4938. virtual HRESULT STDMETHODCALLTYPE CombineParts(
  4939. /* [out] */ IMimeMessage **ppMessage) = 0;
  4940. virtual HRESULT STDMETHODCALLTYPE AddPart(
  4941. /* [in] */ IMimeMessage *pMessage) = 0;
  4942. virtual HRESULT STDMETHODCALLTYPE SetMaxParts(
  4943. /* [in] */ ULONG cParts) = 0;
  4944. virtual HRESULT STDMETHODCALLTYPE CountParts(
  4945. /* [out] */ ULONG *pcParts) = 0;
  4946. virtual HRESULT STDMETHODCALLTYPE EnumParts(
  4947. /* [out] */ IMimeEnumMessageParts **ppEnum) = 0;
  4948. };
  4949. #else /* C style interface */
  4950. typedef struct IMimeMessagePartsVtbl
  4951. {
  4952. BEGIN_INTERFACE
  4953. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4954. IMimeMessageParts * This,
  4955. /* [in] */ REFIID riid,
  4956. /* [iid_is][out] */ void **ppvObject);
  4957. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4958. IMimeMessageParts * This);
  4959. ULONG ( STDMETHODCALLTYPE *Release )(
  4960. IMimeMessageParts * This);
  4961. HRESULT ( STDMETHODCALLTYPE *CombineParts )(
  4962. IMimeMessageParts * This,
  4963. /* [out] */ IMimeMessage **ppMessage);
  4964. HRESULT ( STDMETHODCALLTYPE *AddPart )(
  4965. IMimeMessageParts * This,
  4966. /* [in] */ IMimeMessage *pMessage);
  4967. HRESULT ( STDMETHODCALLTYPE *SetMaxParts )(
  4968. IMimeMessageParts * This,
  4969. /* [in] */ ULONG cParts);
  4970. HRESULT ( STDMETHODCALLTYPE *CountParts )(
  4971. IMimeMessageParts * This,
  4972. /* [out] */ ULONG *pcParts);
  4973. HRESULT ( STDMETHODCALLTYPE *EnumParts )(
  4974. IMimeMessageParts * This,
  4975. /* [out] */ IMimeEnumMessageParts **ppEnum);
  4976. END_INTERFACE
  4977. } IMimeMessagePartsVtbl;
  4978. interface IMimeMessageParts
  4979. {
  4980. CONST_VTBL struct IMimeMessagePartsVtbl *lpVtbl;
  4981. };
  4982. #ifdef COBJMACROS
  4983. #define IMimeMessageParts_QueryInterface(This,riid,ppvObject) \
  4984. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4985. #define IMimeMessageParts_AddRef(This) \
  4986. (This)->lpVtbl -> AddRef(This)
  4987. #define IMimeMessageParts_Release(This) \
  4988. (This)->lpVtbl -> Release(This)
  4989. #define IMimeMessageParts_CombineParts(This,ppMessage) \
  4990. (This)->lpVtbl -> CombineParts(This,ppMessage)
  4991. #define IMimeMessageParts_AddPart(This,pMessage) \
  4992. (This)->lpVtbl -> AddPart(This,pMessage)
  4993. #define IMimeMessageParts_SetMaxParts(This,cParts) \
  4994. (This)->lpVtbl -> SetMaxParts(This,cParts)
  4995. #define IMimeMessageParts_CountParts(This,pcParts) \
  4996. (This)->lpVtbl -> CountParts(This,pcParts)
  4997. #define IMimeMessageParts_EnumParts(This,ppEnum) \
  4998. (This)->lpVtbl -> EnumParts(This,ppEnum)
  4999. #endif /* COBJMACROS */
  5000. #endif /* C style interface */
  5001. HRESULT STDMETHODCALLTYPE IMimeMessageParts_CombineParts_Proxy(
  5002. IMimeMessageParts * This,
  5003. /* [out] */ IMimeMessage **ppMessage);
  5004. void __RPC_STUB IMimeMessageParts_CombineParts_Stub(
  5005. IRpcStubBuffer *This,
  5006. IRpcChannelBuffer *_pRpcChannelBuffer,
  5007. PRPC_MESSAGE _pRpcMessage,
  5008. DWORD *_pdwStubPhase);
  5009. HRESULT STDMETHODCALLTYPE IMimeMessageParts_AddPart_Proxy(
  5010. IMimeMessageParts * This,
  5011. /* [in] */ IMimeMessage *pMessage);
  5012. void __RPC_STUB IMimeMessageParts_AddPart_Stub(
  5013. IRpcStubBuffer *This,
  5014. IRpcChannelBuffer *_pRpcChannelBuffer,
  5015. PRPC_MESSAGE _pRpcMessage,
  5016. DWORD *_pdwStubPhase);
  5017. HRESULT STDMETHODCALLTYPE IMimeMessageParts_SetMaxParts_Proxy(
  5018. IMimeMessageParts * This,
  5019. /* [in] */ ULONG cParts);
  5020. void __RPC_STUB IMimeMessageParts_SetMaxParts_Stub(
  5021. IRpcStubBuffer *This,
  5022. IRpcChannelBuffer *_pRpcChannelBuffer,
  5023. PRPC_MESSAGE _pRpcMessage,
  5024. DWORD *_pdwStubPhase);
  5025. HRESULT STDMETHODCALLTYPE IMimeMessageParts_CountParts_Proxy(
  5026. IMimeMessageParts * This,
  5027. /* [out] */ ULONG *pcParts);
  5028. void __RPC_STUB IMimeMessageParts_CountParts_Stub(
  5029. IRpcStubBuffer *This,
  5030. IRpcChannelBuffer *_pRpcChannelBuffer,
  5031. PRPC_MESSAGE _pRpcMessage,
  5032. DWORD *_pdwStubPhase);
  5033. HRESULT STDMETHODCALLTYPE IMimeMessageParts_EnumParts_Proxy(
  5034. IMimeMessageParts * This,
  5035. /* [out] */ IMimeEnumMessageParts **ppEnum);
  5036. void __RPC_STUB IMimeMessageParts_EnumParts_Stub(
  5037. IRpcStubBuffer *This,
  5038. IRpcChannelBuffer *_pRpcChannelBuffer,
  5039. PRPC_MESSAGE _pRpcMessage,
  5040. DWORD *_pdwStubPhase);
  5041. #endif /* __IMimeMessageParts_INTERFACE_DEFINED__ */
  5042. #ifndef __IMimeEnumHeaderRows_INTERFACE_DEFINED__
  5043. #define __IMimeEnumHeaderRows_INTERFACE_DEFINED__
  5044. /* interface IMimeEnumHeaderRows */
  5045. /* [object][helpstring][uuid] */
  5046. typedef /* [unique] */ IMimeEnumHeaderRows *LPMIMEENUMHEADERROWS;
  5047. typedef struct tagENUMHEADERROW
  5048. {
  5049. HHEADERROW hRow;
  5050. LPSTR pszHeader;
  5051. LPSTR pszData;
  5052. ULONG cchData;
  5053. DWORD dwReserved;
  5054. } ENUMHEADERROW;
  5055. typedef struct tagENUMHEADERROW *LPENUMHEADERROW;
  5056. EXTERN_C const IID IID_IMimeEnumHeaderRows;
  5057. #if defined(__cplusplus) && !defined(CINTERFACE)
  5058. MIDL_INTERFACE("C558834D-7F86-11d0-8252-00C04FD85AB4")
  5059. IMimeEnumHeaderRows : public IUnknown
  5060. {
  5061. public:
  5062. virtual HRESULT STDMETHODCALLTYPE Next(
  5063. /* [in] */ ULONG cFetch,
  5064. /* [out][in] */ LPENUMHEADERROW prgRow,
  5065. /* [out] */ ULONG *pcFetched) = 0;
  5066. virtual HRESULT STDMETHODCALLTYPE Skip(
  5067. /* [in] */ ULONG cItems) = 0;
  5068. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  5069. virtual HRESULT STDMETHODCALLTYPE Clone(
  5070. /* [out] */ IMimeEnumHeaderRows **ppEnum) = 0;
  5071. virtual HRESULT STDMETHODCALLTYPE Count(
  5072. /* [out] */ ULONG *pcItems) = 0;
  5073. };
  5074. #else /* C style interface */
  5075. typedef struct IMimeEnumHeaderRowsVtbl
  5076. {
  5077. BEGIN_INTERFACE
  5078. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5079. IMimeEnumHeaderRows * This,
  5080. /* [in] */ REFIID riid,
  5081. /* [iid_is][out] */ void **ppvObject);
  5082. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5083. IMimeEnumHeaderRows * This);
  5084. ULONG ( STDMETHODCALLTYPE *Release )(
  5085. IMimeEnumHeaderRows * This);
  5086. HRESULT ( STDMETHODCALLTYPE *Next )(
  5087. IMimeEnumHeaderRows * This,
  5088. /* [in] */ ULONG cFetch,
  5089. /* [out][in] */ LPENUMHEADERROW prgRow,
  5090. /* [out] */ ULONG *pcFetched);
  5091. HRESULT ( STDMETHODCALLTYPE *Skip )(
  5092. IMimeEnumHeaderRows * This,
  5093. /* [in] */ ULONG cItems);
  5094. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5095. IMimeEnumHeaderRows * This);
  5096. HRESULT ( STDMETHODCALLTYPE *Clone )(
  5097. IMimeEnumHeaderRows * This,
  5098. /* [out] */ IMimeEnumHeaderRows **ppEnum);
  5099. HRESULT ( STDMETHODCALLTYPE *Count )(
  5100. IMimeEnumHeaderRows * This,
  5101. /* [out] */ ULONG *pcItems);
  5102. END_INTERFACE
  5103. } IMimeEnumHeaderRowsVtbl;
  5104. interface IMimeEnumHeaderRows
  5105. {
  5106. CONST_VTBL struct IMimeEnumHeaderRowsVtbl *lpVtbl;
  5107. };
  5108. #ifdef COBJMACROS
  5109. #define IMimeEnumHeaderRows_QueryInterface(This,riid,ppvObject) \
  5110. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5111. #define IMimeEnumHeaderRows_AddRef(This) \
  5112. (This)->lpVtbl -> AddRef(This)
  5113. #define IMimeEnumHeaderRows_Release(This) \
  5114. (This)->lpVtbl -> Release(This)
  5115. #define IMimeEnumHeaderRows_Next(This,cFetch,prgRow,pcFetched) \
  5116. (This)->lpVtbl -> Next(This,cFetch,prgRow,pcFetched)
  5117. #define IMimeEnumHeaderRows_Skip(This,cItems) \
  5118. (This)->lpVtbl -> Skip(This,cItems)
  5119. #define IMimeEnumHeaderRows_Reset(This) \
  5120. (This)->lpVtbl -> Reset(This)
  5121. #define IMimeEnumHeaderRows_Clone(This,ppEnum) \
  5122. (This)->lpVtbl -> Clone(This,ppEnum)
  5123. #define IMimeEnumHeaderRows_Count(This,pcItems) \
  5124. (This)->lpVtbl -> Count(This,pcItems)
  5125. #endif /* COBJMACROS */
  5126. #endif /* C style interface */
  5127. HRESULT STDMETHODCALLTYPE IMimeEnumHeaderRows_Next_Proxy(
  5128. IMimeEnumHeaderRows * This,
  5129. /* [in] */ ULONG cFetch,
  5130. /* [out][in] */ LPENUMHEADERROW prgRow,
  5131. /* [out] */ ULONG *pcFetched);
  5132. void __RPC_STUB IMimeEnumHeaderRows_Next_Stub(
  5133. IRpcStubBuffer *This,
  5134. IRpcChannelBuffer *_pRpcChannelBuffer,
  5135. PRPC_MESSAGE _pRpcMessage,
  5136. DWORD *_pdwStubPhase);
  5137. HRESULT STDMETHODCALLTYPE IMimeEnumHeaderRows_Skip_Proxy(
  5138. IMimeEnumHeaderRows * This,
  5139. /* [in] */ ULONG cItems);
  5140. void __RPC_STUB IMimeEnumHeaderRows_Skip_Stub(
  5141. IRpcStubBuffer *This,
  5142. IRpcChannelBuffer *_pRpcChannelBuffer,
  5143. PRPC_MESSAGE _pRpcMessage,
  5144. DWORD *_pdwStubPhase);
  5145. HRESULT STDMETHODCALLTYPE IMimeEnumHeaderRows_Reset_Proxy(
  5146. IMimeEnumHeaderRows * This);
  5147. void __RPC_STUB IMimeEnumHeaderRows_Reset_Stub(
  5148. IRpcStubBuffer *This,
  5149. IRpcChannelBuffer *_pRpcChannelBuffer,
  5150. PRPC_MESSAGE _pRpcMessage,
  5151. DWORD *_pdwStubPhase);
  5152. HRESULT STDMETHODCALLTYPE IMimeEnumHeaderRows_Clone_Proxy(
  5153. IMimeEnumHeaderRows * This,
  5154. /* [out] */ IMimeEnumHeaderRows **ppEnum);
  5155. void __RPC_STUB IMimeEnumHeaderRows_Clone_Stub(
  5156. IRpcStubBuffer *This,
  5157. IRpcChannelBuffer *_pRpcChannelBuffer,
  5158. PRPC_MESSAGE _pRpcMessage,
  5159. DWORD *_pdwStubPhase);
  5160. HRESULT STDMETHODCALLTYPE IMimeEnumHeaderRows_Count_Proxy(
  5161. IMimeEnumHeaderRows * This,
  5162. /* [out] */ ULONG *pcItems);
  5163. void __RPC_STUB IMimeEnumHeaderRows_Count_Stub(
  5164. IRpcStubBuffer *This,
  5165. IRpcChannelBuffer *_pRpcChannelBuffer,
  5166. PRPC_MESSAGE _pRpcMessage,
  5167. DWORD *_pdwStubPhase);
  5168. #endif /* __IMimeEnumHeaderRows_INTERFACE_DEFINED__ */
  5169. #ifndef __IMimeEnumProperties_INTERFACE_DEFINED__
  5170. #define __IMimeEnumProperties_INTERFACE_DEFINED__
  5171. /* interface IMimeEnumProperties */
  5172. /* [object][helpstring][uuid] */
  5173. typedef /* [unique] */ IMimeEnumProperties *LPMIMEENUMPROPERTIES;
  5174. typedef struct tagENUMPROPERTY
  5175. {
  5176. LPSTR pszName;
  5177. HHEADERROW hRow;
  5178. DWORD dwPropId;
  5179. } ENUMPROPERTY;
  5180. typedef struct tagENUMPROPERTY *LPENUMPROPERTY;
  5181. EXTERN_C const IID IID_IMimeEnumProperties;
  5182. #if defined(__cplusplus) && !defined(CINTERFACE)
  5183. MIDL_INTERFACE("FD853CEE-7F86-11d0-8252-00C04FD85AB4")
  5184. IMimeEnumProperties : public IUnknown
  5185. {
  5186. public:
  5187. virtual HRESULT STDMETHODCALLTYPE Next(
  5188. /* [in] */ ULONG cFetch,
  5189. /* [out][in] */ LPENUMPROPERTY prgProp,
  5190. /* [out] */ ULONG *pcFetched) = 0;
  5191. virtual HRESULT STDMETHODCALLTYPE Skip(
  5192. /* [in] */ ULONG cItems) = 0;
  5193. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  5194. virtual HRESULT STDMETHODCALLTYPE Clone(
  5195. /* [out] */ IMimeEnumProperties **ppEnum) = 0;
  5196. virtual HRESULT STDMETHODCALLTYPE Count(
  5197. /* [out] */ ULONG *pcItems) = 0;
  5198. };
  5199. #else /* C style interface */
  5200. typedef struct IMimeEnumPropertiesVtbl
  5201. {
  5202. BEGIN_INTERFACE
  5203. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5204. IMimeEnumProperties * This,
  5205. /* [in] */ REFIID riid,
  5206. /* [iid_is][out] */ void **ppvObject);
  5207. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5208. IMimeEnumProperties * This);
  5209. ULONG ( STDMETHODCALLTYPE *Release )(
  5210. IMimeEnumProperties * This);
  5211. HRESULT ( STDMETHODCALLTYPE *Next )(
  5212. IMimeEnumProperties * This,
  5213. /* [in] */ ULONG cFetch,
  5214. /* [out][in] */ LPENUMPROPERTY prgProp,
  5215. /* [out] */ ULONG *pcFetched);
  5216. HRESULT ( STDMETHODCALLTYPE *Skip )(
  5217. IMimeEnumProperties * This,
  5218. /* [in] */ ULONG cItems);
  5219. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5220. IMimeEnumProperties * This);
  5221. HRESULT ( STDMETHODCALLTYPE *Clone )(
  5222. IMimeEnumProperties * This,
  5223. /* [out] */ IMimeEnumProperties **ppEnum);
  5224. HRESULT ( STDMETHODCALLTYPE *Count )(
  5225. IMimeEnumProperties * This,
  5226. /* [out] */ ULONG *pcItems);
  5227. END_INTERFACE
  5228. } IMimeEnumPropertiesVtbl;
  5229. interface IMimeEnumProperties
  5230. {
  5231. CONST_VTBL struct IMimeEnumPropertiesVtbl *lpVtbl;
  5232. };
  5233. #ifdef COBJMACROS
  5234. #define IMimeEnumProperties_QueryInterface(This,riid,ppvObject) \
  5235. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5236. #define IMimeEnumProperties_AddRef(This) \
  5237. (This)->lpVtbl -> AddRef(This)
  5238. #define IMimeEnumProperties_Release(This) \
  5239. (This)->lpVtbl -> Release(This)
  5240. #define IMimeEnumProperties_Next(This,cFetch,prgProp,pcFetched) \
  5241. (This)->lpVtbl -> Next(This,cFetch,prgProp,pcFetched)
  5242. #define IMimeEnumProperties_Skip(This,cItems) \
  5243. (This)->lpVtbl -> Skip(This,cItems)
  5244. #define IMimeEnumProperties_Reset(This) \
  5245. (This)->lpVtbl -> Reset(This)
  5246. #define IMimeEnumProperties_Clone(This,ppEnum) \
  5247. (This)->lpVtbl -> Clone(This,ppEnum)
  5248. #define IMimeEnumProperties_Count(This,pcItems) \
  5249. (This)->lpVtbl -> Count(This,pcItems)
  5250. #endif /* COBJMACROS */
  5251. #endif /* C style interface */
  5252. HRESULT STDMETHODCALLTYPE IMimeEnumProperties_Next_Proxy(
  5253. IMimeEnumProperties * This,
  5254. /* [in] */ ULONG cFetch,
  5255. /* [out][in] */ LPENUMPROPERTY prgProp,
  5256. /* [out] */ ULONG *pcFetched);
  5257. void __RPC_STUB IMimeEnumProperties_Next_Stub(
  5258. IRpcStubBuffer *This,
  5259. IRpcChannelBuffer *_pRpcChannelBuffer,
  5260. PRPC_MESSAGE _pRpcMessage,
  5261. DWORD *_pdwStubPhase);
  5262. HRESULT STDMETHODCALLTYPE IMimeEnumProperties_Skip_Proxy(
  5263. IMimeEnumProperties * This,
  5264. /* [in] */ ULONG cItems);
  5265. void __RPC_STUB IMimeEnumProperties_Skip_Stub(
  5266. IRpcStubBuffer *This,
  5267. IRpcChannelBuffer *_pRpcChannelBuffer,
  5268. PRPC_MESSAGE _pRpcMessage,
  5269. DWORD *_pdwStubPhase);
  5270. HRESULT STDMETHODCALLTYPE IMimeEnumProperties_Reset_Proxy(
  5271. IMimeEnumProperties * This);
  5272. void __RPC_STUB IMimeEnumProperties_Reset_Stub(
  5273. IRpcStubBuffer *This,
  5274. IRpcChannelBuffer *_pRpcChannelBuffer,
  5275. PRPC_MESSAGE _pRpcMessage,
  5276. DWORD *_pdwStubPhase);
  5277. HRESULT STDMETHODCALLTYPE IMimeEnumProperties_Clone_Proxy(
  5278. IMimeEnumProperties * This,
  5279. /* [out] */ IMimeEnumProperties **ppEnum);
  5280. void __RPC_STUB IMimeEnumProperties_Clone_Stub(
  5281. IRpcStubBuffer *This,
  5282. IRpcChannelBuffer *_pRpcChannelBuffer,
  5283. PRPC_MESSAGE _pRpcMessage,
  5284. DWORD *_pdwStubPhase);
  5285. HRESULT STDMETHODCALLTYPE IMimeEnumProperties_Count_Proxy(
  5286. IMimeEnumProperties * This,
  5287. /* [out] */ ULONG *pcItems);
  5288. void __RPC_STUB IMimeEnumProperties_Count_Stub(
  5289. IRpcStubBuffer *This,
  5290. IRpcChannelBuffer *_pRpcChannelBuffer,
  5291. PRPC_MESSAGE _pRpcMessage,
  5292. DWORD *_pdwStubPhase);
  5293. #endif /* __IMimeEnumProperties_INTERFACE_DEFINED__ */
  5294. #ifndef __IMimeEnumAddressTypes_INTERFACE_DEFINED__
  5295. #define __IMimeEnumAddressTypes_INTERFACE_DEFINED__
  5296. /* interface IMimeEnumAddressTypes */
  5297. /* [object][helpstring][uuid] */
  5298. typedef /* [unique] */ IMimeEnumAddressTypes *LPMIMEENUMADDRESSTYPES;
  5299. EXTERN_C const IID IID_IMimeEnumAddressTypes;
  5300. #if defined(__cplusplus) && !defined(CINTERFACE)
  5301. MIDL_INTERFACE("C5588354-7F86-11d0-8252-00C04FD85AB4")
  5302. IMimeEnumAddressTypes : public IUnknown
  5303. {
  5304. public:
  5305. virtual HRESULT STDMETHODCALLTYPE Next(
  5306. /* [in] */ ULONG cFetch,
  5307. /* [out][in] */ LPADDRESSPROPS prgAdr,
  5308. /* [out] */ ULONG *pcFetched) = 0;
  5309. virtual HRESULT STDMETHODCALLTYPE Skip(
  5310. /* [in] */ ULONG cItems) = 0;
  5311. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  5312. virtual HRESULT STDMETHODCALLTYPE Clone(
  5313. /* [out] */ IMimeEnumAddressTypes **ppEnum) = 0;
  5314. virtual HRESULT STDMETHODCALLTYPE Count(
  5315. /* [out] */ ULONG *pcItems) = 0;
  5316. };
  5317. #else /* C style interface */
  5318. typedef struct IMimeEnumAddressTypesVtbl
  5319. {
  5320. BEGIN_INTERFACE
  5321. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5322. IMimeEnumAddressTypes * This,
  5323. /* [in] */ REFIID riid,
  5324. /* [iid_is][out] */ void **ppvObject);
  5325. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5326. IMimeEnumAddressTypes * This);
  5327. ULONG ( STDMETHODCALLTYPE *Release )(
  5328. IMimeEnumAddressTypes * This);
  5329. HRESULT ( STDMETHODCALLTYPE *Next )(
  5330. IMimeEnumAddressTypes * This,
  5331. /* [in] */ ULONG cFetch,
  5332. /* [out][in] */ LPADDRESSPROPS prgAdr,
  5333. /* [out] */ ULONG *pcFetched);
  5334. HRESULT ( STDMETHODCALLTYPE *Skip )(
  5335. IMimeEnumAddressTypes * This,
  5336. /* [in] */ ULONG cItems);
  5337. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5338. IMimeEnumAddressTypes * This);
  5339. HRESULT ( STDMETHODCALLTYPE *Clone )(
  5340. IMimeEnumAddressTypes * This,
  5341. /* [out] */ IMimeEnumAddressTypes **ppEnum);
  5342. HRESULT ( STDMETHODCALLTYPE *Count )(
  5343. IMimeEnumAddressTypes * This,
  5344. /* [out] */ ULONG *pcItems);
  5345. END_INTERFACE
  5346. } IMimeEnumAddressTypesVtbl;
  5347. interface IMimeEnumAddressTypes
  5348. {
  5349. CONST_VTBL struct IMimeEnumAddressTypesVtbl *lpVtbl;
  5350. };
  5351. #ifdef COBJMACROS
  5352. #define IMimeEnumAddressTypes_QueryInterface(This,riid,ppvObject) \
  5353. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5354. #define IMimeEnumAddressTypes_AddRef(This) \
  5355. (This)->lpVtbl -> AddRef(This)
  5356. #define IMimeEnumAddressTypes_Release(This) \
  5357. (This)->lpVtbl -> Release(This)
  5358. #define IMimeEnumAddressTypes_Next(This,cFetch,prgAdr,pcFetched) \
  5359. (This)->lpVtbl -> Next(This,cFetch,prgAdr,pcFetched)
  5360. #define IMimeEnumAddressTypes_Skip(This,cItems) \
  5361. (This)->lpVtbl -> Skip(This,cItems)
  5362. #define IMimeEnumAddressTypes_Reset(This) \
  5363. (This)->lpVtbl -> Reset(This)
  5364. #define IMimeEnumAddressTypes_Clone(This,ppEnum) \
  5365. (This)->lpVtbl -> Clone(This,ppEnum)
  5366. #define IMimeEnumAddressTypes_Count(This,pcItems) \
  5367. (This)->lpVtbl -> Count(This,pcItems)
  5368. #endif /* COBJMACROS */
  5369. #endif /* C style interface */
  5370. HRESULT STDMETHODCALLTYPE IMimeEnumAddressTypes_Next_Proxy(
  5371. IMimeEnumAddressTypes * This,
  5372. /* [in] */ ULONG cFetch,
  5373. /* [out][in] */ LPADDRESSPROPS prgAdr,
  5374. /* [out] */ ULONG *pcFetched);
  5375. void __RPC_STUB IMimeEnumAddressTypes_Next_Stub(
  5376. IRpcStubBuffer *This,
  5377. IRpcChannelBuffer *_pRpcChannelBuffer,
  5378. PRPC_MESSAGE _pRpcMessage,
  5379. DWORD *_pdwStubPhase);
  5380. HRESULT STDMETHODCALLTYPE IMimeEnumAddressTypes_Skip_Proxy(
  5381. IMimeEnumAddressTypes * This,
  5382. /* [in] */ ULONG cItems);
  5383. void __RPC_STUB IMimeEnumAddressTypes_Skip_Stub(
  5384. IRpcStubBuffer *This,
  5385. IRpcChannelBuffer *_pRpcChannelBuffer,
  5386. PRPC_MESSAGE _pRpcMessage,
  5387. DWORD *_pdwStubPhase);
  5388. HRESULT STDMETHODCALLTYPE IMimeEnumAddressTypes_Reset_Proxy(
  5389. IMimeEnumAddressTypes * This);
  5390. void __RPC_STUB IMimeEnumAddressTypes_Reset_Stub(
  5391. IRpcStubBuffer *This,
  5392. IRpcChannelBuffer *_pRpcChannelBuffer,
  5393. PRPC_MESSAGE _pRpcMessage,
  5394. DWORD *_pdwStubPhase);
  5395. HRESULT STDMETHODCALLTYPE IMimeEnumAddressTypes_Clone_Proxy(
  5396. IMimeEnumAddressTypes * This,
  5397. /* [out] */ IMimeEnumAddressTypes **ppEnum);
  5398. void __RPC_STUB IMimeEnumAddressTypes_Clone_Stub(
  5399. IRpcStubBuffer *This,
  5400. IRpcChannelBuffer *_pRpcChannelBuffer,
  5401. PRPC_MESSAGE _pRpcMessage,
  5402. DWORD *_pdwStubPhase);
  5403. HRESULT STDMETHODCALLTYPE IMimeEnumAddressTypes_Count_Proxy(
  5404. IMimeEnumAddressTypes * This,
  5405. /* [out] */ ULONG *pcItems);
  5406. void __RPC_STUB IMimeEnumAddressTypes_Count_Stub(
  5407. IRpcStubBuffer *This,
  5408. IRpcChannelBuffer *_pRpcChannelBuffer,
  5409. PRPC_MESSAGE _pRpcMessage,
  5410. DWORD *_pdwStubPhase);
  5411. #endif /* __IMimeEnumAddressTypes_INTERFACE_DEFINED__ */
  5412. #ifndef __IMimeEnumMessageParts_INTERFACE_DEFINED__
  5413. #define __IMimeEnumMessageParts_INTERFACE_DEFINED__
  5414. /* interface IMimeEnumMessageParts */
  5415. /* [object][helpstring][uuid] */
  5416. typedef /* [unique] */ IMimeEnumMessageParts *LPMIMEENUMMESSAGEPARTS;
  5417. EXTERN_C const IID IID_IMimeEnumMessageParts;
  5418. #if defined(__cplusplus) && !defined(CINTERFACE)
  5419. MIDL_INTERFACE("C5588350-7F86-11d0-8252-00C04FD85AB4")
  5420. IMimeEnumMessageParts : public IUnknown
  5421. {
  5422. public:
  5423. virtual HRESULT STDMETHODCALLTYPE Next(
  5424. /* [in] */ ULONG cFetch,
  5425. /* [out][in] */ IMimeMessage **prgpMessage,
  5426. /* [out] */ ULONG *pcFetched) = 0;
  5427. virtual HRESULT STDMETHODCALLTYPE Skip(
  5428. /* [in] */ ULONG cItems) = 0;
  5429. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  5430. virtual HRESULT STDMETHODCALLTYPE Clone(
  5431. /* [out] */ IMimeEnumMessageParts **ppEnum) = 0;
  5432. virtual HRESULT STDMETHODCALLTYPE Count(
  5433. /* [out] */ ULONG *pcItems) = 0;
  5434. };
  5435. #else /* C style interface */
  5436. typedef struct IMimeEnumMessagePartsVtbl
  5437. {
  5438. BEGIN_INTERFACE
  5439. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5440. IMimeEnumMessageParts * This,
  5441. /* [in] */ REFIID riid,
  5442. /* [iid_is][out] */ void **ppvObject);
  5443. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5444. IMimeEnumMessageParts * This);
  5445. ULONG ( STDMETHODCALLTYPE *Release )(
  5446. IMimeEnumMessageParts * This);
  5447. HRESULT ( STDMETHODCALLTYPE *Next )(
  5448. IMimeEnumMessageParts * This,
  5449. /* [in] */ ULONG cFetch,
  5450. /* [out][in] */ IMimeMessage **prgpMessage,
  5451. /* [out] */ ULONG *pcFetched);
  5452. HRESULT ( STDMETHODCALLTYPE *Skip )(
  5453. IMimeEnumMessageParts * This,
  5454. /* [in] */ ULONG cItems);
  5455. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5456. IMimeEnumMessageParts * This);
  5457. HRESULT ( STDMETHODCALLTYPE *Clone )(
  5458. IMimeEnumMessageParts * This,
  5459. /* [out] */ IMimeEnumMessageParts **ppEnum);
  5460. HRESULT ( STDMETHODCALLTYPE *Count )(
  5461. IMimeEnumMessageParts * This,
  5462. /* [out] */ ULONG *pcItems);
  5463. END_INTERFACE
  5464. } IMimeEnumMessagePartsVtbl;
  5465. interface IMimeEnumMessageParts
  5466. {
  5467. CONST_VTBL struct IMimeEnumMessagePartsVtbl *lpVtbl;
  5468. };
  5469. #ifdef COBJMACROS
  5470. #define IMimeEnumMessageParts_QueryInterface(This,riid,ppvObject) \
  5471. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5472. #define IMimeEnumMessageParts_AddRef(This) \
  5473. (This)->lpVtbl -> AddRef(This)
  5474. #define IMimeEnumMessageParts_Release(This) \
  5475. (This)->lpVtbl -> Release(This)
  5476. #define IMimeEnumMessageParts_Next(This,cFetch,prgpMessage,pcFetched) \
  5477. (This)->lpVtbl -> Next(This,cFetch,prgpMessage,pcFetched)
  5478. #define IMimeEnumMessageParts_Skip(This,cItems) \
  5479. (This)->lpVtbl -> Skip(This,cItems)
  5480. #define IMimeEnumMessageParts_Reset(This) \
  5481. (This)->lpVtbl -> Reset(This)
  5482. #define IMimeEnumMessageParts_Clone(This,ppEnum) \
  5483. (This)->lpVtbl -> Clone(This,ppEnum)
  5484. #define IMimeEnumMessageParts_Count(This,pcItems) \
  5485. (This)->lpVtbl -> Count(This,pcItems)
  5486. #endif /* COBJMACROS */
  5487. #endif /* C style interface */
  5488. HRESULT STDMETHODCALLTYPE IMimeEnumMessageParts_Next_Proxy(
  5489. IMimeEnumMessageParts * This,
  5490. /* [in] */ ULONG cFetch,
  5491. /* [out][in] */ IMimeMessage **prgpMessage,
  5492. /* [out] */ ULONG *pcFetched);
  5493. void __RPC_STUB IMimeEnumMessageParts_Next_Stub(
  5494. IRpcStubBuffer *This,
  5495. IRpcChannelBuffer *_pRpcChannelBuffer,
  5496. PRPC_MESSAGE _pRpcMessage,
  5497. DWORD *_pdwStubPhase);
  5498. HRESULT STDMETHODCALLTYPE IMimeEnumMessageParts_Skip_Proxy(
  5499. IMimeEnumMessageParts * This,
  5500. /* [in] */ ULONG cItems);
  5501. void __RPC_STUB IMimeEnumMessageParts_Skip_Stub(
  5502. IRpcStubBuffer *This,
  5503. IRpcChannelBuffer *_pRpcChannelBuffer,
  5504. PRPC_MESSAGE _pRpcMessage,
  5505. DWORD *_pdwStubPhase);
  5506. HRESULT STDMETHODCALLTYPE IMimeEnumMessageParts_Reset_Proxy(
  5507. IMimeEnumMessageParts * This);
  5508. void __RPC_STUB IMimeEnumMessageParts_Reset_Stub(
  5509. IRpcStubBuffer *This,
  5510. IRpcChannelBuffer *_pRpcChannelBuffer,
  5511. PRPC_MESSAGE _pRpcMessage,
  5512. DWORD *_pdwStubPhase);
  5513. HRESULT STDMETHODCALLTYPE IMimeEnumMessageParts_Clone_Proxy(
  5514. IMimeEnumMessageParts * This,
  5515. /* [out] */ IMimeEnumMessageParts **ppEnum);
  5516. void __RPC_STUB IMimeEnumMessageParts_Clone_Stub(
  5517. IRpcStubBuffer *This,
  5518. IRpcChannelBuffer *_pRpcChannelBuffer,
  5519. PRPC_MESSAGE _pRpcMessage,
  5520. DWORD *_pdwStubPhase);
  5521. HRESULT STDMETHODCALLTYPE IMimeEnumMessageParts_Count_Proxy(
  5522. IMimeEnumMessageParts * This,
  5523. /* [out] */ ULONG *pcItems);
  5524. void __RPC_STUB IMimeEnumMessageParts_Count_Stub(
  5525. IRpcStubBuffer *This,
  5526. IRpcChannelBuffer *_pRpcChannelBuffer,
  5527. PRPC_MESSAGE _pRpcMessage,
  5528. DWORD *_pdwStubPhase);
  5529. #endif /* __IMimeEnumMessageParts_INTERFACE_DEFINED__ */
  5530. #ifndef __IHashTable_INTERFACE_DEFINED__
  5531. #define __IHashTable_INTERFACE_DEFINED__
  5532. /* interface IHashTable */
  5533. /* [object][helpstring][uuid] */
  5534. typedef /* [unique] */ IHashTable *LPHASHTABLE;
  5535. #define HF_NO_DUPLICATES ( 0x1 )
  5536. EXTERN_C const IID IID_IHashTable;
  5537. #if defined(__cplusplus) && !defined(CINTERFACE)
  5538. MIDL_INTERFACE("64577981-86D7-11d1-BDFC-00C04FA31009")
  5539. IHashTable : public IUnknown
  5540. {
  5541. public:
  5542. virtual HRESULT STDMETHODCALLTYPE Init(
  5543. /* [in] */ DWORD dwSize,
  5544. /* [in] */ BOOL fDupeKeys) = 0;
  5545. virtual HRESULT STDMETHODCALLTYPE Insert(
  5546. /* [in] */ LPSTR psz,
  5547. /* [in] */ LPVOID pv,
  5548. /* [in] */ DWORD dwFlags) = 0;
  5549. virtual HRESULT STDMETHODCALLTYPE Replace(
  5550. /* [in] */ LPSTR psz,
  5551. /* [in] */ LPVOID pv) = 0;
  5552. virtual HRESULT STDMETHODCALLTYPE Find(
  5553. /* [in] */ LPSTR psz,
  5554. /* [in] */ BOOL fRemove,
  5555. /* [out] */ LPVOID *ppv) = 0;
  5556. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  5557. virtual HRESULT STDMETHODCALLTYPE Next(
  5558. /* [in] */ ULONG cFetch,
  5559. /* [out][in] */ LPVOID **prgpv,
  5560. /* [out] */ ULONG *pcFetched) = 0;
  5561. };
  5562. #else /* C style interface */
  5563. typedef struct IHashTableVtbl
  5564. {
  5565. BEGIN_INTERFACE
  5566. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5567. IHashTable * This,
  5568. /* [in] */ REFIID riid,
  5569. /* [iid_is][out] */ void **ppvObject);
  5570. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5571. IHashTable * This);
  5572. ULONG ( STDMETHODCALLTYPE *Release )(
  5573. IHashTable * This);
  5574. HRESULT ( STDMETHODCALLTYPE *Init )(
  5575. IHashTable * This,
  5576. /* [in] */ DWORD dwSize,
  5577. /* [in] */ BOOL fDupeKeys);
  5578. HRESULT ( STDMETHODCALLTYPE *Insert )(
  5579. IHashTable * This,
  5580. /* [in] */ LPSTR psz,
  5581. /* [in] */ LPVOID pv,
  5582. /* [in] */ DWORD dwFlags);
  5583. HRESULT ( STDMETHODCALLTYPE *Replace )(
  5584. IHashTable * This,
  5585. /* [in] */ LPSTR psz,
  5586. /* [in] */ LPVOID pv);
  5587. HRESULT ( STDMETHODCALLTYPE *Find )(
  5588. IHashTable * This,
  5589. /* [in] */ LPSTR psz,
  5590. /* [in] */ BOOL fRemove,
  5591. /* [out] */ LPVOID *ppv);
  5592. HRESULT ( STDMETHODCALLTYPE *Reset )(
  5593. IHashTable * This);
  5594. HRESULT ( STDMETHODCALLTYPE *Next )(
  5595. IHashTable * This,
  5596. /* [in] */ ULONG cFetch,
  5597. /* [out][in] */ LPVOID **prgpv,
  5598. /* [out] */ ULONG *pcFetched);
  5599. END_INTERFACE
  5600. } IHashTableVtbl;
  5601. interface IHashTable
  5602. {
  5603. CONST_VTBL struct IHashTableVtbl *lpVtbl;
  5604. };
  5605. #ifdef COBJMACROS
  5606. #define IHashTable_QueryInterface(This,riid,ppvObject) \
  5607. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5608. #define IHashTable_AddRef(This) \
  5609. (This)->lpVtbl -> AddRef(This)
  5610. #define IHashTable_Release(This) \
  5611. (This)->lpVtbl -> Release(This)
  5612. #define IHashTable_Init(This,dwSize,fDupeKeys) \
  5613. (This)->lpVtbl -> Init(This,dwSize,fDupeKeys)
  5614. #define IHashTable_Insert(This,psz,pv,dwFlags) \
  5615. (This)->lpVtbl -> Insert(This,psz,pv,dwFlags)
  5616. #define IHashTable_Replace(This,psz,pv) \
  5617. (This)->lpVtbl -> Replace(This,psz,pv)
  5618. #define IHashTable_Find(This,psz,fRemove,ppv) \
  5619. (This)->lpVtbl -> Find(This,psz,fRemove,ppv)
  5620. #define IHashTable_Reset(This) \
  5621. (This)->lpVtbl -> Reset(This)
  5622. #define IHashTable_Next(This,cFetch,prgpv,pcFetched) \
  5623. (This)->lpVtbl -> Next(This,cFetch,prgpv,pcFetched)
  5624. #endif /* COBJMACROS */
  5625. #endif /* C style interface */
  5626. HRESULT STDMETHODCALLTYPE IHashTable_Init_Proxy(
  5627. IHashTable * This,
  5628. /* [in] */ DWORD dwSize,
  5629. /* [in] */ BOOL fDupeKeys);
  5630. void __RPC_STUB IHashTable_Init_Stub(
  5631. IRpcStubBuffer *This,
  5632. IRpcChannelBuffer *_pRpcChannelBuffer,
  5633. PRPC_MESSAGE _pRpcMessage,
  5634. DWORD *_pdwStubPhase);
  5635. HRESULT STDMETHODCALLTYPE IHashTable_Insert_Proxy(
  5636. IHashTable * This,
  5637. /* [in] */ LPSTR psz,
  5638. /* [in] */ LPVOID pv,
  5639. /* [in] */ DWORD dwFlags);
  5640. void __RPC_STUB IHashTable_Insert_Stub(
  5641. IRpcStubBuffer *This,
  5642. IRpcChannelBuffer *_pRpcChannelBuffer,
  5643. PRPC_MESSAGE _pRpcMessage,
  5644. DWORD *_pdwStubPhase);
  5645. HRESULT STDMETHODCALLTYPE IHashTable_Replace_Proxy(
  5646. IHashTable * This,
  5647. /* [in] */ LPSTR psz,
  5648. /* [in] */ LPVOID pv);
  5649. void __RPC_STUB IHashTable_Replace_Stub(
  5650. IRpcStubBuffer *This,
  5651. IRpcChannelBuffer *_pRpcChannelBuffer,
  5652. PRPC_MESSAGE _pRpcMessage,
  5653. DWORD *_pdwStubPhase);
  5654. HRESULT STDMETHODCALLTYPE IHashTable_Find_Proxy(
  5655. IHashTable * This,
  5656. /* [in] */ LPSTR psz,
  5657. /* [in] */ BOOL fRemove,
  5658. /* [out] */ LPVOID *ppv);
  5659. void __RPC_STUB IHashTable_Find_Stub(
  5660. IRpcStubBuffer *This,
  5661. IRpcChannelBuffer *_pRpcChannelBuffer,
  5662. PRPC_MESSAGE _pRpcMessage,
  5663. DWORD *_pdwStubPhase);
  5664. HRESULT STDMETHODCALLTYPE IHashTable_Reset_Proxy(
  5665. IHashTable * This);
  5666. void __RPC_STUB IHashTable_Reset_Stub(
  5667. IRpcStubBuffer *This,
  5668. IRpcChannelBuffer *_pRpcChannelBuffer,
  5669. PRPC_MESSAGE _pRpcMessage,
  5670. DWORD *_pdwStubPhase);
  5671. HRESULT STDMETHODCALLTYPE IHashTable_Next_Proxy(
  5672. IHashTable * This,
  5673. /* [in] */ ULONG cFetch,
  5674. /* [out][in] */ LPVOID **prgpv,
  5675. /* [out] */ ULONG *pcFetched);
  5676. void __RPC_STUB IHashTable_Next_Stub(
  5677. IRpcStubBuffer *This,
  5678. IRpcChannelBuffer *_pRpcChannelBuffer,
  5679. PRPC_MESSAGE _pRpcMessage,
  5680. DWORD *_pdwStubPhase);
  5681. #endif /* __IHashTable_INTERFACE_DEFINED__ */
  5682. #ifndef __IMimeAllocator_INTERFACE_DEFINED__
  5683. #define __IMimeAllocator_INTERFACE_DEFINED__
  5684. /* interface IMimeAllocator */
  5685. /* [object][helpstring][uuid] */
  5686. typedef /* [unique] */ IMimeAllocator *LPMIMEALLOCATOR;
  5687. EXTERN_C const IID IID_IMimeAllocator;
  5688. #if defined(__cplusplus) && !defined(CINTERFACE)
  5689. MIDL_INTERFACE("C5588351-7F86-11d0-8252-00C04FD85AB4")
  5690. IMimeAllocator : public IMalloc
  5691. {
  5692. public:
  5693. virtual HRESULT STDMETHODCALLTYPE FreeParamInfoArray(
  5694. /* [in] */ ULONG cParams,
  5695. /* [in] */ LPMIMEPARAMINFO prgParam,
  5696. /* [in] */ boolean fFreeArray) = 0;
  5697. virtual HRESULT STDMETHODCALLTYPE FreeAddressList(
  5698. /* [out][in] */ LPADDRESSLIST pList) = 0;
  5699. virtual HRESULT STDMETHODCALLTYPE FreeAddressProps(
  5700. /* [out][in] */ LPADDRESSPROPS pAddress) = 0;
  5701. virtual HRESULT STDMETHODCALLTYPE ReleaseObjects(
  5702. /* [in] */ ULONG cObjects,
  5703. /* [in] */ IUnknown **prgpUnknown,
  5704. /* [in] */ boolean fFreeArray) = 0;
  5705. virtual HRESULT STDMETHODCALLTYPE FreeEnumHeaderRowArray(
  5706. /* [in] */ ULONG cRows,
  5707. /* [in] */ LPENUMHEADERROW prgRow,
  5708. /* [in] */ boolean fFreeArray) = 0;
  5709. virtual HRESULT STDMETHODCALLTYPE FreeEnumPropertyArray(
  5710. /* [in] */ ULONG cProps,
  5711. /* [in] */ LPENUMPROPERTY prgProp,
  5712. /* [in] */ boolean fFreeArray) = 0;
  5713. virtual HRESULT STDMETHODCALLTYPE FreeThumbprint(
  5714. /* [in] */ THUMBBLOB *pthumbprint) = 0;
  5715. virtual HRESULT STDMETHODCALLTYPE PropVariantClear(
  5716. /* [in] */ LPPROPVARIANT pProp) = 0;
  5717. };
  5718. #else /* C style interface */
  5719. typedef struct IMimeAllocatorVtbl
  5720. {
  5721. BEGIN_INTERFACE
  5722. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5723. IMimeAllocator * This,
  5724. /* [in] */ REFIID riid,
  5725. /* [iid_is][out] */ void **ppvObject);
  5726. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5727. IMimeAllocator * This);
  5728. ULONG ( STDMETHODCALLTYPE *Release )(
  5729. IMimeAllocator * This);
  5730. void *( STDMETHODCALLTYPE *Alloc )(
  5731. IMimeAllocator * This,
  5732. /* [in] */ SIZE_T cb);
  5733. void *( STDMETHODCALLTYPE *Realloc )(
  5734. IMimeAllocator * This,
  5735. /* [in] */ void *pv,
  5736. /* [in] */ SIZE_T cb);
  5737. void ( STDMETHODCALLTYPE *Free )(
  5738. IMimeAllocator * This,
  5739. /* [in] */ void *pv);
  5740. SIZE_T ( STDMETHODCALLTYPE *GetSize )(
  5741. IMimeAllocator * This,
  5742. /* [in] */ void *pv);
  5743. int ( STDMETHODCALLTYPE *DidAlloc )(
  5744. IMimeAllocator * This,
  5745. void *pv);
  5746. void ( STDMETHODCALLTYPE *HeapMinimize )(
  5747. IMimeAllocator * This);
  5748. HRESULT ( STDMETHODCALLTYPE *FreeParamInfoArray )(
  5749. IMimeAllocator * This,
  5750. /* [in] */ ULONG cParams,
  5751. /* [in] */ LPMIMEPARAMINFO prgParam,
  5752. /* [in] */ boolean fFreeArray);
  5753. HRESULT ( STDMETHODCALLTYPE *FreeAddressList )(
  5754. IMimeAllocator * This,
  5755. /* [out][in] */ LPADDRESSLIST pList);
  5756. HRESULT ( STDMETHODCALLTYPE *FreeAddressProps )(
  5757. IMimeAllocator * This,
  5758. /* [out][in] */ LPADDRESSPROPS pAddress);
  5759. HRESULT ( STDMETHODCALLTYPE *ReleaseObjects )(
  5760. IMimeAllocator * This,
  5761. /* [in] */ ULONG cObjects,
  5762. /* [in] */ IUnknown **prgpUnknown,
  5763. /* [in] */ boolean fFreeArray);
  5764. HRESULT ( STDMETHODCALLTYPE *FreeEnumHeaderRowArray )(
  5765. IMimeAllocator * This,
  5766. /* [in] */ ULONG cRows,
  5767. /* [in] */ LPENUMHEADERROW prgRow,
  5768. /* [in] */ boolean fFreeArray);
  5769. HRESULT ( STDMETHODCALLTYPE *FreeEnumPropertyArray )(
  5770. IMimeAllocator * This,
  5771. /* [in] */ ULONG cProps,
  5772. /* [in] */ LPENUMPROPERTY prgProp,
  5773. /* [in] */ boolean fFreeArray);
  5774. HRESULT ( STDMETHODCALLTYPE *FreeThumbprint )(
  5775. IMimeAllocator * This,
  5776. /* [in] */ THUMBBLOB *pthumbprint);
  5777. HRESULT ( STDMETHODCALLTYPE *PropVariantClear )(
  5778. IMimeAllocator * This,
  5779. /* [in] */ LPPROPVARIANT pProp);
  5780. END_INTERFACE
  5781. } IMimeAllocatorVtbl;
  5782. interface IMimeAllocator
  5783. {
  5784. CONST_VTBL struct IMimeAllocatorVtbl *lpVtbl;
  5785. };
  5786. #ifdef COBJMACROS
  5787. #define IMimeAllocator_QueryInterface(This,riid,ppvObject) \
  5788. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5789. #define IMimeAllocator_AddRef(This) \
  5790. (This)->lpVtbl -> AddRef(This)
  5791. #define IMimeAllocator_Release(This) \
  5792. (This)->lpVtbl -> Release(This)
  5793. #define IMimeAllocator_Alloc(This,cb) \
  5794. (This)->lpVtbl -> Alloc(This,cb)
  5795. #define IMimeAllocator_Realloc(This,pv,cb) \
  5796. (This)->lpVtbl -> Realloc(This,pv,cb)
  5797. #define IMimeAllocator_Free(This,pv) \
  5798. (This)->lpVtbl -> Free(This,pv)
  5799. #define IMimeAllocator_GetSize(This,pv) \
  5800. (This)->lpVtbl -> GetSize(This,pv)
  5801. #define IMimeAllocator_DidAlloc(This,pv) \
  5802. (This)->lpVtbl -> DidAlloc(This,pv)
  5803. #define IMimeAllocator_HeapMinimize(This) \
  5804. (This)->lpVtbl -> HeapMinimize(This)
  5805. #define IMimeAllocator_FreeParamInfoArray(This,cParams,prgParam,fFreeArray) \
  5806. (This)->lpVtbl -> FreeParamInfoArray(This,cParams,prgParam,fFreeArray)
  5807. #define IMimeAllocator_FreeAddressList(This,pList) \
  5808. (This)->lpVtbl -> FreeAddressList(This,pList)
  5809. #define IMimeAllocator_FreeAddressProps(This,pAddress) \
  5810. (This)->lpVtbl -> FreeAddressProps(This,pAddress)
  5811. #define IMimeAllocator_ReleaseObjects(This,cObjects,prgpUnknown,fFreeArray) \
  5812. (This)->lpVtbl -> ReleaseObjects(This,cObjects,prgpUnknown,fFreeArray)
  5813. #define IMimeAllocator_FreeEnumHeaderRowArray(This,cRows,prgRow,fFreeArray) \
  5814. (This)->lpVtbl -> FreeEnumHeaderRowArray(This,cRows,prgRow,fFreeArray)
  5815. #define IMimeAllocator_FreeEnumPropertyArray(This,cProps,prgProp,fFreeArray) \
  5816. (This)->lpVtbl -> FreeEnumPropertyArray(This,cProps,prgProp,fFreeArray)
  5817. #define IMimeAllocator_FreeThumbprint(This,pthumbprint) \
  5818. (This)->lpVtbl -> FreeThumbprint(This,pthumbprint)
  5819. #define IMimeAllocator_PropVariantClear(This,pProp) \
  5820. (This)->lpVtbl -> PropVariantClear(This,pProp)
  5821. #endif /* COBJMACROS */
  5822. #endif /* C style interface */
  5823. HRESULT STDMETHODCALLTYPE IMimeAllocator_FreeParamInfoArray_Proxy(
  5824. IMimeAllocator * This,
  5825. /* [in] */ ULONG cParams,
  5826. /* [in] */ LPMIMEPARAMINFO prgParam,
  5827. /* [in] */ boolean fFreeArray);
  5828. void __RPC_STUB IMimeAllocator_FreeParamInfoArray_Stub(
  5829. IRpcStubBuffer *This,
  5830. IRpcChannelBuffer *_pRpcChannelBuffer,
  5831. PRPC_MESSAGE _pRpcMessage,
  5832. DWORD *_pdwStubPhase);
  5833. HRESULT STDMETHODCALLTYPE IMimeAllocator_FreeAddressList_Proxy(
  5834. IMimeAllocator * This,
  5835. /* [out][in] */ LPADDRESSLIST pList);
  5836. void __RPC_STUB IMimeAllocator_FreeAddressList_Stub(
  5837. IRpcStubBuffer *This,
  5838. IRpcChannelBuffer *_pRpcChannelBuffer,
  5839. PRPC_MESSAGE _pRpcMessage,
  5840. DWORD *_pdwStubPhase);
  5841. HRESULT STDMETHODCALLTYPE IMimeAllocator_FreeAddressProps_Proxy(
  5842. IMimeAllocator * This,
  5843. /* [out][in] */ LPADDRESSPROPS pAddress);
  5844. void __RPC_STUB IMimeAllocator_FreeAddressProps_Stub(
  5845. IRpcStubBuffer *This,
  5846. IRpcChannelBuffer *_pRpcChannelBuffer,
  5847. PRPC_MESSAGE _pRpcMessage,
  5848. DWORD *_pdwStubPhase);
  5849. HRESULT STDMETHODCALLTYPE IMimeAllocator_ReleaseObjects_Proxy(
  5850. IMimeAllocator * This,
  5851. /* [in] */ ULONG cObjects,
  5852. /* [in] */ IUnknown **prgpUnknown,
  5853. /* [in] */ boolean fFreeArray);
  5854. void __RPC_STUB IMimeAllocator_ReleaseObjects_Stub(
  5855. IRpcStubBuffer *This,
  5856. IRpcChannelBuffer *_pRpcChannelBuffer,
  5857. PRPC_MESSAGE _pRpcMessage,
  5858. DWORD *_pdwStubPhase);
  5859. HRESULT STDMETHODCALLTYPE IMimeAllocator_FreeEnumHeaderRowArray_Proxy(
  5860. IMimeAllocator * This,
  5861. /* [in] */ ULONG cRows,
  5862. /* [in] */ LPENUMHEADERROW prgRow,
  5863. /* [in] */ boolean fFreeArray);
  5864. void __RPC_STUB IMimeAllocator_FreeEnumHeaderRowArray_Stub(
  5865. IRpcStubBuffer *This,
  5866. IRpcChannelBuffer *_pRpcChannelBuffer,
  5867. PRPC_MESSAGE _pRpcMessage,
  5868. DWORD *_pdwStubPhase);
  5869. HRESULT STDMETHODCALLTYPE IMimeAllocator_FreeEnumPropertyArray_Proxy(
  5870. IMimeAllocator * This,
  5871. /* [in] */ ULONG cProps,
  5872. /* [in] */ LPENUMPROPERTY prgProp,
  5873. /* [in] */ boolean fFreeArray);
  5874. void __RPC_STUB IMimeAllocator_FreeEnumPropertyArray_Stub(
  5875. IRpcStubBuffer *This,
  5876. IRpcChannelBuffer *_pRpcChannelBuffer,
  5877. PRPC_MESSAGE _pRpcMessage,
  5878. DWORD *_pdwStubPhase);
  5879. HRESULT STDMETHODCALLTYPE IMimeAllocator_FreeThumbprint_Proxy(
  5880. IMimeAllocator * This,
  5881. /* [in] */ THUMBBLOB *pthumbprint);
  5882. void __RPC_STUB IMimeAllocator_FreeThumbprint_Stub(
  5883. IRpcStubBuffer *This,
  5884. IRpcChannelBuffer *_pRpcChannelBuffer,
  5885. PRPC_MESSAGE _pRpcMessage,
  5886. DWORD *_pdwStubPhase);
  5887. HRESULT STDMETHODCALLTYPE IMimeAllocator_PropVariantClear_Proxy(
  5888. IMimeAllocator * This,
  5889. /* [in] */ LPPROPVARIANT pProp);
  5890. void __RPC_STUB IMimeAllocator_PropVariantClear_Stub(
  5891. IRpcStubBuffer *This,
  5892. IRpcChannelBuffer *_pRpcChannelBuffer,
  5893. PRPC_MESSAGE _pRpcMessage,
  5894. DWORD *_pdwStubPhase);
  5895. #endif /* __IMimeAllocator_INTERFACE_DEFINED__ */
  5896. #ifndef __IMimeObjResolver_INTERFACE_DEFINED__
  5897. #define __IMimeObjResolver_INTERFACE_DEFINED__
  5898. /* interface IMimeObjResolver */
  5899. /* [object][helpstring][uuid] */
  5900. typedef /* [unique] */ IMimeObjResolver *LPMIMEOBJRESOLVER;
  5901. EXTERN_C const IID IID_IMimeObjResolver;
  5902. #if defined(__cplusplus) && !defined(CINTERFACE)
  5903. MIDL_INTERFACE("FECEAFFD-C441-11d1-960E-00C04FBD7C09")
  5904. IMimeObjResolver : public IUnknown
  5905. {
  5906. public:
  5907. virtual HRESULT STDMETHODCALLTYPE MimeOleObjectFromMoniker(
  5908. /* [in] */ BINDF bindf,
  5909. /* [in] */ IMoniker *pmkOriginal,
  5910. /* [in] */ IBindCtx *pBindCtx,
  5911. /* [in] */ REFIID riid,
  5912. /* [out] */ LPVOID *ppvObject,
  5913. /* [out] */ IMoniker **ppmkNew) = 0;
  5914. };
  5915. #else /* C style interface */
  5916. typedef struct IMimeObjResolverVtbl
  5917. {
  5918. BEGIN_INTERFACE
  5919. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5920. IMimeObjResolver * This,
  5921. /* [in] */ REFIID riid,
  5922. /* [iid_is][out] */ void **ppvObject);
  5923. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5924. IMimeObjResolver * This);
  5925. ULONG ( STDMETHODCALLTYPE *Release )(
  5926. IMimeObjResolver * This);
  5927. HRESULT ( STDMETHODCALLTYPE *MimeOleObjectFromMoniker )(
  5928. IMimeObjResolver * This,
  5929. /* [in] */ BINDF bindf,
  5930. /* [in] */ IMoniker *pmkOriginal,
  5931. /* [in] */ IBindCtx *pBindCtx,
  5932. /* [in] */ REFIID riid,
  5933. /* [out] */ LPVOID *ppvObject,
  5934. /* [out] */ IMoniker **ppmkNew);
  5935. END_INTERFACE
  5936. } IMimeObjResolverVtbl;
  5937. interface IMimeObjResolver
  5938. {
  5939. CONST_VTBL struct IMimeObjResolverVtbl *lpVtbl;
  5940. };
  5941. #ifdef COBJMACROS
  5942. #define IMimeObjResolver_QueryInterface(This,riid,ppvObject) \
  5943. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5944. #define IMimeObjResolver_AddRef(This) \
  5945. (This)->lpVtbl -> AddRef(This)
  5946. #define IMimeObjResolver_Release(This) \
  5947. (This)->lpVtbl -> Release(This)
  5948. #define IMimeObjResolver_MimeOleObjectFromMoniker(This,bindf,pmkOriginal,pBindCtx,riid,ppvObject,ppmkNew) \
  5949. (This)->lpVtbl -> MimeOleObjectFromMoniker(This,bindf,pmkOriginal,pBindCtx,riid,ppvObject,ppmkNew)
  5950. #endif /* COBJMACROS */
  5951. #endif /* C style interface */
  5952. HRESULT STDMETHODCALLTYPE IMimeObjResolver_MimeOleObjectFromMoniker_Proxy(
  5953. IMimeObjResolver * This,
  5954. /* [in] */ BINDF bindf,
  5955. /* [in] */ IMoniker *pmkOriginal,
  5956. /* [in] */ IBindCtx *pBindCtx,
  5957. /* [in] */ REFIID riid,
  5958. /* [out] */ LPVOID *ppvObject,
  5959. /* [out] */ IMoniker **ppmkNew);
  5960. void __RPC_STUB IMimeObjResolver_MimeOleObjectFromMoniker_Stub(
  5961. IRpcStubBuffer *This,
  5962. IRpcChannelBuffer *_pRpcChannelBuffer,
  5963. PRPC_MESSAGE _pRpcMessage,
  5964. DWORD *_pdwStubPhase);
  5965. #endif /* __IMimeObjResolver_INTERFACE_DEFINED__ */
  5966. #endif /* __MIMEOLE_LIBRARY_DEFINED__ */
  5967. /* interface __MIDL_itf_mimeole_0284 */
  5968. /* [local] */
  5969. typedef
  5970. enum tagFNTSYSTYPE
  5971. { FNT_SYS_ICON = 0,
  5972. FNT_SYS_ICON_BOLD = FNT_SYS_ICON + 1,
  5973. FNT_SYS_MENU = FNT_SYS_ICON_BOLD + 1,
  5974. FNT_SYS_ICON_STRIKEOUT = FNT_SYS_MENU + 1,
  5975. FNT_SYS_LAST = FNT_SYS_ICON_STRIKEOUT + 1
  5976. } FNTSYSTYPE;
  5977. typedef struct _charformat CHARFORMAT;
  5978. extern RPC_IF_HANDLE __MIDL_itf_mimeole_0284_v0_0_c_ifspec;
  5979. extern RPC_IF_HANDLE __MIDL_itf_mimeole_0284_v0_0_s_ifspec;
  5980. #ifndef __IFontCache_INTERFACE_DEFINED__
  5981. #define __IFontCache_INTERFACE_DEFINED__
  5982. /* interface IFontCache */
  5983. /* [object][helpstring][uuid] */
  5984. typedef /* [unique] */ IFontCache *LPFONTCACHE;
  5985. EXTERN_C const IID IID_IFontCache;
  5986. #if defined(__cplusplus) && !defined(CINTERFACE)
  5987. MIDL_INTERFACE("B0D17FC2-7BC4-11d1-BDFA-00C04FA31009")
  5988. IFontCache : public IUnknown
  5989. {
  5990. public:
  5991. virtual /* [local] */ HRESULT STDMETHODCALLTYPE Init(
  5992. /* [in] */ HKEY hkey,
  5993. /* [in] */ LPCSTR pszIntlKey,
  5994. /* [in] */ DWORD dwFlags) = 0;
  5995. virtual HRESULT STDMETHODCALLTYPE GetFont(
  5996. /* [in] */ FNTSYSTYPE fntType,
  5997. /* [in] */ HCHARSET hCharset,
  5998. /* [out] */ HFONT *phFont) = 0;
  5999. virtual HRESULT STDMETHODCALLTYPE OnOptionChange( void) = 0;
  6000. virtual HRESULT STDMETHODCALLTYPE GetJP_ISOControl(
  6001. /* [out] */ BOOL *pfUseSIO) = 0;
  6002. };
  6003. #else /* C style interface */
  6004. typedef struct IFontCacheVtbl
  6005. {
  6006. BEGIN_INTERFACE
  6007. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6008. IFontCache * This,
  6009. /* [in] */ REFIID riid,
  6010. /* [iid_is][out] */ void **ppvObject);
  6011. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6012. IFontCache * This);
  6013. ULONG ( STDMETHODCALLTYPE *Release )(
  6014. IFontCache * This);
  6015. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Init )(
  6016. IFontCache * This,
  6017. /* [in] */ HKEY hkey,
  6018. /* [in] */ LPCSTR pszIntlKey,
  6019. /* [in] */ DWORD dwFlags);
  6020. HRESULT ( STDMETHODCALLTYPE *GetFont )(
  6021. IFontCache * This,
  6022. /* [in] */ FNTSYSTYPE fntType,
  6023. /* [in] */ HCHARSET hCharset,
  6024. /* [out] */ HFONT *phFont);
  6025. HRESULT ( STDMETHODCALLTYPE *OnOptionChange )(
  6026. IFontCache * This);
  6027. HRESULT ( STDMETHODCALLTYPE *GetJP_ISOControl )(
  6028. IFontCache * This,
  6029. /* [out] */ BOOL *pfUseSIO);
  6030. END_INTERFACE
  6031. } IFontCacheVtbl;
  6032. interface IFontCache
  6033. {
  6034. CONST_VTBL struct IFontCacheVtbl *lpVtbl;
  6035. };
  6036. #ifdef COBJMACROS
  6037. #define IFontCache_QueryInterface(This,riid,ppvObject) \
  6038. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6039. #define IFontCache_AddRef(This) \
  6040. (This)->lpVtbl -> AddRef(This)
  6041. #define IFontCache_Release(This) \
  6042. (This)->lpVtbl -> Release(This)
  6043. #define IFontCache_Init(This,hkey,pszIntlKey,dwFlags) \
  6044. (This)->lpVtbl -> Init(This,hkey,pszIntlKey,dwFlags)
  6045. #define IFontCache_GetFont(This,fntType,hCharset,phFont) \
  6046. (This)->lpVtbl -> GetFont(This,fntType,hCharset,phFont)
  6047. #define IFontCache_OnOptionChange(This) \
  6048. (This)->lpVtbl -> OnOptionChange(This)
  6049. #define IFontCache_GetJP_ISOControl(This,pfUseSIO) \
  6050. (This)->lpVtbl -> GetJP_ISOControl(This,pfUseSIO)
  6051. #endif /* COBJMACROS */
  6052. #endif /* C style interface */
  6053. /* [local] */ HRESULT STDMETHODCALLTYPE IFontCache_Init_Proxy(
  6054. IFontCache * This,
  6055. /* [in] */ HKEY hkey,
  6056. /* [in] */ LPCSTR pszIntlKey,
  6057. /* [in] */ DWORD dwFlags);
  6058. void __RPC_STUB IFontCache_Init_Stub(
  6059. IRpcStubBuffer *This,
  6060. IRpcChannelBuffer *_pRpcChannelBuffer,
  6061. PRPC_MESSAGE _pRpcMessage,
  6062. DWORD *_pdwStubPhase);
  6063. HRESULT STDMETHODCALLTYPE IFontCache_GetFont_Proxy(
  6064. IFontCache * This,
  6065. /* [in] */ FNTSYSTYPE fntType,
  6066. /* [in] */ HCHARSET hCharset,
  6067. /* [out] */ HFONT *phFont);
  6068. void __RPC_STUB IFontCache_GetFont_Stub(
  6069. IRpcStubBuffer *This,
  6070. IRpcChannelBuffer *_pRpcChannelBuffer,
  6071. PRPC_MESSAGE _pRpcMessage,
  6072. DWORD *_pdwStubPhase);
  6073. HRESULT STDMETHODCALLTYPE IFontCache_OnOptionChange_Proxy(
  6074. IFontCache * This);
  6075. void __RPC_STUB IFontCache_OnOptionChange_Stub(
  6076. IRpcStubBuffer *This,
  6077. IRpcChannelBuffer *_pRpcChannelBuffer,
  6078. PRPC_MESSAGE _pRpcMessage,
  6079. DWORD *_pdwStubPhase);
  6080. HRESULT STDMETHODCALLTYPE IFontCache_GetJP_ISOControl_Proxy(
  6081. IFontCache * This,
  6082. /* [out] */ BOOL *pfUseSIO);
  6083. void __RPC_STUB IFontCache_GetJP_ISOControl_Stub(
  6084. IRpcStubBuffer *This,
  6085. IRpcChannelBuffer *_pRpcChannelBuffer,
  6086. PRPC_MESSAGE _pRpcMessage,
  6087. DWORD *_pdwStubPhase);
  6088. #endif /* __IFontCache_INTERFACE_DEFINED__ */
  6089. #ifndef __IFontCacheNotify_INTERFACE_DEFINED__
  6090. #define __IFontCacheNotify_INTERFACE_DEFINED__
  6091. /* interface IFontCacheNotify */
  6092. /* [object][helpstring][uuid] */
  6093. typedef /* [unique] */ IFontCacheNotify *LPFONTCACHENOTIFY;
  6094. EXTERN_C const IID IID_IFontCacheNotify;
  6095. #if defined(__cplusplus) && !defined(CINTERFACE)
  6096. MIDL_INTERFACE("B0D17FC5-7BC4-11d1-BDFA-00C04FA31009")
  6097. IFontCacheNotify : public IUnknown
  6098. {
  6099. public:
  6100. virtual HRESULT STDMETHODCALLTYPE OnPreFontChange( void) = 0;
  6101. virtual HRESULT STDMETHODCALLTYPE OnPostFontChange( void) = 0;
  6102. };
  6103. #else /* C style interface */
  6104. typedef struct IFontCacheNotifyVtbl
  6105. {
  6106. BEGIN_INTERFACE
  6107. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6108. IFontCacheNotify * This,
  6109. /* [in] */ REFIID riid,
  6110. /* [iid_is][out] */ void **ppvObject);
  6111. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6112. IFontCacheNotify * This);
  6113. ULONG ( STDMETHODCALLTYPE *Release )(
  6114. IFontCacheNotify * This);
  6115. HRESULT ( STDMETHODCALLTYPE *OnPreFontChange )(
  6116. IFontCacheNotify * This);
  6117. HRESULT ( STDMETHODCALLTYPE *OnPostFontChange )(
  6118. IFontCacheNotify * This);
  6119. END_INTERFACE
  6120. } IFontCacheNotifyVtbl;
  6121. interface IFontCacheNotify
  6122. {
  6123. CONST_VTBL struct IFontCacheNotifyVtbl *lpVtbl;
  6124. };
  6125. #ifdef COBJMACROS
  6126. #define IFontCacheNotify_QueryInterface(This,riid,ppvObject) \
  6127. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6128. #define IFontCacheNotify_AddRef(This) \
  6129. (This)->lpVtbl -> AddRef(This)
  6130. #define IFontCacheNotify_Release(This) \
  6131. (This)->lpVtbl -> Release(This)
  6132. #define IFontCacheNotify_OnPreFontChange(This) \
  6133. (This)->lpVtbl -> OnPreFontChange(This)
  6134. #define IFontCacheNotify_OnPostFontChange(This) \
  6135. (This)->lpVtbl -> OnPostFontChange(This)
  6136. #endif /* COBJMACROS */
  6137. #endif /* C style interface */
  6138. HRESULT STDMETHODCALLTYPE IFontCacheNotify_OnPreFontChange_Proxy(
  6139. IFontCacheNotify * This);
  6140. void __RPC_STUB IFontCacheNotify_OnPreFontChange_Stub(
  6141. IRpcStubBuffer *This,
  6142. IRpcChannelBuffer *_pRpcChannelBuffer,
  6143. PRPC_MESSAGE _pRpcMessage,
  6144. DWORD *_pdwStubPhase);
  6145. HRESULT STDMETHODCALLTYPE IFontCacheNotify_OnPostFontChange_Proxy(
  6146. IFontCacheNotify * This);
  6147. void __RPC_STUB IFontCacheNotify_OnPostFontChange_Stub(
  6148. IRpcStubBuffer *This,
  6149. IRpcChannelBuffer *_pRpcChannelBuffer,
  6150. PRPC_MESSAGE _pRpcMessage,
  6151. DWORD *_pdwStubPhase);
  6152. #endif /* __IFontCacheNotify_INTERFACE_DEFINED__ */
  6153. #ifndef __IMimeEditTag_INTERFACE_DEFINED__
  6154. #define __IMimeEditTag_INTERFACE_DEFINED__
  6155. /* interface IMimeEditTag */
  6156. /* [object][helpstring][uuid] */
  6157. typedef /* [unique] */ IMimeEditTag *PMIMEEDITTAG;
  6158. EXTERN_C const IID IID_IMimeEditTag;
  6159. #if defined(__cplusplus) && !defined(CINTERFACE)
  6160. MIDL_INTERFACE("70183210-7b36-11d2-8c12-00c04fa31009")
  6161. IMimeEditTag : public IUnknown
  6162. {
  6163. public:
  6164. virtual HRESULT STDMETHODCALLTYPE GetSrc(
  6165. /* [out] */ BSTR *pbstr) = 0;
  6166. virtual HRESULT STDMETHODCALLTYPE SetSrc(
  6167. /* [in] */ BSTR bstr) = 0;
  6168. virtual HRESULT STDMETHODCALLTYPE GetDest(
  6169. /* [out] */ BSTR *pbstr) = 0;
  6170. virtual HRESULT STDMETHODCALLTYPE SetDest(
  6171. /* [in] */ BSTR bstr) = 0;
  6172. virtual HRESULT STDMETHODCALLTYPE OnPreSave( void) = 0;
  6173. virtual HRESULT STDMETHODCALLTYPE OnPostSave( void) = 0;
  6174. virtual HRESULT STDMETHODCALLTYPE CanPackage( void) = 0;
  6175. virtual HRESULT STDMETHODCALLTYPE IsValidMimeType(
  6176. /* [in] */ LPWSTR pszTypeW) = 0;
  6177. };
  6178. #else /* C style interface */
  6179. typedef struct IMimeEditTagVtbl
  6180. {
  6181. BEGIN_INTERFACE
  6182. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6183. IMimeEditTag * This,
  6184. /* [in] */ REFIID riid,
  6185. /* [iid_is][out] */ void **ppvObject);
  6186. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6187. IMimeEditTag * This);
  6188. ULONG ( STDMETHODCALLTYPE *Release )(
  6189. IMimeEditTag * This);
  6190. HRESULT ( STDMETHODCALLTYPE *GetSrc )(
  6191. IMimeEditTag * This,
  6192. /* [out] */ BSTR *pbstr);
  6193. HRESULT ( STDMETHODCALLTYPE *SetSrc )(
  6194. IMimeEditTag * This,
  6195. /* [in] */ BSTR bstr);
  6196. HRESULT ( STDMETHODCALLTYPE *GetDest )(
  6197. IMimeEditTag * This,
  6198. /* [out] */ BSTR *pbstr);
  6199. HRESULT ( STDMETHODCALLTYPE *SetDest )(
  6200. IMimeEditTag * This,
  6201. /* [in] */ BSTR bstr);
  6202. HRESULT ( STDMETHODCALLTYPE *OnPreSave )(
  6203. IMimeEditTag * This);
  6204. HRESULT ( STDMETHODCALLTYPE *OnPostSave )(
  6205. IMimeEditTag * This);
  6206. HRESULT ( STDMETHODCALLTYPE *CanPackage )(
  6207. IMimeEditTag * This);
  6208. HRESULT ( STDMETHODCALLTYPE *IsValidMimeType )(
  6209. IMimeEditTag * This,
  6210. /* [in] */ LPWSTR pszTypeW);
  6211. END_INTERFACE
  6212. } IMimeEditTagVtbl;
  6213. interface IMimeEditTag
  6214. {
  6215. CONST_VTBL struct IMimeEditTagVtbl *lpVtbl;
  6216. };
  6217. #ifdef COBJMACROS
  6218. #define IMimeEditTag_QueryInterface(This,riid,ppvObject) \
  6219. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6220. #define IMimeEditTag_AddRef(This) \
  6221. (This)->lpVtbl -> AddRef(This)
  6222. #define IMimeEditTag_Release(This) \
  6223. (This)->lpVtbl -> Release(This)
  6224. #define IMimeEditTag_GetSrc(This,pbstr) \
  6225. (This)->lpVtbl -> GetSrc(This,pbstr)
  6226. #define IMimeEditTag_SetSrc(This,bstr) \
  6227. (This)->lpVtbl -> SetSrc(This,bstr)
  6228. #define IMimeEditTag_GetDest(This,pbstr) \
  6229. (This)->lpVtbl -> GetDest(This,pbstr)
  6230. #define IMimeEditTag_SetDest(This,bstr) \
  6231. (This)->lpVtbl -> SetDest(This,bstr)
  6232. #define IMimeEditTag_OnPreSave(This) \
  6233. (This)->lpVtbl -> OnPreSave(This)
  6234. #define IMimeEditTag_OnPostSave(This) \
  6235. (This)->lpVtbl -> OnPostSave(This)
  6236. #define IMimeEditTag_CanPackage(This) \
  6237. (This)->lpVtbl -> CanPackage(This)
  6238. #define IMimeEditTag_IsValidMimeType(This,pszTypeW) \
  6239. (This)->lpVtbl -> IsValidMimeType(This,pszTypeW)
  6240. #endif /* COBJMACROS */
  6241. #endif /* C style interface */
  6242. HRESULT STDMETHODCALLTYPE IMimeEditTag_GetSrc_Proxy(
  6243. IMimeEditTag * This,
  6244. /* [out] */ BSTR *pbstr);
  6245. void __RPC_STUB IMimeEditTag_GetSrc_Stub(
  6246. IRpcStubBuffer *This,
  6247. IRpcChannelBuffer *_pRpcChannelBuffer,
  6248. PRPC_MESSAGE _pRpcMessage,
  6249. DWORD *_pdwStubPhase);
  6250. HRESULT STDMETHODCALLTYPE IMimeEditTag_SetSrc_Proxy(
  6251. IMimeEditTag * This,
  6252. /* [in] */ BSTR bstr);
  6253. void __RPC_STUB IMimeEditTag_SetSrc_Stub(
  6254. IRpcStubBuffer *This,
  6255. IRpcChannelBuffer *_pRpcChannelBuffer,
  6256. PRPC_MESSAGE _pRpcMessage,
  6257. DWORD *_pdwStubPhase);
  6258. HRESULT STDMETHODCALLTYPE IMimeEditTag_GetDest_Proxy(
  6259. IMimeEditTag * This,
  6260. /* [out] */ BSTR *pbstr);
  6261. void __RPC_STUB IMimeEditTag_GetDest_Stub(
  6262. IRpcStubBuffer *This,
  6263. IRpcChannelBuffer *_pRpcChannelBuffer,
  6264. PRPC_MESSAGE _pRpcMessage,
  6265. DWORD *_pdwStubPhase);
  6266. HRESULT STDMETHODCALLTYPE IMimeEditTag_SetDest_Proxy(
  6267. IMimeEditTag * This,
  6268. /* [in] */ BSTR bstr);
  6269. void __RPC_STUB IMimeEditTag_SetDest_Stub(
  6270. IRpcStubBuffer *This,
  6271. IRpcChannelBuffer *_pRpcChannelBuffer,
  6272. PRPC_MESSAGE _pRpcMessage,
  6273. DWORD *_pdwStubPhase);
  6274. HRESULT STDMETHODCALLTYPE IMimeEditTag_OnPreSave_Proxy(
  6275. IMimeEditTag * This);
  6276. void __RPC_STUB IMimeEditTag_OnPreSave_Stub(
  6277. IRpcStubBuffer *This,
  6278. IRpcChannelBuffer *_pRpcChannelBuffer,
  6279. PRPC_MESSAGE _pRpcMessage,
  6280. DWORD *_pdwStubPhase);
  6281. HRESULT STDMETHODCALLTYPE IMimeEditTag_OnPostSave_Proxy(
  6282. IMimeEditTag * This);
  6283. void __RPC_STUB IMimeEditTag_OnPostSave_Stub(
  6284. IRpcStubBuffer *This,
  6285. IRpcChannelBuffer *_pRpcChannelBuffer,
  6286. PRPC_MESSAGE _pRpcMessage,
  6287. DWORD *_pdwStubPhase);
  6288. HRESULT STDMETHODCALLTYPE IMimeEditTag_CanPackage_Proxy(
  6289. IMimeEditTag * This);
  6290. void __RPC_STUB IMimeEditTag_CanPackage_Stub(
  6291. IRpcStubBuffer *This,
  6292. IRpcChannelBuffer *_pRpcChannelBuffer,
  6293. PRPC_MESSAGE _pRpcMessage,
  6294. DWORD *_pdwStubPhase);
  6295. HRESULT STDMETHODCALLTYPE IMimeEditTag_IsValidMimeType_Proxy(
  6296. IMimeEditTag * This,
  6297. /* [in] */ LPWSTR pszTypeW);
  6298. void __RPC_STUB IMimeEditTag_IsValidMimeType_Stub(
  6299. IRpcStubBuffer *This,
  6300. IRpcChannelBuffer *_pRpcChannelBuffer,
  6301. PRPC_MESSAGE _pRpcMessage,
  6302. DWORD *_pdwStubPhase);
  6303. #endif /* __IMimeEditTag_INTERFACE_DEFINED__ */
  6304. #ifndef __IMimeEditTagCollection_INTERFACE_DEFINED__
  6305. #define __IMimeEditTagCollection_INTERFACE_DEFINED__
  6306. /* interface IMimeEditTagCollection */
  6307. /* [object][helpstring][uuid] */
  6308. typedef /* [unique] */ IMimeEditTagCollection *PMIMEEDITTAGCOLLECTION;
  6309. EXTERN_C const IID IID_IMimeEditTagCollection;
  6310. #if defined(__cplusplus) && !defined(CINTERFACE)
  6311. MIDL_INTERFACE("d09ee528-7b38-11d2-8c12-00c04fa31009")
  6312. IMimeEditTagCollection : public IUnknown
  6313. {
  6314. public:
  6315. virtual HRESULT STDMETHODCALLTYPE Init(
  6316. /* [in] */ IUnknown *pHtmlDoc) = 0;
  6317. virtual HRESULT STDMETHODCALLTYPE Next(
  6318. /* [in] */ ULONG cFetch,
  6319. /* [out] */ IMimeEditTag **ppTag,
  6320. /* [out] */ ULONG *pcFetched) = 0;
  6321. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  6322. virtual HRESULT STDMETHODCALLTYPE Count(
  6323. /* [out] */ ULONG *pcItems) = 0;
  6324. };
  6325. #else /* C style interface */
  6326. typedef struct IMimeEditTagCollectionVtbl
  6327. {
  6328. BEGIN_INTERFACE
  6329. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  6330. IMimeEditTagCollection * This,
  6331. /* [in] */ REFIID riid,
  6332. /* [iid_is][out] */ void **ppvObject);
  6333. ULONG ( STDMETHODCALLTYPE *AddRef )(
  6334. IMimeEditTagCollection * This);
  6335. ULONG ( STDMETHODCALLTYPE *Release )(
  6336. IMimeEditTagCollection * This);
  6337. HRESULT ( STDMETHODCALLTYPE *Init )(
  6338. IMimeEditTagCollection * This,
  6339. /* [in] */ IUnknown *pHtmlDoc);
  6340. HRESULT ( STDMETHODCALLTYPE *Next )(
  6341. IMimeEditTagCollection * This,
  6342. /* [in] */ ULONG cFetch,
  6343. /* [out] */ IMimeEditTag **ppTag,
  6344. /* [out] */ ULONG *pcFetched);
  6345. HRESULT ( STDMETHODCALLTYPE *Reset )(
  6346. IMimeEditTagCollection * This);
  6347. HRESULT ( STDMETHODCALLTYPE *Count )(
  6348. IMimeEditTagCollection * This,
  6349. /* [out] */ ULONG *pcItems);
  6350. END_INTERFACE
  6351. } IMimeEditTagCollectionVtbl;
  6352. interface IMimeEditTagCollection
  6353. {
  6354. CONST_VTBL struct IMimeEditTagCollectionVtbl *lpVtbl;
  6355. };
  6356. #ifdef COBJMACROS
  6357. #define IMimeEditTagCollection_QueryInterface(This,riid,ppvObject) \
  6358. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  6359. #define IMimeEditTagCollection_AddRef(This) \
  6360. (This)->lpVtbl -> AddRef(This)
  6361. #define IMimeEditTagCollection_Release(This) \
  6362. (This)->lpVtbl -> Release(This)
  6363. #define IMimeEditTagCollection_Init(This,pHtmlDoc) \
  6364. (This)->lpVtbl -> Init(This,pHtmlDoc)
  6365. #define IMimeEditTagCollection_Next(This,cFetch,ppTag,pcFetched) \
  6366. (This)->lpVtbl -> Next(This,cFetch,ppTag,pcFetched)
  6367. #define IMimeEditTagCollection_Reset(This) \
  6368. (This)->lpVtbl -> Reset(This)
  6369. #define IMimeEditTagCollection_Count(This,pcItems) \
  6370. (This)->lpVtbl -> Count(This,pcItems)
  6371. #endif /* COBJMACROS */
  6372. #endif /* C style interface */
  6373. HRESULT STDMETHODCALLTYPE IMimeEditTagCollection_Init_Proxy(
  6374. IMimeEditTagCollection * This,
  6375. /* [in] */ IUnknown *pHtmlDoc);
  6376. void __RPC_STUB IMimeEditTagCollection_Init_Stub(
  6377. IRpcStubBuffer *This,
  6378. IRpcChannelBuffer *_pRpcChannelBuffer,
  6379. PRPC_MESSAGE _pRpcMessage,
  6380. DWORD *_pdwStubPhase);
  6381. HRESULT STDMETHODCALLTYPE IMimeEditTagCollection_Next_Proxy(
  6382. IMimeEditTagCollection * This,
  6383. /* [in] */ ULONG cFetch,
  6384. /* [out] */ IMimeEditTag **ppTag,
  6385. /* [out] */ ULONG *pcFetched);
  6386. void __RPC_STUB IMimeEditTagCollection_Next_Stub(
  6387. IRpcStubBuffer *This,
  6388. IRpcChannelBuffer *_pRpcChannelBuffer,
  6389. PRPC_MESSAGE _pRpcMessage,
  6390. DWORD *_pdwStubPhase);
  6391. HRESULT STDMETHODCALLTYPE IMimeEditTagCollection_Reset_Proxy(
  6392. IMimeEditTagCollection * This);
  6393. void __RPC_STUB IMimeEditTagCollection_Reset_Stub(
  6394. IRpcStubBuffer *This,
  6395. IRpcChannelBuffer *_pRpcChannelBuffer,
  6396. PRPC_MESSAGE _pRpcMessage,
  6397. DWORD *_pdwStubPhase);
  6398. HRESULT STDMETHODCALLTYPE IMimeEditTagCollection_Count_Proxy(
  6399. IMimeEditTagCollection * This,
  6400. /* [out] */ ULONG *pcItems);
  6401. void __RPC_STUB IMimeEditTagCollection_Count_Stub(
  6402. IRpcStubBuffer *This,
  6403. IRpcChannelBuffer *_pRpcChannelBuffer,
  6404. PRPC_MESSAGE _pRpcMessage,
  6405. DWORD *_pdwStubPhase);
  6406. #endif /* __IMimeEditTagCollection_INTERFACE_DEFINED__ */
  6407. /* interface __MIDL_itf_mimeole_0288 */
  6408. /* [local] */
  6409. #if (_WIN32_OE >= 0x0500)
  6410. // --------------------------------------------------------------------------------
  6411. // CMDSETID_MimeEdit commands
  6412. // --------------------------------------------------------------------------------
  6413. #define MECMDID_DIRTY 1
  6414. #define MECMDID_EMPTY 2
  6415. #define MECMDID_STYLE 3
  6416. #define MECMDID_EDITHTML 4
  6417. #define MECMDID_DOWNGRADEPLAINTEXT 5
  6418. #define MECMDID_SETTEXT 6
  6419. #define MECMDID_ROT13 7
  6420. #define MECMDID_INSERTTEXTFILE 8
  6421. #define MECMDID_VIEWSOURCE 9
  6422. #define MECMDID_FORMATFONT 10
  6423. #define MECMDID_PREVIEWFORMAT 11
  6424. #define MECMDID_EDITMODE 12
  6425. #define MECMDID_CHARSET 13
  6426. #define MECMDID_SAVEASSTATIONERY 14
  6427. #define MECMDID_BACKGROUNDIMAGE 15
  6428. #define MECMDID_INSERTTEXT 16
  6429. #define MECMDID_INSERTHTML 17
  6430. #define MECMDID_BACKGROUNDCOLOR 18
  6431. #define MECMDID_APPLYDOCUMENT 19
  6432. #define MECMDID_SAVEATTACHMENTS 20
  6433. #define MECMDID_BACKGROUNDSOUND 21
  6434. #define MECMDID_INSERTBGSOUND 22
  6435. #define MECMDID_SHOWSOURCETABS 23
  6436. #define MECMDID_SETSOURCETAB 24
  6437. #define MECMDID_TABLINKS 25
  6438. #define MECMDID_FORMATPARAGRAPH 26
  6439. // --------------------------------------------------------------------------------
  6440. // MEO_FLAGS
  6441. // --------------------------------------------------------------------------------
  6442. #define MEO_FLAGS_INCLUDEMSG 0x0001
  6443. #define MEO_FLAGS_HTML 0x0002
  6444. #define MEO_FLAGS_AUTOINLINE 0x0004
  6445. #define MEO_FLAGS_SLIDESHOW 0x0008
  6446. #define MEO_FLAGS_AUTOTEXT 0x0010
  6447. #define MEO_FLAGS_BLOCKQUOTE 0x0020
  6448. #define MEO_FLAGS_SENDIMAGES 0x0040
  6449. #define MEO_FLAGS_DONTSPELLCHECKQUOTED 0x0080
  6450. #define MEO_FLAGS_SENDEXTERNALIMGSRC 0x0100
  6451. // --------------------------------------------------------------------------------
  6452. // MECMDID_VIEWSOURCE options
  6453. // --------------------------------------------------------------------------------
  6454. #define MECMD_VS_HTML 0x0001
  6455. #define MECMD_VS_MESSAGE 0x0002
  6456. // --------------------------------------------------------------------------------
  6457. // MEST_
  6458. // --------------------------------------------------------------------------------
  6459. #define MEST_EDIT 0
  6460. #define MEST_SOURCE 1
  6461. #define MEST_PREVIEW 2
  6462. #define MEST_NEXT 3
  6463. #define MEST_PREVIOUS 4
  6464. // --------------------------------------------------------------------------------
  6465. // MECMDID_STYLE options
  6466. // --------------------------------------------------------------------------------
  6467. #define MESTYLE_NOHEADER 0
  6468. #define MESTYLE_PREVIEW 1
  6469. #define MESTYLE_FORMATBAR 2
  6470. #define MESTYLE_MINIHEADER 3
  6471. // --------------------------------------------------------------------------------
  6472. // MECMDID_HEADER_TYLE options
  6473. // --------------------------------------------------------------------------------
  6474. #define MEHEADER_NONE 0x00
  6475. #define MEHEADER_NEWS 0x01
  6476. #define MEHEADER_MAIL 0x02
  6477. #define MEHEADER_FORCE_ENGLISH 0x04
  6478. // --------------------------------------------------------------------------------
  6479. // MECMDID_SIGNATURE_ENABLED options
  6480. // --------------------------------------------------------------------------------
  6481. #define MESIG_AUTO 0x0001
  6482. #define MESIG_MANUAL 0x0002
  6483. // --------------------------------------------------------------------------------
  6484. // MECMDID_SIGNATURE_OPTIONS options
  6485. // --------------------------------------------------------------------------------
  6486. #define MESIGOPT_PLAIN 0x0001
  6487. #define MESIGOPT_TOP 0x0002
  6488. #define MESIGOPT_PREFIX 0x0004
  6489. #define MESIGOPT_BOTTOM 0x0008
  6490. #define MESIGOPT_HTML 0x0010
  6491. // --------------------------------------------------------------------------------
  6492. // MEHOSTCMDID_BORDERFLAGS options
  6493. // --------------------------------------------------------------------------------
  6494. #define MEBF_OUTERCLIENTEDGE 0x0001
  6495. #define MEBF_INNERCLIENTEDGE 0x0002
  6496. #define MEBF_FORMATBARSEP 0x0004
  6497. #define MEBF_NOSCROLL 0x0008
  6498. // --------------------------------------------------------------------------------
  6499. // MEHOSTCMDID_SPELL_OPTIONS options
  6500. // --------------------------------------------------------------------------------
  6501. #define MESPELLOPT_IGNORENUMBER 0x0001
  6502. #define MESPELLOPT_IGNOREUPPER 0x0002
  6503. #define MESPELLOPT_IGNOREDBCS 0x0004
  6504. #define MESPELLOPT_IGNOREPROTECT 0x0008
  6505. #define MESPELLOPT_IGNOREURL 0x0010
  6506. #define MESPELLOPT_ALWAYSSUGGEST 0x0020
  6507. #define MESPELLOPT_CHECKONSEND 0x0040
  6508. #define MESPELLOPT_CHECKONTYPE 0x0080
  6509. // --------------------------------------------------------------------------------
  6510. // MEHOSTCMDID_SOURCEEDIT_FLAGS options
  6511. // --------------------------------------------------------------------------------
  6512. #define MESRCFLAGS_COLOR 0x0001
  6513. // --------------------------------------------------------------------------------
  6514. // CMDSETID_MimeEditHost commands
  6515. // --------------------------------------------------------------------------------
  6516. #define MEHOSTCMDID_SIGNATURE_ENABLED 1
  6517. #define MEHOSTCMDID_SIGNATURE_OPTIONS 2
  6518. #define MEHOSTCMDID_SIGNATURE 3
  6519. #define MEHOSTCMDID_HEADER_TYPE 4
  6520. #define MEHOSTCMDID_ONPARSECOMPLETE 5
  6521. #define MEHOSTCMDID_FLAGS 6
  6522. #define MEHOSTCMDID_QUOTE_CHAR 7
  6523. #define MEHOSTCMDID_REPLY_TICK_COLOR 8
  6524. #define MEHOSTCMDID_COMPOSE_FONT 9
  6525. #define MEHOSTCMDID_ADD_TO_ADDRESSBOOK 10
  6526. #define MEHOSTCMDID_ADD_TO_FAVORITES 11
  6527. #define MEHOSTCMDID_SLIDESHOW_DELAY 12
  6528. #define MEHOSTCMDID_FONTCACHE 13
  6529. #define MEHOSTCMDID_BORDERFLAGS 14
  6530. #define MEHOSTCMDID_SECURITY_ZONE 15
  6531. #define MEHOSTCMDID_SPELL_OPTIONS 16
  6532. #define MEHOSTCMDID_SAVEATTACH_PATH 17
  6533. #define MEHOSTCMDID_SOURCEEDIT_FLAGS 18
  6534. #define MEHOSTCMDID_SPELL_LANGUAGE 19
  6535. #define MEHOSTCMDID_IS_READ_IN_TEXT_ONLY 22
  6536. #endif //_WIN32_OE
  6537. // --------------------------------------------------------------------------------
  6538. // MimeOLE Exported C API Functions
  6539. // --------------------------------------------------------------------------------
  6540. #ifdef __cplusplus
  6541. extern "C" {
  6542. #endif
  6543. // --------------------------------------------------------------------------------
  6544. // Depends
  6545. // --------------------------------------------------------------------------------
  6546. #include <urlmon.h>
  6547. // --------------------------------------------------------------------------------
  6548. // API Name Decoration
  6549. // --------------------------------------------------------------------------------
  6550. #if !defined(_MIMEOLE_)
  6551. #define MIMEOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI
  6552. #define MIMEOLEAPI_(_type_) EXTERN_C DECLSPEC_IMPORT _type_ WINAPI
  6553. #else
  6554. #define MIMEOLEAPI EXTERN_C HRESULT WINAPI
  6555. #define MIMEOLEAPI_(_type_) EXTERN_C _type_ WINAPI
  6556. #endif
  6557. // --------------------------------------------------------------------------------
  6558. // Constants
  6559. // --------------------------------------------------------------------------------
  6560. #define NOFLAGS 0
  6561. #define CCHMAX_CID 255
  6562. #define CCHMAX_MID 255
  6563. #define CCHMAX_INTERNET_DATE 50
  6564. #define MECD_HTML 0x0001
  6565. #define MECD_PLAINTEXT 0x0002
  6566. #define MECD_ENCODEIMAGES 0x0004
  6567. #define MECD_ENCODEFILEURLSONLY 0x0008
  6568. #define MECD_ENCODESOUNDS 0x0010
  6569. #define MECD_ENCODEVIDEO 0x0020
  6570. #define MECD_ENCODEPLUGINS 0x0040
  6571. // --------------------------------------------------------------------------------
  6572. // Macros
  6573. // --------------------------------------------------------------------------------
  6574. #define MimeOleVariantInit(_pProp) \
  6575. ZeroMemory(_pProp, sizeof(PROPVARIANT))
  6576. // --------------------------------------------------------------------------------
  6577. // MimeOLE API Prototypes
  6578. // --------------------------------------------------------------------------------
  6579. #define MIMEOLE_COMPAT_OE5 0x00000001
  6580. #define MIMEOLE_COMPAT_MLANG2 0x00000002
  6581. MIMEOLEAPI MimeOleSetCompatMode(
  6582. /* in */ DWORD dwMode);
  6583. MIMEOLEAPI MimeOleContentTypeFromUrl(
  6584. /* in */ LPCSTR pszBase,
  6585. /* in */ LPCSTR pszUrl,
  6586. /* out */ LPSTR *ppszCntType);
  6587. MIMEOLEAPI MimeOleParseMhtmlUrl(
  6588. /* in */ LPSTR pszUrl,
  6589. /* out */ LPSTR *ppszRootUrl,
  6590. /* out */ LPSTR *ppszBodyUrl);
  6591. #ifndef MAC
  6592. MIMEOLEAPI MimeOleObjectFromUrl(
  6593. /* in */ LPCSTR pszUrl,
  6594. /* in */ BOOL fCreate,
  6595. /* in */ REFIID riid,
  6596. /* out */ LPVOID *ppvObject,
  6597. /* out */ IUnknown **ppUnkKeepAlive);
  6598. MIMEOLEAPI MimeOleObjectFromMoniker(
  6599. /* in */ BINDF bindf,
  6600. /* in */ IMoniker *pmkOriginal,
  6601. /* in */ IBindCtx *pBindCtx,
  6602. /* in */ REFIID riid,
  6603. /* out */ LPVOID *ppvObject,
  6604. /* out */ IMoniker **ppmkNew);
  6605. #endif // !MAC
  6606. MIMEOLEAPI MimeOleCombineURL(
  6607. /* in */ LPCSTR pszBase,
  6608. /* in */ ULONG cchBase,
  6609. /* in */ LPCSTR pszURL,
  6610. /* in */ ULONG cchURL,
  6611. /* in */ BOOL fUnEscape,
  6612. /* out */ LPSTR *ppszAbsolute);
  6613. MIMEOLEAPI MimeOleGetSubjectFileName(
  6614. /* in */ IMimePropertySet *pPropertySet,
  6615. /* out */ ULONG *pulPart,
  6616. /* out */ ULONG *pulTotal,
  6617. /* in,out */ LPSTR pszFileName,
  6618. /* in */ ULONG cchMax);
  6619. MIMEOLEAPI MimeOleCreateWebDocument(
  6620. /* in */ LPCSTR pszBase,
  6621. /* in */ LPCSTR pszURL,
  6622. /* out */ IMimeWebDocument **ppDocument);
  6623. MIMEOLEAPI MimeOleGetRelatedSection(
  6624. /* in */ IMimeMessageTree *pTree,
  6625. /* in */ boolean fCreate,
  6626. /* out */ LPHBODY phRelated,
  6627. /* out */ boolean *pfMultiple);
  6628. MIMEOLEAPI MimeOleGetMixedSection(
  6629. /* in */ IMimeMessageTree *pTree,
  6630. /* in */ boolean fCreate,
  6631. /* out */ LPHBODY phMixed,
  6632. /* out */ boolean *pfMultiple);
  6633. MIMEOLEAPI MimeOleGetAlternativeSection(
  6634. /* in */ IMimeMessageTree *pTree,
  6635. /* out */ LPHBODY phAlternative,
  6636. /* out */ boolean *pfMultiple);
  6637. MIMEOLEAPI MimeOleGenerateCID(
  6638. /* in,out */ LPSTR pszCID,
  6639. /* in */ ULONG cchMax,
  6640. /* in */ boolean fAbsolute);
  6641. MIMEOLEAPI MimeOleGenerateMID(
  6642. /* in,out */ LPSTR pszMID,
  6643. /* in */ ULONG cchMax,
  6644. /* in */ boolean fAbsolute);
  6645. MIMEOLEAPI MimeOleCreateByteStream(
  6646. /* out */ IStream **ppStream);
  6647. MIMEOLEAPI MimeOleGetPropertySchema(
  6648. /* out */ IMimePropertySchema **ppSchema);
  6649. MIMEOLEAPI MimeOleQueryString(
  6650. /* in */ LPCSTR pszSearchMe,
  6651. /* in */ LPCSTR pszCriteria,
  6652. /* in */ boolean fSubString,
  6653. /* in */ boolean fCaseSensitive);
  6654. MIMEOLEAPI MimeOleGetPropA(
  6655. /* in */ IMimePropertySet *pPropertyset,
  6656. /* in */ LPCSTR pszName,
  6657. /* in */ DWORD dwFlags,
  6658. /* out */ LPSTR *ppszData);
  6659. MIMEOLEAPI MimeOleSetPropA(
  6660. /* in */ IMimePropertySet *pPropertyset,
  6661. /* in */ LPCSTR pszName,
  6662. /* in */ DWORD dwFlags,
  6663. /* in */ LPCSTR pszData);
  6664. MIMEOLEAPI MimeOleGetPropW(
  6665. /* in */ IMimePropertySet *pPropertyset,
  6666. /* in */ LPCSTR pszName,
  6667. /* in */ DWORD dwFlags,
  6668. /* out */ LPWSTR *ppszData);
  6669. MIMEOLEAPI MimeOleSetPropW(
  6670. /* in */ IMimePropertySet *pPropertyset,
  6671. /* in */ LPCSTR pszName,
  6672. /* in */ DWORD dwFlags,
  6673. /* in */ LPWSTR pszData);
  6674. MIMEOLEAPI MimeOleGetBodyPropA(
  6675. /* in */ IMimeMessageTree *pTree,
  6676. /* in */ HBODY hBody,
  6677. /* in */ LPCSTR pszName,
  6678. /* in */ DWORD dwFlags,
  6679. /* out */ LPSTR *ppszData);
  6680. MIMEOLEAPI MimeOleSetBodyPropA(
  6681. /* in */ IMimeMessageTree *pTree,
  6682. /* in */ HBODY hBody,
  6683. /* in */ LPCSTR pszName,
  6684. /* in */ DWORD dwFlags,
  6685. /* in */ LPCSTR pszData);
  6686. MIMEOLEAPI MimeOleGetBodyPropW(
  6687. /* in */ IMimeMessageTree *pTree,
  6688. /* in */ HBODY hBody,
  6689. /* in */ LPCSTR pszName,
  6690. /* in */ DWORD dwFlags,
  6691. /* out */ LPWSTR *ppszData);
  6692. MIMEOLEAPI MimeOleSetBodyPropW(
  6693. /* in */ IMimeMessageTree *pTree,
  6694. /* in */ HBODY hBody,
  6695. /* in */ LPCSTR pszName,
  6696. /* in */ DWORD dwFlags,
  6697. /* in */ LPCWSTR pszData);
  6698. MIMEOLEAPI MimeOleCreateHeaderTable(
  6699. /* out */ IMimeHeaderTable **ppTable);
  6700. MIMEOLEAPI MimeOleVariantFree(
  6701. /* in,out */ LPPROPVARIANT pProp);
  6702. MIMEOLEAPI MimeOleVariantCopy(
  6703. /* out */ LPPROPVARIANT pDest,
  6704. /* in */ LPPROPVARIANT pSource);
  6705. MIMEOLEAPI MimeOleGetExtClassId(
  6706. /* in */ LPCSTR pszExtension,
  6707. /* out */ LPCLSID pclsid);
  6708. MIMEOLEAPI MimeOleEncodeHeader(
  6709. /* in */ HCHARSET hCharset,
  6710. /* in */ LPPROPVARIANT pData,
  6711. /* out */ LPSTR *ppszEncoded,
  6712. /* in,out */ LPRFC1522INFO pRfc1522Info);
  6713. MIMEOLEAPI MimeOleDecodeHeader(
  6714. /* in */ HCHARSET hCharset,
  6715. /* in */ LPCSTR pszData,
  6716. /* out */ LPPROPVARIANT pDecoded,
  6717. /* in,out */ LPRFC1522INFO pRfc1522Info);
  6718. MIMEOLEAPI MimeOleRfc1522Decode(
  6719. /* in */ LPCSTR pszValue,
  6720. /* in */ LPSTR pszCharset,
  6721. /* in */ ULONG cchmax,
  6722. /* out */ LPSTR *ppszDecoded);
  6723. MIMEOLEAPI MimeOleRfc1522Encode(
  6724. /* in */ LPCSTR pszValue,
  6725. /* in */ HCHARSET hCharset,
  6726. /* out */ LPSTR *ppszEncoded);
  6727. MIMEOLEAPI MimeOleGetInternat(
  6728. /* out */ IMimeInternational **ppInternat);
  6729. MIMEOLEAPI MimeOleFindCharset(
  6730. /* in */ LPCSTR pszCharset,
  6731. /* out */ LPHCHARSET phCharset);
  6732. MIMEOLEAPI MimeOleGetCharsetInfo(
  6733. /* in */ HCHARSET hCharset,
  6734. /* out */ LPINETCSETINFO pCsetInfo);
  6735. MIMEOLEAPI MimeOleGetCodePageInfo(
  6736. /* in */ CODEPAGEID cpiCodePage,
  6737. /* out */ LPCODEPAGEINFO pCodePageInfo);
  6738. MIMEOLEAPI MimeOleGetDefaultCharset(
  6739. /* out */ LPHCHARSET phCharset);
  6740. MIMEOLEAPI MimeOleSetDefaultCharset(
  6741. /* in */ HCHARSET hCharset);
  6742. MIMEOLEAPI MimeOleGetCodePageCharset(
  6743. /* in */ CODEPAGEID cpiCodePage,
  6744. /* in */ CHARSETTYPE ctCsetType,
  6745. /* out */ LPHCHARSET phCharset);
  6746. MIMEOLEAPI MimeOleCreateVirtualStream(
  6747. /* out */ IStream **ppStream);
  6748. MIMEOLEAPI MimeOleOpenFileStream(
  6749. /* in */ LPCSTR pszFilePath,
  6750. /* in */ DWORD dwCreationDistribution,
  6751. /* in */ DWORD dwAccess,
  6752. /* out */ IStream **ppstmFile);
  6753. MIMEOLEAPI MimeOleIsTnefStream(
  6754. /* in */ IStream *pStream);
  6755. MIMEOLEAPI MimeOleGenerateFileName(
  6756. /* in */ LPCSTR pszContentType,
  6757. /* in */ LPCSTR pszSuggest,
  6758. /* in */ LPCSTR pszDefaultExt,
  6759. /* in,out */ LPSTR *ppszFileName);
  6760. MIMEOLEAPI MimeOleGetFileExtension(
  6761. /* in */ LPCSTR pszFilePath,
  6762. /* in,out */ LPSTR pszExt,
  6763. /* in */ ULONG cchMax);
  6764. MIMEOLEAPI MimeOleCreateSecurity(
  6765. /* out */ IMimeSecurity **ppSecurity);
  6766. MIMEOLEAPI MimeOleInetDateToFileTime(
  6767. /* in */ LPCSTR pszDate,
  6768. /* out */ LPFILETIME pft);
  6769. MIMEOLEAPI MimeOleFileTimeToInetDate(
  6770. /* in */ LPFILETIME pft,
  6771. /* in,out */ LPSTR pszDate,
  6772. /* in */ ULONG cchMax);
  6773. MIMEOLEAPI MimeOleCreateMessageParts(
  6774. /* out */ IMimeMessageParts **ppParts);
  6775. MIMEOLEAPI MimeOleGetAllocator(
  6776. /* out */ IMimeAllocator **ppAllocator);
  6777. MIMEOLEAPI MimeOleParseRfc822Address(
  6778. /* in */ DWORD dwAdrType,
  6779. /* in */ ENCODINGTYPE ietEncoding,
  6780. /* in */ LPCSTR pszRfc822Adr,
  6781. /* out */ LPADDRESSLIST pList);
  6782. MIMEOLEAPI MimeOleCreateMessage(
  6783. /* in */ IUnknown *pUnkOuter,
  6784. /* out */ IMimeMessage **ppMessage);
  6785. MIMEOLEAPI MimeOleMergePartialHeaders(
  6786. /* in */ IStream *pstmIn,
  6787. /* in */ IStream *pstmOut);
  6788. MIMEOLEAPI MimeOleEscapeString(
  6789. /* in */ CODEPAGEID cpiCodePage,
  6790. /* in */ LPCSTR pszIn,
  6791. /* out */ LPSTR *ppszOut);
  6792. MIMEOLEAPI MimeOleGetExtContentType(
  6793. /* in */ LPCSTR pszExtension,
  6794. /* out */ LPSTR *ppszContentType);
  6795. MIMEOLEAPI MimeOleGetContentTypeExt(
  6796. /* in */ LPCSTR pszContentType,
  6797. /* out */ LPSTR *ppszExtension);
  6798. MIMEOLEAPI MimeOleGetFileInfo(
  6799. /* in */ LPSTR pszFilePath,
  6800. /* out */ LPSTR *ppszCntType,
  6801. /* out */ LPSTR *ppszSubType,
  6802. /* out */ LPSTR *ppszCntDesc,
  6803. /* out */ LPSTR *ppszFileName,
  6804. /* out */ LPSTR *ppszExtension);
  6805. MIMEOLEAPI MimeOleCreateBody(
  6806. /* out */ IMimeBody **ppBody);
  6807. MIMEOLEAPI MimeOleCreatePropertySet(
  6808. /* in */ IUnknown *pUnkOuter,
  6809. /* out */ IMimePropertySet **ppPropertySet);
  6810. MIMEOLEAPI MimeOleCreateMessageTree(
  6811. /* in */ IUnknown *pUnkOuter,
  6812. /* out */ IMimeMessageTree **ppMessageTree);
  6813. MIMEOLEAPI MimeOleGetCertsFromThumbprints(
  6814. /* in */ THUMBBLOB *const rgThumbprint,
  6815. /* in,out */ X509CERTRESULT *const pResults,
  6816. /* in */ const HCERTSTORE *const rghCertStore,
  6817. /* in */ const DWORD cCertStore);
  6818. MIMEOLEAPI MimeOleSplitMessage(
  6819. /* in */ IMimeMessage *pMessage,
  6820. /* in */ ULONG cbMaxPart,
  6821. /* out */ IMimeMessageParts **ppParts);
  6822. MIMEOLEAPI MimeOleClearDirtyTree(
  6823. /* in */ IMimeMessageTree *pTree);
  6824. MIMEOLEAPI MimeOleConvertEnrichedToHTML(
  6825. /* in */ CODEPAGEID codepage,
  6826. /* in */ IStream *pIn,
  6827. /* in */ IStream *pOut);
  6828. MIMEOLEAPI MimeOleIsEnrichedStream(
  6829. /* in */ IStream *pStream);
  6830. MIMEOLEAPI MimeOleSMimeCapsToDlg(
  6831. /* in */ LPBYTE pbSMimeCaps,
  6832. /* in */ DWORD cbSMimeCaps,
  6833. /* in */ DWORD cCerts,
  6834. /* in */ PCX509CERT * rgCerts,
  6835. /* in */ HWND hwndDlg,
  6836. /* in */ DWORD idEncAlgs,
  6837. /* in */ DWORD idSignAlgs,
  6838. /* in */ DWORD idBlob);
  6839. MIMEOLEAPI MimeOleSMimeCapsFromDlg(
  6840. /* in */ HWND hwnd,
  6841. /* in */ DWORD idEncAlgs,
  6842. /* in */ DWORD idSignAlgs,
  6843. /* in */ DWORD idBlob,
  6844. /* in/out */ LPBYTE pbSMimeCaps,
  6845. /* in/out */ DWORD * pcbSmimeCaps);
  6846. MIMEOLEAPI MimeOleSMimeCapInit(
  6847. /* in */ LPBYTE pbSMimeCap,
  6848. /* in */ DWORD cbSMimeCap,
  6849. /* out */ LPVOID * ppv);
  6850. MIMEOLEAPI MimeOleSMimeCapAddSMimeCap(
  6851. /* in */ LPBYTE pbSMimeCap,
  6852. /* in */ DWORD cbSMimeCap,
  6853. /* in/out */ LPVOID pv);
  6854. MIMEOLEAPI MimeOleSMimeCapAddCert(
  6855. /* in */ LPBYTE pbCert,
  6856. /* in */ DWORD cbCert,
  6857. /* in */ BOOL fParanoid,
  6858. /* in/out */ LPVOID pv);
  6859. MIMEOLEAPI MimeOleSMimeCapGetEncAlg(
  6860. /* in */ LPVOID pv,
  6861. /* in/out */ LPBYTE pbEncode,
  6862. /* in/out */ DWORD * pcbEncode,
  6863. /* in/out */ DWORD * pdwBits);
  6864. MIMEOLEAPI MimeOleSMimeCapGetHashAlg(
  6865. /* in */ LPVOID pv,
  6866. /* in/out */ LPBYTE pbEncode,
  6867. /* in/out */ DWORD * pcbEncode,
  6868. /* in/out */ DWORD * pfBlobSign);
  6869. MIMEOLEAPI MimeOleSMimeCapRelease(
  6870. /* in */ LPVOID pv);
  6871. MIMEOLEAPI MimeOleAlgNameFromSMimeCap(
  6872. /* in */ LPBYTE pb,
  6873. /* in */ DWORD cb,
  6874. /* out */ LPCSTR * ppzProtocol);
  6875. MIMEOLEAPI MimeOleAlgStrengthFromSMimeCap(
  6876. /* in */ LPBYTE pb,
  6877. /* in */ DWORD cb,
  6878. /* in */ BOOL fEncryption,
  6879. /* out */ DWORD * pdwStrength);
  6880. MIMEOLEAPI MimeOleSMimeCapsFull(
  6881. /* in */ LPVOID pv,
  6882. /* in */ BOOL fFullEncryption,
  6883. /* in */ BOOL fFullSigning,
  6884. /* in/out */ LPBYTE pbSymCaps,
  6885. /* in/out */ DWORD * pcbSymCaps);
  6886. #if (_WIN32_OE >= 0x0500)
  6887. MIMEOLEAPI MimeOleCreateHashTable(
  6888. /* in */ DWORD dwSize,
  6889. /* in */ BOOL fDupeKeys,
  6890. /* out */ IHashTable **ppHashTable);
  6891. MIMEOLEAPI MimeOleStripHeaders(
  6892. /* in */ IMimeMessage *pMessage,
  6893. /* in */ HBODY hBody,
  6894. /* in */ LPCSTR pszNameDelete,
  6895. /* in */ LPCSTR pszHeaderAdd,
  6896. /* in */ IStream **ppStream);
  6897. #endif //_WIN32_OE
  6898. #if (_WIN32_OE >= 0x0500)
  6899. // --------------------------------------------------------------------------------
  6900. // MimeEdit API Prototypes
  6901. // --------------------------------------------------------------------------------
  6902. MIMEOLEAPI MimeEditViewSource(
  6903. /* in */ HWND hwndParent,
  6904. /* in */ IMimeMessage *pMsg);
  6905. MIMEOLEAPI MimeEditIsSafeToRun(
  6906. /* in */ HWND hwndParent,
  6907. /* in */ LPCSTR lpszFileName);
  6908. MIMEOLEAPI MimeEditVerifyTrust(
  6909. /* in */ HWND hwndParent,
  6910. /* in */ LPCSTR lpszFileName,
  6911. /* in */ LPCSTR lpszPathName);
  6912. MIMEOLEAPI MimeEditCreateMimeDocument(
  6913. /* in */ IUnknown *pDoc,
  6914. /* in */ IMimeMessage *pMsgSrc,
  6915. /* in */ DWORD dwFlags,
  6916. /* out */ IMimeMessage **ppMsg);
  6917. MIMEOLEAPI MimeEditGetBackgroundImageUrl(
  6918. /* in */ IUnknown *pDoc,
  6919. /* out */ BSTR *pbstr);
  6920. MIMEOLEAPI MimeEditDocumentFromStream(
  6921. /* in */ IStream *pstm,
  6922. /* in */ REFIID riid,
  6923. /* out */ void **ppDoc);
  6924. #ifdef __WINCRYPT_H__
  6925. //+-------------------------------------------------------------------------
  6926. // RecipientID
  6927. //
  6928. // The value of dwRecepintType MUST be 0.
  6929. //--------------------------------------------------------------------------
  6930. #define szOID_Microsoft_Encryption_Cert "1.3.6.1.4.1.311.16.4"
  6931. typedef struct _CRYPT_RECIPIENT_ID {
  6932. DWORD dwRecipientType;
  6933. CERT_NAME_BLOB Issuer;
  6934. CRYPT_INTEGER_BLOB SerialNumber;
  6935. } CRYPT_RECIPIENT_ID, * PCRYPT_RECIPIENT_ID;
  6936. #endif // __WINCRYPT_H__
  6937. #endif //_WIN32_OE
  6938. #ifdef __cplusplus
  6939. }
  6940. #endif
  6941. extern RPC_IF_HANDLE __MIDL_itf_mimeole_0288_v0_0_c_ifspec;
  6942. extern RPC_IF_HANDLE __MIDL_itf_mimeole_0288_v0_0_s_ifspec;
  6943. /* Additional Prototypes for ALL interfaces */
  6944. unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
  6945. unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
  6946. unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
  6947. void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
  6948. unsigned long __RPC_USER HFONT_UserSize( unsigned long *, unsigned long , HFONT * );
  6949. unsigned char * __RPC_USER HFONT_UserMarshal( unsigned long *, unsigned char *, HFONT * );
  6950. unsigned char * __RPC_USER HFONT_UserUnmarshal(unsigned long *, unsigned char *, HFONT * );
  6951. void __RPC_USER HFONT_UserFree( unsigned long *, HFONT * );
  6952. /* end of Additional Prototypes */
  6953. #ifdef __cplusplus
  6954. }
  6955. #endif
  6956. #endif