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.

71 lines
2.4 KiB

  1. /***********************************************************************
  2. *
  3. * MUTIL.H
  4. *
  5. * WAB Mapi Utility functions
  6. *
  7. * Copyright 1992 - 1996 Microsoft Corporation. All Rights Reserved.
  8. *
  9. * Revision History:
  10. *
  11. * When Who What
  12. * -------- ------------------ ---------------------------------------
  13. * 11.13.95 Bruce Kelley Created
  14. * 12.19.96 Mark Durley Removed cProps param from AddPropToMVPBin
  15. *
  16. ***********************************************************************/
  17. // Test for PT_ERROR property tag
  18. // #define PROP_ERROR(prop) (prop.ulPropTag == PROP_TAG(PT_ERROR, PROP_ID(prop.ulPropTag)))
  19. #define PROP_ERROR(prop) (PROP_TYPE(prop.ulPropTag) == PT_ERROR)
  20. extern const TCHAR szNULL[];
  21. #define szEmpty ((LPTSTR)szNULL)
  22. #define NOT_FOUND ((ULONG)-1)
  23. #ifdef DEBUG
  24. void _DebugObjectProps(LPMAPIPROP lpObject, LPTSTR Label);
  25. void _DebugProperties(LPSPropValue lpProps, DWORD cProps, LPTSTR pszObject);
  26. void _DebugMapiTable(LPMAPITABLE lpTable);
  27. void _DebugADRLIST(LPADRLIST lpAdrList, LPTSTR lpszTitle);
  28. #define DebugObjectProps(lpObject, Label) _DebugObjectProps(lpObject, Label)
  29. #define DebugProperties(lpProps, cProps, pszObject) _DebugProperties(lpProps, cProps, pszObject)
  30. #define DebugMapiTable(lpTable) _DebugMapiTable(lpTable)
  31. #define DebugADRLIST(lpAdrList, lpszTitle) _DebugADRLIST(lpAdrList, lpszTitle)
  32. #else
  33. #define DebugObjectProps(lpObject, Label)
  34. #define DebugProperties(lpProps, cProps, pszObject)
  35. #define DebugMapiTable(lpTable)
  36. #define DebugADRLIST(lpAdrList, lpszTitle)
  37. #endif
  38. SCODE ScMergePropValues(ULONG cProps1, LPSPropValue lpSource1,
  39. ULONG cProps2, LPSPropValue lpSource2, LPULONG lpcPropsDest, LPSPropValue * lppDest);
  40. HRESULT AddPropToMVPBin(LPSPropValue lpaProps,
  41. DWORD index,
  42. LPVOID lpNew,
  43. ULONG cbNew,
  44. BOOL fNoDuplicates);
  45. HRESULT AddPropToMVPString(
  46. LPSPropValue lpaProps,
  47. DWORD cProps,
  48. DWORD index,
  49. LPTSTR lpszNew);
  50. HRESULT RemovePropFromMVBin(LPSPropValue lpaProps,
  51. DWORD cProps,
  52. DWORD index,
  53. LPVOID lpRemove,
  54. ULONG cbRemove);
  55. SCODE AllocateBufferOrMore(ULONG cbSize, LPVOID lpObject, LPVOID * lppBuffer);
  56. void __fastcall FreeBufferAndNull(LPVOID * lppv);
  57. // void __fastcall LocalFreeAndNull(LPVOID * lppv);
  58. void __fastcall LocalFreeAndNull(LPVOID * lppv);
  59. void __fastcall ReleaseAndNull(LPVOID * lppv);
  60. __UPV * FindAdrEntryProp(LPADRLIST lpAdrList, ULONG index, ULONG ulPropTag);