remnet.c
来自「wince下的源代码集合打包」· C语言 代码 · 共 1,669 行 · 第 1/4 页
C
1,669 行
lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; ListView_GetItem(v_hListWnd, &lvi); memcpy(&EditItem, (PITEMINFO)lvi.lParam, sizeof(ITEMINFO)); LoadString(v_hInst, IDS_COPYOF, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); wsprintf(TmpEntryName, szFmtStr, EditItem.EntryName); // Truncate it if(RAS_MaxEntryName <= _tcslen(TmpEntryName)){ RETAILMSG (1, (TEXT("Name '%s' was too long, truncating\r\n"), TmpEntryName)); TmpEntryName[RAS_MaxEntryName] = TEXT('\0'); } if (dwTemp = RasValidateEntryName(NULL, TmpEntryName)) { if (dwTemp == ERROR_ALREADY_EXISTS) { RETAILMSG (1, (TEXT("Duplicate name found, trying again\r\n"))); iCopyNum = 2; LoadString(v_hInst, IDS_COPY_NUM_OF, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); for(;;){ if (iCopyNum > 100) { // Terminate loop at some point break; } if(_tcsstr(szFmtStr, TEXT("%d")) < _tcsstr(szFmtStr, TEXT("%s"))){ wsprintf(TmpEntryName, szFmtStr, iCopyNum, EditItem.EntryName); } else { wsprintf(TmpEntryName, szFmtStr, EditItem.EntryName, iCopyNum); } // Truncate it TmpEntryName[RAS_MaxEntryName] = TEXT('\0'); if (dwTemp = RasValidateEntryName(NULL, TmpEntryName)) { if (dwTemp == ERROR_ALREADY_EXISTS) { iCopyNum++; continue; } else { break; } } else { break; } } } } RETAILMSG (1, (TEXT("Final name is '%s'\r\n"), TmpEntryName)); if (dwTemp = RasValidateEntryName(NULL, TmpEntryName)) { if (dwTemp == ERROR_ALREADY_EXISTS) { nFormatId = IDS_ALREADY_EXISTS; } else if (*TmpEntryName) { 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); } else { pDevConfig = NULL; dwSize = sizeof(EditItem.Entry); dwDevSize = 0; dwTemp = RasGetEntryProperties (NULL, EditItem.EntryName, &(EditItem.Entry), &dwSize, NULL, &dwDevSize); if (dwDevSize && (ERROR_BUFFER_TOO_SMALL == dwTemp)) { pDevConfig = (PBYTE)LocalAlloc (LPTR, dwDevSize); if (pDevConfig) { dwTemp = RasGetEntryProperties (NULL, EditItem.EntryName, &(EditItem.Entry), &dwSize, pDevConfig, &dwDevSize); DEBUGMSG (dwTemp, (TEXT("Error %d from RasGetEntryProperties\r\n"))); ASSERT (dwTemp == 0); } } _tcscpy(EditItem.EntryName, TmpEntryName); RasSetEntryProperties (NULL, EditItem.EntryName, &(EditItem.Entry), sizeof(EditItem.Entry), pDevConfig, dwDevSize); if (pDevConfig) { LocalFree (pDevConfig); } bRefresh = TRUE; } } // Refresh the list? if(bRefresh){ InitListViewItems(v_hListWnd); } break; case ID_EDIT_SELECTALL: dwTemp = ListView_GetItemCount (v_hListWnd); // Get the selected item ListView_SetItemState(v_hListWnd, 0, 0, LVIS_SELECTED); for (i=1; i<dwTemp; i++) { ListView_SetItemState(v_hListWnd, i, LVIS_SELECTED, LVIS_SELECTED); } break; case ID_VIEW_LARGEICON : if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } UpdateView (ID_VIEW_LARGEICON); SetWindowLong (v_hListWnd, GWL_STYLE, (GetWindowLong (v_hListWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_ICON); break; case ID_VIEW_SMALLICON : if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } UpdateView (ID_VIEW_SMALLICON); SetWindowLong (v_hListWnd, GWL_STYLE, (GetWindowLong (v_hListWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_SMALLICON); break; case ID_VIEW_DETAILS : if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } UpdateView (ID_VIEW_DETAILS); SetWindowLong (v_hListWnd, GWL_STYLE, (GetWindowLong (v_hListWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT); break; case ID_VIEW_REFRESH: if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } InitListViewItems(v_hListWnd); break; case ID_HELP_ABOUT : if (v_fPortrait) { RETAILMSG (1, (TEXT("Command %d for landscape mode only\r\n"), LOWORD(wParam))); break; } LoadString(v_hInst, IDS_COPYRIGHT, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, IDS_HELPABOUT, szTemp, sizeof(szTemp)/sizeof(TCHAR)); MessageBox (hWnd, szFmtStr, szTemp, MB_OK); break; case ID_CONN_NEW : case ID_CONNECTIONS_MAKENEWCONNECTION : if (v_hDialogWnd) { SetForegroundWindow(v_hDialogWnd); break; } // Initialize the EntryInfo memset ((char *)&EditItem, 0, sizeof(EditItem)); // Loop over calls to RasValidateEntryName until // we get a unique name. cb = 1; do { LoadString(v_hInst, IDS_MYCONN1, szFmtStr, sizeof(szFmtStr)/sizeof(TCHAR)); LoadString(v_hInst, IDS_MYCONN2, szTemp, sizeof(szTemp)/sizeof(TCHAR)); if (1 == cb) { _tcscpy (EditItem.EntryName, szFmtStr); } else { wsprintf (EditItem.EntryName, szTemp, cb); } cb++; } while (RasValidateEntryName(NULL, EditItem.EntryName)); EditItem.Entry.dwSize = sizeof(RASENTRY); // Get a defailt RasEntry cb = sizeof(RASENTRY); RasGetEntryProperties (NULL, TEXT(""), &(EditItem.Entry), &cb, NULL, NULL); v_PrevWizDialog = 0; v_WizDialog = v_DialogPages[DLG_PG_1]; v_EnteredAsAWizard = TRUE; v_hDialogWnd = CreateDialog (v_hInst, MAKEINTRESOURCE(v_WizDialog), hWnd, ConnWizDlgProc); // The dialog is entered, bring up the SIP, if we can if (v_hDialogWnd) { // Bring the SIP up PositionSIP(SIP_UP); } break; case ID_SHORTCUT : // Get first item selected. lvi.iItem = ListView_GetNextItem(v_hListWnd, -1, LVNI_SELECTED | LVIS_FOCUSED); // Get number selected cb = ListView_GetSelectedCount (v_hListWnd); if (lvi.iItem == -1) { // BackGround menu break; } else { // Get location of item ListView_GetItemRect (v_hListWnd, lvi.iItem, &rc, LVIR_BOUNDS); hMenu = LoadMenu (v_hInst, MAKEINTRESOURCE(IDR_CONTEXT_MENU)); // Is it the Make New icon? if (lvi.iItem == 0) { hMenuTrack = GetSubMenu(hMenu, 0); } else { hMenuTrack = GetSubMenu(hMenu, 1); EnableMenuItem (hMenuTrack, ID_FILE_CONNECTCREATE, (cb >= 1) ? MF_ENABLED : MF_GRAYED); EnableMenuItem (hMenuTrack, ID_FILE_RENAME, (cb == 1) ? MF_ENABLED : MF_GRAYED); EnableMenuItem (hMenuTrack, ID_FILE_PROPERTIES, (cb == 1) ? MF_ENABLED : MF_GRAYED); } } dwTemp = GetMessagePos(); pt.x = LOWORD(dwTemp); pt.y = HIWORD(dwTemp); TrackPopupMenu(hMenuTrack, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL); DestroyMenu(hMenu); break; default : DEBUGMSG (ZONE_MISC, (TEXT("Got WM_COMMAND=%d\r\n"), LOWORD(wParam))); return (DefWindowProc(hWnd, message, wParam, lParam)); } break; case WM_WININICHANGE:#ifdef USE_SIP if (g_pSipGetInfo && (wParam == SPI_SETSIPINFO)) { // SIP most likely either was raised or lowered SIPINFO si; memset(&si, 0, sizeof(SIPINFO)); si.cbSize = sizeof(si); if ((*g_pSipGetInfo)(&si) ) { // Resize the main window and the listview SetWindowPos(hWnd, NULL, si.rcVisibleDesktop.left, si.rcVisibleDesktop.top, si.rcVisibleDesktop.right - si.rcVisibleDesktop.left, si.rcVisibleDesktop.bottom - si.rcVisibleDesktop.top, SWP_NOACTIVATE | SWP_NOZORDER); // And the listview--must convert to client coordinates here si.rcVisibleDesktop.top += CallCommCtrlFunc(CommandBar_Height)(v_hCmdBar); MapWindowRect(NULL, GetParent(v_hListWnd), &si.rcVisibleDesktop); SetWindowPos(v_hListWnd, NULL, si.rcVisibleDesktop.left, si.rcVisibleDesktop.top, si.rcVisibleDesktop.right - si.rcVisibleDesktop.left, si.rcVisibleDesktop.bottom - si.rcVisibleDesktop.top, SWP_NOACTIVATE | SWP_NOZORDER); } }#endif break; case WM_DESTROY: // Clean up the image list ImageList_Destroy (ListView_GetImageList(v_hListWnd, LVSIL_NORMAL)); ImageList_Destroy (ListView_GetImageList(v_hListWnd, LVSIL_SMALL)); PostQuitMessage(0); break; case WM_ACTIVATE: if (LOWORD(wParam) != WA_INACTIVE) { SetFocus (v_hListWnd); } break; default: return (DefWindowProc(hWnd, message, wParam, lParam)); }return (0);}BOOLInitApplication(HINSTANCE hInstance){ WNDCLASS wc; // Register IP class window RegisterIPClass(hInstance); wc.style = 0; wc.lpfnWndProc = (WNDPROC) WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = 0; wc.hCursor = 0; wc.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH); wc.lpszMenuName = 0; wc.lpszClassName = szAppName; return(RegisterClass(&wc));}// InitListViewImageList - creates image lists for a list view.// Returns TRUE if successful or FALSE otherwise.// hwndLV - handle of the list view controlBOOL WINAPIInitListViewImageLists(HWND hwndLV){ HICON hiconItem; // icon for list view items HIMAGELIST himlLarge; // image list for icon view HIMAGELIST himlSmall; // image list for other views // Create the full-sized and small icon image lists. himlLarge = ImageList_Create(GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), TRUE, 1, 1); himlSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), TRUE, 1, 1); // Add an icon to each image list. hiconItem = LoadIcon(v_hInst, MAKEINTRESOURCE(IDI_NEWCONN)); ImageList_AddIcon(himlLarge, hiconItem); hiconItem = (HICON)LoadImage(v_hInst, MAKEINTRESOURCE(IDI_NEWCONN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ImageList_AddIcon(himlSmall, hiconItem); DeleteObject(hiconItem); hiconItem = LoadIcon(v_hInst, MAKEINTRESOURCE((v_fPortrait ? IDI_RNA2 : IDI_RNA))); ImageList_AddIcon(himlLarge, hiconItem); hiconItem = (HICON)LoadImage(v_hInst, MAKEINTRESOURCE((v_fPortrait ? IDI_RNA2 : IDI_RNA)), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ImageList_AddIcon(himlSmall, hiconItem); DeleteObject(hiconItem); hiconItem = LoadIcon(v_hInst, MAKEINTRESOURCE(IDI_DIRECTCC)); ImageList_AddIcon(himlLarge, hiconItem); hiconItem = (HICON)LoadImage(v_hInst, MAKEINTRESOURCE(IDI_DIRECTCC), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ImageList_AddIcon(himlSmall, hiconItem); DeleteObject(hiconItem); // Assign the image lists to the list view control. ListView_SetImageList(hwndLV, himlLarge, LVSIL_NORMAL); ListView_SetImageList(hwndLV, himlSmall, LVSIL_SMALL); return TRUE;}// InitListViewColumns - adds columns to a list view control.// Returns TRUE if successful or FALSE otherwise.// hwndLV - handle of the list view controlBOOL WINAPIInitListViewColumns(HWND hwndLV){ TCHAR szTemp[256]; // temporary buffer LV_COLUMN lvc; int iCol; // Initialize the LV_COLUMN structure. lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; lvc.fmt = LVCFMT_LEFT; lvc.cx = 100; lvc.pszText = szTemp; // Add the columns. for (iCol = 0; iCol < NUM_LV_COLUMNS; iCol++) { lvc.iSubItem = iCol; switch (iCol) { case 0 : lvc.cx = 150; break; case 2 : lvc.cx = 225; break; default: lvc.cx = 100; } LoadString(v_hInst, IDS_ENTRYCOL + iCol, szTemp, sizeof(szTemp)); if (ListView_InsertColumn(hwndLV, iCol, &lvc) == -1) return FALSE; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?