0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20 ********\.*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 70 69 mapi
0070: 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 *.*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 *.*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01d0: 20 20 20 20 20 20 20 20 62 79 20 53 74 65 77 61 by Stewa
01e0: 72 74 20 47 6f 72 64 6f 6e 20 20 20 20 20 20 20 rt Gordon
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 *.*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a *.
0250: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *
0260: 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 20 69 Placed i
0270: 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 nto public domai
0280: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n
0290: 20 20 20 20 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a *.\*****
02a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02e0: 2a 2a 2f 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 **/.module win32
02f0: 2e 6d 61 70 69 3b 0a 0a 70 72 69 76 61 74 65 20 .mapi;..private
0300: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e import win32.win
0310: 64 65 66 3b 0a 0a 2f 2f 20 46 49 58 4d 45 3a 20 def;..// FIXME:
0320: 63 68 65 63 6b 20 74 79 70 65 73 20 61 6e 64 20 check types and
0330: 67 72 6f 75 70 69 6e 67 20 6f 66 20 63 6f 6e 73 grouping of cons
0340: 74 61 6e 74 73 0a 0a 65 6e 75 6d 20 7b 0a 09 53 tants..enum {..S
0350: 55 43 43 45 53 53 5f 53 55 43 43 45 53 53 2c 0a UCCESS_SUCCESS,.
0360: 09 4d 41 50 49 5f 55 53 45 52 5f 41 42 4f 52 54 .MAPI_USER_ABORT
0370: 2c 0a 09 4d 41 50 49 5f 45 5f 55 53 45 52 5f 41 ,..MAPI_E_USER_A
0380: 42 4f 52 54 20 20 20 20 20 20 20 20 3d 20 4d 41 BORT = MA
0390: 50 49 5f 55 53 45 52 5f 41 42 4f 52 54 2c 0a 09 PI_USER_ABORT,..
03a0: 4d 41 50 49 5f 45 5f 46 41 49 4c 55 52 45 2c 0a MAPI_E_FAILURE,.
03b0: 09 4d 41 50 49 5f 45 5f 4c 4f 47 49 4e 5f 46 41 .MAPI_E_LOGIN_FA
03c0: 49 4c 55 52 45 2c 0a 09 4d 41 50 49 5f 45 5f 4c ILURE,..MAPI_E_L
03d0: 4f 47 4f 4e 5f 46 41 49 4c 55 52 45 20 20 20 20 OGON_FAILURE
03e0: 20 3d 20 4d 41 50 49 5f 45 5f 4c 4f 47 49 4e 5f = MAPI_E_LOGIN_
03f0: 46 41 49 4c 55 52 45 2c 0a 09 4d 41 50 49 5f 45 FAILURE,..MAPI_E
0400: 5f 44 49 53 4b 5f 46 55 4c 4c 09 20 20 20 20 20 _DISK_FULL.
0410: 3d 20 34 2c 0a 09 4d 41 50 49 5f 45 5f 49 4e 53 = 4,..MAPI_E_INS
0420: 55 46 46 49 43 49 45 4e 54 5f 4d 45 4d 4f 52 59 UFFICIENT_MEMORY
0430: 2c 0a 09 4d 41 50 49 5f 45 5f 41 43 43 45 53 53 ,..MAPI_E_ACCESS
0440: 5f 44 45 4e 49 45 44 2c 0a 09 4d 41 50 49 5f 45 _DENIED,..MAPI_E
0450: 5f 42 4c 4b 5f 54 4f 4f 5f 53 4d 41 4c 4c 20 20 _BLK_TOO_SMALL
0460: 20 20 20 3d 20 4d 41 50 49 5f 45 5f 41 43 43 45 = MAPI_E_ACCE
0470: 53 53 5f 44 45 4e 49 45 44 2c 20 2f 2f 20 3d 20 SS_DENIED, // =
0480: 36 0a 09 4d 41 50 49 5f 45 5f 54 4f 4f 5f 4d 41 6..MAPI_E_TOO_MA
0490: 4e 59 5f 53 45 53 53 49 4f 4e 53 20 3d 20 38 2c NY_SESSIONS = 8,
04a0: 0a 09 4d 41 50 49 5f 45 5f 54 4f 4f 5f 4d 41 4e ..MAPI_E_TOO_MAN
04b0: 59 5f 46 49 4c 45 53 2c 0a 09 4d 41 50 49 5f 45 Y_FILES,..MAPI_E
04c0: 5f 54 4f 4f 5f 4d 41 4e 59 5f 52 45 43 49 50 49 _TOO_MANY_RECIPI
04d0: 45 4e 54 53 2c 0a 09 4d 41 50 49 5f 45 5f 41 54 ENTS,..MAPI_E_AT
04e0: 54 41 43 48 4d 45 4e 54 5f 4e 4f 54 5f 46 4f 55 TACHMENT_NOT_FOU
04f0: 4e 44 2c 0a 09 4d 41 50 49 5f 45 5f 41 54 54 41 ND,..MAPI_E_ATTA
0500: 43 48 4d 45 4e 54 5f 4f 50 45 4e 5f 46 41 49 4c CHMENT_OPEN_FAIL
0510: 55 52 45 2c 0a 09 4d 41 50 49 5f 45 5f 41 54 54 URE,..MAPI_E_ATT
0520: 41 43 48 4d 45 4e 54 5f 57 52 49 54 45 5f 46 41 ACHMENT_WRITE_FA
0530: 49 4c 55 52 45 2c 0a 09 4d 41 50 49 5f 45 5f 55 ILURE,..MAPI_E_U
0540: 4e 4b 4e 4f 57 4e 5f 52 45 43 49 50 49 45 4e 54 NKNOWN_RECIPIENT
0550: 2c 0a 09 4d 41 50 49 5f 45 5f 42 41 44 5f 52 45 ,..MAPI_E_BAD_RE
0560: 43 49 50 54 59 50 45 2c 0a 09 4d 41 50 49 5f 45 CIPTYPE,..MAPI_E
0570: 5f 4e 4f 5f 4d 45 53 53 41 47 45 53 2c 0a 09 4d _NO_MESSAGES,..M
0580: 41 50 49 5f 45 5f 49 4e 56 41 4c 49 44 5f 4d 45 API_E_INVALID_ME
0590: 53 53 41 47 45 2c 0a 09 4d 41 50 49 5f 45 5f 54 SSAGE,..MAPI_E_T
05a0: 45 58 54 5f 54 4f 4f 5f 4c 41 52 47 45 2c 0a 09 EXT_TOO_LARGE,..
05b0: 4d 41 50 49 5f 45 5f 49 4e 56 41 4c 49 44 5f 53 MAPI_E_INVALID_S
05c0: 45 53 53 49 4f 4e 2c 0a 09 4d 41 50 49 5f 45 5f ESSION,..MAPI_E_
05d0: 54 59 50 45 5f 4e 4f 54 5f 53 55 50 50 4f 52 54 TYPE_NOT_SUPPORT
05e0: 45 44 2c 0a 09 4d 41 50 49 5f 45 5f 41 4d 42 49 ED,..MAPI_E_AMBI
05f0: 47 55 4f 55 53 5f 52 45 43 49 50 49 45 4e 54 2c GUOUS_RECIPIENT,
0600: 0a 09 4d 41 50 49 5f 45 5f 41 4d 42 49 47 55 4f ..MAPI_E_AMBIGUO
0610: 55 53 5f 52 45 43 49 50 20 20 20 3d 20 4d 41 50 US_RECIP = MAP
0620: 49 5f 45 5f 41 4d 42 49 47 55 4f 55 53 5f 52 45 I_E_AMBIGUOUS_RE
0630: 43 49 50 49 45 4e 54 2c 0a 09 4d 41 50 49 5f 45 CIPIENT,..MAPI_E
0640: 5f 4d 45 53 53 41 47 45 5f 49 4e 5f 55 53 45 2c _MESSAGE_IN_USE,
0650: 0a 09 4d 41 50 49 5f 45 5f 4e 45 54 57 4f 52 4b ..MAPI_E_NETWORK
0660: 5f 46 41 49 4c 55 52 45 2c 0a 09 4d 41 50 49 5f _FAILURE,..MAPI_
0670: 45 5f 49 4e 56 41 4c 49 44 5f 45 44 49 54 46 49 E_INVALID_EDITFI
0680: 45 4c 44 53 2c 0a 09 4d 41 50 49 5f 45 5f 49 4e ELDS,..MAPI_E_IN
0690: 56 41 4c 49 44 5f 52 45 43 49 50 53 2c 0a 09 4d VALID_RECIPS,..M
06a0: 41 50 49 5f 45 5f 4e 4f 54 5f 53 55 50 50 4f 52 API_E_NOT_SUPPOR
06b0: 54 45 44 20 20 2f 2f 20 3d 20 32 36 0a 7d 0a 0a TED // = 26.}..
06c0: 65 6e 75 6d 20 7b 0a 09 4d 41 50 49 5f 4f 52 49 enum {..MAPI_ORI
06d0: 47 2c 0a 09 4d 41 50 49 5f 54 4f 2c 0a 09 4d 41 G,..MAPI_TO,..MA
06e0: 50 49 5f 43 43 2c 0a 09 4d 41 50 49 5f 42 43 43 PI_CC,..MAPI_BCC
06f0: 0a 7d 0a 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 4c .}..const MAPI_L
0700: 4f 47 4f 4e 5f 55 49 20 20 20 20 20 20 20 20 20 OGON_UI
0710: 20 3d 20 30 78 30 30 30 31 3b 0a 63 6f 6e 73 74 = 0x0001;.const
0720: 20 4d 41 50 49 5f 4e 45 57 5f 53 45 53 53 49 4f MAPI_NEW_SESSIO
0730: 4e 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 32 N = 0x0002
0740: 3b 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 46 4f 52 ;.const MAPI_FOR
0750: 43 45 5f 44 4f 57 4e 4c 4f 41 44 20 20 20 20 3d CE_DOWNLOAD =
0760: 20 30 78 31 30 30 30 3b 0a 63 6f 6e 73 74 20 4d 0x1000;.const M
0770: 41 50 49 5f 4c 4f 47 4f 46 46 5f 53 48 41 52 45 API_LOGOFF_SHARE
0780: 44 20 20 20 20 20 3d 20 30 78 30 30 30 31 3b 0a D = 0x0001;.
0790: 63 6f 6e 73 74 20 4d 41 50 49 5f 4c 4f 47 4f 46 const MAPI_LOGOF
07a0: 46 5f 55 49 20 20 20 20 20 20 20 20 20 3d 20 30 F_UI = 0
07b0: 78 30 30 30 32 3b 0a 63 6f 6e 73 74 20 4d 41 50 x0002;.const MAP
07c0: 49 5f 44 49 41 4c 4f 47 20 20 20 20 20 20 20 20 I_DIALOG
07d0: 20 20 20 20 3d 20 30 78 30 30 30 38 3b 0a 63 6f = 0x0008;.co
07e0: 6e 73 74 20 4d 41 50 49 5f 55 4e 52 45 41 44 5f nst MAPI_UNREAD_
07f0: 4f 4e 4c 59 20 20 20 20 20 20 20 3d 20 30 78 30 ONLY = 0x0
0800: 30 32 30 3b 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 020;.const MAPI_
0810: 4c 4f 4e 47 5f 4d 53 47 49 44 20 20 20 20 20 20 LONG_MSGID
0820: 20 20 3d 20 30 78 34 30 30 30 3b 0a 63 6f 6e 73 = 0x4000;.cons
0830: 74 20 4d 41 50 49 5f 47 55 41 52 41 4e 54 45 45 t MAPI_GUARANTEE
0840: 5f 46 49 46 4f 20 20 20 20 3d 20 30 78 30 31 30 _FIFO = 0x010
0850: 30 3b 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 45 4e 0;.const MAPI_EN
0860: 56 45 4c 4f 50 45 5f 4f 4e 4c 59 20 20 20 20 20 VELOPE_ONLY
0870: 3d 20 30 78 30 30 34 30 3b 0a 63 6f 6e 73 74 20 = 0x0040;.const
0880: 4d 41 50 49 5f 50 45 45 4b 20 20 20 20 20 20 20 MAPI_PEEK
0890: 20 20 20 20 20 20 20 3d 20 30 78 30 30 38 30 3b = 0x0080;
08a0: 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 42 4f 44 59 .const MAPI_BODY
08b0: 5f 41 53 5f 46 49 4c 45 20 20 20 20 20 20 3d 20 _AS_FILE =
08c0: 30 78 30 32 30 30 3b 0a 63 6f 6e 73 74 20 4d 41 0x0200;.const MA
08d0: 50 49 5f 53 55 50 50 52 45 53 53 5f 41 54 54 41 PI_SUPPRESS_ATTA
08e0: 43 48 20 20 20 3d 20 30 78 30 38 30 30 3b 0a 63 CH = 0x0800;.c
08f0: 6f 6e 73 74 20 4d 41 50 49 5f 41 42 5f 4e 4f 4d onst MAPI_AB_NOM
0900: 4f 44 49 46 59 20 20 20 20 20 20 20 3d 20 30 78 ODIFY = 0x
0910: 30 34 30 30 3b 0a 63 6f 6e 73 74 20 4d 41 50 49 0400;.const MAPI
0920: 5f 4f 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 _OLE
0930: 20 20 20 3d 20 30 78 30 30 30 31 3b 0a 63 6f 6e = 0x0001;.con
0940: 73 74 20 4d 41 50 49 5f 4f 4c 45 5f 53 54 41 54 st MAPI_OLE_STAT
0950: 49 43 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 IC = 0x00
0960: 30 32 3b 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 55 02;.const MAPI_U
0970: 4e 52 45 41 44 20 20 20 20 20 20 20 20 20 20 20 NREAD
0980: 20 3d 20 30 78 30 30 30 31 3b 0a 63 6f 6e 73 74 = 0x0001;.const
0990: 20 4d 41 50 49 5f 52 45 43 45 49 50 54 5f 52 45 MAPI_RECEIPT_RE
09a0: 51 55 45 53 54 45 44 20 3d 20 30 78 30 30 30 32 QUESTED = 0x0002
09b0: 3b 0a 63 6f 6e 73 74 20 4d 41 50 49 5f 53 45 4e ;.const MAPI_SEN
09c0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d T =
09d0: 20 30 78 30 30 30 34 3b 0a 0a 61 6c 69 61 73 20 0x0004;..alias
09e0: 75 69 6e 74 20 46 4c 41 47 53 2c 20 4c 48 41 4e uint FLAGS, LHAN
09f0: 44 4c 45 3b 0a 61 6c 69 61 73 20 75 69 6e 74 2a DLE;.alias uint*
0a00: 20 4c 50 4c 48 41 4e 44 4c 45 2c 20 4c 50 55 4c LPLHANDLE, LPUL
0a10: 4f 4e 47 3b 0a 0a 73 74 72 75 63 74 20 4d 61 70 ONG;..struct Map
0a20: 69 52 65 63 69 70 44 65 73 63 20 7b 0a 09 55 4c iRecipDesc {..UL
0a30: 4f 4e 47 20 20 75 6c 52 65 73 65 72 76 65 64 3b ONG ulReserved;
0a40: 0a 09 55 4c 4f 4e 47 20 20 75 6c 52 65 63 69 70 ..ULONG ulRecip
0a50: 43 6c 61 73 73 3b 0a 09 4c 50 53 54 52 20 20 6c Class;..LPSTR l
0a60: 70 73 7a 4e 61 6d 65 3b 0a 09 4c 50 53 54 52 20 pszName;..LPSTR
0a70: 20 6c 70 73 7a 41 64 64 72 65 73 73 3b 0a 09 55 lpszAddress;..U
0a80: 4c 4f 4e 47 20 20 75 6c 45 49 44 53 69 7a 65 3b LONG ulEIDSize;
0a90: 0a 09 4c 50 56 4f 49 44 20 6c 70 45 6e 74 72 79 ..LPVOID lpEntry
0aa0: 49 44 3b 0a 7d 0a 61 6c 69 61 73 20 4d 61 70 69 ID;.}.alias Mapi
0ab0: 52 65 63 69 70 44 65 73 63 2a 20 6c 70 4d 61 70 RecipDesc* lpMap
0ac0: 69 52 65 63 69 70 44 65 73 63 3b 0a 0a 73 74 72 iRecipDesc;..str
0ad0: 75 63 74 20 4d 61 70 69 46 69 6c 65 44 65 73 63 uct MapiFileDesc
0ae0: 20 7b 0a 09 55 4c 4f 4e 47 20 20 75 6c 52 65 73 {..ULONG ulRes
0af0: 65 72 76 65 64 3b 0a 09 55 4c 4f 4e 47 20 20 66 erved;..ULONG f
0b00: 6c 46 6c 61 67 73 3b 0a 09 55 4c 4f 4e 47 20 20 lFlags;..ULONG
0b10: 6e 50 6f 73 69 74 69 6f 6e 3b 0a 09 4c 50 53 54 nPosition;..LPST
0b20: 52 20 20 6c 70 73 7a 50 61 74 68 4e 61 6d 65 3b R lpszPathName;
0b30: 0a 09 4c 50 53 54 52 20 20 6c 70 73 7a 46 69 6c ..LPSTR lpszFil
0b40: 65 4e 61 6d 65 3b 0a 09 4c 50 56 4f 49 44 20 6c eName;..LPVOID l
0b50: 70 46 69 6c 65 54 79 70 65 3b 0a 7d 0a 61 6c 69 pFileType;.}.ali
0b60: 61 73 20 4d 61 70 69 46 69 6c 65 44 65 73 63 2a as MapiFileDesc*
0b70: 20 6c 70 4d 61 70 69 46 69 6c 65 44 65 73 63 3b lpMapiFileDesc;
0b80: 0a 0a 73 74 72 75 63 74 20 4d 61 70 69 46 69 6c ..struct MapiFil
0b90: 65 54 61 67 45 78 74 20 7b 0a 09 55 4c 4f 4e 47 eTagExt {..ULONG
0ba0: 20 20 75 6c 52 65 73 65 72 76 65 64 3b 0a 09 55 ulReserved;..U
0bb0: 4c 4f 4e 47 20 20 63 62 54 61 67 3b 0a 09 4c 50 LONG cbTag;..LP
0bc0: 42 59 54 45 20 6c 70 54 61 67 3b 0a 09 55 4c 4f BYTE lpTag;..ULO
0bd0: 4e 47 20 20 63 62 45 6e 63 6f 64 69 6e 67 3b 0a NG cbEncoding;.
0be0: 09 4c 50 42 59 54 45 20 6c 70 45 6e 63 6f 64 69 .LPBYTE lpEncodi
0bf0: 6e 67 3b 0a 7d 0a 61 6c 69 61 73 20 4d 61 70 69 ng;.}.alias Mapi
0c00: 46 69 6c 65 54 61 67 45 78 74 2a 20 6c 70 4d 61 FileTagExt* lpMa
0c10: 70 69 46 69 6c 65 54 61 67 45 78 74 3b 0a 0a 73 piFileTagExt;..s
0c20: 74 72 75 63 74 20 4d 61 70 69 4d 65 73 73 61 67 truct MapiMessag
0c30: 65 20 7b 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 e {..ULONG
0c40: 20 20 20 20 20 75 6c 52 65 73 65 72 76 65 64 3b ulReserved;
0c50: 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 ..LPSTR
0c60: 20 20 6c 70 73 7a 53 75 62 6a 65 63 74 3b 0a 09 lpszSubject;..
0c70: 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 20 20 LPSTR
0c80: 6c 70 73 7a 4e 6f 74 65 54 65 78 74 3b 0a 09 4c lpszNoteText;..L
0c90: 50 53 54 52 20 20 20 20 20 20 20 20 20 20 20 6c PSTR l
0ca0: 70 73 7a 4d 65 73 73 61 67 65 54 79 70 65 3b 0a pszMessageType;.
0cb0: 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 20 .LPSTR
0cc0: 20 6c 70 73 7a 44 61 74 65 52 65 63 65 69 76 65 lpszDateReceive
0cd0: 64 3b 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 d;..LPSTR
0ce0: 20 20 20 20 6c 70 73 7a 43 6f 6e 76 65 72 73 61 lpszConversa
0cf0: 74 69 6f 6e 49 44 3b 0a 09 46 4c 41 47 53 20 20 tionID;..FLAGS
0d00: 20 20 20 20 20 20 20 20 20 66 6c 46 6c 61 67 73 flFlags
0d10: 3b 0a 09 6c 70 4d 61 70 69 52 65 63 69 70 44 65 ;..lpMapiRecipDe
0d20: 73 63 20 6c 70 4f 72 69 67 69 6e 61 74 6f 72 3b sc lpOriginator;
0d30: 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 ..ULONG
0d40: 20 20 6e 52 65 63 69 70 43 6f 75 6e 74 3b 0a 09 nRecipCount;..
0d50: 6c 70 4d 61 70 69 52 65 63 69 70 44 65 73 63 20 lpMapiRecipDesc
0d60: 6c 70 52 65 63 69 70 73 3b 0a 09 55 4c 4f 4e 47 lpRecips;..ULONG
0d70: 20 20 20 20 20 20 20 20 20 20 20 6e 46 69 6c 65 nFile
0d80: 43 6f 75 6e 74 3b 0a 09 6c 70 4d 61 70 69 46 69 Count;..lpMapiFi
0d90: 6c 65 44 65 73 63 20 20 6c 70 46 69 6c 65 73 3b leDesc lpFiles;
0da0: 0a 7d 0a 61 6c 69 61 73 20 4d 61 70 69 4d 65 73 .}.alias MapiMes
0db0: 73 61 67 65 2a 20 6c 70 4d 61 70 69 4d 65 73 73 sage* lpMapiMess
0dc0: 61 67 65 3b 0a 0a 65 78 74 65 72 6e 20 28 50 61 age;..extern (Pa
0dd0: 73 63 61 6c 29 20 7b 0a 09 55 4c 4f 4e 47 20 4d scal) {..ULONG M
0de0: 41 50 49 4c 6f 67 6f 6e 28 55 4c 4f 4e 47 2c 20 APILogon(ULONG,
0df0: 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 46 4c LPSTR, LPSTR, FL
0e00: 41 47 53 2c 20 55 4c 4f 4e 47 2c 20 4c 50 4c 48 AGS, ULONG, LPLH
0e10: 41 4e 44 4c 45 29 3b 0a 09 55 4c 4f 4e 47 20 4d ANDLE);..ULONG M
0e20: 41 50 49 53 65 6e 64 4d 61 69 6c 28 4c 48 41 4e APISendMail(LHAN
0e30: 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 6c 70 4d 61 DLE, ULONG, lpMa
0e40: 70 69 4d 65 73 73 61 67 65 2c 20 46 4c 41 47 53 piMessage, FLAGS
0e50: 2c 20 55 4c 4f 4e 47 29 3b 0a 09 55 4c 4f 4e 47 , ULONG);..ULONG
0e60: 20 4d 41 50 49 53 65 6e 64 44 6f 63 75 6d 65 6e MAPISendDocumen
0e70: 74 73 28 55 4c 4f 4e 47 2c 20 4c 50 53 54 52 2c ts(ULONG, LPSTR,
0e80: 20 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 55 LPSTR, LPSTR, U
0e90: 4c 4f 4e 47 29 3b 0a 09 55 4c 4f 4e 47 20 4d 41 LONG);..ULONG MA
0ea0: 50 49 52 65 61 64 4d 61 69 6c 28 4c 48 41 4e 44 PIReadMail(LHAND
0eb0: 4c 45 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 54 52 LE, ULONG, LPSTR
0ec0: 2c 20 46 4c 41 47 53 2c 20 55 4c 4f 4e 47 2c 20 , FLAGS, ULONG,
0ed0: 6c 70 4d 61 70 69 4d 65 73 73 61 67 65 2a 29 3b lpMapiMessage*);
0ee0: 0a 09 55 4c 4f 4e 47 20 4d 41 50 49 46 69 6e 64 ..ULONG MAPIFind
0ef0: 4e 65 78 74 28 4c 48 41 4e 44 4c 45 2c 20 55 4c Next(LHANDLE, UL
0f00: 4f 4e 47 2c 20 4c 50 53 54 52 2c 20 4c 50 53 54 ONG, LPSTR, LPST
0f10: 52 2c 20 46 4c 41 47 53 2c 20 55 4c 4f 4e 47 2c R, FLAGS, ULONG,
0f20: 20 4c 50 53 54 52 29 3b 0a 09 55 4c 4f 4e 47 20 LPSTR);..ULONG
0f30: 4d 41 50 49 52 65 73 6f 6c 76 65 4e 61 6d 65 28 MAPIResolveName(
0f40: 4c 48 41 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 LHANDLE, ULONG,
0f50: 4c 50 53 54 52 2c 20 46 4c 41 47 53 2c 20 55 4c LPSTR, FLAGS, UL
0f60: 4f 4e 47 2c 0a 09 20 20 6c 70 4d 61 70 69 52 65 ONG,.. lpMapiRe
0f70: 63 69 70 44 65 73 63 2a 29 3b 0a 09 55 4c 4f 4e cipDesc*);..ULON
0f80: 47 20 4d 41 50 49 41 64 64 72 65 73 73 28 4c 48 G MAPIAddress(LH
0f90: 41 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 4c 50 ANDLE, ULONG, LP
0fa0: 53 54 52 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 54 STR, ULONG, LPST
0fb0: 52 2c 20 55 4c 4f 4e 47 2c 0a 09 20 20 6c 70 4d R, ULONG,.. lpM
0fc0: 61 70 69 52 65 63 69 70 44 65 73 63 2c 20 46 4c apiRecipDesc, FL
0fd0: 41 47 53 2c 20 55 4c 4f 4e 47 2c 20 4c 50 55 4c AGS, ULONG, LPUL
0fe0: 4f 4e 47 2c 20 6c 70 4d 61 70 69 52 65 63 69 70 ONG, lpMapiRecip
0ff0: 44 65 73 63 2a 29 3b 0a 09 55 4c 4f 4e 47 20 4d Desc*);..ULONG M
1000: 41 50 49 46 72 65 65 42 75 66 66 65 72 28 4c 50 APIFreeBuffer(LP
1010: 56 4f 49 44 29 3b 0a 09 55 4c 4f 4e 47 20 4d 41 VOID);..ULONG MA
1020: 50 49 44 65 74 61 69 6c 73 28 4c 48 41 4e 44 4c PIDetails(LHANDL
1030: 45 2c 20 55 4c 4f 4e 47 2c 20 6c 70 4d 61 70 69 E, ULONG, lpMapi
1040: 52 65 63 69 70 44 65 73 63 2c 20 46 4c 41 47 53 RecipDesc, FLAGS
1050: 2c 20 55 4c 4f 4e 47 29 3b 0a 09 55 4c 4f 4e 47 , ULONG);..ULONG
1060: 20 4d 41 50 49 53 61 76 65 4d 61 69 6c 28 4c 48 MAPISaveMail(LH
1070: 41 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 6c 70 ANDLE, ULONG, lp
1080: 4d 61 70 69 4d 65 73 73 61 67 65 20 6c 70 73 7a MapiMessage lpsz
1090: 4d 65 73 73 61 67 65 2c 20 46 4c 41 47 53 2c 0a Message, FLAGS,.
10a0: 09 20 20 55 4c 4f 4e 47 2c 20 4c 50 53 54 52 29 . ULONG, LPSTR)
10b0: 3b 0a 09 55 4c 4f 4e 47 20 4d 41 50 49 44 65 6c ;..ULONG MAPIDel
10c0: 65 74 65 4d 61 69 6c 28 4c 48 41 4e 44 4c 45 20 eteMail(LHANDLE
10d0: 6c 70 53 65 73 73 69 6f 6e 2c 20 55 4c 4f 4e 47 lpSession, ULONG
10e0: 2c 20 4c 50 53 54 52 2c 20 46 4c 41 47 53 2c 20 , LPSTR, FLAGS,
10f0: 55 4c 4f 4e 47 29 3b 0a 09 55 4c 4f 4e 47 20 4d ULONG);..ULONG M
1100: 41 50 49 4c 6f 67 6f 66 66 28 4c 48 41 4e 44 4c APILogoff(LHANDL
1110: 45 2c 20 55 4c 4f 4e 47 2c 20 46 4c 41 47 53 2c E, ULONG, FLAGS,
1120: 20 55 4c 4f 4e 47 29 3b 0a 09 2f 2f 20 4e 65 74 ULONG);..// Net
1130: 73 63 61 70 65 20 65 78 74 65 6e 73 69 6f 6e 73 scape extensions
1140: 0a 09 55 4c 4f 4e 47 20 4d 41 50 49 47 65 74 4e ..ULONG MAPIGetN
1150: 65 74 73 63 61 70 65 56 65 72 73 69 6f 6e 28 29 etscapeVersion()
1160: 3b 0a 09 55 4c 4f 4e 47 20 4d 41 50 49 5f 4e 53 ;..ULONG MAPI_NS
1170: 43 50 5f 53 79 6e 63 68 72 6f 6e 69 7a 65 43 6c CP_SynchronizeCl
1180: 69 65 6e 74 28 4c 48 41 4e 44 4c 45 2c 20 55 4c ient(LHANDLE, UL
1190: 4f 4e 47 29 3b 0a 0a 09 2f 2f 20 48 61 6e 64 6c ONG);...// Handl
11a0: 65 73 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 es for use with
11b0: 47 65 74 50 72 6f 63 41 64 64 72 65 73 73 0a 09 GetProcAddress..
11c0: 61 6c 69 61 73 20 55 4c 4f 4e 47 20 66 75 6e 63 alias ULONG func
11d0: 74 69 6f 6e 28 55 4c 4f 4e 47 2c 20 4c 50 53 54 tion(ULONG, LPST
11e0: 52 2c 20 4c 50 53 54 52 2c 20 46 4c 41 47 53 2c R, LPSTR, FLAGS,
11f0: 20 55 4c 4f 4e 47 2c 20 4c 50 4c 48 41 4e 44 4c ULONG, LPLHANDL
1200: 45 29 0a 09 20 20 4c 50 4d 41 50 49 4c 4f 47 4f E).. LPMAPILOGO
1210: 4e 3b 0a 09 61 6c 69 61 73 20 55 4c 4f 4e 47 20 N;..alias ULONG
1220: 66 75 6e 63 74 69 6f 6e 28 4c 48 41 4e 44 4c 45 function(LHANDLE
1230: 2c 20 55 4c 4f 4e 47 2c 20 6c 70 4d 61 70 69 4d , ULONG, lpMapiM
1240: 65 73 73 61 67 65 2c 20 46 4c 41 47 53 2c 20 55 essage, FLAGS, U
1250: 4c 4f 4e 47 29 0a 09 20 20 4c 50 4d 41 50 49 53 LONG).. LPMAPIS
1260: 45 4e 44 4d 41 49 4c 3b 0a 09 61 6c 69 61 73 20 ENDMAIL;..alias
1270: 55 4c 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 55 ULONG function(U
1280: 4c 4f 4e 47 2c 20 4c 50 53 54 52 2c 20 4c 50 53 LONG, LPSTR, LPS
1290: 54 52 2c 20 4c 50 53 54 52 2c 20 55 4c 4f 4e 47 TR, LPSTR, ULONG
12a0: 29 0a 09 20 20 4c 50 4d 41 50 49 53 45 4e 44 44 ).. LPMAPISENDD
12b0: 4f 43 55 4d 45 4e 54 53 3b 0a 09 61 6c 69 61 73 OCUMENTS;..alias
12c0: 20 55 4c 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 ULONG function(
12d0: 4c 48 41 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 LHANDLE, ULONG,
12e0: 4c 50 53 54 52 2c 20 46 4c 41 47 53 2c 20 55 4c LPSTR, FLAGS, UL
12f0: 4f 4e 47 2c 20 6c 70 4d 61 70 69 4d 65 73 73 61 ONG, lpMapiMessa
1300: 67 65 2a 29 0a 09 20 20 4c 50 4d 41 50 49 52 45 ge*).. LPMAPIRE
1310: 41 44 4d 41 49 4c 3b 0a 09 61 6c 69 61 73 20 55 ADMAIL;..alias U
1320: 4c 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 4c 48 LONG function(LH
1330: 41 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 4c 50 ANDLE, ULONG, LP
1340: 53 54 52 2c 20 4c 50 53 54 52 2c 20 46 4c 41 47 STR, LPSTR, FLAG
1350: 53 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 54 52 29 S, ULONG, LPSTR)
1360: 0a 09 20 20 4c 50 4d 41 50 49 46 49 4e 44 4e 45 .. LPMAPIFINDNE
1370: 58 54 3b 0a 09 61 6c 69 61 73 20 55 4c 4f 4e 47 XT;..alias ULONG
1380: 20 66 75 6e 63 74 69 6f 6e 28 4c 48 41 4e 44 4c function(LHANDL
1390: 45 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 54 52 2c E, ULONG, LPSTR,
13a0: 20 46 4c 41 47 53 2c 20 55 4c 4f 4e 47 2c 0a 09 FLAGS, ULONG,..
13b0: 20 20 6c 70 4d 61 70 69 52 65 63 69 70 44 65 73 lpMapiRecipDes
13c0: 63 2a 29 20 4c 50 4d 41 50 49 52 45 53 4f 4c 56 c*) LPMAPIRESOLV
13d0: 45 4e 41 4d 45 3b 0a 09 61 6c 69 61 73 20 55 4c ENAME;..alias UL
13e0: 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 4c 48 41 ONG function(LHA
13f0: 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 NDLE, ULONG, LPS
1400: 54 52 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 54 52 TR, ULONG, LPSTR
1410: 2c 20 55 4c 4f 4e 47 2c 0a 09 20 20 6c 70 4d 61 , ULONG,.. lpMa
1420: 70 69 52 65 63 69 70 44 65 73 63 2c 20 46 4c 41 piRecipDesc, FLA
1430: 47 53 2c 20 55 4c 4f 4e 47 2c 20 4c 50 55 4c 4f GS, ULONG, LPULO
1440: 4e 47 2c 20 6c 70 4d 61 70 69 52 65 63 69 70 44 NG, lpMapiRecipD
1450: 65 73 63 2a 29 20 4c 50 4d 41 50 49 41 44 44 52 esc*) LPMAPIADDR
1460: 45 53 53 3b 0a 09 61 6c 69 61 73 20 55 4c 4f 4e ESS;..alias ULON
1470: 47 20 66 75 6e 63 74 69 6f 6e 28 4c 50 56 4f 49 G function(LPVOI
1480: 44 20 6c 70 76 29 20 4c 50 4d 41 50 49 46 52 45 D lpv) LPMAPIFRE
1490: 45 42 55 46 46 45 52 3b 0a 09 61 6c 69 61 73 20 EBUFFER;..alias
14a0: 55 4c 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 4c ULONG function(L
14b0: 48 41 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 6c HANDLE, ULONG, l
14c0: 70 4d 61 70 69 52 65 63 69 70 44 65 73 63 2c 20 pMapiRecipDesc,
14d0: 46 4c 41 47 53 2c 20 55 4c 4f 4e 47 29 0a 09 20 FLAGS, ULONG)..
14e0: 20 4c 50 4d 41 50 49 44 45 54 41 49 4c 53 3b 0a LPMAPIDETAILS;.
14f0: 09 61 6c 69 61 73 20 55 4c 4f 4e 47 20 66 75 6e .alias ULONG fun
1500: 63 74 69 6f 6e 28 4c 48 41 4e 44 4c 45 2c 20 55 ction(LHANDLE, U
1510: 4c 4f 4e 47 2c 20 6c 70 4d 61 70 69 4d 65 73 73 LONG, lpMapiMess
1520: 61 67 65 2c 20 46 4c 41 47 53 2c 20 55 4c 4f 4e age, FLAGS, ULON
1530: 47 2c 20 4c 50 53 54 52 29 0a 09 20 20 4c 50 4d G, LPSTR).. LPM
1540: 41 50 49 53 41 56 45 4d 41 49 4c 3b 0a 09 61 6c APISAVEMAIL;..al
1550: 69 61 73 20 55 4c 4f 4e 47 20 66 75 6e 63 74 69 ias ULONG functi
1560: 6f 6e 28 4c 48 41 4e 44 4c 45 20 6c 70 53 65 73 on(LHANDLE lpSes
1570: 73 69 6f 6e 2c 20 55 4c 4f 4e 47 2c 20 4c 50 53 sion, ULONG, LPS
1580: 54 52 2c 20 46 4c 41 47 53 2c 20 55 4c 4f 4e 47 TR, FLAGS, ULONG
1590: 29 0a 09 20 20 4c 50 4d 41 50 49 44 45 4c 45 54 ).. LPMAPIDELET
15a0: 45 4d 41 49 4c 3b 0a 09 61 6c 69 61 73 20 55 4c EMAIL;..alias UL
15b0: 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 4c 48 41 ONG function(LHA
15c0: 4e 44 4c 45 2c 20 55 4c 4f 4e 47 2c 20 46 4c 41 NDLE, ULONG, FLA
15d0: 47 53 2c 20 55 4c 4f 4e 47 29 20 4c 50 4d 41 50 GS, ULONG) LPMAP
15e0: 49 4c 4f 47 4f 46 46 3b 0a 7d 0a ILOGOFF;.}.