2 * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 2004-2014 Colin Leroy and the Claws Mail team
5 * Yerase's TNEF Stream Reader Library
6 * Copyright (C) 2003 Randall E. Hand
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 * You can contact me at randall.hand@gmail.com for questions or assistance
23 #define MV_FLAG 0x1000 /* Multi-value flag */
25 #define PT_UNSPECIFIED ((ULONG) 0) /* (Reserved for interface use) type doesn't matter to caller */
26 #define PT_NULL ((ULONG) 1) /* NULL property value */
27 #define PT_I2 ((ULONG) 2) /* Signed 16-bit value */
28 #define PT_LONG ((ULONG) 3) /* Signed 32-bit value */
29 #define PT_R4 ((ULONG) 4) /* 4-byte floating point */
30 #define PT_DOUBLE ((ULONG) 5) /* Floating point double */
31 #define PT_CURRENCY ((ULONG) 6) /* Signed 64-bit int (decimal w/ 4 digits right of decimal pt) */
32 #define PT_APPTIME ((ULONG) 7) /* Application time */
33 #define PT_ERROR ((ULONG) 10) /* 32-bit error value */
34 #define PT_BOOLEAN ((ULONG) 11) /* 16-bit boolean (non-zero true) */
35 #define PT_OBJECT ((ULONG) 13) /* Embedded object in a property */
36 #define PT_I8 ((ULONG) 20) /* 8-byte signed integer */
37 #define PT_STRING8 ((ULONG) 30) /* Null terminated 8-bit character string */
38 #define PT_UNICODE ((ULONG) 31) /* Null terminated Unicode string */
39 #define PT_SYSTIME ((ULONG) 64) /* FILETIME 64-bit int w/ number of 100ns periods since Jan 1,1601 */
40 #define PT_CLSID ((ULONG) 72) /* OLE GUID */
41 #define PT_BINARY ((ULONG) 258) /* Uninterpreted (counted byte array) */
43 #define PROP_TYPE_MASK ((ULONG)0x0000FFFF) /* Mask for Property type */
44 #define PROP_TYPE(ulPropTag) (((ULONG)(ulPropTag))&PROP_TYPE_MASK)
45 #define PROP_ID(ulPropTag) (((ULONG)(ulPropTag))>>16)
46 #define PROP_TAG(ulPropType,ulPropID) ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
47 #define PROP_ID_NULL 0
48 #define PROP_ID_INVALID 0xFFFF
49 #define PR_NULL PROP_TAG( PT_NULL, PROP_ID_NULL)
51 #define MAPI_UNDEFINED ((variableLength*)-1)