remnet.c
来自「wince下的源代码集合打包」· C语言 代码 · 共 1,669 行 · 第 1/4 页
C
1,669 行
plvdi->item.pszText)); break; case LVN_COLUMNCLICK: break; case LVN_BEGINLABELEDIT: DEBUGMSG (ZONE_MISC, (TEXT("BeginEdit\r\n"))); if (plvdi->item.iItem == 0) { DEBUGMSG (ZONE_MISC, (TEXT("Can't edit the 'Make New' icon\r\n"))); return TRUE; // Can't edit the Make New icon } v_fInRename = TRUE; PositionSIP(SIP_UP); ListView_EnsureVisible(v_hListWnd, plvdi->item.iItem, FALSE); if (hwndEdit = ListView_GetEditControl(v_hListWnd)) { SendMessage(hwndEdit, EM_LIMITTEXT, RAS_MaxEntryName, 0); } return FALSE; // Return FALSE to let the user edit case LVN_ENDLABELEDIT: v_fInRename = FALSE; PositionSIP(SIP_DOWN); if (plvdi->item.pszText == NULL) { DEBUGMSG (ZONE_MISC|ZONE_ERROR, (TEXT("ENDLABELEIDT: Text is NULL\r\n"))); break; } // if it's the same as before then it's a no-op. if (!_tcsicmp (plvdi->item.pszText, ((PITEMINFO)plvdi->item.lParam)->EntryName)) { } if (dwTemp = RasValidateEntryName(NULL, plvdi->item.pszText)) { if (dwTemp == ERROR_ALREADY_EXISTS) { nFormatId = IDS_ALREADY_EXISTS; } else if (*(plvdi->item.pszText)) { nFormatId = IDS_BADNAME; } else { nFormatId = IDS_NULLNAME; } LoadString(v_hInst, nFormatId, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, (v_fPortrait) ? IDS_CONNECTIONS : IDS_REMNET, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_OK | MB_ICONWARNING); PostMessage (v_hListWnd, LVM_EDITLABEL, (WPARAM)(int)plvdi->item.iItem, 0); break; } RasRenameEntry(NULL, ((PITEMINFO)plvdi->item.lParam)->EntryName, plvdi->item.pszText); dwTemp = plvdi->item.iItem; InitListViewItems(v_hListWnd); ListView_SetItemState (v_hListWnd, 0, 0, LVIS_SELECTED); ListView_SetItemState (v_hListWnd, dwTemp, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); SetFocus (v_hListWnd); break; case NM_RCLICK: PostMessage(v_hMainWnd, WM_COMMAND, ID_SHORTCUT, 0); break; case NM_CLICK: if (GetKeyState(VK_MENU) < 0) { PostMessage(v_hMainWnd, WM_COMMAND, ID_SHORTCUT, 0); } break; case NM_DBLCLK: if (GetKeyState(VK_MENU) < 0) { PostMessage(v_hMainWnd, WM_COMMAND, ID_SHORTCUT, 0); break; } lvi.mask = LVIF_PARAM; lvi.iSubItem = 0; lvi.iItem = pnm->iItem; if (lvi.iItem == 0) { // Allow them to make a new item. PostMessage(v_hMainWnd, WM_COMMAND, ID_CONNECTIONS_MAKENEWCONNECTION, 0); } else if (lvi.iItem != -1) { ListView_SetItemState (v_hListWnd, lvi.iItem, LVIS_SELECTED, LVIS_SELECTED); // They want to connect. SendMessage(v_hMainWnd, WM_COMMAND, ID_FILE_CONNECTCREATE, 0); } break; case LVN_KEYDOWN: switch (((LV_KEYDOWN *) plvdi)->wVKey) { case VK_RETURN : lvi.iItem = ListView_GetNextItem(v_hListWnd, -1, LVNI_SELECTED); if (lvi.iItem == 0) { PostMessage(v_hMainWnd, WM_COMMAND, ID_CONNECTIONS_MAKENEWCONNECTION, 0); } else if (lvi.iItem != -1) { ListView_SetItemState (v_hListWnd, lvi.iItem, LVIS_SELECTED, LVIS_SELECTED); // They want to connect. SendMessage(v_hMainWnd, WM_COMMAND, ID_FILE_CONNECTCREATE, 0); } break; case VK_CONTROL : if (GetAsyncKeyState(VK_MENU)) { PostMessage(v_hMainWnd, WM_COMMAND, ID_SHORTCUT, 0); } break; } break; default: break; } return 0;}// ----------------------------------------------------------------//// WndProc//// Main window Proc//// ----------------------------------------------------------------LRESULT CALLBACKWndProc ( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ){ NM_LISTVIEW *pnm; LV_DISPINFO *plvdi; LV_ITEM lvi; TCHAR szTemp[128]; TCHAR szFmtStr[128]; DWORD dwTemp; DWORD cb; RECT rc; HMENU hMenu, hMenuTrack; POINT pt; int nFormatId; TCHAR TmpEntryName[2*RAS_MaxEntryName]; DWORD dwSize, dwDevSize; PBYTE pDevConfig; BOOL bRefresh; int iCopyNum; DWORD i; switch (message) { case WM_HELP: RETAILMSG (1, (TEXT("PegHelp file:rnetw.htm#Main_Contents\r\n"))); CreateProcess(TEXT("peghelp"),TEXT("file:rnetw.htm#Main_Contents"), NULL,NULL,FALSE,0,NULL,NULL,NULL,NULL); break; case WM_SIZE : GetClientRect (hWnd, &rc); rc.top += CallCommCtrlFunc(CommandBar_Height)(v_hCmdBar); MoveWindow (v_hListWnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE); break; case WM_NOTIFY : pnm = (NM_LISTVIEW *)lParam; plvdi = (LV_DISPINFO *)lParam; if (pnm->hdr.idFrom != IDD_LISTVIEW) { break; } return NotifyHandler (hWnd, pnm, plvdi); break; case WM_COMMAND : switch (LOWORD(wParam)) { case ID_HELP : SendMessage (v_hMainWnd, WM_HELP, 0, 0); break; case ID_CONN_CONN : case ID_FILE_CONNECTCREATE : // Start RNAApp for each item selected for (lvi.iItem = -1; (-1 != (lvi.iItem = ListView_GetNextItem(v_hListWnd, lvi.iItem, LVNI_SELECTED)));) { // First item is special, Invoke the Make New wizard if (0 == lvi.iItem) { PostMessage(v_hMainWnd, WM_COMMAND, ID_CONNECTIONS_MAKENEWCONNECTION, 0); continue; } lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; ListView_GetItem(v_hListWnd, &lvi); // Actually start the process wsprintf (szTemp, TEXT("-e\"%s\""), ((PITEMINFO)lvi.lParam)->EntryName); DEBUGMSG (ZONE_MISC, (TEXT("Starting RNAAPP '%s'\r\n"), szTemp)); if (FALSE == CreateProcess (TEXT("rnaapp"), szTemp, NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL)) { LoadString (v_hInst, IDS_CREATE_PROC_ERR, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, (v_fPortrait) ? IDS_CONNECTIONS : IDS_REMNET, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_APPLMODAL | MB_OK | MB_ICONEXCLAMATION); } } break; case ID_FILE_CREATESHORTCUT : if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } if ((cb = ListView_GetSelectedCount (v_hListWnd)) == 0) break; for (lvi.iItem = -1; (-1 != (lvi.iItem = ListView_GetNextItem(v_hListWnd, lvi.iItem, LVNI_SELECTED)));) { if (0 == lvi.iItem) { LoadString(v_hInst, IDS_NOSHORTCUT, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, (v_fPortrait) ? IDS_CONNECTIONS : IDS_REMNET, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_APPLMODAL | MB_OK | MB_ICONEXCLAMATION); continue; } lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; ListView_GetItem(v_hListWnd, &lvi); if (!CreateShortcut(((PITEMINFO)lvi.lParam)->EntryName)) { LoadString(v_hInst, IDS_SHORTCUTFAILED, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, (v_fPortrait) ? IDS_CONNECTIONS : IDS_REMNET, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_APPLMODAL | MB_OK | MB_ICONEXCLAMATION); } } break; case ID_CONN_DELETE : case ID_FILE_DELETE : dwTemp = ListView_GetSelectedCount (v_hListWnd); if (dwTemp == 0) { break; } lvi.iItem = ListView_GetNextItem(v_hListWnd, -1, LVNI_SELECTED); if (dwTemp == 1 && (lvi.iItem == 0)) { break; } if (dwTemp == 1) { LoadString(v_hInst, IDS_DELCON1, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); } else { LoadString(v_hInst, IDS_DELCON2, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); } LoadString(v_hInst, IDS_CONFDEL, szTemp, sizeof(szTemp)/sizeof(TCHAR)); if (IDYES != MessageBox (hWnd, szFmtStr, szTemp, MB_DEFBUTTON2 | MB_YESNO | MB_ICONWARNING)) { break; } do { // Can't delete to the MakeNew Item if (0 == lvi.iItem) { continue; } lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; ListView_GetItem(v_hListWnd, &lvi); RasDeleteEntry (NULL, ((PITEMINFO)lvi.lParam)->EntryName); } while ((lvi.iItem = ListView_GetNextItem(v_hListWnd, lvi.iItem, LVNI_SELECTED)) != -1); // Refresh the list? InitListViewItems(v_hListWnd); SetFocus (v_hListWnd); break; case ID_FILE_RENAME : case ID_CONN_RENAME : DEBUGMSG (ZONE_MISC, (TEXT("ID_????_RENAME\r\n"))); if (1 != ListView_GetSelectedCount (v_hListWnd)) { LoadString(v_hInst, IDS_TOOMANYENT, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, IDS_ERROR, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_OK | MB_ICONWARNING); break; } lvi.iItem = ListView_GetNextItem(v_hListWnd, -1, LVNI_SELECTED); if (lvi.iItem == 0) { LoadString(v_hInst, IDS_RENAMENEW, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, IDS_ERROR, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_OK | MB_ICONWARNING); break; } // Does it need focus? SetFocus (v_hListWnd); ListView_EditLabel(v_hListWnd, lvi.iItem); break; case ID_CONN_EDIT : case ID_FILE_PROPERTIES: if (v_hDialogWnd) { SetForegroundWindow(v_hDialogWnd); break; } // Which item is selected? if ((cb = ListView_GetSelectedCount(v_hListWnd)) == 0) { break; } if (1 != cb) { DEBUGMSG (ZONE_MISC, (TEXT("ID_FILE_PROPERTIES %d items selected\r\n"), ListView_GetSelectedCount(v_hListWnd))); LoadString(v_hInst, IDS_TOOMANYENT, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, IDS_ERROR, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_OK | MB_ICONWARNING); break; } // Get the selected item lvi.iItem = ListView_GetNextItem(v_hListWnd, -1, LVNI_SELECTED); // Can't get properites for the MakeNew Item if (0 == lvi.iItem) { LoadString(v_hInst, IDS_PLEASE, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, IDS_ERROR, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_OK | MB_ICONWARNING); break; } lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; ListView_GetItem(v_hListWnd, &lvi); memcpy(&EditItem, (PITEMINFO)lvi.lParam, sizeof(ITEMINFO)); // Direct or Dial-up v_WizDialog = _tcscmp(EditItem.Entry.szDeviceType, RASDT_Direct) ? v_DialogPages[DLG_PG_2] : v_DialogPages[DLG_PG_4]; v_EnteredAsAWizard = FALSE; v_hDialogWnd = CreateDialog (v_hInst, MAKEINTRESOURCE(v_WizDialog), hWnd, ConnWizDlgProc); if (NULL == v_hDialogWnd) { ERRORMSG (1, (TEXT("Unable to CreateDialog\r\n"))); SetFocus (v_hListWnd); } InitListViewItems(v_hListWnd); break; case ID_FILE_EXIT : case ID_CONN_EXIT : DestroyWindow(hWnd); break; case ID_EDIT_CREATECOPY: if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } bRefresh = FALSE; lvi.iItem = -1; for(;;){ lvi.iItem = ListView_GetNextItem(v_hListWnd, lvi.iItem, LVNI_SELECTED); if (lvi.iItem <= 0) break;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?