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