static BOOL OnInitDialog (HWND hwnd, HWND hwndFocus, LPARAM lParam) { LPGRANTPARAMS lpgrant = (LPGRANTPARAMS)lParam; HWND hwndDatabases = GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_DATABASES); HWND hwndGrantees = GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_GRANTEES); HWND hwndProcedures= GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_PROCEDURES); UCHAR szDatabaseName[MAXOBJECTNAME]; char szTitle [MAX_TITLEBAR_LEN]; char szFormat[100]; if (!AllocDlgProp (hwnd, lpgrant)) return FALSE; // // force catolist.dll to load // CATOListDummy(); if (lpgrant->ObjectType == OT_PROCEDURE) LoadString (hResource, (UINT)IDS_T_GNREF_PROCEDURE, szFormat, sizeof (szFormat)); else LoadString (hResource, (UINT)IDS_T_GNREF_SEQUENCE, szFormat, sizeof (szFormat)); wsprintf ( szTitle, szFormat, GetVirtNodeName (GetCurMdiNodeHandle ())); SetWindowText (hwnd, szTitle); if (lpgrant->ObjectType == OT_PROCEDURE) lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_GNREF_PROCEDURE)); else lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)ID_HELPID_GNREF_SEQUENCE)); if (lpgrant->GranteeType == OT_GROUP) { Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_GROUP), TRUE); FillGrantees (hwndGrantees, lpgrant->GranteeType); } else if (lpgrant->GranteeType == OT_ROLE) { Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_ROLE), TRUE); FillGrantees (hwndGrantees, lpgrant->GranteeType); } else { if (x_strcmp (lpgrant->PreselectGrantee, lppublicdispstring()) == 0) Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_PUBLIC), TRUE); else { Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_USER), TRUE); lpgrant->GranteeType = OT_USER; FillGrantees (hwndGrantees, lpgrant->GranteeType); } } ComboBoxFillDatabases (hwndDatabases); ComboBoxSelectFirstStr (hwndDatabases); ComboBox_GetText (hwndDatabases, szDatabaseName, sizeof (szDatabaseName)); x_strcpy (lpgrant->DBName, szDatabaseName); if (lpgrant->ObjectType == OT_PROCEDURE) { if (!CAListBoxFillProcedures (hwndProcedures, szDatabaseName)) CAListBoxDestroyItemData (hwndProcedures); } else { ShowWindow( GetDlgItem (hwnd,IDC_GNREF_PROCEDURE_OPTION) ,SW_HIDE);// Hided "With grant Option" control LoadString (hResource, (UINT)IDS_STATIC_SEQUENCE, szFormat, sizeof (szFormat)); SetDlgItemText( hwnd, IDC_STATIC_GNREF_PROCEDURE, szFormat ); if (!CAListBoxFillSequences (hwndProcedures, lpgrant->DBName)) CAListBoxDestroyItemData (hwndProcedures); } if (x_strlen (lpgrant->PreselectGrantee) > 1) PreselectGrantee (hwndGrantees, lpgrant->PreselectGrantee); if (x_strlen (lpgrant->PreselectObject) > 1) CAListBoxSelectStringWithOwner (hwndProcedures, lpgrant->PreselectObject, lpgrant->PreselectObjectOwner); EnableDisableOKButton (hwnd); richCenterDialog(hwnd); return TRUE; }
static BOOL FillStructureFromControls (HWND hwnd, LPSECURITYALARMPARAMS lpsecurity) { char buf [MAXOBJECTNAME]; // char buffowner [MAXOBJECTNAME]; // char bufftable [MAXOBJECTNAME]; char szDBE [MAXOBJECTNAME]; char szName [MAXOBJECTNAME]; LPCHECKEDOBJECTS obj; LPCHECKEDOBJECTS list = NULL; int i, max_database_number, checked; HWND hwndDB = GetDlgItem (hwnd, IDC_SALARM_ONTABLE); HWND hwndUsers = GetDlgItem (hwnd, IDC_SALARM_BYUSER ); HWND hwndSuccess = GetDlgItem (hwnd, IDC_SALARM_SUCCESS); HWND hwndFailure = GetDlgItem (hwnd, IDC_SALARM_FAILURE); HWND hwndSelect = GetDlgItem (hwnd, IDC_SALARM_SELECT); HWND hwndDelete = GetDlgItem (hwnd, IDC_SALARM_DELETE); HWND hwndInsert = GetDlgItem (hwnd, IDC_SALARM_INSERT); HWND hwndUpdate = GetDlgItem (hwnd, IDC_SALARM_UPDATE); HWND hwndConnect = GetDlgItem (hwnd, IDC_SALARM_CONNECT); HWND hwndDisconnect = GetDlgItem (hwnd, IDC_SALARM_DISCONNECT); HWND hwndDBE = GetDlgItem (hwnd, IDC_SALARM_DBEVENT); HWND hwndDBEText = GetDlgItem (hwnd, IDC_SALARM_DBEVENT_TEXT); HWND hwndName = GetDlgItem (hwnd, IDC_SALARM_NAME); x_strcpy (lpsecurity->DBName, "iidbdb"); ZEROINIT (szName); Edit_GetText (hwndName, szName, sizeof (szName)); x_strcpy (lpsecurity->ObjectName, szName); lpsecurity->bsuccfail [SECALARMSUCCESS] = Button_GetCheck (hwndSuccess); lpsecurity->bsuccfail [SECALARMFAILURE] = Button_GetCheck (hwndFailure); // // Get selection from // toggle buttons (Select, Delete, Insert, Update) // lpsecurity->baccesstype [SECALARMSEL] = Button_GetCheck (hwndSelect); lpsecurity->baccesstype [SECALARMDEL] = Button_GetCheck (hwndDelete); lpsecurity->baccesstype [SECALARMINS] = Button_GetCheck (hwndInsert); lpsecurity->baccesstype [SECALARMUPD] = Button_GetCheck (hwndUpdate); lpsecurity->baccesstype [SECALARMCONNECT] = Button_GetCheck (hwndConnect ); lpsecurity->baccesstype [SECALARMDISCONN] = Button_GetCheck (hwndDisconnect); // // Get the names of users that have been checked and // insert into the list // if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_USER))) lpsecurity->iAuthIdType = OT_USER; else if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_GROUP))) lpsecurity->iAuthIdType = OT_GROUP; else if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_ROLE))) lpsecurity->iAuthIdType = OT_ROLE; else if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_PUBLIC))) lpsecurity->iAuthIdType = OT_PUBLIC; else lpsecurity->iAuthIdType = OT_USER; max_database_number = CAListBox_GetCount (hwndUsers); if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_PUBLIC))) { obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { x_strcpy (obj->dbname, lppublicsysstring()); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } for (i = 0; i < max_database_number; i++) { checked = CAListBox_GetSel (hwndUsers, i); if (checked == 1) { CAListBox_GetText (hwndUsers, i, buf); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { if (x_strcmp (buf, lppublicdispstring()) == 0) x_strcpy (obj->dbname, lppublicsysstring()); else x_strcpy (obj->dbname, QuoteIfNeeded(buf)); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstUser = list; // // Get the names of Database that have been checked and // insert into the list // max_database_number = CAListBox_GetCount (hwndDB); list = NULL; for (i=0; i<max_database_number; i++) { checked = CAListBox_GetSel (hwndDB, i); if (checked) { CAListBox_GetText (hwndDB, i, buf); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { x_strcpy (obj->dbname, buf); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstTable = list; ComboBox_GetText (hwndDBE, szDBE, sizeof (szDBE)); if ((x_strlen (szDBE) > 0 ) && (x_strcmp (szDBE, szSecurityDBEvent) != 0)) { char szOwner [MAXOBJECTNAME]; char szAll [MAXOBJECTNAME]; int len, nSel; nSel = ComboBox_GetCurSel (hwndDBE); x_strcpy (szOwner, (char *) ComboBox_GetItemData (hwndDBE, nSel)); StringWithOwner (szDBE, szOwner, szAll); x_strcpy (lpsecurity->DBEvent, szAll); len = Edit_GetTextLength (hwndDBEText); if (len > 0) { lpsecurity->lpDBEventText = ESL_AllocMem ((len*sizeof(TCHAR)) + sizeof(TCHAR)); if (lpsecurity->lpDBEventText) { Edit_GetText (hwndDBEText, lpsecurity->lpDBEventText, len+1); // Emb 26/06/97: +1 was missing --> lost character if (EscapedSimpleQuote(&lpsecurity->lpDBEventText) == RES_ERR) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } } else { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } } lpsecurity->bDBEvent = TRUE; } else if (lpsecurity->lpDBEventText) { ESL_FreeMem (lpsecurity->lpDBEventText); lpsecurity->lpDBEventText = NULL; } return TRUE; }
LONG CuDlgDomPropRole::OnUpdateData (WPARAM wParam, LPARAM lParam) { // cast received parameters int nNodeHandle = (int)wParam; LPIPMUPDATEPARAMS pUps = (LPIPMUPDATEPARAMS)lParam; ASSERT (nNodeHandle != -1); ASSERT (pUps); // ignore selected actions on filters switch (pUps->nIpmHint) { case 0: case FILTER_DOM_SYSTEMOBJECTS: // because list of grantees can contain "$ingres" //case FILTER_DOM_BASEOWNER: //case FILTER_DOM_OTHEROWNER: break; case FILTER_DOM_BKREFRESH_DETAIL: if (m_Data.m_refreshParams.MustRefresh(pUps->pSFilter->bOnLoad, pUps->pSFilter->refreshtime)) break; // need to update else return 0; // no need to update break; default: return 0L; // nothing to change on the display } // Get info on the object ROLEPARAMS roleParams; memset (&roleParams, 0, sizeof (roleParams)); LPTREERECORD lpRecord = (LPTREERECORD)pUps->pStruct; ASSERT (lpRecord); ResetDisplay(); // // Manage "Public" special case // CString csPublic(lppublicdispstring()); if (csPublic.CompareNoCase ((const char *)lpRecord->objName) == 0) { // Unacceptable for this property page since managed differently in AllocateUserPageInfo() (mainvi2.cpp) ASSERT (FALSE); // Reset m_Data CuDomPropDataRole tempData; tempData.m_refreshParams = m_Data.m_refreshParams; m_Data = tempData; // Refresh display RefreshDisplay(); return 0L; } // starting from here, "Normal" case // // Get Detail Info // x_strcpy ((char *)roleParams.ObjectName, (const char *)lpRecord->objName); int dummySesHndl; int iResult = GetDetailInfo ((LPUCHAR)GetVirtNodeName(nNodeHandle), OT_ROLE, &roleParams, FALSE, &dummySesHndl); if (iResult != RES_SUCCESS) { ASSERT (FALSE); // Reset m_Data CuDomPropDataRole tempData; tempData.m_refreshParams = m_Data.m_refreshParams; m_Data = tempData; // Refresh display RefreshDisplay(); return 0L; } // Update refresh info m_Data.m_refreshParams.UpdateRefreshParams(); // update member variables, for display/load/save purpose if (roleParams.lpLimitSecLabels) m_Data.m_csLimSecureLabel = roleParams.lpLimitSecLabels; else m_Data.m_csLimSecureLabel = ""; ASSERT (sizeof(m_Data.m_aPrivilege) == sizeof (roleParams.Privilege) ); memcpy(m_Data.m_aPrivilege, roleParams.Privilege, sizeof (roleParams.Privilege)); ASSERT (sizeof(m_Data.m_aSecAudit) == sizeof (roleParams.bSecAudit) ); memcpy(m_Data.m_aSecAudit, roleParams.bSecAudit, sizeof (roleParams.bSecAudit)); // liberate detail structure FreeAttachedPointers (&roleParams, OT_ROLE); // // Get list of grantees on role // m_Data.m_acsGranteesOnRole.RemoveAll(); int iret; LPUCHAR aparentsTemp[MAXPLEVEL]; UCHAR buf[MAXOBJECTNAME]; UCHAR bufOwner[MAXOBJECTNAME]; UCHAR bufComplim[MAXOBJECTNAME]; memset (&bufComplim, '\0', sizeof(bufComplim)); memset (&bufOwner, '\0', sizeof(bufOwner)); aparentsTemp[0] = lpRecord->objName; aparentsTemp[1] = aparentsTemp[2] = NULL; iret = DOMGetFirstObject(nNodeHandle, OT_ROLEGRANT_USER, 1, // level, aparentsTemp, // Temp mandatory! pUps->pSFilter->bWithSystem, // bwithsystem NULL, // lpowner buf, bufOwner, bufComplim); if (iret != RES_SUCCESS && iret != RES_ENDOFDATA) { // Erroneous case! CString csUnavail = VDBA_MfcResourceString (IDS_DATA_UNAVAILABLE);//"<Data Unavailable>" m_Data.m_acsGranteesOnRole.Add(csUnavail); } else { while (iret == RES_SUCCESS) { m_Data.m_acsGranteesOnRole.Add((LPCTSTR)buf); iret = DOMGetNextObject(buf, bufOwner, bufComplim); } } if (m_Data.m_acsGranteesOnRole.GetUpperBound() == -1) { CString csNoGrantee = VDBA_MfcResourceString (IDS_E_NO_GRANTEE);//"<No Grantee>"; m_Data.m_acsGranteesOnRole.Add(csNoGrantee); } // Refresh display RefreshDisplay(); return 0L; }
static BOOL OnInitDialog (HWND hwnd, HWND hwndFocus, LPARAM lParam) { LPREVOKEPARAMS lprevoke = (LPREVOKEPARAMS)lParam; HWND hwndGrantees = GetDlgItem (hwnd, IDC_REVOKE_TABLE_GRANTEES); char szTitle [90]; char szStr [MAX_TITLEBAR_LEN]; int i, positive_privilege; BOOL bGrantAll = FALSE; char buffer [MAXOBJECTNAME]; LPUCHAR parentstrings [MAXPLEVEL]; if (!AllocDlgProp (hwnd, lprevoke)) return FALSE; // // force catolist.dll to load // CATOListDummy(); for (i = 0; i < GRANT_MAX_PRIVILEGES; i++) { if (lprevoke->PreselectPrivileges [i]) { positive_privilege = i; break; } } switch (lprevoke->ObjectType) { case OT_TABLE: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_REVOKE_TABLE)); break; case OT_VIEW: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_REVOKE_VIEW)); break; case OT_DBEVENT: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_REVOKE_DBEVENT)); break; case OT_PROCEDURE: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_RVKGPROC)); break; case OT_SEQUENCE: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_RVKGSEQUENCE)); break; } switch (positive_privilege) { case GRANT_SELECT : LoadString (hResource, (UINT)IDS_T_REVOKE_SELECT_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_SELECT] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_SEL_USER; else HaveBeenGranted = OT_VIEWGRANT_SEL_USER; break; case GRANT_INSERT : LoadString (hResource, (UINT)IDS_T_REVOKE_INSERT_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_INSERT] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_INS_USER; else HaveBeenGranted = OT_VIEWGRANT_INS_USER; break; case GRANT_UPDATE : LoadString (hResource, (UINT)IDS_T_REVOKE_UPDATE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_UPDATE] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_UPD_USER; else HaveBeenGranted = OT_VIEWGRANT_UPD_USER; break; case GRANT_DELETE : LoadString (hResource, (UINT)IDS_T_REVOKE_DELETE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_DELETE] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_DEL_USER; else HaveBeenGranted = OT_VIEWGRANT_DEL_USER; break; case GRANT_COPY_INTO : LoadString (hResource, (UINT)IDS_T_REVOKE_COPYINTO_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_COPY_INTO] = TRUE; HaveBeenGranted = OT_TABLEGRANT_CPI_USER; break; case GRANT_COPY_FROM : LoadString (hResource, (UINT)IDS_T_REVOKE_COPYFROM_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_COPY_FROM] = TRUE; HaveBeenGranted = OT_TABLEGRANT_CPF_USER; break; case GRANT_REFERENCE : LoadString (hResource, (UINT)IDS_T_REVOKE_REFERENCE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_REFERENCE] = TRUE; HaveBeenGranted = OT_TABLEGRANT_REF_USER; break; case GRANT_RAISE : LoadString (hResource, (UINT)IDS_T_REVOKE_RAISE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_RAISE] = TRUE; HaveBeenGranted = OT_DBEGRANT_RAISE_USER; break; case GRANT_REGISTER : LoadString (hResource, (UINT)IDS_T_REVOKE_REGISTER_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_REGISTER] = TRUE; HaveBeenGranted = OT_DBEGRANT_REGTR_USER; break; case GRANT_EXECUTE : LoadString (hResource, (UINT)IDS_T_REVOKE_EXECUTE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_EXECUTE] = TRUE; HaveBeenGranted = OT_PROCGRANT_EXEC_USER; break; case GRANT_NEXT_SEQUENCE : LoadString (hResource, (UINT)IDS_T_REVOKE_NEXT_SEQUENCE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_NEXT_SEQUENCE] = TRUE; HaveBeenGranted = OT_SEQUGRANT_NEXT_USER; break; case GRANT_ALL : LoadString (hResource, (UINT)IDS_T_REVOKE_ALL_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_ALL] = TRUE; bGrantAll = TRUE; switch (lprevoke->ObjectType) { case OT_TABLE: break; case OT_PROCEDURE: break; case OT_DBEVENT: break; } HaveBeenGranted = -1; break; } parentstrings [0] = lprevoke->DBName; GetExactDisplayString ( lprevoke->PreselectObject, lprevoke->PreselectObjectOwner, lprevoke->ObjectType, parentstrings, buffer); wsprintf ( szStr, szTitle, GetVirtNodeName ( GetCurMdiNodeHandle ()), lprevoke->DBName, buffer); SetWindowText (hwnd, szStr); if ( lprevoke->ObjectType == OT_SEQUENCE) { //Hide control the controls not used for sequences ShowWindow( GetDlgItem (hwnd,IDC_REVOKE_TABLE_GRANT_OPTION) ,SW_HIDE); // Hided "With grant Option" control ShowWindow( GetDlgItem (hwnd,IDC_REVOKE_TABLE_PRIVILEGE) ,SW_HIDE); ShowWindow( GetDlgItem (hwnd,102) ,SW_HIDE); ShowWindow( GetDlgItem (hwnd,5020) ,SW_HIDE); // Unchecked the controls not used Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_PRIVILEGE), FALSE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_CASCADE), TRUE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_RESTRICT), FALSE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_GRANT_OPTION), FALSE); } else { Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_PRIVILEGE),TRUE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_CASCADE), TRUE); } if (lprevoke->GranteeType == OT_UNKNOWN) { HandleUnknounObject (hwnd); } else if (lprevoke->GranteeType == OT_GROUP) { Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_GROUP), TRUE); FillGrantedUsers(hwndGrantees, lprevoke, HaveBeenGranted); } else if (lprevoke->GranteeType == OT_ROLE) { Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_ROLE), TRUE); FillGrantedUsers(hwndGrantees, lprevoke, HaveBeenGranted); } else { if (x_strcmp (lprevoke->PreselectGrantee, lppublicdispstring()) == 0) Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_PUBLIC), TRUE); else { lprevoke->GranteeType = OT_USER; Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_USER), TRUE); FillGrantedUsers(hwndGrantees, lprevoke, HaveBeenGranted); } } if (x_strlen (lprevoke->PreselectGrantee) > 0) { CAListBox_SelectString (hwndGrantees, -1, lprevoke->PreselectGrantee); } if (lprevoke->GranteeType != OT_UNKNOWN) EnableDisableOKButton (hwnd); richCenterDialog(hwnd); return TRUE; }
static BOOL FillStructureFromControls (HWND hwnd, LPSECURITYALARMPARAMS lpsecurity) { char buf [MAXOBJECTNAME]; char buffowner [MAXOBJECTNAME]; char bufftable [MAXOBJECTNAME]; LPCHECKEDOBJECTS obj; LPCHECKEDOBJECTS list = NULL; int i, max_database_number, checked; HWND hwndUsers = GetDlgItem (hwnd, IDC_REFALARM_BYUSER ); HWND hwndTables = GetDlgItem (hwnd, IDC_REFALARM_ONTABLE); HWND hwndSuccess = GetDlgItem (hwnd, IDC_REFALARM_SUCCESS); HWND hwndFailure = GetDlgItem (hwnd, IDC_REFALARM_FAILURE); HWND hwndSelect = GetDlgItem (hwnd, IDC_REFALARM_SELECT); HWND hwndDelete = GetDlgItem (hwnd, IDC_REFALARM_DELETE); HWND hwndInsert = GetDlgItem (hwnd, IDC_REFALARM_INSERT); HWND hwndUpdate = GetDlgItem (hwnd, IDC_REFALARM_UPDATE); lpsecurity->bsuccfail [SECALARMSUCCESS] = Button_GetCheck (hwndSuccess); lpsecurity->bsuccfail [SECALARMFAILURE] = Button_GetCheck (hwndFailure); // // Get selection from // toggle buttons (Select, Delete, Insert, Update) // lpsecurity->baccesstype [SECALARMSEL] = Button_GetCheck (hwndSelect); lpsecurity->baccesstype [SECALARMDEL] = Button_GetCheck (hwndDelete); lpsecurity->baccesstype [SECALARMINS] = Button_GetCheck (hwndInsert); lpsecurity->baccesstype [SECALARMUPD] = Button_GetCheck (hwndUpdate); // // Get the names of users that have been checked and // insert into the list // max_database_number = CAListBox_GetCount (hwndUsers); for (i=0; i<max_database_number; i++) { checked = CAListBox_GetSel (hwndUsers, i); if (checked) { CAListBox_GetText (hwndUsers, i, buf); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); break; } else { if (x_strcmp (buf, lppublicdispstring()) == 0) x_strcpy (obj->dbname, lppublicsysstring()); else x_strcpy (obj->dbname, buf); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstUser = list; // // Get the names of Tables that have been checked and // insert into the list // max_database_number = CAListBox_GetCount (hwndTables); list = NULL; for (i = 0; i < max_database_number; i++) { checked = CAListBox_GetSel (hwndTables, i); if (checked) { CAListBox_GetText (hwndTables, i, buf); x_strcpy (buffowner, (char *) CAListBox_GetItemData (hwndTables, i)); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { StringWithOwner (buf, buffowner, bufftable); x_strcpy (obj->dbname, bufftable); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstTable = list; return TRUE; }