Bindung an untergeordnete Objekte
In ADSI macht ein Containerobjekt die IADsContainer-Schnittstelle verfügbar. Die IADsContainer::GetObject-Methode wird verwendet, um direkt an ein untergeordnetes Objekt zu binden. Das von IADsContainer::GetObject zurückgegebene Objekt verfügt über denselben Sicherheitskontext wie das Objekt, für das die Methode aufgerufen wurde. Dies bedeutet, dass bei Verwendung alternativer Anmeldeinformationen die alternativen Anmeldeinformationen nicht erneut an die Bindungsfunktion oder -methode übergeben werden müssen, um dieselben Anmeldeinformationen beizubehalten.
Die IADsContainer::GetObject-Methode verwendet einen relativen Distinguished Name (RDN), der relativ zum aktuellen Objekt ist. Diese Methode verwendet auch einen optionalen Klassennamen und gibt einen IDispatch-Schnittstellenzeiger zurück, der das untergeordnete Objekt darstellt. Um die gewünschte ADSI-Schnittstelle wie IADs abzurufen, rufen Sie die QueryInterface-Methode dieses IDispatch-Schnittstellenzeigers auf.
Das folgende C++-Codebeispiel zeigt eine Funktion, die ein angegebenes untergeordnetes Objekt abruft.
HRESULT GetChildObject(IADs *pObject,
LPCWSTR pwszClass,
LPCWSTR pwszRDN,
IADs **ppChild)
{
if(NULL == ppChild)
{
return E_INVALIDARG;
}
*ppChild = NULL;
if((NULL == pObject) || (NULL == pwszRDN))
{
return E_INVALIDARG;
}
HRESULT hr;
IADsContainer *pCont;
hr = pObject->QueryInterface(IID_IADsContainer, (LPVOID*)&pCont);
if(SUCCEEDED(hr))
{
BSTR bstrClass = NULL;
if(pwszClass)
{
bstrClass = SysAllocString(pwszClass);
}
BSTR bstrRDN = SysAllocString(pwszRDN);
if(bstrRDN)
{
IDispatch *pDisp;
hr = pCont->GetObject(bstrClass, bstrRDN, &pDisp);
if(SUCCEEDED(hr))
{
hr = pDisp->QueryInterface(IID_IADs, (LPVOID*)ppChild);
pDisp->Release();
}
}
else
{
hr = E_OUTOFMEMORY;
}
if(bstrRDN)
{
SysFreeString(bstrRDN);
}
if(bstrClass)
{
SysFreeString(bstrClass);
}
pCont->Release();
}
return hr;
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für