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 + -
显示快捷键?