亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rasentry.c

?? 1.wince下判斷撥號連接狀態.以及設置撥號參數.
?? C
?? 第 1 頁 / 共 2 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.


Module Name:
    RasEntry.c

Abstract:
    RAS Phonebook Entry Program
		This program adds an entry to the RAS phonebook, which is kept in the
	registry under Windows CE, using data read from a configuration file.  The
	configuration file is a text file consisting of several lines in the form
	"Label=Data"; any configuration constants not included in the file are set
	to default values.  Output is to the console/debugger.

-------------------------------------------------------------*/


#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <ras.h>
#include <raserror.h>
#include <tapi.h>
#ifdef UNDER_CE
#include <unimodem.h>
#endif

#ifdef UNICODE
#define _TEOF		WEOF
#else
#define _TEOF		EOF
#endif

#define _FILENAM  "RasEntry"

/*		The enumerated constants in "LabelValue" and the corresponding array  */
/* "Labels" are used to parse the RAS configuration file for matching strings.*/

enum {
	VAL_NAME,
	VAL_COUNTRYCODE,
	VAL_AREACODE,
	VAL_PHONE,
	VAL_SPECIFICIPADDR,
	VAL_IPADDR,
	VAL_SPECIFICNAMESERVERS,
	VAL_DNSADDR,
	VAL_ALTDNSADDR,
	VAL_WINSADDR,
	VAL_ALTWINSADDR,
	VAL_DEVICETYPE,
	VAL_DEVICENAME,
	VAL_IPHEADERCOMPRESSION,
	VAL_SWCOMPRESSION,
	VAL_USECOUNTRYANDAREACODES,
	VAL_REQUIREENCRYPTEDPW,
	VAL_REQUIREMSENCRYPTEDPW,
	VAL_REQUIREDATAENCRYPTION,
	VAL_DIALASLOCALCALL,
	VAL_FRAMING,
	VAL_FRAMESIZE,
	VAL_SCRIPT,
	VAL_USERNAME,
	VAL_PASSWORD,
	VAL_DOMAIN,
#ifdef UNDER_CE
    VAL_BAUDRATE,
#endif
	VAL_MAX
}  LabelValue;

TCHAR	*Labels[] = {
	TEXT("Name"),
	TEXT("CountryCode"),
	TEXT("AreaCode"),
	TEXT("Phone"),
	TEXT("SpecificIpAddr"),
	TEXT("IpAddr"),
	TEXT("SpecificNameServers"),
	TEXT("DnsAddr"),
	TEXT("AltDnsAddr"),
	TEXT("WinsAddr"),
	TEXT("AltWinsAddr"),
	TEXT("DeviceType"),
	TEXT("DeviceName"),
	TEXT("IpHeaderCompression"),
	TEXT("SwCompression"),
	TEXT("UseCountryAndAreaCodes"),
	TEXT("RequireEncryptedPw"),
	TEXT("RequireMsEncryptedPw"),
	TEXT("RequireDataEncryption"),
	TEXT("DialAsLocalCall"),
	TEXT("Framing"),
	TEXT("FrameSize"),
	TEXT("Script"),
	TEXT("UserName"),
	TEXT("Password"),
	TEXT("Domain")
#ifdef UNDER_CE
    , TEXT("BaudRate")
#endif
};

#define LOG_EXCEPTION          0				  /* Output verbosity levels */
#define LOG_FAIL               2
#define LOG_WARNING            3
#define LOG_ABORT              4
#define LOG_SKIP               6
#define LOG_NOT_IMPLEMENTED    8
#define LOG_PASS              10
#define LOG_DETAIL            12
#define LOG_COMMENT           14
#define LOG_MAX_VERBOSITY     15

#define MAX_LINE			 256
#define MAXENTRIES            25      /* Maximum number of phonebook entries */

HANDLE		hFile;
DWORD		dwDebugFlag = LOG_PASS;
RASENTRY    RasEntry;
#ifdef UNDER_CE
BOOL g_fUseDevConfig;
BOOL g_fDevName;
LPVARSTRING g_lpDevConfig;
DWORD g_dwDevConfigLen;

BOOL SetBaudRate(TCHAR *s);
#endif


//------------------------------------------------------------------------
//	Program functions - prototypes:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

int _tmain(int, TCHAR**);
TCHAR GetFileChar(void);
TCHAR *GetFileLine(TCHAR *s, int cch);
void Usage(void);
RASIPADDR *GetRasIpAddress(LPTSTR lpszIpString, RASIPADDR *lpRasIpAddr);
void LogDebugData(DWORD dwVerbosity, LPCTSTR szFormat, ...);




/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Function:
    _tmain

Description:
    The main function for the program.  It reads the name of a RAS
	configuration file from the command line, opens and parses it, and places
	the data it contains in RAS configuration structures which are then saved.
	If there are no command-line arguments, a list of the current entries is
	printed.

Notes:
	Arguments containing quotes are parsed by replacing the leading quote with
	a space; this must be allowed for when reading strings.

-------------------------------------------------------------------*/

int _tmain(int argc, TCHAR *argv[])
{
	DWORD           cb;
	RASDIALPARAMS	RasDialParams;
	TCHAR			szName[RAS_MaxEntryName + 1];
	TCHAR			szLine[MAX_LINE];
	TCHAR			szFileName[MAX_LINE];
	DWORD			dwLineNum = 0;
	TCHAR			*szStart, *szEnd;
	DWORD			dwLabel;
	int				i;

	LogDebugData(LOG_PASS, TEXT("\n\r")  TEXT(_FILENAM)
	  TEXT(" - RAS Connection Creation Program"));

    // This will create the default entries if the key does not exist.
    RasEnumEntries (NULL, NULL, NULL, &cb, NULL);

	if (argc < 2)	/* If no command-line parameters, list current entries */
	{
		LPRASENTRYNAME lpRasEntries;	// Pointer to the RasEntries.
		int            cEntries;			// Number of Entries found
		
		cb = MAXENTRIES * sizeof(RASENTRYNAME);
		lpRasEntries = (LPRASENTRYNAME)LocalAlloc(LPTR, cb);
		if (RasEnumEntries (NULL, NULL, lpRasEntries, &cb, &cEntries))
			LogDebugData(LOG_ABORT, TEXT("Unable to read RAS phonebook"));
		else
		{
			LogDebugData(LOG_PASS, TEXT("RAS phonebook: %lu entries:"),
			  cEntries);
			for (i = 0; i < cEntries; i++)
				LogDebugData(LOG_PASS, TEXT("Entry #%d: \"%s\""), i,
				  lpRasEntries[i].szEntryName);
		}
		return 0;
	}
	
	// Get a default RasEntry
	RasEntry.dwSize = sizeof(RASENTRY);
#ifdef UNDER_CE
	cb = sizeof(RASENTRY);
	RasGetEntryProperties (NULL, TEXT(""), &RasEntry, &cb, NULL, NULL);
#else
	cb = sizeof(RASENTRY) + 1000; /* NT needs space for alternate phone list */
	RasGetEntryProperties(NULL,  TEXT(""), &RasEntry, &cb, NULL, NULL);
#endif
	memset((char *)&RasDialParams, 0, sizeof(RasDialParams));
	szName[0] = TEXT('\0');
	szFileName[0] = TEXT('\0');

	// Parse the command line parameters
	for (i = 1; i < argc; ++i)
	{
		if ((_tcsnicmp(argv[i], TEXT("-d"), 2) == 0) ||
 		  (_tcsnicmp(argv[i], TEXT("/d"), 2) == 0))
		{
			if (_tcslen(argv[i]) > 2)
				dwDebugFlag = _tcstoul(argv[i] + 2, NULL, 10);
			else
				dwDebugFlag = LOG_MAX_VERBOSITY;
			LogDebugData(LOG_MAX_VERBOSITY, TEXT("Verbosity level = %lu"),
			  dwDebugFlag);
		}
		else if ((*(argv[i]) == '-') || (*(argv[i]) == '/'))
		{
			Usage();
			return 0;
		}
		else if (szFileName[0] == TEXT('\0'))	   /* copy the filename over */
		{
			if (*(argv[i] + 2) == TEXT(' ')) {  /* skip over leading space */
				if (_tcslen(argv[i] + 1) < MAX_LINE) 
					_tcscpy(szFileName, argv[i] + 1);
			}
			else {
				if (_tcslen(argv[i]) < MAX_LINE) 
					_tcscpy(szFileName, argv[i]);
			}
		}
	}
	if (szFileName[0] == TEXT('\0'))
	{
		Usage();
		return 0;
	}
	LogDebugData(LOG_MAX_VERBOSITY,
	  TEXT("RasEntry: verbosity = %d szFileName = \"%s\""), dwDebugFlag,
	  szFileName);

#ifdef UNDER_CE
    g_fUseDevConfig = FALSE;
    g_fDevName = FALSE;
    g_lpDevConfig = NULL;
#endif

	hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
	  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if (INVALID_HANDLE_VALUE == hFile)
	{
		LogDebugData (LOG_ABORT, TEXT("Error %u opening file '%s'"), GetLastError(), szFileName);
		return -1;
	}

	while ((TCHAR *)_TEOF != GetFileLine(szLine, MAX_LINE))
	{
		dwLineNum++;
		LogDebugData(LOG_DETAIL, TEXT("Line %d: '%s'"), dwLineNum, szLine);

		for (szStart = szLine; _istspace(*szStart); szStart++)
			;
		
		// Allow comment lines
		if ((TEXT(';') == *szStart) || (TEXT('#') == *szStart))
			continue;
		
		for (szEnd = szStart; *szEnd && !_istspace(*szEnd) &&
		  (TEXT('=') != *szEnd); szEnd++)
			;
		if (szEnd)
		{
			PREFAST_SUPPRESS(394, "False positive since szEnd is not past the end of the buffer");
			*szEnd = TEXT('\0');
		}
		else
		{
			LogDebugData(LOG_ABORT, TEXT("%d : Invalid input line '%s'"), dwLineNum, szLine);
			continue;
		}
		for (dwLabel = 0; dwLabel != VAL_MAX; dwLabel++)
		{
			if (!_tcsicmp (Labels[dwLabel], szStart))
				break;
		}
		szStart = szEnd + 1;

		switch (dwLabel)
		{
			case VAL_NAME:
				_tcsncpy(szName, szStart, RAS_MaxEntryName);
				break;
			case VAL_COUNTRYCODE:
				RasEntry.dwCountryCode = _ttol(szStart);
				break;
			case VAL_AREACODE:
				_tcsncpy (RasEntry.szAreaCode, szStart, RAS_MaxAreaCode);
				break;
			case VAL_PHONE:
				_tcsncpy (RasEntry.szLocalPhoneNumber, szStart,
				  RAS_MaxPhoneNumber);
				break;
			case VAL_SPECIFICIPADDR:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_SpecificIpAddr;
				else
					RasEntry.dwfOptions &= ~(RASEO_SpecificIpAddr);
				break;
			case VAL_IPADDR:
				GetRasIpAddress(szStart, &(RasEntry.ipaddr));
				break;
			case VAL_SPECIFICNAMESERVERS:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_SpecificNameServers;
				else
					RasEntry.dwfOptions &= ~(RASEO_SpecificNameServers);
				break;
			case VAL_DNSADDR:
				GetRasIpAddress(szStart, &(RasEntry.ipaddrDns));
				break;
			case VAL_ALTDNSADDR:
				GetRasIpAddress(szStart, &(RasEntry.ipaddrDnsAlt));
				break;
			case VAL_WINSADDR:
				GetRasIpAddress(szStart, &(RasEntry.ipaddrWins));
				break;
			case VAL_ALTWINSADDR:
				GetRasIpAddress(szStart, &(RasEntry.ipaddrWinsAlt));
				break;
			case VAL_DEVICETYPE:
				_tcsncpy (RasEntry.szDeviceType, szStart, RAS_MaxDeviceType + 1);
				break;
			case VAL_DEVICENAME:
				_tcsncpy (RasEntry.szDeviceName, szStart, RAS_MaxDeviceName + 1);
#ifdef UNDER_CE
                g_fDevName = TRUE;
#endif
				break;
			case VAL_IPHEADERCOMPRESSION:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_IpHeaderCompression;
				else
					RasEntry.dwfOptions &= ~(RASEO_IpHeaderCompression);
				break;
			case VAL_SWCOMPRESSION:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_SwCompression;
				else
					RasEntry.dwfOptions &= ~(RASEO_SwCompression);
				break;
			case VAL_USECOUNTRYANDAREACODES:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_UseCountryAndAreaCodes;
				else
					RasEntry.dwfOptions &= ~(RASEO_UseCountryAndAreaCodes);
				break;
			case VAL_REQUIREENCRYPTEDPW:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_RequireEncryptedPw;
				else
					RasEntry.dwfOptions &= ~(RASEO_RequireEncryptedPw);
				break;
			case VAL_REQUIREMSENCRYPTEDPW:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_RequireMsEncryptedPw;
				else
					RasEntry.dwfOptions &= ~(RASEO_RequireMsEncryptedPw);
				break;
			case VAL_REQUIREDATAENCRYPTION:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_RequireDataEncryption;
				else
					RasEntry.dwfOptions &= ~(RASEO_RequireDataEncryption);
				break;
#ifdef UNDER_CE
			case VAL_DIALASLOCALCALL:
				if ((*szStart == 'y') || (*szStart == 'Y'))
					RasEntry.dwfOptions |= RASEO_DialAsLocalCall;
				else
					RasEntry.dwfOptions &= ~(RASEO_DialAsLocalCall);
				break;
#endif
			case VAL_FRAMING :
				if ((*szStart == 's') || (*szStart == 'S'))
					RasEntry.dwFramingProtocol = RASFP_Slip;
				break;
			case VAL_FRAMESIZE:
				RasEntry.dwFrameSize = _ttol(szStart);
				break;
			case VAL_SCRIPT :
			    _tcsncpy (RasEntry.szScript, szStart, MAX_PATH);
				break;
			case VAL_USERNAME:
				_tcsncpy (RasDialParams.szUserName, szStart, UNLEN);
				break;
			case VAL_PASSWORD:
				_tcsncpy (RasDialParams.szPassword, szStart, PWLEN);
				break;
			case VAL_DOMAIN:
			    _tcsncpy (RasDialParams.szDomain, szStart, DNLEN);
				break;
#ifdef UNDER_CE
            case VAL_BAUDRATE:
                if (g_fDevName) {
                    g_fUseDevConfig = SetBaudRate(szStart);
                }
                break;
#endif                
			default :
				LogDebugData(LOG_PASS,
				  TEXT("Line %d: Unable to copy '%s' (data ='%s')"),
						   dwLineNum, szLine, szStart);
				break;
		}
	}

	if (szName[0] == TEXT('\0'))
	{
		LogDebugData(LOG_ABORT, TEXT("Error: connectoid name required"));
		CloseHandle (hFile);
		return -2;
	}

#ifdef UNDER_CE
    if (FALSE == g_fUseDevConfig) {
        g_lpDevConfig = NULL;
        g_dwDevConfigLen = 0;
    }
	if (RasSetEntryProperties(NULL, szName, &RasEntry,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日韩一区二区三区| 国产成人在线免费| 蜜乳av一区二区| 麻豆国产精品视频| 国产99久久久国产精品潘金| 99精品黄色片免费大全| 日本乱人伦aⅴ精品| 日韩一区二区中文字幕| 国产午夜精品美女毛片视频| 欧美一区二区三区影视| 国产视频一区在线播放| 亚洲日本欧美天堂| 午夜精品久久久久久久99樱桃| 麻豆精品久久久| 成人激情免费视频| 欧美久久久久久蜜桃| 26uuu精品一区二区在线观看| 国产精品嫩草99a| 男人的j进女人的j一区| 国产精品18久久久久久久网站| 在线观看一区不卡| 欧美tk—视频vk| 亚洲日本在线天堂| 国产乱一区二区| 日本精品裸体写真集在线观看| 欧美日韩成人高清| 国产精品久久久久国产精品日日| 五月综合激情日本mⅴ| 丁香天五香天堂综合| 欧美日韩精品免费观看视频| 久久久精品蜜桃| 亚洲午夜久久久久中文字幕久| 蜜臀a∨国产成人精品| 91麻豆产精品久久久久久 | 久久久久亚洲综合| 亚洲一区二区三区中文字幕| 狠狠色狠狠色合久久伊人| gogogo免费视频观看亚洲一| 91精品欧美综合在线观看最新| 中文一区二区完整视频在线观看| 欧美精品在线视频| 亚洲品质自拍视频| 精品一区二区三区在线播放视频| 在线观看日产精品| 国产嫩草影院久久久久| 日本成人中文字幕| 欧美日韩在线一区二区| 亚洲国产精品激情在线观看| 天天av天天翘天天综合网色鬼国产| 成人a免费在线看| 久久综合色鬼综合色| 婷婷成人激情在线网| 一本久久精品一区二区| 久久久久88色偷偷免费| 麻豆精品一区二区三区| 欧美亚洲一区二区三区四区| 久久久亚洲高清| 青青国产91久久久久久| 欧美在线三级电影| 亚洲永久免费av| 99re这里只有精品6| 国产免费观看久久| 国产一区二区精品久久99| 日韩一区二区在线播放| 五月婷婷色综合| 欧美日本在线一区| 一区二区在线免费| 99精品视频一区| 亚洲欧美日韩电影| 成人av资源网站| 亚洲欧洲性图库| 9l国产精品久久久久麻豆| 久久久亚洲午夜电影| 国产在线播放一区二区三区| 日韩一区二区三区四区 | www.欧美色图| 国产色91在线| 99久久精品国产观看| 久久久精品天堂| 国产a视频精品免费观看| 国产午夜精品一区二区| 国产电影一区二区三区| 中文成人av在线| 处破女av一区二区| ...中文天堂在线一区| 99久久婷婷国产精品综合| 中文字幕欧美国产| 99国产精品国产精品久久| 亚洲特级片在线| 99久久精品国产一区| 自拍偷拍国产精品| av亚洲精华国产精华| |精品福利一区二区三区| 欧美三区在线观看| 亚洲不卡一区二区三区| 日韩欧美国产小视频| 精品一区二区三区视频在线观看| 久久精子c满五个校花| 成人免费视频视频| 亚洲天堂福利av| 欧美精品丝袜中出| 美女在线一区二区| 中文字幕av一区二区三区高 | 欧美一区二区福利在线| 另类小说欧美激情| 国产精品麻豆欧美日韩ww| 99久久精品国产精品久久| 亚洲精品乱码久久久久| 欧美另类z0zxhd电影| 麻豆精品一区二区综合av| 中文字幕中文字幕一区| 91福利资源站| 国内欧美视频一区二区| 亚洲欧洲性图库| 精品视频资源站| 国产精品一区二区在线播放| 中文字幕一区在线观看视频| 欧美日韩不卡视频| 国产毛片一区二区| 国产精品欧美久久久久一区二区| 欧美日韩高清一区二区不卡| 捆绑紧缚一区二区三区视频| 最新国产の精品合集bt伙计| 欧美日韩免费观看一区三区| 九九国产精品视频| 亚洲欧洲日产国码二区| 色噜噜狠狠成人中文综合| 久久爱另类一区二区小说| 国产精品丝袜在线| 在线成人av影院| 懂色av一区二区三区免费观看| 午夜精品成人在线| 中文字幕久久午夜不卡| 欧美日韩精品一区二区| 不卡大黄网站免费看| 五月天亚洲婷婷| 国产精品高潮呻吟久久| 777a∨成人精品桃花网| 国产精品1区二区.| 亚欧色一区w666天堂| 久久久一区二区| 欧美日韩激情在线| 亚洲午夜一二三区视频| 日本一区二区三区久久久久久久久不| 一本久久a久久免费精品不卡| 国产在线视视频有精品| 亚洲综合免费观看高清完整版| 久久久久久久久久久电影| 欧美午夜理伦三级在线观看| 麻豆成人91精品二区三区| 一区二区三区鲁丝不卡| 久久人人爽人人爽| 欧美一卡二卡在线观看| 色综合色狠狠综合色| 国产99久久久久久免费看农村| 日本中文一区二区三区| 亚洲久草在线视频| 国产精品白丝在线| 精品日韩欧美在线| 91精品在线免费| 一本一道波多野结衣一区二区| 成人午夜电影久久影院| 激情深爱一区二区| 日本不卡1234视频| 亚洲国产视频a| 亚洲精品高清在线观看| 欧美精品一区二区三区四区 | 国产三级三级三级精品8ⅰ区| 欧美电影影音先锋| 欧美优质美女网站| 99久久777色| 国产在线麻豆精品观看| 麻豆精品一区二区| 天堂资源在线中文精品| 亚洲国产视频一区| 亚洲欧美一区二区久久 | 美女性感视频久久| 亚洲综合成人在线视频| 亚洲国产精品精华液ab| 国产精品乱人伦中文| 久久先锋影音av鲁色资源| 精品国一区二区三区| 欧美剧在线免费观看网站| 欧美久久高跟鞋激| 欧美少妇xxx| 欧美猛男男办公室激情| 欧美主播一区二区三区美女| 成人免费毛片嘿嘿连载视频| 成人黄色小视频| 成人av影院在线| 色综合天天做天天爱| 99久久精品费精品国产一区二区| 91片在线免费观看| 99九九99九九九视频精品| 色综合亚洲欧洲| 91精品办公室少妇高潮对白| 欧美手机在线视频| 欧美专区亚洲专区| 一本大道综合伊人精品热热| 一本到三区不卡视频|