mirror of https://github.com/lianthony/NT4.0
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.
292 lines
4.9 KiB
292 lines
4.9 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ddifont.c
|
|
|
|
Abstract:
|
|
|
|
Implementation of font related DDI entry points:
|
|
DrvQueryFont
|
|
DrvQueryFontTree
|
|
DrvQueryFontData
|
|
DrvGetGlyphMode
|
|
DrvFontManagement
|
|
DrvQueryAdvanceWidths
|
|
|
|
Environment:
|
|
|
|
Windows NT PostScript driver
|
|
|
|
Revision History:
|
|
|
|
03/16/96 -davidx-
|
|
Initial framework.
|
|
|
|
mm/dd/yy -author-
|
|
description
|
|
|
|
--*/
|
|
|
|
#include "pscript.h"
|
|
|
|
|
|
|
|
PIFIMETRICS
|
|
DrvQueryFont(
|
|
DHPDEV dhpdev,
|
|
ULONG iFile,
|
|
ULONG iFace,
|
|
ULONG *pid
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvQueryFont.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
dhpdev - Driver device handle
|
|
iFile - Identifies the driver font file
|
|
iFace - One-based index of the driver font
|
|
pid - Points to a LONG variable for returning an identifier
|
|
which GDI will pass to DrvFree
|
|
|
|
Return Value:
|
|
|
|
Pointer to an IFIMETRICS structure for the given font
|
|
NULL if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev = (PDEV) dhpdev;
|
|
|
|
VERBOSE(("Entering DrvQueryFont...\n"));
|
|
ASSERT(ValidPDEV(pdev));
|
|
|
|
return NULL;
|
|
}
|
|
|
|
|
|
|
|
PVOID
|
|
DrvQueryFontTree(
|
|
DHPDEV dhpdev,
|
|
ULONG iFile,
|
|
ULONG iFace,
|
|
ULONG iMode,
|
|
ULONG *pid
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvQueryFontTree.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
dhpdev - Driver device handle
|
|
iFile - Identifies the driver font file
|
|
iFace - One-based index of the driver font
|
|
iMode - Specifies the type of information to be provided
|
|
pid - Points to a LONG variable for returning an identifier
|
|
which GDI will pass to DrvFree
|
|
|
|
Return Value:
|
|
|
|
Depends on iMode, NULL if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev = (PDEV) dhpdev;
|
|
|
|
VERBOSE(("Entering DrvQueryFontTree...\n"));
|
|
ASSERT(ValidPDEV(pdev));
|
|
|
|
return NULL;
|
|
}
|
|
|
|
|
|
|
|
LONG
|
|
DrvQueryFontData(
|
|
DHPDEV dhpdev,
|
|
FONTOBJ *pfo,
|
|
ULONG iMode,
|
|
HGLYPH hg,
|
|
GLYPHDATA *pgd,
|
|
PVOID pv,
|
|
ULONG cjSize
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvQueryFontData.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
dhpdev - Driver device handle
|
|
pfo - Points to a FONTOBJ structure
|
|
iMode - Type of information requested
|
|
hg - A glyph handle
|
|
pgd - Points to a GLYPHDATA structure
|
|
pv - Points to output buffer
|
|
cjSize - Size of output buffer
|
|
|
|
Return Value:
|
|
|
|
Depends on iMode. FD_ERROR is there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev = (PDEV) dhpdev;
|
|
|
|
VERBOSE(("Entering DrvQueryFontTree...\n"));
|
|
ASSERT(pfo && ValidPDEV(pdev));
|
|
|
|
return FD_ERROR;
|
|
}
|
|
|
|
|
|
|
|
ULONG
|
|
DrvGetGlyphMode(
|
|
DHPDEV dhpdev,
|
|
FONTOBJ *pfo
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvGetGlyphMode.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
dhpdev - Driver device handle
|
|
pfo - Points to a FONTOBJ structure
|
|
|
|
Return Value:
|
|
|
|
FO_GLYPHBITS or FO_PATHOBJ
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev = (PDEV) dhpdev;
|
|
|
|
VERBOSE(("Entering DrvGetGlyphMode...\n"));
|
|
ASSERT(pfo && ValidPDEV(pdev));
|
|
|
|
return FO_GLYPHBITS;
|
|
}
|
|
|
|
|
|
|
|
ULONG
|
|
DrvFontManagement(
|
|
SURFOBJ *pso,
|
|
FONTOBJ *pfo,
|
|
ULONG iMode,
|
|
ULONG cjIn,
|
|
PVOID pvIn,
|
|
ULONG cjOut,
|
|
PVOID pvOut
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvFontManagement.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
pso - Points to a SURFOBJ structure
|
|
pfo - Points to a FONTOBJ structure
|
|
iMode - Escape number
|
|
cjIn - Size of input buffer
|
|
pvIn - Points to input buffer
|
|
cjOut - Size of output buffer
|
|
pvOut - Points to
|
|
|
|
Return Value:
|
|
|
|
TRUE if successful
|
|
FALSE if the specified escape numer is not supported
|
|
Negative if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
VERBOSE(("Entering DrvFontManagement...\n"));
|
|
|
|
switch (iMode) {
|
|
|
|
case QUERYESCSUPPORT:
|
|
case GETEXTENDEDTEXTMETRICS:
|
|
break;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
|
|
BOOL
|
|
DrvQueryAdvanceWidths(
|
|
DHPDEV dhpdev,
|
|
FONTOBJ *pfo,
|
|
ULONG iMode,
|
|
HGLYPH *phg,
|
|
PVOID *pvWidths,
|
|
ULONG cGlyphs
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvQueryAdvanceWidths.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
dhpdev - Driver device handle
|
|
pfo - Points to a FONTOBJ structure
|
|
iMode - Type of information to be provided
|
|
phg - Points to an array of HGLYPHs for which the driver will
|
|
provide character advance widths
|
|
pvWidths - Points to a buffer for returning width data
|
|
cGlyphs - Number of glyphs in the phg array
|
|
|
|
Return Value:
|
|
|
|
Depends on iMode
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev = (PDEV) dhpdev;
|
|
|
|
VERBOSE(("Entering DrvQueryAdvanceWidths...\n"));
|
|
ASSERT(pfo && ValidPDEV(pdev));
|
|
|
|
return FALSE;
|
|
}
|
|
|