Windows2003-3790/inetcore/outlookexpress/inetcomm/mimeole/addrenum.h

53 lines
2.4 KiB
C
Raw Normal View History

2001-01-01 00:00:00 +01:00
// --------------------------------------------------------------------------------
// Addrenum.h
// Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
// --------------------------------------------------------------------------------
#ifndef __ADDRENUM_H
#define __ADDRENUM_H
// --------------------------------------------------------------------------------
// CMimeEnumAddressTypes
// --------------------------------------------------------------------------------
class CMimeEnumAddressTypes : public IMimeEnumAddressTypes
{
public:
// ----------------------------------------------------------------------------
// Construction
// ----------------------------------------------------------------------------
CMimeEnumAddressTypes(void);
~CMimeEnumAddressTypes(void);
// ----------------------------------------------------------------------------
// IUnknown
// ----------------------------------------------------------------------------
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// ----------------------------------------------------------------------------
// IMimeEnumAddressTypes
// ----------------------------------------------------------------------------
STDMETHODIMP Next(ULONG cItems, LPADDRESSPROPS prgAdr, ULONG *pcFetched);
STDMETHODIMP Skip(ULONG cItems);
STDMETHODIMP Reset(void);
STDMETHODIMP Clone(IMimeEnumAddressTypes **ppEnum);
STDMETHODIMP Count(ULONG *pcItems);
// ----------------------------------------------------------------------------
// CMimeEnumAddressTypes
// ----------------------------------------------------------------------------
HRESULT HrInit(IMimeAddressTable *pTable, ULONG iItem, LPADDRESSLIST pList, BOOL fDuplicate);
private:
// ----------------------------------------------------------------------------
// Private Data
// ----------------------------------------------------------------------------
LONG m_cRef; // Reference count
ADDRESSLIST m_rList; // Array of addresses
ULONG m_iAddress; // Current Address
IMimeAddressTable *m_pTable; // Point back to original address table
CRITICAL_SECTION m_cs; // Thread safety
};
#endif // __ADDRENUM_H