共用方式為


INetworkCostManager::SetDestinationAddresses 方法 (netlistmgr.h)

SetDestinationAddresses 方法會註冊指定的目的地 IPv4/IPv6 位址,以接收成本或數據計劃狀態變更通知。

語法

HRESULT SetDestinationAddresses(
  [in] UINT32       length,
  [in] NLM_SOCKADDR *pDestIPAddrList,
       VARIANT_BOOL bAppend
);

參數

[in] length

清單中的目的地 IPv4/IPv6 位址數目。

[in] pDestIPAddrList

包含目的地 IPv4/IPv6 位址清單的 NLM_SOCKADDR 結構,可註冊成本或數據計劃狀態變更通知。

bAppend

如果為 true,pDestIPAddrList 將會附加至現有的通訊清單;否則將會覆寫現有的清單。

傳回值

傳回成功時S_OK,否則會傳回 HRESULT 錯誤碼。

傳回碼 Description
E_INVALIDARG
如果發生下列其中一項,則會傳回 :
  • length 為 0。
  • length 大於 NLM_MAX_ADDRESS_LIST_SIZE (10)
  • bAppend VARIANT_TRUE,但包含現有清單中的已訂閱目的地數目,且 長度 超過 NLM_MAX_ADDRESS_SIZE。
  • 所提供清單中的目的地地址無效。
E_POINTER
destIPAddrList 為 NULL。
HRESULT_FROM_WIN32 (ERROR_NOT_SUPPORTED)
不支援此要求。 如果本機計算機上沒有IPv4或IPv6堆棧,但 已由 destIPAddr 指定 IPv4 或 IPv6 位址,就會傳回此錯誤。
HRESULT_FROM_WIN32 (ERROR_ALREADY_INITIALIZED)
在註冊 INetworkCostManagerEvents 之後呼叫此方法,方法是呼叫 IConnectionPoint::Advise。 如需詳細資訊,請參閱。

備註

這個方法必須在 IConnectionPoint::Advise 之前呼叫。 呼叫 IConnectionPoint::Advise 之後,在最後一個接收呼叫 IConnectionPoint::UnAdvise 之前,此方法將不會順利完成。 不過,在呼叫 IConnectionPoint::Advise 之前,可以多次呼叫此方法。

如果 pDestIPAddrList 所指示的目的地位址清單包含重複的位址,則只會使用其中一個位址來通知成本變更。 呼叫端可以藉由呼叫 長度設定為 0、 destIPAddrList set NULL 和 bAppend set FALSE 的函式來清除目的地清單。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 都不支援
目標平台 Windows
標頭 netlistmgr.h

另請參閱

IConnectionPoint::建議

IConnectionPoint::UnAdvise

INetworkCostManager