|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name: glvminit.cpp
Abstract: This module contains the initial unidrv-hpgl handshaking function.
Author:
[Environment:] Windows 2000 Unidrv driver
[Notes:]
Revision History:
--*/
#include "hpgl2col.h" //Precompiled header file
#include "vectorc.h"
#include "glvminit.h"
//
// Local function declaration.
//
BOOL bIsGraphicsModeHPGL2 ( IN PDEV *pPDev );
//
// The jump table. Initializing the jump table with the functions that
// hpgl2 driver supports.
//
static VMPROCS HPGLProcs = { HPGLDriverDMS, HPGLCommandCallback, NULL, // HPGLImageProcessing
NULL, // HPGLFilterGraphics
NULL, // HPGLCompression
NULL, // HPGLHalftonePattern
NULL, // HPGLMemoryUsage
NULL, // HPGLTTYGetInfo
NULL, // HPGLDownloadFontHeader
NULL, // HPGLDownloadCharGlyph
NULL, // HPGLTTDownloadMethod
NULL, // HPGLOutputCharStr
NULL, // HPGLSendFontCmd
HPGLTextOutAsBitmap, HPGLEnablePDEV, HPGLResetPDEV, NULL, // HPGLCompletePDEV,
HPGLDisablePDEV, NULL, // HPGLEnableSurface,
NULL, // HPGLDisableSurface,
HPGLDisableDriver, HPGLStartDoc, HPGLStartPage, HPGLSendPage, HPGLEndDoc, HPGLStartBanding, HPGLNextBand, HPGLPaint, HPGLBitBlt, HPGLStretchBlt, #ifndef WINNT_40
HPGLStretchBltROP, HPGLPlgBlt, #endif
HPGLCopyBits, HPGLDitherColor, HPGLRealizeBrush, HPGLLineTo, HPGLStrokePath, HPGLFillPath, HPGLStrokeAndFillPath, #ifndef WINNT_40
HPGLGradientFill, HPGLAlphaBlend, HPGLTransparentBlt, #endif
HPGLTextOut, HPGLEscape, #ifdef HOOK_DEVICE_FONTS
HPGLQueryFont, HPGLQueryFontTree, HPGLQueryFontData, HPGLGetGlyphMode, HPGLFontManagement, HPGLQueryAdvanceWidths #else
NULL, NULL, NULL, NULL, NULL, NULL, #endif
};
PVMPROCS HPGLInitVectorProcTable ( PDEV *pPDev, DEVINFO *pDevInfo, GDIINFO *pGDIInfo ) { ASSERT (pPDev); UNREFERENCED_PARAMETER(pDevInfo); UNREFERENCED_PARAMETER(pGDIInfo);
if ( bIsGraphicsModeHPGL2 (pPDev) ) { return &HPGLProcs; } return NULL; }
/*++
Routine Name: bIsGraphicsModeHPGL2
Routine Description: Finds out whether the Graphics Mode chosen by the user from the Advanced Page in the UI is HP-GL/2.
Arguments: IN PDEV *pPDev, : Unidrv's PDEV
Return Value: TRUE : If the graphics mode chosen by user is HP-GL/2 FALSE: Otherwise
Last Error: Not changed.
--*/
BOOL bIsGraphicsModeHPGL2 ( IN PDEV *pPDev ) { CHAR pOptionName[MAX_DISPLAY_NAME]; DWORD cbNeeded = 0, cOptions = 0;
//
// The strings below are exactly as the ones in gpd
// *Feature: GraphicsMode
// *Option: HPGL2MODE
// *Option: RASTERMODE
//
if ( BGetDriverSettingForOEM(pPDev, "GraphicsMode", //This is not unicode
pOptionName, MAX_DISPLAY_NAME, &cbNeeded, &cOptions) && !strcmp (pOptionName, "HPGL2MODE" ) //HPGL2 is not unicode
) { return TRUE; } return FALSE; }
|