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

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

?? ddifont.cpp

?? win2000打印機驅動代碼
?? CPP
字號:
/*
 * @file uni/ddifont.cpp DDI hook font management funcion.
 *
 * 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 "ddifont.h"


/*
 *  Implementations
 */

////////
// NOTE:
// OEM DLL needs to hook out the following six font related DDI calls only
// if it enumerates additional fonts beyond what's in the GPD file.
// And if it does, it needs to take care of its own fonts for all font DDI
// calls and DrvTextOut call.
///////

/*
 * Function: OEMFontManagement
 *
 * Purpose: DrvFontManagement is an optional entry point provided for
 *		    PostScript devices. If this function is hooked by the device
 *		    driver then GDI will pass calls made by an application to
 *		    ExtEscape for escape numbers 0x100 through 0x3fe, or for the
 *		    QUERYESCSUPPORT escape when the first DWORD pointed to by pvIn
 *		    is in the range 0x100 through 0x3fe.
 *
 * Return: ULONG
 *
ULONG APIENTRY
OEMFontManagement(
    SURFOBJ    *pso,
    FONTOBJ    *pfo,
    ULONG       iMode,
    ULONG       cjIn,
    PVOID       pvIn,
    ULONG       cjOut,
    PVOID       pvOut)
{
    TERSE(UNITEXT("OEMFontManagement() entry.\r\n"));

    //
    // Note that Unidrv will not call OEM DLL for iMode==QUERYESCSUPPORT.
    // So pso is not NULL for sure.
    //
    PDEVOBJ  pdevobj = (PDEVOBJ)pso->dhpdev;
    POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM;


    // turn around to call Unidrv if this is not the font that OEM enumerated.
    return (((PFN_DrvFontManagement)(pOemPDEV->pfnUnidrv[UD_DrvFontManagement])) (
            pso,
            pfo,
            iMode,
            cjIn,
            pvIn,
            cjOut,
            pvOut
			));
}
*/

/*
 * Function: OEMGetGlyphMode
 *
 * Purpose: DrvGetGlyphMode tells GDI how to cache glyph information.
 *
 * Return: ULONG
 *
ULONG APIENTRY
OEMGetGlyphMode(
    DHPDEV      dhpdev,
    FONTOBJ    *pfo)
{
    TERSE(UNITEXT("OEMGetGlyphMode() entry.\r\n"));


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


    // turn around to call Unidrv if this is not the font that OEM enumerated.
    return (((PFN_DrvGetGlyphMode)(pOemPDEV->pfnUnidrv[UD_DrvGetGlyphMode])) (
            dhpdev,
            pfo
			));
}
*/

/*
 * Function: OEMQueryAdvanceWidths
 *
 * Purpose: DrvQueryAdvanceWidths returns character advance widths for a
 *		    specified set of glyphs.
 *
 * Return: BOOL
 *
BOOL APIENTRY
OEMQueryAdvanceWidths(
    DHPDEV      dhpdev,
    FONTOBJ    *pfo,
    ULONG       iMode,
    HGLYPH     *phg,
    PVOID       pvWidths,
    ULONG       cGlyphs)
{
    TERSE(UNITEXT("OEMQueryAdvanceWidths() entry.\r\n"));


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


    // turn around to call Unidrv if this is not the font that OEM enumerated.
    return (((PFN_DrvQueryAdvanceWidths)(pOemPDEV->pfnUnidrv[UD_DrvQueryAdvanceWidths])) (
            dhpdev,
            pfo,
            iMode,
            phg,
            pvWidths,
            cGlyphs
		    ));
}
*/

/*
 * Function: OEMQueryFont
 *
 * Purpose: DrvQueryFont is used by GDI to get the IFIMETRICS structure for
 *		    a given font. The driver fills the IFIMETRICS structure.
 *
 * Return: PIFIMETRICS
 *
PIFIMETRICS APIENTRY
OEMQueryFont(
    DHPDEV      dhpdev,
    ULONG       iFile,
    ULONG       iFace,
    ULONG      *pid)
{
    TERSE(UNITEXT("OEMQueryFont() entry.\r\n"));


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


    // turn around to call Unidrv
    return (((PFN_DrvQueryFont)(pOemPDEV->pfnUnidrv[UD_DrvQueryFont])) (
            dhpdev,
            iFile,
            iFace,
            pid
			));
}
*/

/*
 * Function: OEMQueryFontData
 *
 * Action: DrvQueryFontData retrieves information about a realized font.
 *		   GDI provides a pointer to an array of glyph or kerning handles,
 *		   and the driver returns information about the glyphs or kerning
 *		   pairs. The driver can assume that all handles in the array are
 *		   valid.
 *
 * Return: PVOID
 *
LONG APIENTRY
OEMQueryFontData(
    DHPDEV      dhpdev,
    FONTOBJ    *pfo,
    ULONG       iMode,
    HGLYPH      hg,
    GLYPHDATA  *pgd,
    PVOID       pv,
    ULONG       cjSize)
{
    TERSE(UNITEXT("OEMQueryFontData() entry.\r\n"));


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


    // turn around to call Unidrv if this is not the font that OEM enumerated.
    return (((PFN_DrvQueryFontData)(pOemPDEV->pfnUnidrv[UD_DrvQueryFontData])) (
            dhpdev,
            pfo,
            iMode,
            hg,
            pgd,
            pv,
            cjSize
			));
}
*/

/*
 * Function: OEMQueryFontTree
 *
 * Action: When GDI calls DrvQueryFontTree, the driver supplies pointers
 *		   to structures that define one of the following: 
 *		   Mapping from Unicode to glyph handles, including glyph variants 
 *		   Mapping of kerning pairs to kerning handles
 *
 * Return: PVOID
 *
PVOID APIENTRY
OEMQueryFontTree(
    DHPDEV      dhpdev,
    ULONG       iFile,
    ULONG       iFace,
    ULONG       iMode,
    ULONG      *pid)
{
    TERSE(UNITEXT("OEMQueryFontTree() entry.\r\n"));


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


    // turn around to call Unidrv
    return (((PFN_DrvQueryFontTree)(pOemPDEV->pfnUnidrv[UD_DrvQueryFontTree])) (
            dhpdev,
            iFile,
            iFace,
            iMode,
            pid
			));
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av免费在线播放| 国产福利电影一区二区三区| 久久狠狠亚洲综合| 国产a久久麻豆| 色欧美乱欧美15图片| 欧美性受xxxx| 欧美午夜精品一区二区蜜桃| 欧美一区二区精美| 国产精品美女久久久久久久久久久| 亚洲欧美日韩小说| 精品一区二区三区在线观看国产| 岛国精品在线播放| 欧美精品v日韩精品v韩国精品v| 久久久久久久综合狠狠综合| 一区二区三区在线高清| 国产乱码一区二区三区| 欧美在线看片a免费观看| 久久久国际精品| 日韩中文字幕一区二区三区| 国产成人小视频| 91麻豆精品国产91久久久使用方法| 久久久久久久久久看片| 午夜精品福利一区二区蜜股av| 国产美女av一区二区三区| 久久久久久久网| 国产日产精品一区| 午夜欧美在线一二页| 成人一区二区三区在线观看| 这里是久久伊人| 亚洲激情av在线| 欧美自拍偷拍午夜视频| 国产女主播一区| 国产盗摄视频一区二区三区| 欧美一区二区三区精品| 五月婷婷色综合| 在线成人免费观看| 精品夜夜嗨av一区二区三区| 91精品欧美福利在线观看| 老汉av免费一区二区三区| 国产精品嫩草99a| 美女mm1313爽爽久久久蜜臀| 精品剧情在线观看| 成人一级片在线观看| 亚洲另类春色校园小说| 欧美伊人久久久久久久久影院 | 亚洲日本在线视频观看| 91美女片黄在线观看91美女| 亚洲人成人一区二区在线观看| 色婷婷av一区二区三区gif| 午夜激情综合网| 久久久91精品国产一区二区三区| 丰满少妇在线播放bd日韩电影| 日韩美女久久久| 欧美乱妇一区二区三区不卡视频| 国产真实乱偷精品视频免| 自拍偷拍欧美精品| 日韩欧美国产综合一区| 国产成人亚洲综合a∨婷婷图片| 亚洲人xxxx| 欧美大片一区二区三区| av影院午夜一区| 美腿丝袜亚洲三区| 亚洲一卡二卡三卡四卡| 精品理论电影在线观看| 欧美日韩国产综合草草| 91小宝寻花一区二区三区| 国产999精品久久久久久| 亚洲图片自拍偷拍| 亚洲欧美日韩国产一区二区三区 | 亚洲国产另类av| 国产精品成人免费精品自在线观看| 欧美成人一区二区三区在线观看| 欧美日韩精品免费| 欧美色爱综合网| 欧美日韩一区二区三区在线看| 成人污视频在线观看| 国产乱子轮精品视频| 蜜臀久久久99精品久久久久久| 亚洲二区在线观看| 亚洲一区二区精品视频| 亚洲二区视频在线| 爽好久久久欧美精品| 天堂久久久久va久久久久| 五月天中文字幕一区二区| 午夜欧美电影在线观看| 天天综合日日夜夜精品| 亚洲国产精品视频| 日韩va欧美va亚洲va久久| 青青青爽久久午夜综合久久午夜| 美女性感视频久久| 国内精品伊人久久久久av一坑| 国产99久久久国产精品潘金网站| 国产精品18久久久久| 91丨porny丨国产| 欧美日韩国产综合久久| 2023国产精品视频| 中文字幕精品一区二区三区精品| 国产精品美女一区二区在线观看| 亚洲激情图片小说视频| 蜜臀久久99精品久久久画质超高清| 国产麻豆视频精品| 欧美剧在线免费观看网站| 精品免费国产二区三区 | 视频在线观看国产精品| 国产成人亚洲综合色影视| 欧美私人免费视频| 国产精品久久三| 国产成人午夜精品影院观看视频| 色成年激情久久综合| 久久精品一区二区三区四区| 香蕉加勒比综合久久| 91亚洲精华国产精华精华液| 精品福利二区三区| 午夜日韩在线观看| 欧美在线一区二区| 一区二区三区四区在线| 91在线观看地址| 自拍偷拍国产亚洲| 91在线视频官网| 18成人在线观看| 99综合电影在线视频| 中文字幕一区视频| 成人av电影在线网| 国产精品成人在线观看| 99久久er热在这里只有精品15| 国产人伦精品一区二区| 国产曰批免费观看久久久| 精品日韩在线一区| 国内精品伊人久久久久av一坑| 日韩免费福利电影在线观看| 久久福利视频一区二区| 精品日产卡一卡二卡麻豆| 麻豆成人在线观看| 久久精品日韩一区二区三区| 99亚偷拍自图区亚洲| 国产精品久久久99| 91在线视频播放| 亚洲成人动漫在线免费观看| 日韩欧美在线一区二区三区| 国产精品99久久久久久久女警| √…a在线天堂一区| 欧美色大人视频| 国产麻豆精品一区二区| 亚洲欧美日韩国产另类专区| 欧美日韩视频一区二区| 九九国产精品视频| 国产精品免费人成网站| 欧美另类久久久品| 丰满放荡岳乱妇91ww| 午夜久久久久久电影| 国产拍欧美日韩视频二区| 欧美午夜精品免费| 91丝袜美腿高跟国产极品老师| 美女视频黄久久| 亚洲激情男女视频| 国产欧美一区在线| 日韩午夜激情免费电影| 色婷婷久久综合| aaa欧美日韩| 99综合影院在线| 成人小视频免费在线观看| 韩国av一区二区三区四区| 日韩精品三区四区| 亚洲综合无码一区二区| 国产精品色婷婷| 日本一区二区三区高清不卡| 日韩视频不卡中文| 日韩精品在线一区二区| 久久亚洲影视婷婷| 日韩欧美在线影院| 日韩欧美国产不卡| 精品久久五月天| 精品国产91洋老外米糕| 久久综合色8888| 国产精品家庭影院| 亚洲卡通欧美制服中文| 亚洲成a人v欧美综合天堂| 日韩高清不卡一区二区三区| 日本不卡视频在线观看| 韩日欧美一区二区三区| 97久久超碰精品国产| 欧美中文字幕不卡| 日韩欧美一区电影| 国产精品天美传媒| 午夜伦理一区二区| 国产一区二区精品久久99| 成人污污视频在线观看| 欧美日韩国产一二三| 26uuu国产日韩综合| 一区二区三区欧美激情| 五月婷婷色综合| 北条麻妃一区二区三区| 91精品国产手机| 自拍视频在线观看一区二区| 亚洲成av人综合在线观看| 国产精品中文字幕一区二区三区| 色婷婷综合久久久久中文一区二区| 日韩精品中文字幕在线不卡尤物| 夜夜精品视频一区二区| 国产91丝袜在线18|