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.
90 lines
2.3 KiB
90 lines
2.3 KiB
|
|
/***********************************************************************
|
|
*
|
|
* _ABROOT.H
|
|
*
|
|
* Header file for code in ABROOT.C
|
|
*
|
|
* Copyright 1992, 1993 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
***********************************************************************/
|
|
|
|
/*
|
|
* ABContainer for ROOT object. (i.e. IAB::OpenEntry() with an
|
|
* lpEntryID of NULL).
|
|
*/
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE struct _ROOT
|
|
|
|
#undef MAPIMETHOD_
|
|
#define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ROOT_)
|
|
MAPI_IUNKNOWN_METHODS(IMPL)
|
|
MAPI_IMAPIPROP_METHODS(IMPL)
|
|
MAPI_IMAPICONTAINER_METHODS(IMPL)
|
|
MAPI_IABCONTAINER_METHODS(IMPL)
|
|
#undef MAPIMETHOD_
|
|
#define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ROOT_)
|
|
MAPI_IUNKNOWN_METHODS(IMPL)
|
|
MAPI_IMAPIPROP_METHODS(IMPL)
|
|
MAPI_IMAPICONTAINER_METHODS(IMPL)
|
|
MAPI_IABCONTAINER_METHODS(IMPL)
|
|
#undef MAPIMETHOD_
|
|
#define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
|
|
|
|
DECLARE_MAPI_INTERFACE(ROOT_) {
|
|
BEGIN_INTERFACE
|
|
MAPI_IUNKNOWN_METHODS(IMPL)
|
|
MAPI_IMAPIPROP_METHODS(IMPL)
|
|
MAPI_IMAPICONTAINER_METHODS(IMPL)
|
|
MAPI_IABCONTAINER_METHODS(IMPL)
|
|
};
|
|
|
|
typedef struct _ROOT {
|
|
MAILUSER_BASE_MEMBERS(ROOT)
|
|
ULONG ulType;
|
|
} ROOT, *LPROOT;
|
|
|
|
#define CBROOT sizeof(ROOT)
|
|
|
|
//
|
|
// Entry point to create the AB Hierarchy object
|
|
//
|
|
|
|
HRESULT NewROOT(LPVOID lpObj,
|
|
ULONG ulIntFlag,
|
|
LPCIID lpInterface,
|
|
ULONG ulOpenFlags,
|
|
ULONG *lpulObjType,
|
|
LPVOID *lppROOT);
|
|
|
|
|
|
// Internal flags for NewROOT
|
|
#define AB_ROOT ((ULONG)0x00000000)
|
|
#define AB_WELL ((ULONG)0x00000001)
|
|
|
|
// Internal flag that tells the root contents table that even if this is a
|
|
// profile session, ignore all the user containers except the "All Contacts"
|
|
// item and only add the "All contact" item
|
|
// This simulates the old-type behaviour where you get a single local container
|
|
// Internal-only flag
|
|
//
|
|
#define WAB_NO_PROFILE_CONTAINERS 0x00400000
|
|
|
|
// registry settings
|
|
extern const LPTSTR szWABKey;
|
|
|
|
/*
|
|
* Creates a new Hierarchy table off the Root object
|
|
*/
|
|
HRESULT MergeHierarchy(LPROOT lpROOT,
|
|
LPIAB lpIAB,
|
|
ULONG ulFlags);
|
|
|
|
//BOOL ResolveLDAPServers(void);
|
|
|
|
/*
|
|
* call back function used to rebuild hierarchy and one off tables
|
|
*/
|
|
NOTIFCALLBACK lTableNotifyCallBack;
|
|
|