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

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

?? pageclbk.cpp

?? win2000打印機(jī)驅(qū)動(dòng)代碼
?? CPP
字號(hào):
/*
 * @file ui/pageclbk.cpp Callback function for property pages.
 *
 * W2kPrintDrvSample
 *
 * Copyright (C) 2004, terrificskyfox <terrificskyfox@yahoo.com.cn>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include "precomp.h"
#include "debug.h"
#include "oemui.h"
#include "devmode.h"
#include "resource.h"
#include "pageclbk.h"


/*
 *  Internal prototypes
 */

static void init_custom(HWND hDlg, PDIALOGINFO pdi);
static void custom_init_color_settings(HWND hDlg, PDIALOGINFO pdi);
static void custom_enable_settings(HWND hDlg, PDIALOGINFO pdi);


/*
 *  Implementations
 */

/*
 * Function: DlgCustomProc
 *
 * Purpose: Call back function for IDD_CUSTOM dialog.
 *
 * Return: BOOL
 */
BOOL CALLBACK DlgCustomProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	PDIALOGINFO pdi = NULL;


	switch(uMsg)
	{
	case WM_INITDIALOG:
		pdi = (PDIALOGINFO)(((LPPROPSHEETPAGE)lParam)->lParam);
		SetWindowLong(hDlg, DWL_USER, (LONG)pdi);

		init_custom(hDlg, pdi);
		break;

	case WM_COMMAND:
		pdi = (PDIALOGINFO)GetWindowLong(hDlg, DWL_USER);

		switch(LOWORD(wParam))
		{
		// black ~ cyan, check bitmaped button
		case IDC_BITMAPED_BLACK:
		case IDC_BITMAPED_RED:
		case IDC_BITMAPED_GREEN:
		case IDC_BITMAPED_BLUE:
		case IDC_BITMAPED_YELLOW:
		case IDC_BITMAPED_MAGENTA:
		case IDC_BITMAPED_CYAN:
            pdi->pOemDev->dmPenInfo[LOWORD(wParam) - IDC_BITMAPED_BLACK].pibBitmaped ^= 1;
			PropSheet_Changed(GetParent(hDlg), hDlg);
			break;

		// black ~ cyan, check path button
		case IDC_PATH_BLACK:
		case IDC_PATH_RED:
		case IDC_PATH_GREEN:
		case IDC_PATH_BLUE:
		case IDC_PATH_YELLOW:
		case IDC_PATH_MAGENTA:
		case IDC_PATH_CYAN:
            pdi->pOemDev->dmPenInfo[LOWORD(wParam) - IDC_PATH_BLACK].pibPath ^= 1;
			PropSheet_Changed(GetParent(hDlg), hDlg);
			break;

		// black ~ cyan, check text button
		case IDC_TEXT_BLACK:
		case IDC_TEXT_RED:
		case IDC_TEXT_GREEN:
		case IDC_TEXT_BLUE:
		case IDC_TEXT_YELLOW:
		case IDC_TEXT_MAGENTA:
		case IDC_TEXT_CYAN:
            pdi->pOemDev->dmPenInfo[LOWORD(wParam) - IDC_TEXT_BLACK].pibText ^= 1;
			PropSheet_Changed(GetParent(hDlg), hDlg);
			break;

		default:
			return FALSE;
		}
		break;

	// property sheet notification messages
	case WM_NOTIFY:
		{
			NMHDR FAR * lpnmhdr = (NMHDR FAR *)lParam;
			pdi = (PDIALOGINFO)GetWindowLong(hDlg, DWL_USER);

			switch(lpnmhdr->code)
			{
            // validate parameters
			case PSN_KILLACTIVE:
				SetWindowLong(hDlg, DWL_MSGRESULT, FALSE);
				break;

			// when page is to be active, perform initialization here
			case PSN_SETACTIVE:
                if(pdi->pOemDev->dmOldColor != pdi->pPubDev->dmColor) // color mode changed
                {
                    custom_enable_settings(hDlg, pdi);

                    pdi->pOemDev->dmOldColor = pdi->pPubDev->dmColor;
                }
				break;

			// handel ok or apply button
			case PSN_APPLY:
				pdi->bOK = TRUE;
				SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_NOERROR);
				break;

			// handel cancel button
			case PSN_RESET:
				pdi->bOK = FALSE;
				break;

			// Handle help request
			case PSN_HELP:
				break;
			}
		}
		break;

	case WM_HELP:
		break;

	case WM_CONTEXTMENU:
		break;
		
	default:
		return FALSE;
	}

	return TRUE;
}


/*
 * Function: DlgAboutProc
 *
 * Purpose: Call back function for IDD_ABOUT dialog.
 *
 * Return: BOOL
 */
BOOL CALLBACK DlgAboutProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_INITDIALOG:
		break;

	// property sheet notification messages
	case WM_NOTIFY:
		{
			NMHDR FAR * lpnmhdr = (NMHDR FAR *)lParam;

			switch(lpnmhdr->code)
			{
			// validate dialog data
			case PSN_KILLACTIVE:
				SetWindowLong(hDlg, DWL_MSGRESULT, FALSE);
				break;

			// when page is to be active, perform initialization here
			case PSN_SETACTIVE:
				break;

			// handel ok or apply button
			case PSN_APPLY:
				SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_NOERROR);
				break;

			// handel cancel button
			case PSN_RESET:
				break;

			// handle help request
			case PSN_HELP:
				break;
			}
		}
		break;

	case WM_HELP:
		break;

	case WM_CONTEXTMENU:
		break;

	default:
		return FALSE;
	}

	return TRUE;
}


/*
 *  Internal implementation
 */

/*
 * Function: init_custom
 *
 * Purpose: IDD_CUSTOM: Initialize IDD_CUSTOM dialog page.
 *
 * Return: NULL
 */
static void init_custom(HWND hDlg, PDIALOGINFO pdi)
{
	// init color settings
    custom_init_color_settings(hDlg, pdi);
    custom_enable_settings(hDlg, pdi);
}

/*
 * Function: custom_init_color_settings
 *
 * Purpose: IDD_CUSTOM: Initialize color settings.
 *
 * Return: NULL
 */
static void custom_init_color_settings(HWND hDlg, PDIALOGINFO pdi)
{
    for(short Loop = 0; Loop < NUM_COLORS; Loop++)
    {
        CheckDlgButton(hDlg, IDC_BITMAPED_BLACK + Loop, pdi->pOemDev->dmPenInfo[Loop].pibBitmaped);
        CheckDlgButton(hDlg, IDC_PATH_BLACK + Loop, pdi->pOemDev->dmPenInfo[Loop].pibPath);
        CheckDlgButton(hDlg, IDC_TEXT_BLACK + Loop, pdi->pOemDev->dmPenInfo[Loop].pibText);
    }
}

/*
 * Function: custom_enable_settings
 *
 * Purpose: IDD_CUSTOM: Enable/disable controls.
 *
 * Return: NULL
 */
static void custom_enable_settings(HWND hDlg, PDIALOGINFO pdi)
{
    for(short Loop = PCOLOR_RED; Loop < NUM_COLORS; Loop++)
    {
        if(pdi->pPubDev->dmColor == DMCOLOR_MONOCHROME) // mono
        {
            ShowWindow(GetDlgItem(hDlg, IDC_COLOR_BLACK + Loop), SW_HIDE);
            EnableWindow(GetDlgItem(hDlg, IDC_BITMAPED_BLACK + Loop), FALSE);
            EnableWindow(GetDlgItem(hDlg, IDC_PATH_BLACK + Loop), FALSE);
            EnableWindow(GetDlgItem(hDlg, IDC_TEXT_BLACK + Loop), FALSE);
        }
        else // color
        {
            ShowWindow(GetDlgItem(hDlg, IDC_COLOR_BLACK + Loop), SW_SHOW);
            EnableWindow(GetDlgItem(hDlg, IDC_BITMAPED_BLACK + Loop), TRUE);
            EnableWindow(GetDlgItem(hDlg, IDC_PATH_BLACK + Loop), TRUE);
            EnableWindow(GetDlgItem(hDlg, IDC_TEXT_BLACK + Loop), TRUE);
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九久久九九| 亚洲精品一卡二卡| 精品一区二区三区在线播放| 91精品国产欧美日韩| 日本中文字幕一区二区有限公司| 欧美日本一区二区三区四区| 天天色天天爱天天射综合| 欧美一区二区三区四区久久| 国产乱码精品一区二区三区忘忧草| 欧美一区二区三区在| 青青草国产成人99久久| 欧美国产一区二区在线观看| 欧美中文字幕久久 | 国产色爱av资源综合区| 色综合天天在线| 天堂一区二区在线| 国产精品久久久久一区| 在线一区二区视频| 国产精品1区2区3区| 亚洲一区二区在线观看视频 | 成人精品视频一区| 视频一区二区三区在线| 136国产福利精品导航| 精品久久国产97色综合| 欧美亚洲日本国产| 高清不卡一二三区| 国产精品小仙女| 日韩精品一级中文字幕精品视频免费观看 | 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品久久久久久久久晋中| 日韩一区二区三区视频在线观看| 一本到高清视频免费精品| 不卡的av中国片| 国产99一区视频免费| 国产精品亚洲一区二区三区妖精 | 欧美美女一区二区三区| 91视频精品在这里| www.一区二区| 欧美性受xxxx黑人xyx性爽| 色综合激情五月| 欧美主播一区二区三区| 欧美一级黄色大片| 久久综合九色综合久久久精品综合| 精品欧美久久久| 国产精品人人做人人爽人人添| 亚洲欧洲日韩av| 日韩av中文字幕一区二区| 麻豆视频一区二区| 99视频国产精品| 欧美丰满少妇xxxxx高潮对白| www日韩大片| 亚洲在线成人精品| 久久国产精品区| 色偷偷一区二区三区| 欧美电视剧在线看免费| 国产精品家庭影院| 日本女优在线视频一区二区| 91在线观看一区二区| 日韩一区二区三区精品视频| 亚洲欧美一区二区三区久本道91| 日韩激情在线观看| 在线中文字幕不卡| 国产人成一区二区三区影院| 视频一区欧美精品| 欧美在线一区二区三区| 日本一二三不卡| 精品一区二区三区免费视频| 欧美精品乱人伦久久久久久| 亚洲精品成a人| proumb性欧美在线观看| 国产区在线观看成人精品| 久久er精品视频| 日韩欧美国产不卡| 日日摸夜夜添夜夜添精品视频| 91视频一区二区| 夜色激情一区二区| 欧美日韩激情一区二区| 亚洲第一久久影院| 91精品国产黑色紧身裤美女| 日韩高清不卡在线| 欧美成人免费网站| 国产麻豆精品视频| 国产精品天天摸av网| 99久久国产综合精品麻豆| 中文字幕综合网| 欧美日韩成人一区二区| 日本欧美肥老太交大片| 久久品道一品道久久精品| 国产福利不卡视频| 一区二区三区日韩| 欧美美女直播网站| 成人高清免费观看| 亚洲国产日韩综合久久精品| 欧美zozo另类异族| 波多野结衣亚洲一区| 日韩福利电影在线| 国产精品视频线看| 欧美一区二区视频网站| 国产麻豆精品theporn| 亚洲影院在线观看| 久久久久97国产精华液好用吗| 色婷婷精品久久二区二区蜜臀av | 在线播放亚洲一区| 91色|porny| 国内精品国产成人国产三级粉色| 亚洲精品中文字幕在线观看| 精品人在线二区三区| 精品视频1区2区| 91亚洲精品久久久蜜桃网站| 国产一区二区三区四区在线观看| 亚洲18女电影在线观看| 亚洲欧美电影院| 久久久99精品免费观看不卡| 欧美一区二区三区在线电影| 这里只有精品视频在线观看| 日本丰满少妇一区二区三区| 91无套直看片红桃| 一本大道久久a久久综合婷婷| 成人av动漫网站| 91一区二区在线| 色成人在线视频| 91麻豆精品国产91久久久久久久久| 欧美亚洲日本国产| 91精品国模一区二区三区| 91精品国产乱码久久蜜臀| 日韩精品一区二区三区中文不卡| 精品蜜桃在线看| 欧美国产日本视频| 亚洲激情在线激情| 日本sm残虐另类| 成a人片国产精品| 欧美日韩精品一区二区| 日韩欧美黄色影院| 国产精品成人一区二区三区夜夜夜 | 亚洲一区二区在线观看视频 | 五月激情综合网| 国产91丝袜在线播放九色| 成人国产电影网| 日韩三级高清在线| 亚洲欧美另类小说| 极品少妇xxxx精品少妇| 91免费观看视频在线| 欧美日韩激情一区二区三区| 国产精品毛片高清在线完整版 | 国产精品久久三区| 美女mm1313爽爽久久久蜜臀| proumb性欧美在线观看| 日韩精品一区二区三区三区免费| 中文字幕中文字幕一区二区| 极品少妇xxxx偷拍精品少妇| 欧美日本在线看| 日本不卡的三区四区五区| 色悠悠久久综合| 中文字幕在线一区| 国产精品一区在线观看你懂的| 欧美一区二区三区视频免费播放| 亚洲欧美日韩电影| 99国内精品久久| 亚洲乱码国产乱码精品精小说| 国产成人啪午夜精品网站男同| 精品三级在线观看| 久久99精品网久久| 欧美videossexotv100| 精品在线免费观看| 久久久久久97三级| 99免费精品在线观看| 亚洲欧美电影一区二区| 在线一区二区观看| 亚洲高清视频中文字幕| 日韩一区国产二区欧美三区| 欧美a级一区二区| 国产日韩欧美麻豆| 91麻豆swag| 美脚の诱脚舐め脚责91| 国产午夜精品美女毛片视频| 成人爽a毛片一区二区免费| 亚洲制服丝袜av| 久久久久久久久久久久久女国产乱| 国产成人在线视频网站| 亚洲乱码中文字幕| 久久亚洲精品国产精品紫薇| 成人国产精品免费| 久久国产人妖系列| 亚洲午夜久久久久中文字幕久| 久久先锋影音av| 欧美日本视频在线| 不卡免费追剧大全电视剧网站| 图片区小说区国产精品视频| 国产欧美一区二区三区在线看蜜臀 | 91视频www| 不卡一卡二卡三乱码免费网站| 午夜精品视频一区| 亚洲激情网站免费观看| 国产午夜精品理论片a级大结局| 欧美日本在线看| 欧美日韩卡一卡二| 欧美日韩免费电影| 欧美日韩在线一区二区| 91福利在线免费观看| 99久久精品一区|