Droplets created in Photoshop CC launch PS CS6

  • 1
  • Problem
  • Updated 4 years ago
  • (Edited)

I just discovered a severe design bug in PS about the droplets.

I created a droplet in PS CC 2014 but when it is called (from LR), it launches PS CS6, not CC.

If I launch the droplet from LR while PS CC is already running, the actions are executed in PS CC. But if PS is not running (either CS6 or CC), CS6 seems to have priority. Which I couldn't explain until I had a look to the registry.

The following is for power users or people having a developer background.

When a droplet is run, it launches photoshop.exe as an automation server and passes it commands through OLE Automation. Obviously, the automation server is invoked via its ProgID : Photoshop.Application. Other OLE objects are involved and invoked through their own ProgID.

The problem : PS CC and PS CS6 have different implementations of their OLE Automation objects registered under different CLSIDs and implemented in different DLLs. However, they still have the same ProgID (the same alias). I just discovered this by examining the CLSID section of the registry. So the registry contains references to Photoshop OLE/COM objects having the same ProgID but pointing to different implementations registered under different CLSIDs. This is a big programming mistake and demonstrates a deep misunderstanding about how COM/OLE is working.

A droplet created in PS CC should invoke PS CC and a droplet created in CS6 should invoke CS6. But since all Photoshop OLE/COM objects have the same ProgID, Windows launches the first object that matches the ProgID even if it is not the correct one.

As long as both PS CS6 and PS CC are installed, the problem can't be solved. The only possible fix is to launch the version of PS corresponding to the droplet that you want to use before launching the droplet (or the export using that droplet in Lightroom).

Time for the Adobe developers to re-read the OLE/COM documentation.
Photo of Pat77


  • 4 Posts
  • 0 Reply Likes
  • frustrated

Posted 4 years ago

  • 1

Be the first to post a reply!