Ниже приведен фрагмент кода, который я пробую:
PRINTER_INFO_2 pi;
BOOL Result = FALSE;
HANDLE pHd;
memset(&pi, 0, sizeof(PRINTER_INFO_2));
pi.pPrinterName = L"RxXPSDrv";
pi.pDriverName = L"XPSDrv Sample Driver";
// Select Share Name
pi.pShareName = L"MyPrinter";
// Select Server Name
pi.pServerName = NULL;
// Select Port Name
pi.pPortName = L"COM3:";
//pi.pPortName = L"C:\\Users\\admin\\Desktop\\a1.xps";
pi.pSecurityDescriptor = NULL;
// Select Print Processor
pi.pPrintProcessor = L"winprint";
// Select Attributes
pi.Attributes = PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST | PRINTER_ATTRIBUTE_LOCAL;
// Set Priority
pi.Priority = 1;
// Call the function AddPrinter
pHd = AddPrinter(NULL, 2, (LPBYTE)&pi);
Вот @pi.pPortName Мне нужно предоставить C: \ Users \ Admin \ Desktop \ a1.xps но это не работает, и принтер не добавляется. С COM3 это работает отлично.
Может кто-нибудь сказать мне, как я могу это сделать? Как я могу предоставить полный путь XPS в pi.pPortName?
Сначала необходимо добавить «локальный порт» «C: \ Users \ admin \ Desktop \ a1.xps». Я только попробовал, и это сработало. Некоторый код для добавления порта: Добавление-а-Local-Port-через-XcvData-и-C
Других решений пока нет …