Добрый день!
Wine (i586-wine-3.13.3-alt0.M80P.1). При помощи winetricks установлен .NET 4.5. Под всем этим запускается и вполне успешно функционирует .NET/WPF приложение.
Проблема с невозможностью вывести что-либо на принтер. При попытке что-либо напечатать возникает исключение:
External component has thrown an exception.
StackTrace:
at MS.Internal.Printing.Configuration.UnsafeNativeMethods.PTOpenProviderExImpl(String deviceName, Int32 maxVersion, Int32 prefVersion, SafePTProviderHandle& handle, Int32& usedVersion)
at MS.Internal.Printing.Configuration.UnsafeNativeMethods.PTOpenProviderEx(String deviceName, Int32 maxVersion, Int32 prefVersion, SafePTProviderHandle& handle, Int32& usedVersion)
at MS.Internal.Printing.Configuration.PTProvider..ctor(String deviceName, Int32 maxVersion, Int32 clientVersion)
at MS.Internal.Printing.Configuration.PTProviderBase.Create(String deviceName, Int32 maxVersion, Int32 clientVersion)
at System.Printing.Interop.PrintTicketConverter..ctor(String deviceName, Int32 clientPrintSchemaVersion)
at MS.Internal.Printing.Win32PrintDialog.ProbeForPrintingSupport()
at MS.Internal.Printing.Win32PrintDialog.ShowDialog()
at System.Windows.Controls.PrintDialog.ShowDialog()
Wine выводит в консоль следующее:
wine: Call from 0x7b43d526 to unimplemented function prntvpt.dll.PTOpenProviderEx, aborting
wine: Call from 0x7b43d526 to unimplemented function prntvpt.dll.PTOpenProviderEx, aborting
wine: Call from 0x7b43d526 to unimplemented function prntvpt.dll.PTOpenProviderEx, aborting
Дело в том, что WPF для печати использует Print Ticket API, реализуемое библиотекой prntvpt.dll. В Wine все функции этой библиотеки реализованы в виде "заглушек" (stub или FIXME, см.
https://source.winehq.org/source/dlls/prntvpt/).
Попытка заменить в winecfg библиотеку prntvpt.dll на нативную из Windows7 x86 к успеху не приводит. Стэк ошибки тот же, вывод в консоль WINE несколько изменяется:
0009:fixme:winspool:GetPrinterW Unimplemented level 1
0009:fixme:ntdll:EtwEventRegister ({c89b991e-3b48-49b2-80d3-ac000dfc9749}, 0x2e458f6d, 0x2e46c3b8, 0x2e46d960) stub.
wine: Call from 0x7bc77ff1 to unimplemented function GDI32.dll.GdiIsUMPDSandboxingEnabled, aborting
wine: Call from 0x7b43d526 to unimplemented function GDI32.dll.GdiIsUMPDSandboxingEnabled, aborting
wine: Call from 0x7b43d526 to unimplemented function GDI32.dll.GdiIsUMPDSandboxingEnabled, aborting
Очень прошу помочь в решении данной проблемы.