Монитор виртуального принтера vs Windows7 x64 1722 ошибка - PullRequest
0 голосов
/ 19 ноября 2011

Я хочу написать свой собственный монитор портов для приложения виртуального принтера. Теперь я пытаюсь вызвать некоторые функции из Winspools.h, но каждый func возвращает код ошибки 1722. Ручной запуск служб Spooler и RPCLocator не помогает. Вот мой код:

BOOL Result;

MONITOR_INFO_1 monBuff[256];
memset(&monBuff, 256, sizeof(monBuff));
DWORD capacity;
DWORD returned;

system("net start spooler");
system("net start RPCLocator");

Result = EnumMonitors(NULL, 2, (LPBYTE)monBuff, sizeof(MONITOR_INFO_1)*256,  &capacity, &returned);
if(!Result)
    cout<<"Error: "<<GetLastError()<<" occured.\n";

MONITOR_INFO_2 monInfo;
monInfo.pName = "RedLangMonitor";
monInfo.pEnvironment = "Windows x64";
monInfo.pDLLName = "RedLangMonSrv.dll";

Result = AddMonitor(NULL, 2, (LPBYTE)&monInfo);
if(!Result)
    cout<<"Error: "<<GetLastError()<<" occured.\n";

Result = AddPort(NULL, NULL, "RedLangMonitor");
if(!Result)
    cout<<"Error: "<<GetLastError()<<" occured.\n";

Пожалуйста, предложите мне какое-нибудь решение для достижения этой цели.

1 Ответ

0 голосов
/ 20 ноября 2011

Как-то странно, но проблема исчезла после 2-х перезагрузок.Я знаю, это не было мистикой, но у меня нет времени искать причину этого странного поведения.

...