從擴充功能取得 ADSI 介面
延伸模組通常需要從其系結的目錄物件取得數據。 例如,計算機物件的延伸模組可能會想要從目錄取得目前物件的 dnsHostName。 在匯總工具的 IUnknown 介面上發出 QueryInterface 呼叫,即可輕鬆達成此目的。
HRESULT hr;
IADs *pADs; ' ADSI Interface to get/set attributes.
hr = m_pOuterUnk->QueryInterface(IID_IADs,(void**)&pADs);
if ( SUCCEEDED(hr) )
{
VARIANT var;
VariantInit(&var);
hr = pADs ->Get(_bstr_t("dnsHostName"), &var);
if ( SUCCEEDED(hr) )
{
printf("%S\n", V_BSTR(&var));
}
VariantClear(&var);
pADs->Release();
}
您應該在使用介面之後立即釋放介面。 如果延伸模組具有匯總工具的開啟參考,則您已建立循環參考,而匯總工具無法釋放延伸模組。 因此,匯總工具無法釋放,而且結果是應用程式中的記憶體流失。