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; }