Сбой AddPrinterDriver с ERROR_ACCESS_DENIED - PullRequest
1 голос
/ 18 января 2012

На некоторых компьютерах вызов AddPrinterDriver завершается с ошибкой ERROR_ACCESS_DENIED. Моя программа гарантированно работает с правами администратора и копирует DLL-файлы драйвера в C: \ WINDOWS без каких-либо ошибок (отказ в доступе или другие).

// structure for AddPrinterDriver
DRIVER_INFO_3 di3 = { 0 };
di3.cVersion = 3;
di3.pName = _T(MyAppPrinterName) _T(" Driver");
di3.pDefaultDataType = _T("");
// path to driver dll
FilePath file1(strDriverDirectory.c_str());
di3.pDriverPath = (LPTSTR) file1.Append(MyAppPrinterDriverDllFileName).ToString();
// path to driver ui dll
FilePath file2(strDriverDirectory.c_str());
di3.pConfigFile = (LPTSTR) file2.Append(MyAppPrinterUiDllFileName).ToString();
// path to license file
FilePath file3(strDriverDirectory.c_str());
di3.pDataFile = (LPTSTR) file3.Append(_T(MyAppPrinterName) _T(".dat")).ToString();

// add driver
bResult = AddPrinterDriver(NULL, 3, (LPBYTE) &di3);
StoreLastError(_T("AddPrinterDriver"));
if (!bResult)
    return FALSE;

Это моя функция DrvPrinterEvent:

BOOL DrvPrinterEvent(
                    LPWSTR  lpwstrPrinterName,
                    INT     iEvent,
                    DWORD   dwFlags,
                    LPARAM  lParam
                    )
{
    return TRUE;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...