void FormMain_OnCommand()

in setupgui/windows/odbcdialogparams.cpp [656:820]


void FormMain_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
  if (controlWithDefValue != 0 && id == controlWithDefValue
    && codeNotify==EN_CHANGE)
    controlWithDefValue= 0;

  switch (id)
  {
    case IDOK:
      btnOk_Click(hwnd); break;
    case IDCANCEL:
      btnCancel_Click(hwnd); break;
    case IDC_BUTTON_DETAILS:
      btnDetails_Click(hwnd); break;
    case IDC_BUTTON_HELP:
      btnHelp_Click(hwnd); break;
    case IDC_BUTTON_TEST:
      btnTest_Click(hwnd); break;
    case IDC_SSLKEYCHOOSER:
      chooseFile(hwnd, IDC_EDIT_SSL_KEY); break;
    case IDC_SSLCERTCHOOSER:
      chooseFile(hwnd, IDC_EDIT_SSL_CERT); break;
    case IDC_SSLCACHOOSER:
      chooseFile(hwnd, IDC_EDIT_SSL_CA); break;
    case IDC_SSLCAPATHCHOOSER:
      choosePath(hwnd, IDC_EDIT_SSL_CAPATH); break;
    case IDC_RSAKEYCHOOSER:
      chooseFile(hwnd, IDC_EDIT_RSAKEY); break;
    case IDC_SSLCRLCHOOSER:
      chooseFile(hwnd, IDC_EDIT_SSL_CRL); break;
    case IDC_SSLCRLPATHCHOOSER:
      choosePath(hwnd, IDC_EDIT_SSL_CRLPATH); break;
    case IDC_CHOOSER_PLUGIN_DIR:
      choosePath(hwnd, IDC_EDIT_PLUGIN_DIR); break;
    case IDC_CHOOSER_LOAD_DATA_LOCAL_DIR:
      choosePath(hwnd, IDC_EDIT_LOAD_DATA_LOCAL_DIR); break;
    case IDC_CHOOSER_OCI_CONFIG_FILE:
      chooseFile(hwnd, IDC_EDIT_OCI_CONFIG_FILE); break;
    case IDC_RADIO_tcp:
    case IDC_RADIO_NAMED_PIPE:
      SwitchTcpOrPipe(hwnd, !!Button_GetCheck(GetDlgItem(hwnd, IDC_RADIO_NAMED_PIPE)));
      break;
    case IDC_EDIT_AUTH_MODE:
      {
        HWND authTab = TabCtrl_1.hTabPages[AWS_AUTH_TAB - 1];
        assert(authTab);

        HWND host = GetDlgItem(authTab, IDC_EDIT_AUTH_HOST);
        HWND port = GetDlgItem(authTab, IDC_EDIT_AUTH_PORT);
        HWND expiration = GetDlgItem(authTab, IDC_EDIT_AUTH_EXPIRATION);
        HWND secret_id = GetDlgItem(authTab, IDC_EDIT_AUTH_SECRET_ID);
        assert(port);
        assert(host);
        assert(expiration);
        assert(secret_id);

        wchar_t authMode[20];
        ComboBox_GetText(GetDlgItem(authTab, IDC_EDIT_AUTH_MODE), authMode, sizeof(authMode));

        BOOL usingIAM = wcsicmp(authMode, L"IAM") == 0;
        EnableWindow(port, usingIAM);
        EnableWindow(host, usingIAM);
        EnableWindow(expiration, usingIAM);

        BOOL usingSecretsManager = wcsicmp(authMode, L"SECRETS MANAGER") == 0;
        EnableWindow(secret_id, usingSecretsManager);
      }
      break;
    case IDC_EDIT_FED_AUTH_MODE:
    {
        HWND fedAuthMode = TabCtrl_1.hTabPages[FED_AUTH_TAB - 1];
        assert(fedAuthMode);

        HWND endpoint = GetDlgItem(fedAuthMode, IDC_EDIT_IDP_ENDPOINT);
        HWND user = GetDlgItem(fedAuthMode, IDC_EDIT_IDP_USERNAME);
        HWND pass = GetDlgItem(fedAuthMode, IDC_EDIT_IDP_PASSWORD);
        HWND roleArn = GetDlgItem(fedAuthMode, IDC_EDIT_IAM_ROLE_ARN);
        HWND idpArn = GetDlgItem(fedAuthMode, IDC_EDIT_IAM_IDP_ARN);
        HWND appId = GetDlgItem(fedAuthMode, IDC_EDIT_APP_ID);
        assert(endpoint);
        assert(user);
        assert(pass);
        assert(roleArn);
        assert(idpArn);
        assert(appId);

        wchar_t fedMode[20];
        ComboBox_GetText(GetDlgItem(fedAuthMode, IDC_EDIT_FED_AUTH_MODE), fedMode, sizeof(fedMode));

        BOOL usingOkta = wcsicmp(fedMode, L"OKTA") == 0;
        EnableWindow(appId, usingOkta);
    }
    break;
    case IDC_CHECK_GATHER_PERF_METRICS:
      {
        HWND failoverTab = TabCtrl_1.hTabPages[FAILOVER_TAB-1];
        assert(failoverTab);
        HWND prefetch = GetDlgItem(failoverTab, IDC_CHECK_GATHER_PERF_METRICS_PER_INSTANCE);
        assert(prefetch);

        EnableWindow(prefetch, !!Button_GetCheck(GetDlgItem(failoverTab,
            IDC_CHECK_GATHER_PERF_METRICS)));
        setBoolFieldData(failoverTab, IDC_CHECK_GATHER_PERF_METRICS_PER_INSTANCE, Button_GetCheck(prefetch));
      }
      break;
    case IDC_CHECK_ENABLE_FAILURE_DETECTION:
      {
        HWND monitoringTab = TabCtrl_1.hTabPages[MONITORING_TAB - 1];
        assert(monitoringTab);
        HWND detectionTime = GetDlgItem(monitoringTab, IDC_EDIT_FAILURE_DETECTION_TIME);
        HWND detectionInterval= GetDlgItem(monitoringTab, IDC_EDIT_FAILURE_DETECTION_INTERVAL);
        HWND detectionCount = GetDlgItem(monitoringTab, IDC_EDIT_FAILURE_DETECTION_COUNT);
        HWND disposalTime = GetDlgItem(monitoringTab, IDC_EDIT_MONITOR_DISPOSAL_TIME);
        HWND detectionTimeout = GetDlgItem(monitoringTab, IDC_EDIT_FAILURE_DETECTION_TIMEOUT);
        assert(detectionTime);
        assert(detectionInterval);
        assert(detectionCount);
        assert(disposalTime);

        EnableWindow(detectionTime, !!Button_GetCheck(GetDlgItem(monitoringTab, IDC_CHECK_ENABLE_FAILURE_DETECTION)));
        EnableWindow(detectionInterval, !!Button_GetCheck(GetDlgItem(monitoringTab, IDC_CHECK_ENABLE_FAILURE_DETECTION)));
        EnableWindow(detectionCount, !!Button_GetCheck(GetDlgItem(monitoringTab, IDC_CHECK_ENABLE_FAILURE_DETECTION)));
        EnableWindow(disposalTime, !!Button_GetCheck(GetDlgItem(monitoringTab, IDC_CHECK_ENABLE_FAILURE_DETECTION)));
        EnableWindow(detectionTimeout, !!Button_GetCheck(GetDlgItem(monitoringTab, IDC_CHECK_ENABLE_FAILURE_DETECTION)));
      }
      break;
    case IDC_CHECK_CURSOR_PREFETCH_ACTIVE:
      {
        HWND cursorTab= TabCtrl_1.hTabPages[CURSORS_TAB-1];
        assert(cursorTab);
        HWND prefetch= GetDlgItem(cursorTab, IDC_EDIT_PREFETCH);
        assert(prefetch);

        EnableWindow(prefetch, !!Button_GetCheck(GetDlgItem(cursorTab,
                                            IDC_CHECK_CURSOR_PREFETCH_ACTIVE)));

        if (Edit_GetTextLength(prefetch) == 0)
        {
          setUnsignedFieldData(cursorTab, default_cursor_prefetch,
                              IDC_EDIT_PREFETCH);
        }
      }
      break;
    case IDC_EDIT_DSN:
    {
      if (codeNotify==EN_CHANGE)
      {
        int len = Edit_GetTextLength(GetDlgItem(hwnd,IDC_EDIT_DSN));
        Button_Enable(GetDlgItem(hwnd,IDOK), len > 0);
        Button_Enable(GetDlgItem(hwnd,IDC_BUTTON_TEST), len > 0);
        RedrawWindow(hwnd,NULL,NULL,RDW_INVALIDATE);
      }
      break;
    }

    case IDC_EDIT_dbname:
      processDbCombobox(hwnd, hwndCtl, codeNotify);
    break;

    case IDC_EDIT_CHARSET:
      processCharsetCombobox(hwnd, hwndCtl, codeNotify);
  }

  return;
}