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.
|
|
/***********************************************************************
* * _ABCONT.H * * Header file for code in ABCONT.C: Container Object * * Copyright 1992 - 1996 Microsoft Corporation. All Rights Reserved. * ***********************************************************************/
/*
* ABContainer object. */
#undef INTERFACE
#define INTERFACE struct _CONTAINER
#undef MAPIMETHOD_
#define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, CONTAINER_)
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, CONTAINER_)
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(CONTAINER_) { BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPIPROP_METHODS(IMPL) MAPI_IMAPICONTAINER_METHODS(IMPL) MAPI_IABCONTAINER_METHODS(IMPL) };
typedef struct _CONTAINER { MAILUSER_BASE_MEMBERS(CONTAINER) ULONG ulType; BOOL fLoadedLDAP; } CONTAINER, *LPCONTAINER;
#define CBCONTAINER sizeof(CONTAINER)
HRESULT HrSetCONTAINERAccess(LPCONTAINER lpCONTAINER, ULONG ulFlags);
//
// Create a new AB Container object
//
HRESULT HrNewCONTAINER(LPIAB lpIAB, ULONG ulType, LPCIID lpInterface, ULONG ulOpenFlags, ULONG cbEID, LPENTRYID lpEID, ULONG *lpulObjType, LPVOID *lppContainer);
// Internal flags for HrNewCONTAINER - these flags determine the type of
// container being created
typedef enum _ContainerType { AB_ROOT = 0, // Root Container
AB_WELL, AB_DL, // Distribution list container
AB_CONTAINER, // Normal container
AB_PAB, // "PAB" or default container
AB_LDAP_CONTAINER // Special LDAP container
} CONTAINER_TYPE, *LPCONTAINER_TYPE;
// Inside the WAB when we call GetContentsTable followed by SetColumns, we basically end up
// reading everything from the WAB twice which is a time consuming process
// To improve performance we can try avoiding one unnecessary call but we need to do
// this carefully ..
// The following flag is specified to GetContentsTable ONLY WHEN that call will
// be imediately followed by SetColumns .. do not expose this flag to anyone else..
// this is a WAB-internal flag only
//
#define WAB_CONTENTTABLE_NODATA 0x00400000
|