remwiz.c

来自「wince下的源代码集合打包」· C语言 代码 · 共 1,095 行 · 第 1/3 页

C
1,095
字号
			MessageBox (hDlg, szFmtStr, szTemp, MB_OK | MB_ICONWARNING);			// Will this make it blink?			return;		}		// Validate the input.		if (SendMessage (GetDlgItem (hDlg, IDC_DIALUPCONN),						 BM_GETCHECK, 0, 0)) {			_tcscpy (EditItem.Entry.szDeviceType,					 RASDT_Modem);			dwRasDevices = GetRasDevices (&pRasDevInfo);			for (i=0; i < dwRasDevices; i++) {				if (!_tcscmp (pRasDevInfo[i].szDeviceType, RASDT_Modem)) {					_tcscpy (EditItem.Entry.szDeviceName, pRasDevInfo[0].szDeviceName);					break;				}			}			if (pRasDevInfo) {				LocalFree (pRasDevInfo);			}						// Follow Dial-Up path.			v_WizDialog = v_DialogPages[DLG_PG_2];		} else if (SendMessage (GetDlgItem (hDlg, IDC_DIRECTCONN),								BM_GETCHECK, 0, 0)) {			// They want a direct connection.			_tcscpy (EditItem.Entry.szDeviceType,					 RASDT_Direct);			// Set the IP address for Replication			EditItem.Entry.ipaddr.d = 192;			EditItem.Entry.ipaddr.c = 168;			EditItem.Entry.ipaddr.b = 55;			EditItem.Entry.ipaddr.a = 100;			// Follow Direct-Connect path			v_WizDialog = v_DialogPages[DLG_PG_4];		} else if (SendMessage (GetDlgItem (hDlg, IDC_VPNCONN),								BM_GETCHECK, 0, 0)) {			// They want a direct connection.			_tcscpy (EditItem.Entry.szDeviceType,					 RASDT_Vpn);			v_WizDialog = v_DialogPages[DLG_PG_5];		} else {			ASSERT(0);			DEBUGMSG (1, (TEXT("Wrong page?\r\n")));		}	} else if (v_WizDialog == v_DialogPages[DLG_PG_2]) {		GetWindowText (GetDlgItem (hDlg, IDC_MODEM),					   EditItem.Entry.szDeviceName,					   RAS_MaxDeviceName+1);		v_WizDialog = v_DialogPages[DLG_PG_3];	}	NextPage (hDlg, v_WizDialog);}void CALLBACK lineCallbackFunc(DWORD dwDevice, DWORD dwMsg, DWORD dwCallbackInstance, 				 DWORD dwParam1, DWORD dwParam2, DWORD dwParam3){	// NULL function.  I can't do a lineInitialize without this function.	// Since I never dial I don't actually care about any of the state changes	return;}LPLINETRANSLATECAPSGetTranslateCaps (){	LPLINETRANSLATECAPS pLineTranCaps = NULL;	DWORD				dwNeededSize;	long				lReturn;	HLINEAPP			hLineApp;	DWORD				dwVersion = TAPI_CURRENT_VERSION;	DWORD				dwNumDevs;	DEBUGMSG (ZONE_FUNCTION,			  (TEXT("+GetTranslateCaps()\r\n")));	lReturn = lineInitialize (&hLineApp, v_hInst, lineCallbackFunc, szAppName, &dwNumDevs);	if (lReturn) {		DEBUGMSG (ZONE_FUNCTION | ZONE_ERROR,				  (TEXT("-GetTranslateCaps(): Error %d from lineInitialize\r\n"),				   lReturn));		return NULL;	}		dwNeededSize = sizeof(LINETRANSLATECAPS);	while (1) {		pLineTranCaps = LocalAlloc (LPTR, dwNeededSize);		if (NULL == pLineTranCaps) {			DEBUGMSG (ZONE_ERROR|ZONE_ALLOC,					 (TEXT("!GetTranslateCaps: Alloc failed\r\n")));			break;		}		pLineTranCaps->dwTotalSize = dwNeededSize;		lReturn = lineGetTranslateCaps (hLineApp, dwVersion, pLineTranCaps);		if (lReturn) {			DEBUGMSG (ZONE_ERROR, (TEXT(" GetTranslateCaps:lineGetTranslateCaps returned 0x%X\r\n"),								   lReturn));			LocalFree (pLineTranCaps);			pLineTranCaps = NULL;			break;		}		if (pLineTranCaps->dwNeededSize > pLineTranCaps->dwTotalSize) {			dwNeededSize = pLineTranCaps->dwNeededSize;			LocalFree (pLineTranCaps);			pLineTranCaps = NULL;			continue;		}		break;	}	lineShutdown (hLineApp);	DEBUGMSG (ZONE_FUNCTION, (TEXT("-TapiLineGetTranslateCaps Returning 0x%X\r\n"), 							  pLineTranCaps));	return pLineTranCaps;	}DWORDGetDefaultCountryCode (){	LPLINETRANSLATECAPS pCaps;	LPLINELOCATIONENTRY	pLocEntry;	int	i;	DWORD	CountryCode = 0;	pCaps = GetTranslateCaps();		if (pCaps) {        if( pCaps->dwLocationListSize ) {            pLocEntry = (LPLINELOCATIONENTRY) ((LPBYTE)pCaps + pCaps->dwLocationListOffset);            for( i=0; i < (int)pCaps->dwNumLocations; i++ ) {                if( pLocEntry[i].dwPermanentLocationID ==					pCaps->dwCurrentLocationID ) {					CountryCode = pLocEntry[i].dwCountryCode;				}			}		}		LocalFree (pCaps);	}	return CountryCode;}VOIDGetDefaultAreaCode (PTCHAR szAreaCode, DWORD cMaxLen){	LPLINETRANSLATECAPS pCaps;	LPLINELOCATIONENTRY	pLocEntry;	int	i;	DWORD	CountryCode = 0;	szAreaCode[0] = TEXT('\0');		pCaps = GetTranslateCaps();		if (pCaps) {        if( pCaps->dwLocationListSize ) {            pLocEntry = (LPLINELOCATIONENTRY) ((LPBYTE)pCaps + pCaps->dwLocationListOffset);            for( i=0; i < (int)pCaps->dwNumLocations; i++ ) {                if( pLocEntry[i].dwPermanentLocationID ==					pCaps->dwCurrentLocationID ) {					_tcsncpy (szAreaCode, (LPTSTR)((LPBYTE)pCaps +						pLocEntry[i].dwCityCodeOffset),							  cMaxLen);				}			}		}		LocalFree (pCaps);	}	return;}DWORD WINAPIDevConfigThread (LPVOID pvarg){	DWORD	dwNeededSize;	LPVARSTRING	pVarString;	HWND	hDlg = (HWND)pvarg;	DWORD	RetVal;		dwNeededSize = sizeof(VARSTRING);	while (1) {		pVarString = (LPVARSTRING)LocalAlloc (LPTR, dwNeededSize);		pVarString->dwTotalSize = dwNeededSize;		if (NULL == v_pDevConfig) {			v_dwDevConfigSize = 0;		}		RetVal = RasDevConfigDialogEdit (EditItem.Entry.szDeviceName,										 EditItem.Entry.szDeviceType,										 hDlg, v_pDevConfig, v_dwDevConfigSize,										 pVarString);		if (STATUS_SUCCESS != RetVal) {			DEBUGMSG (ZONE_ERROR, (TEXT("RemNet: Error 0x%X(%d) from RasDevConfigDialogEdit\r\n"),								   RetVal, RetVal));			LocalFree (pVarString);			break;		} else if (pVarString->dwNeededSize > pVarString->dwTotalSize) {			// Structure not large enough.  Get new size and free original			dwNeededSize = pVarString->dwNeededSize;			LocalFree (pVarString);		} else {			// Free the original.			if (v_pDevConfig) {				v_dwDevConfigSize = 0;				LocalFree (v_pDevConfig);			}			v_pDevConfig = (PBYTE)LocalAlloc (LMEM_FIXED, pVarString->dwStringSize);			if (NULL == v_pDevConfig) {				DEBUGMSG (ZONE_ERROR, (TEXT("RemNet: Unable to allocate v_pDevConfig\r\n")));			} else {				memcpy (v_pDevConfig, (LPBYTE)pVarString + pVarString->dwStringOffset, pVarString->dwStringSize);				v_dwDevConfigSize = pVarString->dwStringSize;			}			LocalFree (pVarString);			break;		}	}	return 0;}LRESULT CALLBACKConnWizDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){    TCHAR   CountryCode[COUNTRY_CODE_SIZE];	DWORD	dwStyle;	DWORD	i;    int     nDefFocus;	long	lResult;	TCHAR   szTemp[128];    UINT    cTempStrSize = sizeof(szTemp) / sizeof(TCHAR);	LPRASDEVINFO	pRasDevInfo;	DWORD	dwRasDevices;	DWORD	RetVal;        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_DEVICECHANGE :		// Are we on Wiz2?		if (v_WizDialog == v_DialogPages[DLG_PG_2]) {			GetWindowText (GetDlgItem (hDlg, IDC_MODEM),						   EditItem.Entry.szDeviceName,						   RAS_MaxDeviceName+1);			// Clear the list...			SendMessage(GetDlgItem (hDlg, IDC_MODEM),						CB_RESETCONTENT, 0, 0);			dwRasDevices = GetRasDevices (&pRasDevInfo);			for (i=0; i < dwRasDevices; i++) {				if (!_tcscmp (pRasDevInfo[i].szDeviceType, RASDT_Modem)) {					SendMessage(GetDlgItem (hDlg, IDC_MODEM),								CB_ADDSTRING,								0, (LPARAM)pRasDevInfo[i].szDeviceName);				}			}			if (pRasDevInfo) {				LocalFree (pRasDevInfo);			}						// Try to find the modem in the list.			lResult = SendMessage (GetDlgItem (hDlg, IDC_MODEM),								   CB_FINDSTRINGEXACT,								   0,								   (LPARAM)EditItem.Entry.szDeviceName);			if (lResult == CB_ERR) {				// Couldn't find it, just set to first entry				SendMessage (GetDlgItem (hDlg, IDC_MODEM),							 CB_SETCURSEL, 0, 0);			} else {				// Set to the correct device.				SendMessage (GetDlgItem (hDlg, IDC_MODEM),							 CB_SETCURSEL, (WPARAM)lResult, 0);			}		} else if (v_WizDialog == v_DialogPages[DLG_PG_4]) {			// Save the users current value			GetWindowText (GetDlgItem (hDlg, IDC_MODEM),						   EditItem.Entry.szDeviceName,						   RAS_MaxDeviceName+1);			// Clear the list...			SendMessage(GetDlgItem (hDlg, IDC_MODEM),						CB_RESETCONTENT, 0, 0);			dwRasDevices = GetRasDevices (&pRasDevInfo);			for (i=0; i < dwRasDevices; i++) {				if (!_tcscmp (pRasDevInfo[i].szDeviceType, RASDT_Direct)) {					SendMessage(GetDlgItem (hDlg, IDC_MODEM),								CB_ADDSTRING,								0, (LPARAM)pRasDevInfo[i].szDeviceName);				}			}			if (pRasDevInfo) {				LocalFree (pRasDevInfo);			}			// Try to find the modem in the list.			lResult = SendMessage (GetDlgItem (hDlg, IDC_MODEM),								   CB_FINDSTRINGEXACT, 0,								   (LPARAM)EditItem.Entry.szDeviceName);			if (lResult == CB_ERR) {				// Couldn't find it, just set to first entry				SendMessage (GetDlgItem (hDlg, IDC_MODEM),							 CB_SETCURSEL, 0, 0);			} else {				// Set to the correct device.				SendMessage (GetDlgItem (hDlg, IDC_MODEM),							 CB_SETCURSEL, (WPARAM)lResult, 0);			}		}		break;	case WM_INITDIALOG :		dwStyle = GetWindowLong (hDlg, GWL_EXSTYLE);        if (!v_fPortrait) {            dwStyle |= WS_EX_CONTEXTHELP;        }		SetWindowLong (hDlg, GWL_EXSTYLE, dwStyle | WS_EX_NODRAG |					   WS_EX_WINDOWEDGE | WS_EX_CAPTIONOKBTN);				if (NULL == v_pDevConfig) {			RASENTRY	RasEntry;			DWORD		dwSize;			// Read in the previous DevConfig if any			dwSize = sizeof(RasEntry);			RasEntry.dwSize = dwSize;			v_dwDevConfigSize = 0;			RetVal = RasGetEntryProperties (NULL, EditItem.EntryName, &(RasEntry),											&dwSize, NULL,											&v_dwDevConfigSize);			if (v_dwDevConfigSize && (ERROR_BUFFER_TOO_SMALL == RetVal)) {				v_pDevConfig = (PBYTE)LocalAlloc (LPTR, v_dwDevConfigSize);				if (v_pDevConfig) {					RetVal = RasGetEntryProperties (NULL, EditItem.EntryName,						&(RasEntry), &dwSize, v_pDevConfig,						&v_dwDevConfigSize);					DEBUGMSG (RetVal, (TEXT("Error %d from RasGetEntryProperties\r\n")));					ASSERT (RetVal == 0);				}			}		}					if (v_WizDialog == v_DialogPages[DLG_PG_1]) {			// Set the connection name.			SetWindowText (GetDlgItem (hDlg, IDC_REMNAME),EditItem.EntryName);			// Restrict them to 20 characters			SendMessage (GetDlgItem (hDlg, IDC_REMNAME), EM_LIMITTEXT,						 RAS_MaxEntryName, 0);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?