|
我自己实现了下
函数返回成功了,但驱动没有加载起来,还需要干什么吗?
我下了一个HP的驱动
- //#define DRIVERPATH "C:\\Windows\\System32\\spool\\drivers\\W32X86\\NullFilter.sys"
- //#define DATAFILEPATH "C:\\Windows\\System32\\spool\\drivers\\W32X86\\hpi01111.gpd"
- //#define CONFIGFILEPATH "C:\\Windows\\System32\\spool\\drivers\\W32X86\\hpiPIboe.dll"
- //#define HELPPATH "C:\\Windows\\System32\\spool\\drivers\\W32X86\\UNIDRV.DLL"
- //#define INFPATH "C:\\Windows\\System32\\spool\\drivers\\W32X86\\hpi1boeh.inf"
复制代码
- void LoadTest()
- {
- DRIVER_INFO_3A DInfo;
- char lpDriverPath[MAX_PATH];
- char lpBuffer[MAX_PATH];
- DWORD uSize=0;
- int returnval = GetPrinterDriverDirectory(NULL,NULL,1,(LPBYTE)lpBuffer,MAX_PATH,&uSize);
- printf("%S\n",lpBuffer);
- /*strcpy_s(lpDriverPath,lpBuffer);
- strcat_s(lpDriverPath,"\\NullFilter.sys");
- printf("%s\n",lpDriverPath);
- char lpDataFilePath[MAX_PATH];
- strcpy_s(lpDataFilePath,lpBuffer);
- strcat_s(lpDataFilePath,"\\hpi01111.gpd");
- printf("%s\n",lpDataFilePath);
- char lpConfigFilePath[MAX_PATH];
- strcpy_s(lpConfigFilePath,lpBuffer);
- strcat_s(lpConfigFilePath,"\\hpiPIboe.dll");
- printf("%s\n",lpConfigFilePath);
- char lpHelpFilePath[MAX_PATH];
- strcpy_s(lpHelpFilePath,lpBuffer);
- strcat_s(lpHelpFilePath,"\\UNIDRV.DLL");
- printf("%s\n",lpHelpFilePath);*/
- ZeroMemory(&DInfo, sizeof(DRIVER_INFO_3A));
- DInfo.cVersion=0x03;
- DInfo.pName = "HP Designjet T7100 Mono HPGL2";
- DInfo.pEnvironment = NULL;
- DInfo.pDriverPath = DRIVERPATH;
- DInfo.pDataFile = DATAFILEPATH;
- DInfo.pConfigFile = CONFIGFILEPATH;
- DInfo.pHelpFile = HELPPATH;
- DInfo.pMonitorName = NULL;
- DInfo.pDependentFiles = NULL;
- DInfo.pDefaultDataType = "RAW";
- int returnvalue = AddPrinterDriver(NULL,3,(LPBYTE)&DInfo);
- if(InstallPrinterDriverFromPackageA(NULL,INFPATH,"NullFilter.sys",NULL,IPDFP_COPY_ALL_FILES) == S_OK)
- {
- printf("ok!\n");
- }
- //printf("error code : 0x%x\n",GetLastError());
- if(returnval == 0)
- {
- printf("faild!----code:0x%x\n",GetLastError());
- }else
- {
- printf("success!\n");
- }
- }
复制代码 |
|