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.
 
 
 
 
 
 

65 lines
1.9 KiB

#pragma once
#include "nmbase.h"
#include "nmres.h"
extern LONG g_CountLanConnectionEnumerators;
class ATL_NO_VTABLE CLanConnectionManagerEnumConnection :
public CComObjectRootEx <CComMultiThreadModel>,
public CComCoClass <CLanConnectionManagerEnumConnection,
&CLSID_LanConnectionManagerEnumConnection>,
public IEnumNetConnection
{
private:
HDEVINFO m_hdi;
DWORD m_dwIndex;
public:
CLanConnectionManagerEnumConnection() throw()
{
m_hdi = NULL;
m_dwIndex = 0;
InterlockedIncrement(&g_CountLanConnectionEnumerators);
}
~CLanConnectionManagerEnumConnection() throw();
DECLARE_REGISTRY_RESOURCEID(IDR_LAN_CONMAN_ENUM)
BEGIN_COM_MAP(CLanConnectionManagerEnumConnection)
COM_INTERFACE_ENTRY(IEnumNetConnection)
END_COM_MAP()
// IEnumNetConnection
STDMETHOD(Next)(IN ULONG celt, OUT INetConnection **rgelt, OUT ULONG *pceltFetched);
STDMETHOD(Skip)(IN ULONG celt);
STDMETHOD(Reset)();
STDMETHOD(Clone)(OUT IEnumNetConnection **ppenum);
private:
//
// Private functions
//
HRESULT HrNextOrSkip(IN ULONG celt,
OUT INetConnection **rgelt,
OUT ULONG *pceltFetched);
HRESULT HrCreateLanConnectionInstance(IN SP_DEVINFO_DATA &deid,
OUT INetConnection **rgelt,
IN ULONG ulEntry);
public:
static HRESULT CreateInstance(IN NETCONMGR_ENUM_FLAGS Flags,
OUT REFIID riid,
OUT TAKEOWNERSHIP LPVOID *ppv);
};
//
// Helper functions
//
BOOL FIsValidNetCfgDevice(IN HKEY hkey) throw();
HRESULT HrIsLanCapableAdapterFromHkey(IN HKEY hkey) throw();
BOOL FIsFunctioning(IN const SP_DEVINFO_DATA * pdeid) throw();