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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? proppage.cpp

?? windows下虛擬串口驅(qū)動
?? CPP
字號:
//
// ComEmulDrv property page
//
// Copyright (c) 2002 
// MixW team
// http://www.mixw.net
//

#include "stdafx.h"
#include "resource.h"
#include "PropPage.h"

#define MAXPORT 255
#define MAXPAIR 10
#define MIXREGKEY "SYSTEM\\CurrentControlSet\\Services\\MixWComEmul"

HINSTANCE       hInst;
/*
typedef struct {
    HKEY    drvConfigKey;
    BOOL    drvConfigKeyValid;
    HKEY    svcConfigKey;
    BOOL    svcConfigKeyValid;

    ULONG   timeoutScaling;
    ULONG   statusLines;
    ULONG   activeConnectOnly;

    ULONG   oldTimeoutScaling;
    ULONG   oldStatusLines;
    ULONG   oldActiveConnectOnly;


} PP_PARAMS_STRUCT;
*/
//char sNumber1[10] = "101", sNumber2[10] = "102";

int m_iCom1[MAXPAIR], m_iCom2[MAXPAIR];

BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
        case DLL_PROCESS_ATTACH:
            hInst = hDll;
            DisableThreadLibraryCalls(hDll);

            break;

        case DLL_PROCESS_DETACH:
            break;

        default:
            break;
    }

    return TRUE;
}

BOOL CALLBACK PropDialogProc(HWND hwnd, UINT uMessage, WPARAM  wParam, LPARAM  lParam);
UINT CALLBACK PropPageCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE pPsp);


void ReadConfig(HWND hwnd)
{
    HKEY        Key;

//MessageBox(0,"rc1","",0);
    
	if (RegOpenKey(HKEY_LOCAL_MACHINE,
                   MIXREGKEY,
                   &Key) != ERROR_SUCCESS)
				   return;

	DWORD Len;

/*
    if (RegQueryValue(Key, "1", sNumber1, &Len) != ERROR_SUCCESS || Len<=0)
		strcpy(sNumber1,"201");

	Len = 10;
    if (RegQueryValue(Key, "2", sNumber2, &Len) != ERROR_SUCCESS || Len<=0)
		strcpy(sNumber2,"202");
*/

	char s[100],ss[20]="Pair";
	for (int i=0; i<MAXPAIR; i++)
	{
		itoa(i+1,ss+4,10);
		strcat(ss,"-Port1");

		Len = 9;
		if (RegQueryValueEx(Key, ss, 0,0, (BYTE*)s, &Len) != ERROR_SUCCESS)
			strcpy(s,"0");
		m_iCom1[i] = atoi(s);
		
		if (m_iCom1[i]<0 || m_iCom1[i]>MAXPORT)
			m_iCom1[i] = 0;

		itoa(i+1,ss+4,10);
		strcat(ss,"-Port2");

		Len = 9;
		if (RegQueryValueEx(Key, ss, 0,0, (BYTE*)s, &Len) != ERROR_SUCCESS)
			strcpy(s,"0");
		m_iCom2[i] = atoi(s);

		if (m_iCom2[i]<0 || m_iCom2[i]>MAXPORT)
			m_iCom2[i] = 0;
	}

	RegCloseKey(Key);

//MessageBox(0,"rc2","",0);

//	MessageBox(0,sNumber1,"",0);
//	MessageBox(0,sNumber2,"",0);
}

void WriteConfig(HWND hwnd)
{
    HKEY        Key;

//MessageBox(0,"rc1","",0);
    
	if (RegOpenKey(HKEY_LOCAL_MACHINE,
                   MIXREGKEY,
                   &Key) != ERROR_SUCCESS)
				   return;

	char s[100],ss[20]="Pair";
	for (int i=0; i<MAXPAIR; i++)
	{
		itoa(i+1,ss+4,10);
		strcat(ss,"-Port1");
		itoa(m_iCom1[i],s,10);

	    RegSetValueEx(Key, ss, NULL, REG_SZ,
		              (BYTE*)s, strlen(s));
	
		itoa(i+1,ss+4,10);
		strcat(ss,"-Port2");
		itoa(m_iCom2[i],s,10);

		RegSetValueEx(Key, ss, NULL, REG_SZ,
                      (BYTE*)s, strlen(s));

	}

	RegCloseKey(Key);
}

BOOL WINAPI MixPropPageProvider(LPVOID pInfo, LPFNADDPROPSHEETPAGE addProc,
                                                LPARAM lParam)
{
    PROPSHEETPAGE       psp;
    HPROPSHEETPAGE      hpsp;


//    PP_PARAMS_STRUCT*   pParams;


//    pParams = (PP_PARAMS_STRUCT*)LocalAlloc(LPTR, sizeof(PP_PARAMS_STRUCT));
//    if (pParams == NULL)
//        return FALSE;
/*
    ReadConfig(pParams);
*/

    psp.dwSize      = sizeof(PROPSHEETPAGE);
    psp.dwFlags     = PSP_USECALLBACK;
    psp.hInstance   = hInst;
    psp.pszTemplate = MAKEINTRESOURCE(IDD_PROPPAGE);
    psp.pfnDlgProc  = PropDialogProc;
    psp.lParam      = 0; //(LPARAM)pParams;
    psp.pfnCallback = PropPageCallback;

    hpsp = CreatePropertySheetPage(&psp);
    if (hpsp == NULL)
        return FALSE;

    if (!(*addProc)(hpsp, lParam))
    {
        DestroyPropertySheetPage(hpsp);
        return FALSE;
    }

    return TRUE;
}

UINT CALLBACK PropPageCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE pPsp)
{
//    PP_PARAMS_STRUCT*   pParams;

    
    if (uMsg == PSPCB_RELEASE)
    {
/*
        pParams = (PP_PARAMS_STRUCT*)pPsp->lParam;

        if (pParams->drvConfigKeyValid)
            RegCloseKey(pParams->drvConfigKey);

        if (pParams->svcConfigKeyValid)
            RegCloseKey(pParams->svcConfigKey);
        LocalFree(pParams);
*/
    }

    return TRUE;
}

void CheckSettings(HWND hwnd)
{
	BOOL bW1 = FALSE;
	char s[1000] = "";

	for (int i=0; i<MAXPAIR; i++)
	{
		BOOL bWarning = FALSE;

		if ((m_iCom1[i] && (!m_iCom2[i])) || ((!m_iCom1[i]) && m_iCom2[i]))
			bWarning = TRUE; // one is 0, other !0

		if ( (m_iCom1[i]!=0) && (m_iCom2[i]!=0) && (m_iCom1[i]==m_iCom2[i]) )
			bWarning = TRUE; // one == other 
		
		for (int j=0; j<i; j++)
		{
			if ( (m_iCom1[i] == m_iCom2[j]) && (m_iCom1[i]!=0))
				bWarning = TRUE; // same numbers

			if ( (m_iCom1[j] == m_iCom2[i]) && (m_iCom1[j]!=0))
				bWarning = TRUE; // same numbers

			if ( (m_iCom1[i] == m_iCom1[j]) && (m_iCom1[i]!=0))
				bWarning = TRUE; // same numbers

			if ( (m_iCom2[i] == m_iCom2[j]) && (m_iCom2[i]!=0))
				bWarning = TRUE; // same numbers
		}

		if (bWarning)
		{
			if (!bW1)
			{
				strcat(s, "Warning! Conflict in pair(s):");
				bW1 = TRUE;
			}

			char ss[10];
			itoa(i+1,ss,10); 

			strcat(s, " ");
			strcat(s, ss);
		}

	}

	HWND hwndText = GetDlgItem(hwnd, IDC_TEXT);
	SetWindowText(hwndText, s);
}


BOOL CALLBACK PropDialogProc(HWND hwnd, UINT uMessage, WPARAM  wParam, LPARAM  lParam)
{
    UINT                btnState;
    char                valStr[5];
//    PP_PARAMS_STRUCT*   pParams;


    switch (uMessage)
    {
        case WM_INITDIALOG:
			{
			  #ifdef _DEBUG
//				pParams = (PP_PARAMS_STRUCT*)LocalAlloc(LPTR, sizeof(PP_PARAMS_STRUCT));
	//            ReadConfig(pParams);
			  #else   // !_DEBUG
//				pParams = (PP_PARAMS_STRUCT*)((LPPROPSHEETPAGE)lParam)->lParam;
			  #endif  // _DEBUG
//				SetWindowLong(hwnd, DWL_USER, (LONG)pParams);

	//            SendMessage(GetDlgItem(hwnd, IDC_TIMEOUT_SLIDER), TBM_SETRANGE, FALSE, MAKELONG(1, 10));
	//            UpdatePropPageControls(hwnd);

				ReadConfig(hwnd);

				HWND hwndCombo1 = GetDlgItem(hwnd, IDC_COMBO_1);
				HWND hwndCombo2 = GetDlgItem(hwnd, IDC_COMBO_2);

				HWND hwndComboPair = GetDlgItem(hwnd, IDC_COMBO_PAIR);

				// Pairs

				for (int i=1; i<=MAXPAIR; i++)
				{
					char s[20] = "Pair #";
					itoa(i,s+6,10);

					SendMessage(hwndComboPair, CB_ADDSTRING, 0, (LPARAM) s); 
				}

				SendMessage(hwndComboPair, CB_SETCURSEL, 0, 0); 

				// Port numbers

				SendMessage(hwndCombo1, CB_ADDSTRING, 0, (LPARAM) "Unassigned"); 
				SendMessage(hwndCombo2, CB_ADDSTRING, 0, (LPARAM) "Unassigned"); 

				char s[10] = "COM";

				for (i=1; i<=MAXPORT; i++)
				{
					//sprintf(s, "COM%i",i);
					itoa(i,s+3,10);

					SendMessage(hwndCombo1, CB_ADDSTRING, 0, (LPARAM) s); 
					SendMessage(hwndCombo2, CB_ADDSTRING, 0, (LPARAM) s); 
				}

				int n;

				SendMessage(hwndCombo1, CB_SETCURSEL, m_iCom1[0], 0); 
				SendMessage(hwndCombo2, CB_SETCURSEL, m_iCom2[0], 0); 

				CheckSettings(hwnd);

			}
            return TRUE;
/*
        case WM_HSCROLL:
            pParams = (PP_PARAMS_STRUCT*)GetWindowLong(hwnd, DWL_USER);

            pParams->timeoutScaling = SendMessage((HWND)lParam, TBM_GETPOS, 0, 0);

            sprintf(valStr, "x %d", pParams->timeoutScaling);
            SetDlgItemText(hwnd, IDC_SCALING, valStr);

            break;
*/

        case WM_COMMAND:
//            pParams = (PP_PARAMS_STRUCT*)GetWindowLong(hwnd, DWL_USER);

			if (HIWORD(wParam) == CBN_SELCHANGE)
			{
				HWND hwndCombo1 = GetDlgItem(hwnd, IDC_COMBO_1);
				HWND hwndCombo2 = GetDlgItem(hwnd, IDC_COMBO_2);

				HWND hwndComboPair = GetDlgItem(hwnd, IDC_COMBO_PAIR);
				int iPair = SendMessage(hwndComboPair, CB_GETCURSEL, 0, 0); 

				if (LOWORD(wParam) == IDC_COMBO_PAIR)
				{
					SendMessage(hwndCombo1, CB_SETCURSEL, m_iCom1[iPair], 0); 
					SendMessage(hwndCombo2, CB_SETCURSEL, m_iCom2[iPair], 0); 
				}
				else				
				if (LOWORD(wParam) == IDC_COMBO_1)
				{
					m_iCom1[iPair] = SendMessage(hwndCombo1, CB_GETCURSEL, 0, 0); 
				}
				else
				if (LOWORD(wParam) == IDC_COMBO_2)
				{
					m_iCom2[iPair] = SendMessage(hwndCombo2, CB_GETCURSEL, 0, 0); 
				}

				CheckSettings(hwnd);
			}

            switch (LOWORD(wParam))
            {

/*
                case IDC_ALL_LINES:
                    if (HIWORD(wParam) == BN_CLICKED)
                    {
                        btnState = IsDlgButtonChecked(hwnd, IDC_ALL_LINES);

                        if (btnState == BST_CHECKED)
                        {
                            pParams->statusLines = MS_CTS_ON | MS_DSR_ON |
                                                   MS_RING_ON | MS_RLSD_ON;
                        }
                        else if (btnState == BST_INDETERMINATE)
                        {
                            CheckDlgButton(hwnd, IDC_ALL_LINES, BST_UNCHECKED);
                            btnState = BST_UNCHECKED;

                            pParams->statusLines = 0;
                        }
                        else
                            pParams->statusLines = 0;

                        CheckDlgButton(hwnd, IDC_CTS, btnState);
                        CheckDlgButton(hwnd, IDC_DSR, btnState);
                        CheckDlgButton(hwnd, IDC_RI, btnState);
                        CheckDlgButton(hwnd, IDC_DCD, btnState);
                    }
                    break;

                case IDC_CTS:
                    if (HIWORD(wParam) == BN_CLICKED)
                    {
                        btnState = IsDlgButtonChecked(hwnd, IDC_CTS);

                        if (btnState == BST_CHECKED)
                            pParams->statusLines |= MS_CTS_ON;
                        else
                            pParams->statusLines &= ~MS_CTS_ON;

                        UpdatePropPageControls(hwnd);
                    }
                    break;

                case IDC_DSR:
                    if (HIWORD(wParam) == BN_CLICKED)
                    {
                        btnState = IsDlgButtonChecked(hwnd, IDC_DSR);

                        if (btnState == BST_CHECKED)
                            pParams->statusLines |= MS_DSR_ON;
                        else
                            pParams->statusLines &= ~MS_DSR_ON;

                        UpdatePropPageControls(hwnd);
                    }
                    break;

                case IDC_RI:
                    if (HIWORD(wParam) == BN_CLICKED)
                    {
                        btnState = IsDlgButtonChecked(hwnd, IDC_RI);

                        if (btnState == BST_CHECKED)
                            pParams->statusLines |= MS_RING_ON;
                        else
                            pParams->statusLines &= ~MS_RING_ON;

                        UpdatePropPageControls(hwnd);
                    }
                    break;

                case IDC_DCD:
                    if (HIWORD(wParam) == BN_CLICKED)
                    {
                        btnState = IsDlgButtonChecked(hwnd, IDC_DCD);

                        if (btnState == BST_CHECKED)
                            pParams->statusLines |= MS_RLSD_ON;
                        else
                            pParams->statusLines &= ~MS_RLSD_ON;

                        UpdatePropPageControls(hwnd);
                    }
                    break;

                case IDC_DEFAULT:
                    pParams->timeoutScaling    = 1;
                    pParams->statusLines       = 0;
                    pParams->activeConnectOnly = 0;

                    UpdatePropPageControls(hwnd);

                    break;

                case IDC_ABOUT:
                    DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUT_DIALOG), hwnd, AboutDialogProc);
                    break;
*/
            }

            return TRUE;

        case WM_NOTIFY:
            if (((LPNMHDR)lParam)->code != PSN_APPLY)
                return FALSE;

            //pParams = (PP_PARAMS_STRUCT*)GetWindowLong(hwnd, DWL_USER);
            WriteConfig(hwnd);

			//MessageBox(0,"OK","",0);
//            SetWindowLong(hwnd, DWL_MSGRESULT, PSNRET_NOERROR);
            return TRUE;
/*
        case WM_HELP:
            WinHelp((HWND)((LPHELPINFO)lParam)->hItemHandle, IRCOMM2K_HELPFILE,  HELP_WM_HELP,
                    (DWORD)helpIDs);
            break;

      #ifdef _DEBUG
        case WM_CLOSE:
            pParams = (PP_PARAMS_STRUCT*)GetWindowLong(hwnd, DWL_USER);
            WriteConfig(hwnd, pParams);
            if (pParams->drvConfigKeyValid)
                RegCloseKey(pParams->drvConfigKey);
            LocalFree(pParams);
            EndDialog(hwnd, 0);
            return TRUE;
      #endif  // _DEBUG
*/
    }
    return FALSE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费看少妇高潮| 欧美日韩在线播| 久久精品人人做人人综合| 久久99久久99精品免视看婷婷 | 国产欧美日本一区视频| 精品一区二区三区在线视频| 精品久久国产97色综合| 精品一二三四区| 国产喷白浆一区二区三区| 成人在线综合网| 一区二区视频免费在线观看| 欧美午夜精品久久久久久超碰| 亚洲午夜免费视频| 91精品综合久久久久久| 国产综合色精品一区二区三区| 欧美激情中文字幕| 色噜噜狠狠色综合欧洲selulu | 欧美aaa在线| 2021久久国产精品不只是精品| 成人免费黄色在线| 午夜精品免费在线观看| 日韩精品一区在线| 成人免费高清在线| 午夜欧美一区二区三区在线播放| 欧美mv日韩mv国产网站app| 成人黄色免费短视频| 一二三区精品视频| 欧美xingq一区二区| www.色综合.com| 日韩主播视频在线| 欧美国产乱子伦| 这里是久久伊人| 国产丶欧美丶日本不卡视频| 午夜视频在线观看一区| 国产三级一区二区三区| 欧美日韩电影一区| 成人久久视频在线观看| 日韩国产高清影视| 自拍偷拍欧美精品| 久久伊人蜜桃av一区二区| 欧美午夜寂寞影院| 波多野结衣亚洲| 九九**精品视频免费播放| 亚洲一区电影777| 国产日韩视频一区二区三区| 欧美伦理视频网站| 一本色道综合亚洲| 丰满白嫩尤物一区二区| 美女在线视频一区| 亚洲综合一区二区| 国产精品视频九色porn| 欧美一级理论性理论a| 91黄色免费看| 成人高清av在线| 国产麻豆午夜三级精品| 免费在线看一区| 亚洲丶国产丶欧美一区二区三区| 国产欧美中文在线| 精品伦理精品一区| 5月丁香婷婷综合| 欧美日韩国产综合视频在线观看| kk眼镜猥琐国模调教系列一区二区| 国产一区二区三区不卡在线观看 | 欧美三电影在线| 99久久久久免费精品国产| 国产一区 二区 三区一级| 蜜臀av国产精品久久久久| 午夜电影久久久| 亚洲国产日韩av| 一区二区三区中文字幕电影 | 日韩欧美一二区| 在线不卡a资源高清| 欧美日韩国产影片| 欧美日本韩国一区二区三区视频| 一本大道综合伊人精品热热| 99国产欧美另类久久久精品 | 亚洲私人黄色宅男| 国产精品国产自产拍高清av| 欧美激情一区二区三区蜜桃视频 | 在线综合视频播放| 欧美日精品一区视频| 欧美人狂配大交3d怪物一区 | 91在线国产福利| 91视频www| 欧美在线看片a免费观看| 欧美年轻男男videosbes| 在线不卡a资源高清| 日韩精品一区二| 久久久久久久网| 国产精品免费久久| 亚洲激情av在线| 午夜精品久久久久久久久久久 | 老司机免费视频一区二区三区| 日日骚欧美日韩| 精品一区二区免费在线观看| 国产精品白丝jk白祙喷水网站| 国产成人鲁色资源国产91色综| zzijzzij亚洲日本少妇熟睡| 在线观看视频一区二区| 51精品久久久久久久蜜臀| 精品国产免费人成在线观看| 国产欧美一区二区三区网站| 亚洲少妇30p| 日本色综合中文字幕| 国产精品一区二区在线看| 成人a级免费电影| 欧美性大战xxxxx久久久| 日韩三区在线观看| 国产精品视频线看| 亚洲成人tv网| 韩国午夜理伦三级不卡影院| 91麻豆免费在线观看| 91精品国产麻豆| 国产精品久久久久久久久久免费看| 亚洲码国产岛国毛片在线| 婷婷中文字幕综合| 粉嫩欧美一区二区三区高清影视 | 久久精品夜色噜噜亚洲aⅴ| 亚洲欧洲成人精品av97| 日韩综合在线视频| 成人午夜视频在线观看| 欧美日韩国产另类一区| 国产人妖乱国产精品人妖| 亚洲成人免费av| 成人免费高清视频在线观看| 欧美一区二区三区日韩| 国产精品毛片久久久久久| 肉肉av福利一精品导航| 91影院在线观看| 欧美精品一区二区三区四区 | 久久久精品综合| 性久久久久久久久| av激情亚洲男人天堂| 日韩一级片网址| 一区二区三区四区国产精品| 国产精品综合网| 欧美一区二区女人| 亚洲国产色一区| 99视频精品免费视频| 26uuu色噜噜精品一区| 日韩专区欧美专区| 欧美在线观看一二区| 成人欧美一区二区三区小说| 激情深爱一区二区| 欧美一区二区播放| 亚洲成年人网站在线观看| 99精品视频在线免费观看| 国产三级精品视频| 国产一区 二区| 欧美tk—视频vk| 久久精品国产久精国产爱| 欧美日韩国产精品自在自线| 樱花草国产18久久久久| 99久久国产综合精品女不卡| 国产经典欧美精品| 亚洲欧美aⅴ...| 高清久久久久久| 日韩国产在线一| 亚洲午夜激情网页| 国产在线精品一区二区三区不卡 | 色综合色综合色综合色综合色综合| 国产亚洲视频系列| 欧美日韩国产电影| 亚洲成人免费电影| 欧美在线一区二区三区| 国产人成亚洲第一网站在线播放 | 亚洲免费在线播放| 成人av午夜影院| 国产精品一区2区| 精品成a人在线观看| 欧美日韩成人综合在线一区二区| 午夜成人在线视频| 国产精品国产三级国产有无不卡| 懂色av一区二区三区免费观看| 国产午夜精品久久| 久久蜜桃一区二区| 精品国产乱码久久久久久影片| 成人国产亚洲欧美成人综合网 | 99这里都是精品| 最新久久zyz资源站| 中文一区一区三区高中清不卡| 欧美精品一区二区三| 国产精品欧美综合在线| 国产亚洲精品福利| 成人国产精品免费网站| 国产精品拍天天在线| 国产精品免费丝袜| 中文字幕在线不卡国产视频| 久久久不卡影院| 欧美激情综合五月色丁香| 国产精品萝li| 亚洲欧美激情在线| 中文字幕亚洲一区二区va在线| 国产精品白丝在线| 国产欧美一区二区三区网站| 国产精品亚洲第一| 久久久久久久久免费| 久久久一区二区| 中文字幕一区二区三区在线播放| 亚洲一卡二卡三卡四卡五卡|