Hex Artifact Content

Not logged in

Artifact e28cc740776b0e1e17e16bf74e7cba319e0d1435:


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;.}.