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

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

?? ddiblt.cpp

?? win2000打印機驅(qū)動代碼
?? CPP
字號:
/*
 * @file uni/ddiblt.cpp DDI hook block transfer function.
 *
 * 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 "oemuni.h"
#include "devmode.h"
#include "color.h"
#include "ddiblt.h"


/*
 *  Implementations
 */

/*
 * Function: OEMAlphaBlend
 *
 * Purpose: DrvAlphaBlend provides bit-block transfer capabilities with
 *		    alpha blending.
 *
 * Return: BOOL
 *
BOOL APIENTRY
OEMAlphaBlend(
    SURFOBJ    *psoDest,
    SURFOBJ    *psoSrc,
    CLIPOBJ    *pco,
    XLATEOBJ   *pxlo,
    RECTL      *prclDest,
    RECTL      *prclSrc,
    BLENDOBJ   *pBlendObj)
{
	TERSE(UNITEXT("OEMAlphaBlend() entry.\r\n"));


	PDEVOBJ  pdevobj = (PDEVOBJ)psoDest->dhpdev;
	POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;


    // turn around to call Unidrv
    return (((PFN_DrvAlphaBlend)(pOemPDEV->pfnUnidrv[UD_DrvAlphaBlend])) (
            psoDest,
            psoSrc,
            pco,
            pxlo,
            prclDest,
            prclSrc,
            pBlendObj
            ));
}
*/

/*
 * Function: OEMBitBlt
 *
 * Purpose: DrvBitBlt provides general bit-block transfer capabilities
 *		    between device-managed surfaces, between GDI-managed
 *		    standard-format bitmaps, or between a device-managed surface
 *		    and a GDI-managed standard-format bitmap.
 *
 * Return: BOOL
 */
BOOL APIENTRY
OEMBitBlt(
    SURFOBJ        *psoTrg,
    SURFOBJ        *psoSrc,
    SURFOBJ        *psoMask,
    CLIPOBJ        *pco,
    XLATEOBJ       *pxlo,
    RECTL          *prclTrg,
    POINTL         *pptlSrc,
    POINTL         *pptlMask,
    BRUSHOBJ       *pbo,
    POINTL         *pptlBrush,
    ROP4            rop4)
{
	TERSE(UNITEXT("OEMBitBlt() entry.\r\n"));


	PDEVOBJ  pdevobj = (PDEVOBJ)psoTrg->dhpdev;
	POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;
	POEMDEV	 pOemDev = (POEMDEV)pdevobj->pOEMDM;
    short    Index = PCOLOR_BLACK;


    // judge color
    if(pbo)
        Index = differ_color(pbo->iSolidColor);

	if(pOemDev->dmPenInfo[Index].pibBitmaped)
	{
	    // turn around to call Unidrv
		return (((PFN_DrvBitBlt)(pOemPDEV->pfnUnidrv[UD_DrvBitBlt])) (
			   psoTrg,
			   psoSrc,
		       psoMask,
			   pco,
		       pxlo,
			   prclTrg,
			   pptlSrc,
	           pptlMask,
		       pbo,
			   pptlBrush,
	           rop4
			   ));
	}

	return TRUE;
}

/*
 * Function: OEMCopyBits
 *
 * Purpose: DrvCopyBits translates between device-managed raster surfaces
 *		    and GDI standard-format bitmaps.
 *			GDI will call DrvCopyBits when it needs to copy from one
 *		    surface to another and at least one of the surfaces is
 *		    device-managed
 *
 * Return: BOOL
 *
BOOL APIENTRY
OEMCopyBits(
    SURFOBJ        *psoDest,
    SURFOBJ        *psoSrc,
    CLIPOBJ        *pco,
    XLATEOBJ       *pxlo,
    RECTL          *prclDest,
    POINTL         *pptlSrc)
{
	TERSE(UNITEXT("OEMCopyBits() entry.\r\n"));


	PDEVOBJ  pdevobj = (PDEVOBJ)psoDest->dhpdev;
	POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;


    // turn around to call Unidrv
    return (((PFN_DrvCopyBits)(pOemPDEV->pfnUnidrv[UD_DrvCopyBits])) (
            psoDest,
            psoSrc,
            pco,
            pxlo,
            prclDest,
            pptlSrc
			));
}
*/

/*
 * Function: OEMPlgBlt
 *
 * Purpose: DrvPlgBlt provides rotate bit-block transfer capabilities
 *		    between combinations of device-managed and GDI-managed surfaces.
 *
 * Return: BOOL
 *
BOOL APIENTRY
OEMPlgBlt(
    SURFOBJ         *psoDst,
    SURFOBJ         *psoSrc,
    SURFOBJ         *psoMask,
    CLIPOBJ         *pco,
    XLATEOBJ        *pxlo,
    COLORADJUSTMENT *pca,
    POINTL          *pptlBrushOrg,
    POINTFIX        *pptfixDest,
    RECTL           *prclSrc,
    POINTL          *pptlMask,
    ULONG           iMode)
{
	TERSE(UNITEXT("OEMPlgBlt() entry.\r\n"));


	PDEVOBJ  pdevobj = (PDEVOBJ)psoDst->dhpdev;
	POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;


    // turn around to call Unidrv
    return (((PFN_DrvPlgBlt)(pOemPDEV->pfnUnidrv[UD_DrvPlgBlt])) (
            psoDst,
            psoSrc,
            psoMask,
            pco,
            pxlo,
            pca,
            pptlBrushOrg,
            pptfixDest,
            prclSrc,
            pptlMask,
            iMode
			));
}
*/

/*
 * Function: OEMStretchBlt
 *
 * Purpose: DrvStretchBlt provides stretching bit-block transfer capabilities
 *		    between any combination of device-managed and GDI-managed surfaces.
 *
 * Return: BOOL
 */
BOOL APIENTRY
OEMStretchBlt(
    SURFOBJ         *psoDest,
    SURFOBJ         *psoSrc,
    SURFOBJ         *psoMask,
    CLIPOBJ         *pco,
    XLATEOBJ        *pxlo,
    COLORADJUSTMENT *pca,
    POINTL          *pptlHTOrg,
    RECTL           *prclDest,
    RECTL           *prclSrc,
    POINTL          *pptlMask,
    ULONG            iMode)
{
	TERSE(UNITEXT("OEMStretchBlt() entry.\r\n"));


	PDEVOBJ  pdevobj = (PDEVOBJ)psoDest->dhpdev;
	POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;
	POEMDEV	 pOemDev = (POEMDEV)pdevobj->pOEMDM;


	if(pOemDev->dmPenInfo[PCOLOR_BLACK].pibBitmaped)
	{
	    // turn around to call Unidrv
		return (((PFN_DrvStretchBlt)(pOemPDEV->pfnUnidrv[UD_DrvStretchBlt])) (
		        psoDest,
		        psoSrc,
				psoMask,
				pco,
			    pxlo,
				pca,
			    pptlHTOrg,
	            prclDest,
		        prclSrc,
			    pptlMask,
				iMode
				));
	}

	return TRUE;
}

/*
 * Function: OEMStretchBltROP
 *
 * Purpose: DrvStretchBltROP performs a stretching bit-block transfer
 *		    using a ROP.
 *
 * Return: BOOL
 *
BOOL APIENTRY
OEMStretchBltROP(
    SURFOBJ         *psoDest,
    SURFOBJ         *psoSrc,
    SURFOBJ         *psoMask,
    CLIPOBJ         *pco,
    XLATEOBJ        *pxlo,
    COLORADJUSTMENT *pca,
    POINTL          *pptlHTOrg,
    RECTL           *prclDest,
    RECTL           *prclSrc,
    POINTL          *pptlMask,
    ULONG            iMode,
    BRUSHOBJ        *pbo,
    ROP4             rop4)
{
	TERSE(UNITEXT("OEMStretchBltROP() entry.\r\n"));


	PDEVOBJ  pdevobj = (PDEVOBJ)psoDest->dhpdev;
	POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;


    // turn around to call Unidrv
	return (((PFN_DrvStretchBltROP)(pOemPDEV->pfnUnidrv[UD_DrvStretchBltROP])) (
		    psoDest,
			psoSrc,
			psoMask,
	        pco,
		    pxlo,
			pca,
		    pptlHTOrg,
			prclDest,
		    prclSrc,
			pptlMask,
	        iMode,
		    pbo,
			rop4
			));
}
*/

/*
 * Function: OEMTransparentBlt
 *
 * Purpose: DrvTransparentBlt provides bit-block transfer capabilities
 *		    with transparency.
 *
 * Return: BOOL
 *
BOOL APIENTRY
OEMTransparentBlt(
	SURFOBJ    *psoDst,
	SURFOBJ    *psoSrc,
	CLIPOBJ    *pco,
	XLATEOBJ   *pxlo,
	RECTL      *prclDst,
	RECTL      *prclSrc,
	ULONG      iTransColor,
	ULONG      ulReserved)
{
    TERSE(UNITEXT("OEMTransparentBlt() entry.\r\n"));


    PDEVOBJ  pdevobj = (PDEVOBJ)psoDst->dhpdev;
    POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;


    // turn around to call Unidrv
	return (((PFN_DrvTransparentBlt)(pOemPDEV->pfnUnidrv[UD_DrvTransparentBlt])) (
		    psoDst,
			psoSrc,
            pco,
	        pxlo,
		    prclDst,
			prclSrc,
            iTransColor,
	        ulReserved
		    ));
}
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品久久久| 国产91富婆露脸刺激对白| 九九国产精品视频| 国产精品夜夜嗨| 91农村精品一区二区在线| 欧美午夜精品理论片a级按摩| 欧美一区二区三区四区久久| 国产视频在线观看一区二区三区 | 韩国在线一区二区| 床上的激情91.| 欧美午夜精品理论片a级按摩| 精品日韩在线一区| 国产精品久久久久久久久动漫| 亚洲国产精品久久人人爱| 国产一区在线不卡| 色88888久久久久久影院野外| 日韩久久精品一区| 国产精品久久久久久久蜜臀| 久久久99免费| 亚洲欧美日韩系列| 日本aⅴ免费视频一区二区三区| 国产做a爰片久久毛片| 91在线观看免费视频| 91麻豆精品国产91久久久更新时间 | 欧美日韩国产高清一区二区| 欧美一区2区视频在线观看| 国产亚洲欧洲997久久综合| 亚洲色欲色欲www| 偷拍与自拍一区| 国产一区二区在线视频| 欧美吞精做爰啪啪高潮| 精品成人在线观看| 中文av一区特黄| 亚洲欧美乱综合| 久久国产精品99久久人人澡| 成人网男人的天堂| 91丨porny丨国产入口| 欧美视频中文一区二区三区在线观看 | 日韩欧美中文字幕制服| 国产精品蜜臀在线观看| 日韩成人一区二区| 色婷婷综合久久久| 欧美精品一区二区三区蜜桃| 亚洲黄色小视频| 国产一区欧美二区| 欧美日韩一区二区在线观看视频 | 久久国内精品视频| 91美女片黄在线观看91美女| 欧美va亚洲va香蕉在线| 亚洲一区免费观看| 成人国产精品免费网站| 日韩欧美电影一区| 亚洲综合偷拍欧美一区色| 国产福利不卡视频| 欧美二区三区91| 一区二区成人在线视频| 成人丝袜18视频在线观看| 日韩一本二本av| 亚洲影院理伦片| 国产成人av一区二区三区在线 | 精品国产一区二区三区四区四| 亚洲欧美偷拍三级| 国产一区二区在线电影| 欧美老肥妇做.爰bbww视频| 亚洲三级小视频| 国产91丝袜在线观看| 日韩精品中文字幕一区 | 国产精品夜夜嗨| 欧美视频一区二| 亚洲国产精品二十页| 激情文学综合丁香| 91麻豆精品国产91久久久久久久久| 国产日韩一级二级三级| 日本成人在线不卡视频| 91丝袜国产在线播放| 久久免费视频色| 青草国产精品久久久久久| 色婷婷av一区| 中文字幕 久热精品 视频在线| 久久97超碰国产精品超碰| 欧美日韩三级一区二区| 中文字幕在线观看一区二区| 国产麻豆成人精品| 欧美一区二区黄| 丝袜a∨在线一区二区三区不卡| 9l国产精品久久久久麻豆| 国产日韩欧美精品一区| 国产精品综合久久| 8x福利精品第一导航| 综合久久一区二区三区| www.一区二区| 国产精品狼人久久影院观看方式| 韩国精品在线观看| 欧美va亚洲va| 奇米四色…亚洲| 91在线无精精品入口| 亚洲人快播电影网| 91蝌蚪porny成人天涯| 日韩毛片一二三区| 色婷婷精品久久二区二区蜜臂av| 国产精品热久久久久夜色精品三区| 国产成人高清视频| 中文子幕无线码一区tr| 91麻豆精品一区二区三区| 国产精品污污网站在线观看| 国产一二精品视频| 国产精品视频一二三| www.欧美.com| 亚洲猫色日本管| 欧美日韩在线三区| 日韩av中文字幕一区二区| 欧美大白屁股肥臀xxxxxx| 国产精选一区二区三区| 中文字幕中文在线不卡住| 色播五月激情综合网| 亚洲国产精品人人做人人爽| 日韩欧美另类在线| 国产一区二区久久| 综合久久一区二区三区| 欧美三级电影网| 精品一二三四区| 国产精品污污网站在线观看| 在线观看视频一区| 日本不卡一区二区三区| 久久只精品国产| 91在线观看地址| 日本在线不卡视频| 国产欧美日韩精品a在线观看| 91在线精品一区二区| 日韩专区中文字幕一区二区| 久久影院视频免费| 91久久久免费一区二区| 蜜桃精品视频在线| 国产精品久久久久久久久免费丝袜| 91成人免费在线视频| 美女诱惑一区二区| 中文字幕在线免费不卡| 666欧美在线视频| 国产99一区视频免费| 亚洲自拍偷拍网站| 日韩写真欧美这视频| 国产东北露脸精品视频| 国产精品麻豆99久久久久久| 色哟哟精品一区| 韩国av一区二区三区在线观看| 亚洲一区欧美一区| 亚洲国产精品99久久久久久久久| 欧美一区日本一区韩国一区| 色婷婷久久久综合中文字幕 | 亚洲欧美综合色| 精品国内片67194| 欧美日韩国产成人在线91| 97精品国产97久久久久久久久久久久| 激情综合网av| 日本亚洲一区二区| 亚洲国产欧美一区二区三区丁香婷| 精品1区2区在线观看| 欧美男人的天堂一二区| 不卡的av在线| 激情成人午夜视频| 午夜久久久久久久久| 国产精品伦一区| 日韩三级高清在线| 在线免费观看日本一区| 国产成人精品一区二| 美国三级日本三级久久99| 亚洲午夜在线观看视频在线| 国产精品污污网站在线观看| 精品精品国产高清a毛片牛牛| 欧美裸体bbwbbwbbw| 91视频免费播放| 福利一区福利二区| 日韩在线卡一卡二| 中文字幕亚洲成人| 国产精品入口麻豆九色| 久久蜜桃av一区二区天堂| 欧美天堂一区二区三区| 91婷婷韩国欧美一区二区| 粉嫩13p一区二区三区| 久久99久久久欧美国产| 日韩激情中文字幕| 一区二区三区四区视频精品免费| 亚洲天堂成人网| 国产精品免费视频网站| 国产午夜精品美女毛片视频| 欧美精品一区视频| 日韩免费高清av| 欧美精品在线观看一区二区| 色偷偷一区二区三区| 成人18精品视频| a级精品国产片在线观看| 国产69精品久久久久毛片| 国产精品羞羞答答xxdd| 激情文学综合丁香| 国产一区二区在线免费观看| 国产尤物一区二区| 国产成人综合在线观看| 欧美日本乱大交xxxxx| av资源网一区| 美女视频黄频大全不卡视频在线播放|