Platform SDK: Active Directory, ADSI, and Directory Services |
The following code fragments use serverless binding to get a binding string for the default naming context on the domain associated with the current security context of the calling thread.
Dim rootDSE as IADs Dim sADsPath as String On Error GoTo NonAD Set rootDSE = GetObject("LDAP://rootDSE") SADsPath = "LDAP://" & rootDSE.Get("defaultNamingContext") 'Clean up Set rootDSE = Nothing NonAD: 'Notify couldn't bind to rootDSE
IADs *pRootDSE; IADs *pObject; HRESULT hr; VARIANT var; LPOLESTR szDSPath = new OLECHAR[MAX_PATH]; hr = ADsGetObject(L"LDAP://rootDSE", IID_IADs, (void**)&pRootDSE); if (SUCCEEDED(hr)) { hr = pRootDSE->Get(L"defaultNamingContext",&var); wcscpy(szDSPath,L"LDAP://"); wcscat(szDSPath,var.bstrVal); hr = ADsGetObject(szDSPath, IID_IADs, (void**) &pObject); } // Clean up pRootDSE->Release(); pObject->Release(); VariantClear(&var);