Copy link to clipboard
Copied
We use the DDE API to control print jobs in Acrobat and Reader. This morning, all machines that updated to Reader DC 2017.009.20044 fail to establish the DDE connection. The call works fine on all versions prior to 2017.009.20044.
We have disabled both "Enable Protected Mode at Startup" and "Enable Enhanced Security".
We are using topic = "Control"
We have attempted to establish the connection with the following service names:
AcroView
AcroviewR10
AcroviewR11
AcroviewR12
AcroviewR13
AcroviewR14
AcroviewR15
In each case, we get DMLERR_NO_CONV_ESTABLISHED (0x400a) from the call to DdeConnect()
Our app is written in C, but we've also confirmed failure with VBA code:
Public Sub test()
Dim hdde As Long
hdde = DDEInitiate("AcroViewR10", "Control")
Debug.Print hdde
DDETerminate hdde
End Sub
While I'm at it, we'd prefer to not use DDE for this at all, but we have been unable to find a COM API call that allows us to initiate a print job to a specific print service. We are using [FilePrintTo(%s, %s, %s, %s)] - if anyone has guidance on a COM call that would replace the FilePrintTo DDE call, we'd gladly move away from DDE. AcroExch.AVDoc.PrintPagesSilent(), for example, only prints to the current printer, which won't work for us.
Try AcroviewR17
Copy link to clipboard
Copied
Try AcroviewR17
Copy link to clipboard
Copied
Thank you - that took care of it!
Do you have any guidance on how to determine the correct DDE server name?
Copy link to clipboard
Copied
Look at the Acrobat version number. The latest version of Acrobat is 2017.009.20044 - the previous version was something starting with 2015.... So, this is actually "Acrobat 17", hence the R17 in the DDE server name. This will work until Adobe changes the version number of Acrobat again - hopefully not any time soon. Keep in mind that this is only true for the "continuous" version of Acrobat. For anybody with a perpetual license (or "classic" version), the version number is still 2015, and you probably need to use AcroviewR15.
Copy link to clipboard
Copied
Thanks - I was afraid of that - I was hoping for a way to get at it programatically, but so far I haven't found a way. Sure seems like it would easier for them to have the installer write a registry key with this value in it, but I'm not holding my breath 😉 Anyway, we are good - we will just keep hunting for server names until we find one that works.