• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

How to know which SDK Interface/Implementations we can use?

Enthusiast ,
Sep 02, 2021 Sep 02, 2021

Copy link to clipboard

Copied

Within the SDK sample plugins there are some plugins that use supplied Interface/Implementations from the SDK. For example PanelTreeView uses  IID_ISYSFILEDATA, kSysFileDataImpl pair on its panel to store the of the file. How did they know they can safely use that without seeing the implementation? What if the implementation expects other interfaces on the same boss?

Specifically I would like to use IFileList interface and stick it on my boss to store a vector of IDFiles. Is that safe? Or is it possible the the IFileList implementation uses other interfaces that it expect to find on kDocumentListBoss?

TOPICS
SDK

Views

149

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Guide , Sep 02, 2021 Sep 02, 2021

See it the opposite way, if "they" Adobe developers use an implementation in an SDK example, you can follow their example - they can see the implementation.

I'd be careful with that particular implementation kFileListImpl, as it is only used with one boss, while a different implementation kRecentFileListImpl is used with kWorkspaceBoss.

Note also that kFileListImpl is persistent (thus requires IID_IPMPERSIST) and there are related commands such as kFileListAddFileCmdBoss. Odd, since it is the only

...

Votes

Translate

Translate
Guide ,
Sep 02, 2021 Sep 02, 2021

Copy link to clipboard

Copied

See it the opposite way, if "they" Adobe developers use an implementation in an SDK example, you can follow their example - they can see the implementation.

I'd be careful with that particular implementation kFileListImpl, as it is only used with one boss, while a different implementation kRecentFileListImpl is used with kWorkspaceBoss.

Note also that kFileListImpl is persistent (thus requires IID_IPMPERSIST) and there are related commands such as kFileListAddFileCmdBoss. Odd, since it is the only persistent interface on kDocumentListBoss, which also has an IID_INEVERWRITESTODOCUMENT - that would at least tell me to avoid it in a document. E.g. when there ever is a change to the persistent footprint you might end up without matching conversion provider.

Regarding more dependencies: As a persistent data interface, I'd also expect it to notify using IID_ISUBJECT. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Sep 02, 2021 Sep 02, 2021

Copy link to clipboard

Copied

LATEST

Interesting that in the CS5 SDK kWorkspaceBoss doesn't have that interface. I bet it has something to do with in CS5 adding/removing a plugin would cause you to lost the recent doucments list. They must've added a new implementation to kWorkspaceBoss that persists through changes of plugins so that you wouldn't lose them.

So, basically, you are saying there are no clear guidelines. Just if you see Adobe reuse interfaces then you can assume it's safe.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines