93 lines
1.7 KiB
C++
93 lines
1.7 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// 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 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:
|
|
|
|
ULONG m_uFlags;
|
|
SHARE_INFO_2* m_pShares; // may actually point to level 1 info
|
|
PWSTR m_pszMachine;
|
|
ULONG m_level; // 1 or 2
|
|
DWORD m_dwEnumFlags;
|
|
DWORD m_cShares;
|
|
DWORD m_iCurrent;
|
|
|
|
ULONG m_ulRefs;
|
|
};
|
|
|
|
//
|
|
// Values for m_dwEnumFlags
|
|
//
|
|
|
|
#ifdef WIZARDS
|
|
#define EF_SHOW_NEW_WIZARD 0x00000001
|
|
#define EF_SHOW_NW_WIZARD 0x00000002
|
|
#define EF_SHOW_MAC_WIZARD 0x00000004
|
|
#define EF_SHOW_ALL_WIZARD 0x00000008
|
|
#endif // WIZARDS
|
|
|
|
#endif // __ENUM_HXX__
|