博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据打印机名称返回打印机任务方法
阅读量:6998 次
发布时间:2019-06-27

本文共 1287 字,大约阅读时间需要 4 分钟。

///返回 JOB_INFO_1 指针,和任务记录数 pLength
JOB_INFO_1* CControlPrinterDlg::ListJobsArray(LPTSTR szPrinterName,LPDWORD pLength) //CControlPrinterDlg::你的类名{        HANDLE hPrinter;	DWORD  dwNeeded,dwReturned,i;	JOB_INFO_1* pJobInfo;	if(!OpenPrinter(szPrinterName,&hPrinter,NULL)) //打开打印机	{		return NULL;	}	//	if(!EnumJobs(hPrinter,0,0xFFFFFFFF,1,NULL,0,&dwNeeded,&dwReturned))	{		if(GetLastError()!=ERROR_INSUFFICIENT_BUFFER)		{                     ClosePrinter(hPrinter);	             return NULL;		}	}	if((pJobInfo=(JOB_INFO_1*)malloc(dwNeeded))==NULL)	{		 ClosePrinter(hPrinter);		 return NULL;	}	if(!EnumJobs(hPrinter,0,0xFFFFFFFF,1,(LPBYTE)pJobInfo,dwNeeded,&dwNeeded,&dwReturned))	{		ClosePrinter(hPrinter);		free(pJobInfo);		return NULL;	}	ClosePrinter(hPrinter);	*pLength=dwReturned;	return pJobInfo;}

  

调用:

void CControlPrinterDlg::OnSelchangePrinters() {	// TODO: Add your control notification handler code here	int nIndex=m_listbox.GetCurSel();	CString strPrinterName;	m_listBox_job.ResetContent();	if(nIndex!=CB_ERR)	{		m_listbox.GetText(nIndex,strPrinterName);		if(!strPrinterName.IsEmpty())		{			DWORD length;			JOB_INFO_1* jobs=ListJobsArray((LPTSTR)(LPCSTR)strPrinterName,&length);  //这里调用			if(jobs!=NULL)			{				for(int i=0;i

  

转载于:https://www.cnblogs.com/ericyi/p/4402369.html

你可能感兴趣的文章
nginx 设置websocket支持
查看>>
数字逻辑之逻辑符号、逻辑电路图、真值表
查看>>
vim的停止回显
查看>>
InputStream流解析 XML文件
查看>>
软考 (二) 复习技巧
查看>>
Centos 6.5 磁盘修复 破解删除root密码
查看>>
某游戏浏览器Flash加速dll调用,打造我们自己的Flash加速器
查看>>
js Date对象
查看>>
求每个数的质因子
查看>>
五.hadoop 从mysql中读取数据写到hdfs
查看>>
ios开发之--WKWebView的使用
查看>>
JS中的闭包问题总结
查看>>
XML序列化与反序列化
查看>>
运动背景下的运动目标检测
查看>>
定义jsp页面默认编码格式
查看>>
谈谈java的BlockingQueue
查看>>
poj2440
查看>>
告别我的OI生涯
查看>>
Redis数据操作命令
查看>>
java 注解
查看>>