구성 요소 추가
네트워크 구성 하위 시스템은 하위 시스템이 네트워크 구성 요소를 추가할 때 알림 개체에 알릴 수 있습니다. 알림 개체를 초기화한 후 하위 시스템은 notify 개체의 INetCfgComponentNotifyGlobal::GetSupportedNotifications 메서드를 호출하여 개체에 필요한 알림 유형을 검색합니다. 알림 개체가 네트워크 구성 요소를 추가할 때 알림이 필요하도록 지정한 경우 하위 시스템은 알림 개체의 INetCfgComponentNotifyGlobal::SysNotifyComponent 메서드를 호출하고 NCN_ADD 전달하여 하위 시스템이 네트워크 구성 요소를 설치했음을 알림 개체에 알립니다. notify 개체를 소유하는 구성 요소가 지정된 구성 요소에 바인딩해야 하는 경우 notify 개체는 바인딩을 용이하게 하기 위해 작업을 수행해야 합니다. 예를 들어 다음 코드는 지정된 구성 요소가 필요한 물리적 네트워크 카드 경우 notify 개체가 해당 구성 요소를 지정된 구성 요소에 바인딩하는 방법을 보여 주는 코드입니다.
HRESULT CSample::SysNotifyComponent(DWORD dwChangeFlag,
INetCfgComponent* pnccItem)
{
HRESULT hr = S_OK;
INetCfgComponentBindings *pncfgcompbind;
// Retrieve bindings for the notify object's component (m_pncc)
hr = m_pncc->QueryInterface(IID_INetCfgComponentBindings,
(LPVOID*)&pncfgcompbind);
// Determine if notification is about adding a component
if (SUCCEEDED(hr) && (NCN_ADD & dwChangeFlag)) {
// Retrieve the characteristics of the added component
DWORD dwcc;
hr = pnccItem->GetCharacteristics(&dwcc);
// Determine if the added component is a physical adapter
if (SUCCEEDED(hr) && (dwcc & NCF_PHYSICAL)) {
// Determine the component's ID
LPWSTR pszwInfId;
hr = pnccItem->GetId(&pszwInfId);
if (SUCCEEDED(hr)) {
// Compare the component's ID to the required ID
// and if they are the same perform the binding.
static const TCHAR c_szCompId[] = TEXT("BINDTO_NIC");
if (!_tcsicmp(pszwInfId, c_szCompId)) {
hr = pncfgcompbind->BindTo(pnccItem);
}
}
}
}
return hr;
}