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