Source code of Windows XP (NT5)
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.

77 lines
1.9 KiB

  1. /***********************************************************************
  2. *
  3. * _ROOT.H
  4. *
  5. * Header file for code in ROOT.C
  6. *
  7. * Copyright 1992, 1993 Microsoft Corporation. All Rights Reserved.
  8. *
  9. ***********************************************************************/
  10. /*
  11. * ABContainer for ROOT object. (i.e. ABPOpenEntry() 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. {
  32. MAPI_IUNKNOWN_METHODS(IMPL)
  33. MAPI_IMAPIPROP_METHODS(IMPL)
  34. MAPI_IMAPICONTAINER_METHODS(IMPL)
  35. MAPI_IABCONTAINER_METHODS(IMPL)
  36. };
  37. /*
  38. * The structure behind the 'this' pointer
  39. */
  40. typedef struct _ROOT
  41. {
  42. const ROOT_Vtbl FAR * lpVtbl;
  43. FAB_Wrapped;
  44. } ROOT, *LPROOT;
  45. #define CBROOT sizeof(ROOT)
  46. /*
  47. * Creates a new ROOT container object (see ROOT.C)
  48. */
  49. HRESULT
  50. HrNewROOT(LPABCONT * lppROOT,
  51. ULONG * lpulObjType,
  52. LPABLOGON lpABPLogon,
  53. LPCIID lpInterface,
  54. HINSTANCE hLibrary,
  55. LPALLOCATEBUFFER lpAllocBuff,
  56. LPALLOCATEMORE lpAllocMore,
  57. LPFREEBUFFER lpFreeBuff,
  58. LPMALLOC lpMalloc );
  59. /*
  60. * Sets an error string associated with a particular hResult on an object.
  61. * I't used in conjunction with the method GetLastError.
  62. */
  63. VOID ROOT_SetErrorSz (LPVOID lpObject, HRESULT hResult, LPTSTR lpszError);