Windows2003-3790/inetcore/outlookexpress/wabw/wabapi/globals.h
2020-09-30 16:53:55 +02:00

317 lines
7.9 KiB
C

/*
* globals.h
Various globals used everywhere in the WAB
*/
// Note most of the Enums below are closely tied to the static arrasy
// in globals.c
//
enum {
ircPR_DISPLAY_NAME = 0,
ircPR_DISPLAY_TYPE,
ircPR_ENTRYID,
ircPR_INSTANCE_KEY,
ircPR_OBJECT_TYPE,
ircPR_RECORD_KEY,
ircPR_ROWID,
ircPR_DEPTH,
ircPR_CONTAINER_FLAGS,
ircPR_WAB_LDAP_SERVER,
ircPR_WAB_RESOLVE_FLAG,
ircPR_AB_PROVIDER_ID,
ircMax
};
//
// Default set of properties to return from a ResolveNames.
// May be overridden by passing in lptagaColSet to ResolveNames.
//
enum {
irdPR_ADDRTYPE = 0,
irdPR_DISPLAY_NAME,
irdPR_EMAIL_ADDRESS,
irdPR_ENTRYID,
irdPR_OBJECT_TYPE,
irdPR_SEARCH_KEY,
irdPR_RECORD_KEY,
irdPR_SURNAME,
irdPR_GIVEN_NAME,
irdPR_INSTANCE_KEY,
irdPR_SEND_INTERNET_ENCODING,
irdMax
};
// PR_WAB_DL_ENTRIES proptag array
//
enum {
iwdesPR_WAB_DL_ENTRIES,
iwdesMax
};
//
// LDAP server name properties
//
enum {
ildapcPR_WAB_LDAP_SERVER,
ildapcMax
};
//
// Properties to get for each container in a Resolve
//
enum {
irnPR_OBJECT_TYPE = 0,
irnPR_WAB_RESOLVE_FLAG,
irnPR_ENTRYID,
irnPR_DISPLAY_NAME,
irnMax
};
//
// container default properties
// Put essential props first
//
enum {
ivPR_DISPLAY_NAME,
ivPR_SURNAME,
ivPR_GIVEN_NAME,
ivPR_OBJECT_TYPE,
ivPR_EMAIL_ADDRESS,
ivPR_ADDRTYPE,
ivPR_CONTACT_EMAIL_ADDRESSES,
ivPR_CONTACT_ADDRTYPES,
ivPR_MIDDLE_NAME,
ivPR_COMPANY_NAME,
ivPR_NICKNAME,
ivMax
};
enum {
icrPR_DEF_CREATE_MAILUSER = 0,
icrPR_DEF_CREATE_DL,
icrMax
};
// enum for getting the entryid of an entry
enum {
ieidPR_DISPLAY_NAME = 0,
ieidPR_ENTRYID,
ieidMax
};
enum {
itcPR_ADDRTYPE = 0,
itcPR_DISPLAY_NAME,
itcPR_DISPLAY_TYPE,
itcPR_ENTRYID,
itcPR_INSTANCE_KEY,
itcPR_OBJECT_TYPE,
itcPR_EMAIL_ADDRESS,
itcPR_RECORD_KEY,
itcPR_NICKNAME,
//itcPR_WAB_THISISME,
itcMax
};
#ifndef _GLOBALS_C
#define ExternSizedSPropTagArray(_ctag, _name) \
extern const struct _SPropTagArray_ ## _name \
{ \
ULONG cValues; \
ULONG aulPropTag[_ctag]; \
} _name
ExternSizedSPropTagArray(ircMax, ITableColumnsRoot);
ExternSizedSPropTagArray(irdMax, ptaResolveDefaults);
ExternSizedSPropTagArray(itcMax, ITableColumns);
ExternSizedSPropTagArray(iwdesMax, tagaDLEntriesProp);
ExternSizedSPropTagArray(ildapcMax, ptaLDAPCont);
ExternSizedSPropTagArray(irnMax, irnColumns);
ExternSizedSPropTagArray(ivMax, tagaValidate);
ExternSizedSPropTagArray(icrMax, ptaCreate);
ExternSizedSPropTagArray(ieidMax, ptaEid);
// [PaulHi] 2/25/99 ANSI versions
ExternSizedSPropTagArray(itcMax, ITableColumns_A);
#endif
extern const ULONG rgIndexArray[indexMax];
extern const int lprgAddrBookColHeaderIDs[NUM_COLUMNS];
//extern HANDLE hMuidMutex;
// External memory allocators (passed in on WABOpenEx)
extern int g_nExtMemAllocCount;
extern ALLOCATEBUFFER * lpfnAllocateBufferExternal;
extern ALLOCATEMORE * lpfnAllocateMoreExternal;
extern FREEBUFFER * lpfnFreeBufferExternal;
extern LPUNKNOWN pmsessOutlookWabSPI;
extern LPWABOPENSTORAGEPROVIDER lpfnWABOpenStorageProvider;
// registry key constants
extern LPCTSTR lpNewWABRegKey;
extern LPCTSTR lpRegUseOutlookVal;
/*
- The following IDs and tags are for the conferencing named properties
-
- The GUID for these props is PS_Conferencing
- This GUID is actually the same GUID used by outlook internally for
- it's named properties.
*/
DEFINE_OLEGUID(PS_Conferencing, 0x00062004, 0, 0);
enum _ConferencingTags
{
prWABConfServers = 0,
prWABConfDefaultIndex,
prWABConfBackupIndex,
prWABConfEmailIndex,
prWABConfMax
};
#define CONF_SERVERS 0x8056
#define CONF_DEFAULT_INDEX 0x8057
#define CONF_SERVER_INDEX 0x8058
#define CONF_EMAIL_INDEX 0x8059
#define OLK_NAMEDPROPS_START CONF_SERVERS
ULONG PR_WAB_CONF_SERVERS; // Multivalued String property that saves unique server related data
ULONG PR_WAB_CONF_DEFAULT_INDEX;// Points to which entry in the SERVERS prop is the default
ULONG PR_WAB_CONF_BACKUP_INDEX; // Points to which entry is the Backup
ULONG PR_WAB_CONF_EMAIL_INDEX; // NOT USED anymore
SizedSPropTagArray(prWABConfMax, ptaUIDetlsPropsConferencing);
/*
- The following IDs and tags are for the Yomigana named properties
-
- The GUID for these props is PS_YomiProps (which is again the same
- guid as the one used by Outlook)
*/
#define PS_YomiProps PS_Conferencing
#define dispidYomiFirstName 0x802C
#define dispidYomiLastName 0x802D
#define dispidYomiCompanyName 0x802E
#define OLK_YOMIPROPS_START dispidYomiFirstName
enum _YomiTags
{
prWABYomiFirst = 0,
prWABYomiLast,
prWABYomiCompany,
prWABYomiMax
};
ULONG PR_WAB_YOMI_FIRSTNAME; // PT_TSTRING
ULONG PR_WAB_YOMI_LASTNAME; // PT_TSTRING
ULONG PR_WAB_YOMI_COMPANYNAME; // PT_TSTRING
/*
- The following IDs and tags are for defining the default Mailing Address
-
- The GUID for these props is PS_PostalAddressID (which is the same as
- the Outlook GUID)
*/
#define PS_PostalAddressID PS_Conferencing
#define dispidPostalAddressId 0x8022
#define OLK_POSTALID_START dispidPostalAddressId
enum _PostalIDTags
{
prWABPostalID = 0,
prWABPostalMax
};
ULONG PR_WAB_POSTALID; // PT_LONG
// The values for the default Postal ID can only be one of the following
//
enum _PostalIDVal
{
ADDRESS_NONE = 0,
ADDRESS_HOME,
ADDRESS_WORK,
ADDRESS_OTHER
};
/*
- The following IDs and tags are for the internally used WAB
-
- The GUID for these props is MPSWab_GUID_V4
*/
ULONG PR_WAB_USER_PROFILEID; // PT_TSTRING: Profile ID of a user
ULONG PR_WAB_USER_SUBFOLDERS; // PT_MVBINARY: List of subfolders that belong to a particular user
ULONG PR_WAB_HOTMAIL_CONTACTIDS; // PT_MVTSTRING:IDs of Contacts as represented on the Hotmail Server
ULONG PR_WAB_HOTMAIL_MODTIMES; // PT_MV_TSTRING: Last modification time for the entry
ULONG PR_WAB_HOTMAIL_SERVERIDS; // PT_MV_TSTRING: Identifies the Hotmail server
ULONG PR_WAB_DL_ONEOFFS; // PT_MV_BINARY:Prop used for storing one-off entries as part of a DL
ULONG PR_WAB_IPPHONE; // PT_TSTRING: Prop used for holding the IP_PHONE property (used to make TAPI happy)
ULONG PR_WAB_FOLDER_PARENT; // PT_BINARY: EID of the Folder to which a contact belongs
ULONG PR_WAB_SHAREDFOLDER; // PT_LONG: BOOL that determines if a subfolder is shared or not
ULONG PR_WAB_FOLDEROWNER; // PT_TSTRING: String containing GUID of user who creates a folder ..
#define FOLDER_PRIVATE 0x00000000 // values for PR_WAB_SHAREDFOLDER
#define FOLDER_SHARED 0x00000001
#define USER_PROFILEID 0X8001
#define USER_SUBFOLDERS 0x8002
#define HOTMAIL_CONTACTIDS 0x8003
#define HOTMAIL_MODTIMES 0x8004
#define HOTMAIL_SERVERIDS 0x8005
#define DL_ONEOFFS 0x8006
#define IPPHONE 0x8007
#define FOLDERPARENT 0x8008
#define SHAREDFOLDER 0x8009
#define FOLDEROWNER 0x800a
#define WAB_NAMEDPROPS_START USER_PROFILEID
enum _UserTags
{
prWABUserProfileID = 0,
prWABUserSubfolders,
prWABHotmailContactIDs,
prWABHotmailModTimes,
prWABHotmailServerIDs,
prWABDLOneOffs,
prWABIPPhone,
prWABFolderParent,
prWABSharedFolder,
prWABFolderOwner,
prWABUserMax
};
/* MouseWheel support for Win95 */
UINT g_msgMSWheel;
/*
- These are used for customizing the WAB columns */
ULONG PR_WAB_CUSTOMPROP1;
ULONG PR_WAB_CUSTOMPROP2;
TCHAR szCustomProp1[MAX_PATH];
TCHAR szCustomProp2[MAX_PATH];
// registry names
extern LPTSTR szPropTag1;
extern LPTSTR szPropTag2;