| Platform SDK: Active Directory, ADSI, and Directory Services |
The following code fragment contains a function that removes a member from a group:
////////////////////////////////////////////////////////////////////////////////////////////////////
/* RemoveMemberFromGroup() - Removes the passed directory object from the membership of passed group
Parameters
IADsGroup * pGroup - Group to remove the member from
IADs* pIADsNewMember - Object to remove.
Object can be a user, contact, or group.
*/
HRESULT RemoveMemberFromGroup(IADsGroup * pGroup, IADs* pIADsNewMember)
{
HRESULT hr = E_INVALIDARG;
if ((!pGroup)||(!pIADsNewMember))
return hr;
// Use the IADs::get_ADsPath() member to get the ADsPath
// Once the ADsPath string is returned, all that is needed to
// remove the member from the group, is to call the
// IADsGroup::Remove() method, passing in the ADsPath string.
// Ask the member for it's AdsPath
// This is a fully qualified LDAP path to the object to remove.
BSTR bsNewMemberPath;
hr = pIADsNewMember->get_ADsPath(&bsNewMemberPath);
if (SUCCEEDED(hr))
{
// Use the IADsGroup interface to remove the member.
// Pass the LDAP path to the
// member to the IADsGroup::Remove() method
hr = pGroup->Remove(bsNewMemberPath);
// Free the string returned from IADs::get_ADsPath()
SysFreeString(bsNewMemberPath);
}
return hr;
}