//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1995 - 1995. // // File: enum.hxx // // Contents: Implementation of IEnumIDList // // History: 13-Dec-95 BruceFo Created // //---------------------------------------------------------------------------- #ifndef __ENUM_HXX__ #define __ENUM_HXX__ #include "shares.h" ////////////////////////////////////////////////////////////////////////////// class CShare; class CShareHashTable; class CIterateData; class CSharesEnum : public IEnumIDList { public: CSharesEnum( IN PWSTR pszMachine, IN DWORD level ); HRESULT Init( ULONG uFlags ); ~CSharesEnum(); // // IUnknown methods // STDMETHOD(QueryInterface)(REFIID riid, LPVOID* ppvObj); STDMETHOD_(ULONG,AddRef)(); STDMETHOD_(ULONG,Release)(); // // IEnumIDList methods // STDMETHOD(Next)( ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched ); STDMETHOD(Skip)( ULONG celt ); STDMETHOD(Reset)( VOID ); STDMETHOD(Clone)( IEnumIDList** ppenum ); private: PWSTR m_pszMachine; ULONG m_uFlags; BOOL m_bDoSmb; BOOL m_bDoFpnw; BOOL m_bDoSfm; // SMB shares SHARE_INFO_2* m_pShares; // may actually point to level 1 info ULONG m_level; // 1 or 2 DWORD m_cShares; // FPNW shares FPNWVOLUMEINFO* m_pFpnwShares; DWORD m_cFpnwShares; // SFM shares AFP_VOLUME_INFO* m_pSfmShares; DWORD m_cSfmShares; ULONG m_ulRefs; CShare* m_pShareList; CShare* m_pShareCurrent; }; #endif // __ENUM_HXX__