You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
3.9 KiB
174 lines
3.9 KiB
/*++
|
|
|
|
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;
|
|
}
|
|
|