如何使用GetPrinterDriver来判断打印机是XPS还是GDI? [英] How to use GetPrinterDriver to tell if a printer is XPS or GDI?
问题描述
如何使用GetPrinterDriver判断打印机是XPS还是GDI?或者是否有来自非托管C ++的另一种方法?
How can I tell if a printer is XPS or GDI using GetPrinterDriver? Or is there another method from unmanaged C++?
推荐答案
使用ExtEscape会做,下面是代码示例。
Use ExtEscape will do, below is the code sample.
const char gszMsftSchema [] =" http://schemas.microsoft.com/xps/2005/06 " ;;
const char gszMsftSchema[] = "http://schemas.microsoft.com/xps/2005/06";
BOOL IsXPSPrinter(HDC hdc)
{
CHAR    lpszOutData [ARRAYSIZE(gszMsftSchema)] = {0};
INT     cbOutput =(INT)(strlen(gszMsftSchema)+ 1);
BOOL IsXPSPrinter(HDC hdc)
{
CHAR lpszOutData[ARRAYSIZE(gszMsftSchema)] = {0};
INT cbOutput = (INT) ( strlen(gszMsftSchema) + 1 );
if(ExtEscape(hdc,GETTECHNOLOGY,0,NULL,cbOutput,lpszOutData)< 0)
{
返回FALSE;
}
return(strcmp(lpszOutData,gszMsftSchema)== 0);
}
if (ExtEscape(hdc, GETTECHNOLOGY, 0, NULL, cbOutput, lpszOutData) < 0)
{
return FALSE;
}
return (strcmp(lpszOutData, gszMsftSchema) == 0);
}
请标记是否回答你的问题。
Please mark if it answers your question.
这篇关于如何使用GetPrinterDriver来判断打印机是XPS还是GDI?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!