The following forum(s) have migrated to Microsoft Q&A (Preview): Developing Universal Windows apps!
Visit Microsoft Q&A (Preview) to post new questions.

Learn More

 locked
Unable to print to EPSON printer using desktop-bridge and Microsoft.PointOfService RRS feed

  • Question


  • I am trying to print to an EPSON TM-L90LinerFreeU printer using a desktop-bridge that references the Microsoft.PointOfService library.  When the PosPrinter.Open() method is invoked, a windows dialog opens with the title 'SoPtr140' saying 'Library can not be loaded'. SoPtr140 appears to be the file name of one of the DLLs that was shipped with the EPSON drivers. Upon clicking the 'Okay' button on the dialog, my app catches the following exception:

    Method Open threw an exception.  The service object returned a failure status from its open call, but does not have a more specific failure code.
      at Microsoft.PointOfService.Legacy.LegacyProxy.ThrowLegacyMethodException(String methodName, Int32 ResultCode, Exception e)
      at Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethod(String methodName, Object[]& parameters, Boolean[] byRef)
      at Microsoft.PointOfService.Legacy.LegacyProxy.Open()
      at Microsoft.PointOfService.Legacy.LegacyPosPrinter.Open()
      at BackgroundProcess.Program.PosPrinter_ClaimOpenEnable(DeviceInfo di)

    As a step to triage the problem, I changed the desktop-bridge process to a console app and ran it outside of UWP.  When running as a console app, the code the desktop-bridge invokes was able to successfully print to the printer.

    Has anyone encountered similar problems when using the desktop-bridge?

    Some additional details about my environment:

    • Windows 10 OS build: 14393 (Anniversary Edition)
    • UWP app target version 14393
    • UWP app minimum version 14393
    • Desktop bridge .NET Framework version: 4.6.1
    • Target architecture: x86
    • Microsoft Point of Service for .NET version: 1.14.1
    Tuesday, March 26, 2019 3:56 PM

All replies

  • Hello Kyle Pott,

    The API Microsoft.PointOfService seems to be the classic API which is used directly on desktop. To make sure you will not have any problem when using DAC, can you use UWP specific API instead:Windows.Devices.PointOfService Namespace

    Best regards,

    Barry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Wednesday, March 27, 2019 6:11 AM
  • @Kyle Pott,

    In order to use Desktop Bridge with an OPOS Service Object like this one from Epson, you must include the dependency tree for the Epson service objects via SetDllDirectory.  

    Alternatively, you can use the Microsoft.Devices.PointOfService namespace as it will enumerate and use POSPrinters where the OPOS common controls and services objects are fully installed for the printer without the need for Desktop Bridge.

    I would also strongly suggest that you move to Windows build 17763 as there were quite a few changes that were introduced for both Desktop Bridge and PointOfService after build 14393.

    Terry Warwick
    Microsoft


    Wednesday, May 29, 2019 2:08 PM