windows-nt/Source/XPSP1/NT/net/homenet/alg/alg_test/myadapternotify.cpp

130 lines
2.2 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
//
// MyAdapterNotify.cpp : Implementation of CMyALG
//
// Call back class for notification of adapter added, removed or modified
//
#include "PreComp.h"
#include "MyAdapterNotify.h"
/////////////////////////////////////////////////////////////////////////////
//
// CMyAdapterNotify
//
//
// This function will be call when a new adapter is made active
//
STDMETHODIMP
CMyAdapterNotify::AdapterAdded(
IAdapterInfo* pAdapter
)
{
MYTRACE_ENTER("CMyAdapterNotify::AdapterAdded");
ULONG ulIndex;
HRESULT hr = pAdapter->GetAdapterIndex(&ulIndex);
if ( SUCCEEDED(hr) )
{
MYTRACE("Adapter Index %d", ulIndex);
}
else
{
MYTRACE_ERROR("On GetAdapterIndex", hr);
}
ALG_ADAPTER_TYPE eType;
hr = pAdapter->GetAdapterType(&eType);
if ( SUCCEEDED(hr) )
{
MYTRACE("Adapter Type %d", eType);
}
else
{
MYTRACE_ERROR("On GetAdapterType", hr);
}
return S_OK;
}
//
// This function will be call when a adapter is remove and/or disable
//
STDMETHODIMP
CMyAdapterNotify::AdapterRemoved(
IAdapterInfo* pAdapter
)
{
MYTRACE_ENTER("CMyAdapterNotify::AdapterRemoved");
ULONG ulIndex;
HRESULT hr = pAdapter->GetAdapterIndex(&ulIndex);
if ( SUCCEEDED(hr) )
{
MYTRACE("Adapter Index %d", ulIndex);
}
else
{
MYTRACE_ERROR("On GetAdapterIndex", hr);
}
return S_OK;
}
//
// This function will be call when a adapter is modified
//
STDMETHODIMP
CMyAdapterNotify::AdapterModified(
IAdapterInfo* pAdapter
)
{
MYTRACE_ENTER("CMyAdapterNotify::AdapterModified");
ULONG nIndex;
HRESULT hr = pAdapter->GetAdapterIndex(
&nIndex
);
MYTRACE("For Adapter INDEX %d", nIndex);
ULONG nAddressCount;
ULONG* pnAddresses;
hr = pAdapter->GetAdapterAddresses(
&nAddressCount,
&pnAddresses
);
if ( SUCCEEDED(hr) )
{
for ( ULONG nI=0; nI < nAddressCount; nI++ )
{
MYTRACE("Address %s", MYTRACE_IP(pnAddresses[nI]));
}
}
else
{
MYTRACE_ERROR("Could not get the addresss", hr);
}
CoTaskMemFree(pnAddresses);
return S_OK;
}