代码之家  ›  专栏  ›  技术社区  ›  msantiago

使用XcvData获取IPAddress

  •  0
  • msantiago  · 技术社区  · 13 年前

    我需要获得打印机的知识产权,但没有取得多大成功。 已经尝试了各种方法。目前我的代码是这样的:

    void Spl::GetIpAddress(LPSTR printerName)
    {
        HANDLE hPrinter;
        PBYTE wAddress = NULL;      
        DWORD size;
        DWORD status;
        LPSTR portName = GetProt(printerName);
        std::ostringstream strTemp;
        strTemp << portName;
    
        string temp = ",XcvPort " + strTemp.str();
        //temp = ,XcvPort 192.168.2.247
    
        LPSTR tempLPSTR((LPSTR)temp.c_str());
    
        if(OpenPrinter(tempLPSTR,&hPrinter,NULL))
        {
            if (XcvData(hPrinter, L"IPAddress", NULL, 0,wAddress,31, &size,&status))
            {
    
    
            }
        }
    
    }   
    

    当他试图调用XcvData函数时,她没有输入“IF”。而我的对象“wAddress”仍然为空。 因为我没有得到?

    OBS:此代码基于msdn文档: http://msdn.microsoft.com/en-us/library/windows/hardware/ff562761(v=vs.85).aspx

    感谢

    1 回复  |  直到 13 年前
        1
  •  1
  •   Carey Gregory    13 年前

    中缺少服务器名称 OpenPrinter 呼叫打印机名称应如下所示:

    "\\\\myServer\\,XvcPort myPort"
    

    要确认问题出在哪里,请致电 GetLastError 什么时候 打开打印机 失败。

    推荐文章