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

  1. /***********************************************************************
  2. *
  3. * _ABROOT.H
  4. *
  5. * Header file for code in ABROOT.C
  6. *
  7. * Copyright 1992, 1993 Microsoft Corporation. All Rights Reserved.
  8. *
  9. ***********************************************************************/
  10. /*
  11. * ABContainer for ROOT object. (i.e. IAB::OpenEntry() with an
  12. * lpEntryID of NULL).
  13. */
  14. #undef INTERFACE
  15. #define INTERFACE struct _ROOT
  16. #undef MAPIMETHOD_
  17. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ROOT_)
  18. MAPI_IUNKNOWN_METHODS(IMPL)
  19. MAPI_IMAPIPROP_METHODS(IMPL)
  20. MAPI_IMAPICONTAINER_METHODS(IMPL)
  21. MAPI_IABCONTAINER_METHODS(IMPL)
  22. #undef MAPIMETHOD_
  23. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ROOT_)
  24. MAPI_IUNKNOWN_METHODS(IMPL)
  25. MAPI_IMAPIPROP_METHODS(IMPL)
  26. MAPI_IMAPICONTAINER_METHODS(IMPL)
  27. MAPI_IABCONTAINER_METHODS(IMPL)
  28. #undef MAPIMETHOD_
  29. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  30. DECLARE_MAPI_INTERFACE(ROOT_) {
  31. BEGIN_INTERFACE
  32. MAPI_IUNKNOWN_METHODS(IMPL)
  33. MAPI_IMAPIPROP_METHODS(IMPL)
  34. MAPI_IMAPICONTAINER_METHODS(IMPL)
  35. MAPI_IABCONTAINER_METHODS(IMPL)
  36. };
  37. typedef struct _ROOT {
  38. MAILUSER_BASE_MEMBERS(ROOT)
  39. ULONG ulType;
  40. } ROOT, *LPROOT;
  41. #define CBROOT sizeof(ROOT)
  42. //
  43. // Entry point to create the AB Hierarchy object
  44. //
  45. HRESULT NewROOT(LPVOID lpObj,
  46. ULONG ulIntFlag,
  47. LPCIID lpInterface,
  48. ULONG ulOpenFlags,
  49. ULONG *lpulObjType,
  50. LPVOID *lppROOT);
  51. // Internal flags for NewROOT
  52. #define AB_ROOT ((ULONG)0x00000000)
  53. #define AB_WELL ((ULONG)0x00000001)
  54. // Internal flag that tells the root contents table that even if this is a
  55. // profile session, ignore all the user containers except the "All Contacts"
  56. // item and only add the "All contact" item
  57. // This simulates the old-type behaviour where you get a single local container
  58. // Internal-only flag
  59. //
  60. #define WAB_NO_PROFILE_CONTAINERS 0x00400000
  61. // registry settings
  62. extern const LPTSTR szWABKey;
  63. /*
  64. * Creates a new Hierarchy table off the Root object
  65. */
  66. HRESULT MergeHierarchy(LPROOT lpROOT,
  67. LPIAB lpIAB,
  68. ULONG ulFlags);
  69. //BOOL ResolveLDAPServers(void);
  70. /*
  71. * call back function used to rebuild hierarchy and one off tables
  72. */
  73. NOTIFCALLBACK lTableNotifyCallBack;