Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das objectClass-Attribut enthält die Klasse, von der das Objekt ein instance ist, sowie alle Klassen, von denen diese Klasse abgeleitet ist. Beispielsweise erbt die Benutzerklasse von top, person und organizationalPerson; Daher enthält das objectClass-Attribut die Namen dieser Klassen sowie den Benutzer. Wie können Sie also herausfinden, welche Klasse das Objekt instance ist? Das objectClass-Attribut ist das einzige Attribut mit mehreren Werten, das geordnete Werte aufweist. Der erste Wert ist der oberste Wert der Klassenhierarchie, wobei es sich um die oberste Klasse handelt, und der letzte Wert ist die am häufigsten abgeleitete Klasse, d. h. die Klasse, von der das Objekt instance ist.
Die folgende Funktion verwendet einen Zeiger auf eine Spalte, die ein objectClass-Attribut enthält, und gibt die instanziierte objectClass des -Objekts zurück.
HRESULT GetClass(ADS_SEARCH_COLUMN *pcol, LPOLESTR *ppClass)
{
if (!pcol)
return E_POINTER;
HRESULT hr = E_FAIL;
if (ppClass)
{
LPOLESTR szClass = new OLECHAR[MAX_PATH];
wcscpy_s(szClass, L"");
if ( _wcsicmp(pcol->pszAttrName,L"objectClass") == 0 )
{
for (DWORD x = 0; x< pcol->dwNumValues; x++)
{
wcscpy_s(szClass, pcol->pADsValues[x].CaseIgnoreString);
}
}
if (0==wcscmp(L"", szClass))
{
hr = E_FAIL;
}
else
{
//Allocate memory for string.
//Caller must free using CoTaskMemFree.
*ppClass = (OLECHAR *)CoTaskMemAlloc (
sizeof(OLECHAR)*(wcslen(szClass)+1));
if (*ppClass)
{
wcscpy_s(*ppClass, szClass);
hr = S_OK;
}
else
hr=E_FAIL;
}
}
return hr;
}