// Update the adapter list void UtSpeedMeterDlgRefreshList(HWND hWnd) { wchar_t *old; MS_ADAPTER_LIST *o; UINT i; // Validate arguments if (hWnd == NULL) { return; } if (g_ut_adapter_list_updating) { return; } g_ut_adapter_list_updating = true; // Get the current selection old = GetText(hWnd, E_LIST); if (old != NULL) { if (UniStrLen(old) == 0) { Free(old); old = NULL; } } o = MsCreateAdapterList(); CbReset(hWnd, E_LIST); CbSetHeight(hWnd, E_LIST, 18); for (i = 0;i < o->Num;i++) { wchar_t tmp[MAX_SIZE]; MS_ADAPTER *a = o->Adapters[i]; if (a->Info) { StrToUni(tmp, sizeof(tmp), a->Title); CbAddStr(hWnd, E_LIST, tmp, 0); } } // Re-select the previous selection if (old != NULL) { CbSelectIndex(hWnd, E_LIST, CbFindStr(hWnd, E_LIST, old)); Free(old); } MsFreeAdapterList(o); g_ut_adapter_list_updating = false; }
// アダプタリストの更新 void UtSpeedMeterDlgRefreshList(HWND hWnd) { wchar_t *old; MS_ADAPTER_LIST *o; UINT i; // 引数チェック if (hWnd == NULL) { return; } // 現在の選択を取得 old = GetText(hWnd, E_LIST); if (old != NULL) { if (UniStrLen(old) == 0) { Free(old); old = NULL; } } o = MsCreateAdapterList(); CbReset(hWnd, E_LIST); CbSetHeight(hWnd, E_LIST, 18); for (i = 0;i < o->Num;i++) { wchar_t tmp[MAX_SIZE]; MS_ADAPTER *a = o->Adapters[i]; if (a->Info) { StrToUni(tmp, sizeof(tmp), a->Title); CbAddStr(hWnd, E_LIST, tmp, 0); } } // 前回の選択を再選択 if (old != NULL) { CbSelectIndex(hWnd, E_LIST, CbFindStr(hWnd, E_LIST, old)); Free(old); } MsFreeAdapterList(o); }
// Initialize void EmAddInit(HWND hWnd, EM_ADD *p) { // Validate arguments if (hWnd == NULL || p == NULL) { return; } // Initialize controls CbAddStr(hWnd, C_PACKET_SWITCH, _UU("SM_LOG_SWITCH_0"), 0); CbAddStr(hWnd, C_PACKET_SWITCH, _UU("SM_LOG_SWITCH_1"), 1); CbAddStr(hWnd, C_PACKET_SWITCH, _UU("SM_LOG_SWITCH_2"), 2); CbAddStr(hWnd, C_PACKET_SWITCH, _UU("SM_LOG_SWITCH_3"), 3); CbAddStr(hWnd, C_PACKET_SWITCH, _UU("SM_LOG_SWITCH_4"), 4); CbAddStr(hWnd, C_PACKET_SWITCH, _UU("SM_LOG_SWITCH_5"), 5); if (p->NewMode) { // Newly creation mode RPC_ENUM_DEVICE t; HUB_LOG g; Zero(&g, sizeof(g)); g.PacketLogSwitchType = LOG_SWITCH_DAY; g.PacketLogConfig[PACKET_LOG_TCP_CONN] = g.PacketLogConfig[PACKET_LOG_DHCP] = 1; EmHubLogToDlg(hWnd, &g); Zero(&t, sizeof(t)); if (CALL(hWnd, EcEnumAllDevice(p->Rpc, &t))) { UINT i; CbSetHeight(hWnd, C_DEVICE, 18); for (i = 0;i < t.NumItem;i++) { RPC_ENUM_DEVICE_ITEM *dev = &t.Items[i]; wchar_t tmp[MAX_SIZE]; StrToUni(tmp, sizeof(tmp), dev->DeviceName); CbAddStr(hWnd, C_DEVICE, tmp, 0); } FreeRpcEnumDevice(&t); } SetText(hWnd, 0, _UU("EM_ADD_NEW")); } else { // Edit mode (to obtain a configuration) wchar_t tmp[MAX_PATH]; RPC_ADD_DEVICE t; Hide(hWnd, R_PROMISCUS); Zero(&t, sizeof(t)); StrCpy(t.DeviceName, sizeof(t.DeviceName), p->DeviceName); if (CALL(hWnd, EcGetDevice(p->Rpc, &t))) { EmHubLogToDlg(hWnd, &t.LogSetting); } else { Close(hWnd); } StrToUni(tmp, sizeof(tmp), p->DeviceName); CbAddStr(hWnd, C_DEVICE, tmp, 0); Disable(hWnd, C_DEVICE); SetText(hWnd, 0, _UU("EM_ADD_EDIT")); } EmAddUpdate(hWnd, p); }