InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ILinkFacade.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Michael Easter
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // Description:
24 // A high level API for dealing with links, link resources and link objects.
25 //
26 //========================================================================================
27 
28 #ifndef __ILinkFacade__
29 #define __ILinkFacade__
30 
31 // ----- Includes -----
32 #include "IPMUnknown.h"
33 
34 #include "ILink.h"
35 #include "ILinkManager.h"
36 #include "ILinkResourceRenditionData.h"
37 
38 #include "LinksID.h"
39 #include "Utils.h"
40 
41 class URI;
42 
43 
56 namespace Facade
57 {
58  class ILinkFacade : public IPMUnknown
59  {
60  public:
61  enum { kDefaultIID = IID_ILINKFACADE };
62 
75  virtual ErrorCode CreateResource(IDataBase* db, const URI& uri, LinkClientID clientId, const PMString& formatType, UID& resourceUID) const = 0;
76 
85  virtual ErrorCode DeleteResources(const UIDList& resources) const = 0;
86 
95  virtual ErrorCode ReinitResource(const UIDRef& resourceRef, const URI& uri) const = 0;
96 
102  virtual bool CanRelinkResource(const UIDRef& resourceRef) const = 0;
103 
112  virtual ErrorCode RelinkResource(const UIDRef& resourceRef, const URI& uri, UIFlags uiFlags) const = 0;
113 
123  virtual ErrorCode UpdateResourceStates(const UIDList& resources, ILinkManager::OperationType opType) const = 0;
124 
135  virtual ErrorCode ResolveResources(const UIDList& resources, const URI& relativeURI, bool bIgnoreStamp) const = 0;
136 
154  virtual ErrorCode FindMissingResources(IDataBase* db,
155  LinkClientID clientId,
156  const URI& relativeURI,
157  bool bIgnoreStamp,
158  bool bUpdateLinks,
159  UIFlags uiFlags,
160  uint32& nFixed) const = 0;
161 
168  virtual WideString GetResourceLongName(const UIDRef& resourceRef) const = 0;
169 
175  virtual PMString GetResourceFormatType(const UIDRef& resourceRef) const = 0;
176 
182  virtual uint64 GetResourceSize(const UIDRef& resourceRef) const = 0;
183 
191  virtual uint32 GetResourceLinks(const UIDRef& resourceRef, bool bChildLinksOK, UIDList& links) const = 0;
193 
194 
211  virtual ErrorCode CreateLink(IDataBase* db,
212  ILink::LinkType type,
213  LinkClientID clientId,
214  UID objectUID,
215  UID resourceUID,
216  bool bSetLinkModified,
217  UID& linkUID) const = 0;
218 
232  virtual ErrorCode CreateLink(IDataBase* db,
233  ILink::LinkType type,
234  LinkClientID clientId,
235  UID objectUID,
236  const URI& resourceURI,
237  bool bSetLinkModified,
238  UID& linkUID) const = 0;
239 
254  virtual ErrorCode CreateLink(IDataBase* db,
255  ClassID classID,
256  LinkClientID clientId,
257  UID objectUID,
258  UID resourceUID,
259  bool bSetLinkModified,
260  UID& linkUID) const = 0;
261 
275  virtual ErrorCode CreateLink(IDataBase* db,
276  ClassID classID,
277  LinkClientID clientId,
278  UID objectUID,
279  const URI& resourceURI,
280  bool bSetLinkModified,
281  UID& linkUID) const = 0;
282 
291  virtual ErrorCode DeleteLinks(const UIDList& links, bool bDeleteResource, bool bDeleteChildren) const = 0;
292 
301  virtual ErrorCode DeleteLinksByObject(const UIDList& objects, bool bDeleteResource, bool bDeleteChildren) const = 0;
302 
309  virtual ErrorCode AttachLink(const UIDRef& objectRef, UID linkUID) const = 0;
310 
316  virtual bool CanEmbedLink(const UIDRef& linkRef) const = 0;
317 
324  virtual ErrorCode EmbedLinks(const UIDList& links) const = 0;
325 
331  virtual bool CanUnembedLink(const UIDRef& linkRef) const = 0;
332 
340  virtual ErrorCode UnembedLinks(const UIDList& links, UIFlags uiFlags) const = 0;
341 
352  virtual ErrorCode UnembedLinks(const UIDList& links, const URI& uri, UIFlags uiFlags) const = 0;
353 
361  virtual bool CanUpdateLink(const UIDRef& linkRef, bool bForceUpdate) const = 0;
362 
374  virtual ErrorCode UpdateLink(const UIDRef& linkRef, bool bForceUpdate, UIFlags uiFlags, UID& newLinkUID) const = 0;
375 
393  virtual ErrorCode UpdateLinks(const UIDList& links,
394  bool bForceUpdate,
395  UIFlags uiFlags,
396  bool bScheduleCmd,
397  UIDList* pNewLinks = nil) const = 0;
398 
409  virtual ErrorCode UpdateLinksRecursively(const UIDList& links,
410  bool bForceUpdate,
411  UIFlags uiFlags,
412  bool bScheduleCmd) const = 0;
413 
419  virtual bool CanRelinkLink(const UIDRef& linkRef) const = 0;
420 
431  virtual ErrorCode RelinkLink(const UIDRef& linkRef, const URI& uri, UIFlags uiFlags, UID& newLinkUID) const = 0;
432 
444  virtual ErrorCode RelinkLinksToFolder(const UIDList& links, const IDFile& folder, const WideString& extension, UIFlags uiFlags, UIDList& skippedLinks) const = 0;
445 
456  virtual ErrorCode RelinkLinksExtension(const UIDList& links, const WideString& extension, UIFlags uiFlags, UIDList& skippedLinks) const = 0;
457 
463  virtual bool CanCopyLinkToFolder(const UIDRef& linkRef) const = 0;
464 
474  virtual ErrorCode CopyLinksToFolder(const UIDList& links, const IDFile& folder, bool bRelink, UIFlags uiFlags) const = 0;
475 
482  virtual ErrorCode UpdateLinkStates(const UIDList& links) const = 0;
483 
490  virtual ErrorCode SetLinkResourceModStates(const UIDList& links, ILink::ResourceModificationState modState) const = 0;
491 
497  virtual bool CanEditLink(const UIDRef& linkRef) const = 0;
498 
508  virtual ErrorCode EditLink(const UIDRef& linkRef, const AppInfo& appInfo, PMString* errorString) const = 0;
509 
515  virtual bool CanGoToSource(const UIDRef& linkRef) const = 0;
516 
524  virtual ErrorCode GoToSource(const UIDRef& linkRef, PMString* errorString) const = 0;
525 
531  virtual bool CanRevealLink(const UIDRef& linkRef) const = 0;
532 
538  virtual ErrorCode RevealLink(const UIDRef& linkRef) const = 0;
539 
545  virtual bool CanRevealLinkInBridge(const UIDRef& linkRef) const = 0;
546 
552  virtual ErrorCode RevealLinkInBridge(const UIDRef& linkRef) const = 0;
553 
559  virtual bool CanRevealLinkInCloudLibraries(const UIDRef& linkRef) const = 0;
560 
566  virtual ErrorCode RevealLinkInCloudLibraries(const UIDRef& linkRef) const = 0;
567 
573  virtual bool CanGotoLink(const UIDRef& linkRef) const = 0;
574 
582  virtual ErrorCode GotoLink(const UIDRef& linkRef, PMString* errorString) const = 0;
583 
589  virtual bool CanPackageLink(const UIDRef& linkRef) const = 0;
590 
596  virtual UID GetLinkResource(const UIDRef& linkRef) const = 0;
597 
603  virtual UID GetLinkObject(const UIDRef& linkRef) const = 0;
604 
610  virtual bool LinkHasChildren(const UIDRef& linkRef) const = 0;
611 
621  enum LinkStatus {
640  };
641 
650  virtual LinkStatus GetLinkStatus(const UIDRef& linkRef, bool bUpdateState) const = 0;
651 
658  virtual bool CanReplaceFPOWithOriginalLink(const UIDRef& linkRef) const = 0;
659 
670  virtual ErrorCode ReplaceFPOWithOriginalLink(const UIDRef& linkRef, UIFlags uiFlags, bool16 bIgnoreErrors, UIDList& newLinkUIDs) const = 0;
671 
685  virtual ErrorCode ReplaceAllFPOWithOriginalLinks(const UIDList& links,
686  UIFlags uiFlags,
687  bool16 bIgnoreErrors,
688  UIDList* pNewLinks = nil) const = 0;
695  virtual bool CanDownloadOriginalLink(const UIDRef& linkRef) const = 0;
696 
703  virtual ErrorCode DownloadOriginalLink(const UIDRef& linkRef, bool async = true) const = 0;
704 
711  virtual ErrorCode DownloadAllOriginalLinks(const UIDList& links, bool async = true) const = 0;
712 
718  virtual bool GetHTTPLinksDefaultRenditionType(ILinkResourceRenditionData::ResourceRenditionType &type) const = 0;
719 
725  virtual ErrorCode SetHTTPLinksDefaultRenditionType(const ILinkResourceRenditionData::ResourceRenditionType &type) const = 0;
726 
727  };
728 } // namespace Facade
729 
730 #endif // __ILinkFacade__