⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portlist.h

📁 打印机监视器
💻 H
字号:
// PortList.h
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PORTLIST_H__5BD71A00_2079_11D5_A737_00E07D80352D__INCLUDED_)
#define AFX_PORTLIST_H__5BD71A00_2079_11D5_A737_00E07D80352D__INCLUDED_

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <winspool.h>
#include "winsplp.h"
#include <shlobj.h>
#include <limits.h>

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//PortStatus values
#define PS_STARTDOC	0x001
#define PS_OPENED	0x002

typedef struct tagPort
{
	TCHAR sPath[MAX_PATH];
	TCHAR sCurDocument[MAX_PATH];
	DWORD dwStatus;//虚拟打印机状态
	HANDLE hFile;//虚拟打印机使用的文件句柄
	TCHAR sPrinterLocalDirectory[MAX_PATH];//虚拟打印机名称
	DWORD dwJobID;
	DWORD   Level;////孙刚增加
	TCHAR sPrinterPhysics[MAX_PATH];//物理打印机名称//孙刚增加
	DWORD dwJobIdPhysics;//孙刚增加
	HANDLE hPrinterPhysics;//孙刚增加
	TCHAR sUser[50];
	tagPort *pNext;
} PORT, *LPPORT;

class CPortList  
{
	PORT *m_pFirst;

public:
	DWORD Count();
	CPortList(TCHAR *sMonitorName=NULL,TCHAR *sPortDesc=NULL);
	virtual ~CPortList();

	void Save(TCHAR *sRoot);
	void Load(TCHAR *sRoot);

	BOOL EnumPorts(LPWSTR pName, DWORD Level,LPBYTE pPorts, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
	BOOL AddPort(TCHAR *sPath, TCHAR*sPrinterPhysics,DWORD dwStatus);
	BOOL DeletePort(TCHAR *sPath);
	PORT *FindPort(TCHAR *sPath);

private:
	TCHAR *m_sPortDesc;
	TCHAR *m_sMonitorName;
	LPBYTE CopyPortToBuffer(PORT *pPort,DWORD Level,LPBYTE pStart,LPBYTE pEnd);
	DWORD GetPortSize(TCHAR *pName,DWORD dwLevel);
};

#endif // !defined(AFX_PORTLIST_H__5BD71A00_2079_11D5_A737_00E07D80352D__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -