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?
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
...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.
Copy link to clipboard
Copied
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.