Vinicius,
Antes o binário gerava exceção quando um componente de interface era criado em uma thread sem interface, como um job. Porém em determinado momento isso foi removido e deixou de gerar error.log... Mas acabaram notando diversos comportamentos inesperados, pois existia um objeto de interface sem interface (estranho né), então voltaram o comportamento de gerar exceção.
Tivemos de dar manutenção em inúmeros fontes por conta dessa volta de comportamento, normalmente verificamos com o IsBlind
se existe interface, mas também é possível utilizar a função GetRemoteType
, que vai retornar um número negativo no caso de job.
O que você pode tentar fazer é o seguinte, ao instancia a FWMsPrinter
, enviar o parâmetro lDisableSetup
conforme o retorno do GetRemoteType
:
oPrint := FWMSPrinter():New("teste", IMP_PDF, /*lAdjustToLegacy*/, /*cPathInServer*/, GetRemoteType() == -1)
Documentação:
https://tdn.totvs.com/display/tec/GetRemoteType