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

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

?? proppage.cpp

?? ComEmulDrv serial port bridge driver 虛擬串口代碼
?? 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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产色一区| 成人aaaa免费全部观看| 成人性视频免费网站| 91首页免费视频| 欧美大白屁股肥臀xxxxxx| 国产精品色婷婷| 日韩综合在线视频| 99久久亚洲一区二区三区青草 | 亚洲视频一区在线| 蜜臀av国产精品久久久久| 国产成人在线看| 日韩欧美卡一卡二| 亚洲精品乱码久久久久久久久 | 国产精品婷婷午夜在线观看| 午夜精品福利一区二区三区av| 国产91精品欧美| 日本韩国精品在线| 日本一区二区三区国色天香| 人人狠狠综合久久亚洲| 91香蕉国产在线观看软件| 26uuu国产日韩综合| 亚洲一区二区三区在线看| 日韩精品电影一区亚洲| 欧美探花视频资源| 日韩毛片在线免费观看| 国产精品综合在线视频| 91精品久久久久久蜜臀| 国产精品欧美一区二区三区| 免费看日韩精品| 欧美无乱码久久久免费午夜一区| 久久精品视频一区二区| 美女一区二区在线观看| 精品视频在线视频| 亚洲人成电影网站色mp4| 国产成人亚洲综合色影视| 日韩一区二区三区观看| 亚洲柠檬福利资源导航| 成人免费黄色大片| 久久人人超碰精品| 伦理电影国产精品| 欧美羞羞免费网站| 国产精品系列在线| 国产精一品亚洲二区在线视频| 日韩午夜在线影院| 亚洲午夜羞羞片| 欧美在线观看视频一区二区三区| 中文字幕一区二区三区在线观看| 国产精品1区二区.| 久久尤物电影视频在线观看| 免费国产亚洲视频| 91精品国产一区二区| 日韩精品欧美精品| 欧美精品色一区二区三区| 亚洲欧美综合色| 一本大道av一区二区在线播放| 国产精品人成在线观看免费| 国产精品一区免费视频| 久久尤物电影视频在线观看| 国内精品久久久久影院色| 欧美另类一区二区三区| 麻豆91小视频| 精品剧情在线观看| 精品一区二区三区的国产在线播放| 欧美日韩精品欧美日韩精品一综合| 亚洲精品欧美激情| 成人高清视频免费观看| 国产精品久久夜| jizzjizzjizz欧美| 国产精品乱子久久久久| 51久久夜色精品国产麻豆| 国产亚洲精品bt天堂精选| 成人国产精品免费观看动漫| 亚洲欧美成人一区二区三区| 欧美视频中文一区二区三区在线观看 | 麻豆国产精品777777在线| 精品国产伦理网| 成人av在线影院| 亚洲制服欧美中文字幕中文字幕| 欧美一区国产二区| 国产乱码精品一区二区三| 综合欧美亚洲日本| 欧美日韩国产片| 国产老肥熟一区二区三区| 亚洲欧美电影院| 91精品久久久久久久99蜜桃 | 亚洲一区中文日韩| 正在播放亚洲一区| 国产高清无密码一区二区三区| 中文字幕色av一区二区三区| 欧美男生操女生| 国产成人午夜高潮毛片| 夜夜揉揉日日人人青青一国产精品| 日韩一区二区在线看| jlzzjlzz欧美大全| 日本麻豆一区二区三区视频| 国产欧美综合在线观看第十页| 欧美亚洲国产一区二区三区| 国产综合色视频| 一区二区在线看| 久久青草国产手机看片福利盒子| 日本高清不卡在线观看| 精品一区二区影视| 亚洲精品乱码久久久久久久久| 日韩免费视频一区| 91久久奴性调教| 国模娜娜一区二区三区| 亚洲综合色视频| 久久精品人人做人人爽人人| 欧美日韩免费电影| 成人免费观看av| 久久精品999| 亚洲曰韩产成在线| 国产日韩欧美激情| 日韩欧美中文字幕制服| 色噜噜狠狠一区二区三区果冻| 狠狠狠色丁香婷婷综合久久五月| 亚洲一区二区在线视频| 国产喷白浆一区二区三区| 3d动漫精品啪啪| 色综合天天综合| 国产精品亚洲一区二区三区妖精 | 久久久av毛片精品| 欧美美女视频在线观看| 97成人超碰视| 国产精品中文欧美| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区 在线观看视频| 国产欧美一区二区精品性色| 91精品国产高清一区二区三区 | 91美女视频网站| 国产成人av资源| 六月丁香婷婷久久| 五月激情综合网| 一区二区三区在线免费播放| 国产精品国产三级国产有无不卡 | 中文字幕不卡的av| 久久久影视传媒| 日韩精品中文字幕一区| 91麻豆精品国产91久久久久久久久 | 亚洲成人免费看| 一区二区三区中文在线观看| 国产精品网站一区| 久久久91精品国产一区二区三区| 欧美一区二区成人| 欧美一区二区三区免费在线看| 欧美日韩在线精品一区二区三区激情 | 日韩理论电影院| 国产精品久久久久久亚洲毛片| 久久亚洲综合色| 精品国产乱码久久久久久1区2区| 欧美一级在线观看| 91精品国产色综合久久不卡蜜臀| 欧美视频中文字幕| 欧美日韩在线一区二区| 欧美色电影在线| 欧美日本一道本在线视频| 欧美在线观看一区二区| 在线亚洲免费视频| 91福利区一区二区三区| 欧美色综合影院| 欧美日韩一区在线观看| 欧美美女一区二区在线观看| 7777精品伊人久久久大香线蕉完整版 | 日韩精品一区二区三区蜜臀 | 精品视频在线视频| 欧美精品 日韩| 在线观看91av| 3atv一区二区三区| 欧美一级淫片007| 在线电影院国产精品| 91精品国产综合久久蜜臀| 日韩午夜激情av| 久久日韩精品一区二区五区| 久久久综合精品| 国产精品无码永久免费888| 国产精品久久久久婷婷| 亚洲精品高清视频在线观看| 亚洲在线视频一区| 日韩激情中文字幕| 精品在线你懂的| 国产精品一区二区x88av| 懂色av噜噜一区二区三区av| 91丨porny丨在线| 欧美亚洲一区二区在线| 欧美久久一区二区| 欧美mv日韩mv国产| 亚洲国产高清在线| 亚洲激情校园春色| 日本在线不卡视频一二三区| 寂寞少妇一区二区三区| 成人ar影院免费观看视频| 欧美主播一区二区三区美女| 日韩一区二区三区在线观看| 久久亚洲一区二区三区四区| 国产精品网站在线观看| 亚洲国产中文字幕在线视频综合| 蜜臀av性久久久久av蜜臀妖精| 国产成人在线色| 欧美无砖专区一中文字| 亚洲精品一区二区三区影院 |