Leaked source code of windows server 2003
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

/***********************************************************************
*
* _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;