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

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

?? config.c

?? wince3.0的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
// ---------------------------------------------------------------------------
//
// Copyright (c) 1995-2000 Microsoft Corporation.  All rights reserved.
//
// ---------------------------------------------------------------------------

#include <windows.h>
#include <memory.h>

#include <tapi.h>
#include "mcx.h"
#include "tspi.h"
#include "tspip.h"
#include "config.h"
#include "netui.h"

//
// Read the COMMPROPs to get the settings the device allows
//
void
GetSettableFields(
    PTLINEDEV   pLineDev,
    DWORD * pdwSettableBaud,
    WORD * pwSettableData,
    WORD * pwSettableStopParity
    )
{
    HANDLE hComDev;
    COMMPROP commP;

    *pdwSettableBaud = BAUD_110 | BAUD_300 | BAUD_600 | BAUD_1200 |
                               BAUD_2400 | BAUD_4800 | BAUD_9600 | BAUD_14400 |
                               BAUD_19200 | BAUD_38400 | BAUD_57600 | BAUD_115200;
    *pwSettableData = DATABITS_5 | DATABITS_6 | DATABITS_7 | DATABITS_8;
    *pwSettableStopParity = STOPBITS_10 | STOPBITS_15 | STOPBITS_20 |
                                     PARITY_NONE | PARITY_ODD | PARITY_EVEN |
                                     PARITY_SPACE | PARITY_MARK;

    if (pLineDev->hDevice_r0 != (HANDLE)INVALID_DEVICE) {
        if (!GetCommProperties(pLineDev->hDevice_r0, &commP)) {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:GetSettableFields - GetCommProperties failed %d\n"), GetLastError()));
            return;
        }
    } else {
        if ((hComDev = CreateFile(
                            pLineDev->szDeviceName,
                            GENERIC_READ,
                            0,
                            NULL,
                            OPEN_EXISTING,
                            0,
                            0
                            ))
            != INVALID_HANDLE_VALUE) {
            if (!GetCommProperties(hComDev, &commP)) {
                DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:GetSettableFields - GetCommProperties failed %d\n"), GetLastError()));
                CloseHandle(hComDev);
                return;
            }
            CloseHandle(hComDev);
        } else {
            DEBUGMSG(ZONE_ERROR,
                (TEXT("UNIMODEM:GetSettableFields - CreateFile(%s) failed %d\n"), pLineDev->szDeviceName, GetLastError()));
            return;
        }
    }

    *pdwSettableBaud        = commP.dwSettableBaud;
    *pwSettableData         = commP.wSettableData;
    *pwSettableStopParity   = commP.wSettableStopParity;

}   // GetSettableFields

 
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
BOOL
TSPI_EditMiniConfig(
   HWND        hWndOwner,
   PTLINEDEV   pLineDev,
   PDEVMINICFG lpSettingsIn,
   PDEVMINICFG lpSettingsOut
   )
{
	LINECONFIGDATA	LineConfigData;
	BOOL			fRetVal;

	DEBUGMSG (ZONE_MISC, (TEXT("+TSPI_EditMiniConfig(0x%X, 0x%X, 0x%X)\r\n"),
						  hWndOwner, lpSettingsIn, lpSettingsOut));

	// Just copy the in to the out as a default
	memcpy ((char *)lpSettingsOut, (char *)lpSettingsIn,
			sizeof(DEVMINICFG));
	
	memset ((char *)&LineConfigData, 0, sizeof(LINECONFIGDATA));
	
	// Move the data over.
	LineConfigData.dwVersion = NETUI_LCD_STRUCTVER;
	LineConfigData.dwBaudRate = lpSettingsIn->dwBaudRate;

    GetSettableFields(
        pLineDev,
    	&(LineConfigData.dwSettableBaud),
    	&(LineConfigData.wSettableData),
        &(LineConfigData.wSettableStopParity)
        );

	LineConfigData.bByteSize = lpSettingsIn->ByteSize;
	LineConfigData.bParity = lpSettingsIn->Parity;
	LineConfigData.bStopBits = lpSettingsIn->StopBits;
	LineConfigData.wWaitBong = lpSettingsIn->wWaitBong;
	LineConfigData.dwCallSetupFailTimer = lpSettingsIn->dwCallSetupFailTimer;
	
	if (lpSettingsIn->dwModemOptions & MDM_BLIND_DIAL) {
		LineConfigData.dwModemOptions |= NETUI_LCD_MDMOPT_BLIND_DIAL;
	}
	if (lpSettingsIn->dwModemOptions & MDM_FLOWCONTROL_SOFT) {
		LineConfigData.dwModemOptions |= NETUI_LCD_MDMOPT_SOFT_FLOW;
	}
	if (lpSettingsIn->dwModemOptions & MDM_FLOWCONTROL_HARD) {
		LineConfigData.dwModemOptions |= NETUI_LCD_MDMOPT_HARD_FLOW;
	}
	if (lpSettingsIn->dwModemOptions & MDM_SPEED_ADJUST) {  // DCC automatic baud rate detection
		LineConfigData.dwModemOptions |= NETUI_LCD_MDMOPT_AUTO_BAUD;
	}
	if (lpSettingsIn->fwOptions & TERMINAL_PRE) {
		LineConfigData.dwTermOptions |= NETUI_LCD_TRMOPT_PRE_DIAL;
	}
	if (lpSettingsIn->fwOptions & TERMINAL_POST) {
		LineConfigData.dwTermOptions |= NETUI_LCD_TRMOPT_POST_DIAL;
	}
	if (lpSettingsIn->fwOptions & MANUAL_DIAL) {
		LineConfigData.dwTermOptions |= NETUI_LCD_TRMOPT_MANUAL_DIAL;
	}

	// Set the maximum length
	LineConfigData.dwModMaxLen = DIAL_MODIFIER_LEN;
	wcscpy (LineConfigData.szDialModifier, lpSettingsIn->szDialModifier);

	
	if (fRetVal = CallLineConfigEdit(hWndOwner, &LineConfigData)) {
		// Move the data back.
		lpSettingsOut->wWaitBong = LineConfigData.wWaitBong;
		lpSettingsOut->dwCallSetupFailTimer =
			LineConfigData.dwCallSetupFailTimer;

        lpSettingsOut->dwModemOptions &= ~(MDM_FLOWCONTROL_SOFT|MDM_FLOWCONTROL_HARD|MDM_SPEED_ADJUST|MDM_BLIND_DIAL);
		if (LineConfigData.dwModemOptions & NETUI_LCD_MDMOPT_SOFT_FLOW) {
			lpSettingsOut->dwModemOptions |= MDM_FLOWCONTROL_SOFT;
		}
		if (LineConfigData.dwModemOptions & NETUI_LCD_MDMOPT_HARD_FLOW) {
			lpSettingsOut->dwModemOptions |= MDM_FLOWCONTROL_HARD;
		}
		if (LineConfigData.dwModemOptions & NETUI_LCD_MDMOPT_AUTO_BAUD) {
			lpSettingsOut->dwModemOptions |= MDM_SPEED_ADJUST;
		}
		if (LineConfigData.dwModemOptions & NETUI_LCD_MDMOPT_BLIND_DIAL) {
			lpSettingsOut->dwModemOptions |= MDM_BLIND_DIAL;
		}
		
		lpSettingsOut->wWaitBong = LineConfigData.wWaitBong;
		lpSettingsOut->dwBaudRate = LineConfigData.dwBaudRate;

        lpSettingsOut->fwOptions &= ~(MANUAL_DIAL|TERMINAL_PRE|TERMINAL_POST);
		if (LineConfigData.dwTermOptions & NETUI_LCD_TRMOPT_MANUAL_DIAL) {
			lpSettingsOut->fwOptions |= MANUAL_DIAL;
		}
		if (LineConfigData.dwTermOptions & NETUI_LCD_TRMOPT_PRE_DIAL) {
			lpSettingsOut->fwOptions |= TERMINAL_PRE;
		}
		if (LineConfigData.dwTermOptions & NETUI_LCD_TRMOPT_POST_DIAL) {
			lpSettingsOut->fwOptions |= TERMINAL_POST;
		}
		
		lpSettingsOut->ByteSize = LineConfigData.bByteSize;
		lpSettingsOut->StopBits = LineConfigData.bStopBits;
		lpSettingsOut->Parity = LineConfigData.bParity;
		wcscpy (lpSettingsOut->szDialModifier, LineConfigData.szDialModifier);
	} 

	DEBUGMSG (ZONE_MISC, (TEXT("-TSPI_EditMiniConfig: %d\r\n"), fRetVal));
	return fRetVal;
}
 

//
// The following functions are used to verify setting properties of a DEVMINICONFIG via
// calls to lineDevSpecific.
//

BOOL
IsValidBaudRate(
    DWORD dwBaudRate,
    DWORD dwSettableBaud
    )
{
    //
    // Baud rates and settable bits from winbase.h
    //
    switch (dwBaudRate) {
    case CBR_110:   if (dwSettableBaud & BAUD_110)  return TRUE; break;
    case CBR_300:   if (dwSettableBaud & BAUD_300)  return TRUE; break;
    case CBR_600:   if (dwSettableBaud & BAUD_600)  return TRUE; break;
    case CBR_1200:  if (dwSettableBaud & BAUD_1200) return TRUE; break;
    case CBR_2400:  if (dwSettableBaud & BAUD_2400) return TRUE; break;
    case CBR_4800:  if (dwSettableBaud & BAUD_4800) return TRUE; break;
    case CBR_9600:  if (dwSettableBaud & BAUD_9600) return TRUE; break;
    case CBR_14400: if (dwSettableBaud & BAUD_14400)return TRUE; break;
    case CBR_19200: if (dwSettableBaud & BAUD_19200)return TRUE; break;
    case CBR_38400: if (dwSettableBaud & BAUD_38400)return TRUE; break;
    case CBR_56000: if (dwSettableBaud & BAUD_56K)  return TRUE; break;
    case CBR_57600: if (dwSettableBaud & BAUD_57600)return TRUE; break;
    case CBR_115200:if (dwSettableBaud & BAUD_115200) return TRUE; break;
    case CBR_128000:if (dwSettableBaud & BAUD_128K)   return TRUE; break;
    
    case CBR_256000:
    default: if (dwSettableBaud & BAUD_USER) return TRUE; break;
    }
    return FALSE;
}   // IsValidBaudRate


BOOL
IsValidByteSize(
    DWORD dwByteSize,
    DWORD dwSettableData
    )
{
    //
    // Settable bits from winbase.h
    //
    switch (dwByteSize) {
    case 5: if (dwSettableData & DATABITS_5) return TRUE; break;
    case 6: if (dwSettableData & DATABITS_6) return TRUE; break;
    case 7: if (dwSettableData & DATABITS_7) return TRUE; break;
    case 8: if (dwSettableData & DATABITS_8) return TRUE; break;
    case 16:if (dwSettableData & DATABITS_16) return TRUE; break;
    }
    return FALSE;
}   // IsValidByteSize


BOOL
IsValidParity(
    DWORD dwParity,
    DWORD dwSettableParity
    )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩另类一区| 欧美精品色综合| 不卡的av网站| 久久99精品一区二区三区三区| 国产日产欧美一区二区视频| 精品国产第一区二区三区观看体验| 色婷婷精品久久二区二区蜜臂av| 国产在线播放一区三区四| 男男gaygay亚洲| 日韩av一区二区三区| 免费成人av在线播放| 日本午夜精品一区二区三区电影| 亚洲欧洲日韩女同| 欧美亚洲图片小说| 99精品偷自拍| 天涯成人国产亚洲精品一区av| 精品日韩成人av| 91首页免费视频| 久久夜色精品国产欧美乱极品| 欧美一区二区在线看| 亚洲一卡二卡三卡四卡| 91视频国产观看| 成人欧美一区二区三区黑人麻豆 | 欧美大尺度电影在线| 亚洲自拍偷拍av| 欧美在线综合视频| 亚洲精品日日夜夜| 色菇凉天天综合网| 一区二区三区四区视频精品免费| 成人精品免费视频| 国产精品免费av| 不卡av电影在线播放| 亚洲国产精品t66y| 91色在线porny| 亚洲欧美欧美一区二区三区| 色8久久精品久久久久久蜜| 亚洲色图欧洲色图| 欧美日韩在线播放| 日韩av高清在线观看| 日韩一级完整毛片| 国产一区二区精品久久91| 日本一区二区视频在线| 不卡视频免费播放| 一区二区三区加勒比av| 欧美老肥妇做.爰bbww| 日韩国产欧美在线播放| 日韩三级视频在线看| 国产精品综合在线视频| 日韩理论片中文av| 欧美丰满嫩嫩电影| 国产老肥熟一区二区三区| 国产精品伦理一区二区| 在线免费观看日本一区| 免费观看在线综合色| 国产清纯在线一区二区www| 色欧美乱欧美15图片| 日韩专区欧美专区| 亚洲国产岛国毛片在线| 91精品福利在线| 久草在线在线精品观看| 1000部国产精品成人观看| 91精品国产综合久久精品麻豆| 精品中文字幕一区二区小辣椒| 中文字幕一区av| 7777精品伊人久久久大香线蕉经典版下载 | 国产激情一区二区三区| 中文字幕日韩精品一区| 91精品国产综合久久精品app| 国产精品77777| 亚州成人在线电影| 中文字幕av一区二区三区免费看| 91成人免费网站| 国产大陆亚洲精品国产| 视频一区欧美精品| 国产精品久久久久久久久晋中| 欧美精品第一页| 99精品国产91久久久久久| 美女性感视频久久| 亚洲专区一二三| 国产精品婷婷午夜在线观看| 欧美一区二区三区视频在线观看| 成人高清免费在线播放| 精品一区二区三区香蕉蜜桃| 亚洲激情欧美激情| 中文子幕无线码一区tr| 日韩免费看的电影| 欧美精品亚洲二区| 91视视频在线观看入口直接观看www | 欧美日韩成人高清| 成人av电影在线网| 国产成人亚洲精品青草天美| 日韩在线播放一区二区| 一区二区三区免费在线观看| 日本一区二区三区四区在线视频 | 久久99日本精品| 亚洲高清在线视频| 亚洲视频每日更新| 国产色产综合产在线视频| 欧美成va人片在线观看| 欧美日高清视频| 欧美午夜电影网| 日本高清免费不卡视频| 成人激情黄色小说| 成人高清伦理免费影院在线观看| 国产一区91精品张津瑜| 狠狠色狠狠色综合日日91app| 蜜桃传媒麻豆第一区在线观看| 午夜精品久久一牛影视| 天堂成人国产精品一区| 天天影视涩香欲综合网| 天堂蜜桃一区二区三区 | 国产成人精品1024| 国产麻豆精品在线观看| 国产丶欧美丶日本不卡视频| 国产成人啪免费观看软件 | 国产无人区一区二区三区| 久久久一区二区三区| 久久久无码精品亚洲日韩按摩| 久久九九影视网| 国产精品亲子伦对白| 自拍偷拍欧美激情| 一区二区三区高清在线| 五月天中文字幕一区二区| 日本va欧美va瓶| 国产综合色视频| 99久久99久久免费精品蜜臀| 色综合色综合色综合 | 国产欧美一区二区精品仙草咪 | 亚洲国产欧美在线| 婷婷亚洲久悠悠色悠在线播放| 日韩二区三区四区| 久久99国产精品久久99果冻传媒| 国产成人欧美日韩在线电影| 色综合天天综合网天天狠天天 | 日韩福利电影在线观看| 久久99这里只有精品| 成人av第一页| 欧美年轻男男videosbes| 日韩精品一区二区三区在线观看 | 久久精品一区二区三区四区| 国产欧美一区二区精品性色| 亚洲女人的天堂| 日韩国产欧美视频| 成人午夜视频网站| 欧美日韩免费在线视频| 久久欧美一区二区| 一区二区日韩电影| 裸体一区二区三区| 91啦中文在线观看| 亚洲精品一区二区精华| 亚洲乱码中文字幕| 国产在线一区二区综合免费视频| av一区二区三区四区| 337p亚洲精品色噜噜狠狠| 国产欧美一区二区在线| 亚洲va国产va欧美va观看| 风间由美中文字幕在线看视频国产欧美| 97久久久精品综合88久久| 欧美大黄免费观看| 亚洲午夜在线电影| 大白屁股一区二区视频| 欧美一区国产二区| 亚洲视频小说图片| 国产成人一区二区精品非洲| 91精品国产麻豆国产自产在线| 国产精品久久一卡二卡| 麻豆91精品视频| 欧美剧在线免费观看网站| 18成人在线视频| 国产精品77777竹菊影视小说| 91麻豆精品国产91久久久久久| 亚洲码国产岛国毛片在线| 国产成人精品综合在线观看 | 最新热久久免费视频| 美女久久久精品| 欧美精品黑人性xxxx| 一区二区成人在线| av电影天堂一区二区在线观看| 2024国产精品视频| 韩国视频一区二区| 日韩欧美国产一二三区| 日韩**一区毛片| 欧美色爱综合网| 亚洲激情五月婷婷| 91亚洲精华国产精华精华液| 欧美国产精品专区| 国产精品一二一区| 国产亚洲精品中文字幕| 狠狠色丁香婷婷综合| 亚洲精品在线免费观看视频| 久久99精品国产麻豆婷婷| 日韩一区二区三区电影| 免费成人在线观看| 日韩欧美一级在线播放| 免费成人av在线播放| 精品久久久久久久久久久久久久久 | 欧美日韩精品电影| 一卡二卡三卡日韩欧美| 在线亚洲人成电影网站色www| 亚洲视频免费在线|