91 lines
2.2 KiB
C
91 lines
2.2 KiB
C
//*********************************************************************
|
|
//* Microsoft Windows **
|
|
//* Copyright(c) Microsoft Corp., 1994 **
|
|
//*********************************************************************
|
|
|
|
#include "admincfg.h"
|
|
|
|
BOOL OnRemove(HWND hwndApp,HWND hwndList)
|
|
{
|
|
int nItem,nItemStart=-1;
|
|
UINT nSelItems=0;
|
|
BOOL fRet=TRUE;
|
|
|
|
// find out how many items are selected
|
|
while ((nItem=ListView_GetNextItem(hwndList,nItemStart,LVNI_SELECTED))
|
|
>=0) {
|
|
nSelItems++;
|
|
nItemStart = nItem;
|
|
}
|
|
|
|
if (!nSelItems) return FALSE; // nothing selected
|
|
|
|
// display appropriate message depending on whether 1 user, 1 workstation,
|
|
// 1 group or multiple items selected
|
|
|
|
if (nSelItems == 1) {
|
|
HGLOBAL hUser;
|
|
USERDATA *pUserData;
|
|
UINT uMsg;
|
|
int nRet;
|
|
|
|
if (!(hUser = (HGLOBAL) LongToHandle(ListView_GetItemParm(hwndList,nItemStart))) ||
|
|
!(pUserData = (USERDATA *) GlobalLock(hUser)))
|
|
return FALSE;
|
|
|
|
switch (pUserData->hdr.dwType) {
|
|
#ifdef INCL_GROUP_SUPPORT
|
|
case (UT_USER | UF_GROUP):
|
|
uMsg = IDS_QUERYREMOVE_GROUP;
|
|
break;
|
|
#endif
|
|
|
|
case UT_USER:
|
|
uMsg = IDS_QUERYREMOVE_USER;
|
|
break;
|
|
|
|
default:
|
|
uMsg = IDS_QUERYREMOVE_WORKSTA;
|
|
break;
|
|
}
|
|
|
|
nRet=MsgBoxParam(hwndApp,uMsg,pUserData->hdr.szName,MB_ICONQUESTION,
|
|
MB_YESNO);
|
|
|
|
GlobalUnlock(hUser);
|
|
|
|
if (nRet != IDYES)
|
|
return FALSE;
|
|
} else {
|
|
if (MsgBox(hwndApp,IDS_QUERYREMOVE_MULTIPLE,MB_ICONQUESTION,MB_YESNO)
|
|
!= IDYES)
|
|
return FALSE;
|
|
}
|
|
|
|
// remove all selected items
|
|
while (((nItem=ListView_GetNextItem(hwndList,-1,LVNI_SELECTED))
|
|
>=0) && fRet) {
|
|
#ifdef INCL_GROUP_SUPPORT
|
|
HGLOBAL hUser;
|
|
USERDATA *pUserData;
|
|
|
|
if ((hUser = (HGLOBAL) LongToHandle(ListView_GetItemParm(hwndList,nItem))) &&
|
|
(pUserData = (USERDATA *) GlobalLock(hUser))) {
|
|
if (pUserData->hdr.dwType == (UT_USER | UF_GROUP))
|
|
RemoveGroupPriEntry(pUserData->hdr.szName);
|
|
GlobalUnlock(hUser);
|
|
}
|
|
#endif
|
|
fRet=RemoveUser(hwndList,nItem,TRUE);
|
|
}
|
|
|
|
if (fRet) {
|
|
dwAppState |= AS_FILEDIRTY; // file is dirty
|
|
dwAppState &= ~AS_CANREMOVE; // no selection in list ctrl, disable item
|
|
EnableMenuItems(hwndApp,dwAppState);
|
|
SetStatusItemCount(hwndList);
|
|
}
|
|
|
|
return fRet;
|
|
}
|