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.

52 lines
2.4 KiB

  1. // --------------------------------------------------------------------------------
  2. // Addrenum.h
  3. // Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  4. // --------------------------------------------------------------------------------
  5. #ifndef __ADDRENUM_H
  6. #define __ADDRENUM_H
  7. // --------------------------------------------------------------------------------
  8. // CMimeEnumAddressTypes
  9. // --------------------------------------------------------------------------------
  10. class CMimeEnumAddressTypes : public IMimeEnumAddressTypes
  11. {
  12. public:
  13. // ----------------------------------------------------------------------------
  14. // Construction
  15. // ----------------------------------------------------------------------------
  16. CMimeEnumAddressTypes(void);
  17. ~CMimeEnumAddressTypes(void);
  18. // ----------------------------------------------------------------------------
  19. // IUnknown
  20. // ----------------------------------------------------------------------------
  21. STDMETHODIMP QueryInterface(REFIID, LPVOID *);
  22. STDMETHODIMP_(ULONG) AddRef(void);
  23. STDMETHODIMP_(ULONG) Release(void);
  24. // ----------------------------------------------------------------------------
  25. // IMimeEnumAddressTypes
  26. // ----------------------------------------------------------------------------
  27. STDMETHODIMP Next(ULONG cItems, LPADDRESSPROPS prgAdr, ULONG *pcFetched);
  28. STDMETHODIMP Skip(ULONG cItems);
  29. STDMETHODIMP Reset(void);
  30. STDMETHODIMP Clone(IMimeEnumAddressTypes **ppEnum);
  31. STDMETHODIMP Count(ULONG *pcItems);
  32. // ----------------------------------------------------------------------------
  33. // CMimeEnumAddressTypes
  34. // ----------------------------------------------------------------------------
  35. HRESULT HrInit(IMimeAddressTable *pTable, ULONG iItem, LPADDRESSLIST pList, BOOL fDuplicate);
  36. private:
  37. // ----------------------------------------------------------------------------
  38. // Private Data
  39. // ----------------------------------------------------------------------------
  40. LONG m_cRef; // Reference count
  41. ADDRESSLIST m_rList; // Array of addresses
  42. ULONG m_iAddress; // Current Address
  43. IMimeAddressTable *m_pTable; // Point back to original address table
  44. CRITICAL_SECTION m_cs; // Thread safety
  45. };
  46. #endif // __ADDRENUM_H