windows-nt/Source/XPSP1/NT/net/homenet/alg/exe/adapterinfo.h
2020-09-26 16:20:57 +08:00

78 lines
1.7 KiB
C++

// AdapterInfo.h : Declaration of the CAdapterInfo
#pragma once
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
//
// CAdapterInfo
//
class ATL_NO_VTABLE CAdapterInfo :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CAdapterInfo, &CLSID_AdapterInfo>,
public IAdapterInfo
{
public:
CAdapterInfo()
{
MYTRACE_ENTER_NOSHOWEXIT("CAdapterInfo::NEW");
m_nCookie = 0;
m_nAdapterIndex = 0;
m_eType = (ALG_ADAPTER_TYPE)0;
m_nAddressCount = 0;
m_bNotified = false; // Flag to see if a newly added adapter notified the user CallBack notification
// This is used to only notify once the ALG plugin when the IP Address have been assign see CollectionAdapters.cpp
}
~CAdapterInfo()
{
MYTRACE_ENTER_NOSHOWEXIT("CAdapterInfo::DELETE");
}
DECLARE_REGISTRY_RESOURCEID(IDR_ADAPTERINFO)
DECLARE_NOT_AGGREGATABLE(CAdapterInfo)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CAdapterInfo)
COM_INTERFACE_ENTRY(IAdapterInfo)
END_COM_MAP()
//
// IAdapterInfo
//
public:
STDMETHODIMP GetAdapterAddresses(
OUT ULONG* pulAddressCount,
OUT ULONG** prgAddresses
);
STDMETHODIMP GetAdapterType(
OUT ALG_ADAPTER_TYPE* pAdapterType
);
STDMETHODIMP GetAdapterIndex(
OUT ULONG* pulIndex
);
//
// Properties
//
public:
ULONG m_nCookie;
ULONG m_nAdapterIndex;
ALG_ADAPTER_TYPE m_eType;
short m_nAddressCount;
DWORD m_anAddress[65];
DWORD m_aMask[65];
bool m_bNotified;
};