InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ILink.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 // This class defines an interface used to establish a relationship between an
25 // ILinkObject and an ILinkResource.
26 //
27 //========================================================================================
28 
29 #ifndef __ILink__
30 #define __ILink__
31 
32 // ----- Includes -----
33 #include "IPMUnknown.h"
34 #include "LinksID.h"
35 
36 class IPMStream;
37 class IDTime;
38 class UIDList;
39 
40 
61 class ILink : public IPMUnknown
62 {
63 public:
64  enum { kDefaultIID = IID_ILINK };
65 
69  enum LinkType {
74  kImport = 0,
96  };
97 
102  virtual LinkType GetLinkType() const = 0;
103 
108  virtual LinkClientID GetClientID() const = 0;
109 
115  virtual UID GetResource() const = 0;
116 
121  virtual void SetResource(UID resourceUID) = 0;
122 
132  };
133 
140 
146  virtual void SetResourceModificationState(ResourceModificationState modState) = 0;
147 
153  virtual UID GetObject() const = 0;
154 
159  virtual void SetObject(UID objectUID) = 0;
160 
170  };
171 
178 
184  virtual void SetObjectModificationState(ObjectModificationState modState) = 0;
185 
190  virtual bool16 GetShowInUI() const = 0;
191 
197  virtual void SetShowInUI(bool16 bShowInUI) = 0;
198 
203  virtual bool16 GetCanEmbed() const = 0;
204 
210  virtual void SetCanEmbed(bool16 bCanEmbed) = 0;
211 
216  virtual bool16 GetCanUnembed() const = 0;
217 
223  virtual void SetCanUnembed(bool16 bCanUnembed) = 0;
224 
229  virtual bool16 GetCanPackage() const = 0;
230 
236  virtual void SetCanPackage(bool16 bCanPackage) = 0;
237 
247  };
248 
255  virtual ImportPolicy GetImportPolicy() const = 0;
256 
263  virtual void SetImportPolicy(ImportPolicy policy) = 0;
264 
270  virtual WideString GetImportStamp() const = 0;
271 
277  virtual IDTime GetImportModTime() const = 0;
278 
284  virtual IDTime GetLastImportTime() const = 0;
285 
299  };
300 
307  virtual ExportPolicy GetExportPolicy() const = 0;
308 
315  virtual void SetExportPolicy(ExportPolicy policy) = 0;
316 
322  virtual IDTime GetLastExportTime() const = 0;
323 
331  virtual void AddChildren(const UIDList& children) = 0;
332 
340  virtual void DeleteChildren(const UIDList& children) = 0;
341 
349  virtual uint32 GetChildren(UIDList& children) const = 0;
350 
357  virtual uint32 GetNumChildren() const = 0;
358 
363  virtual UID GetParent() const = 0;
364 
375  virtual ErrorCode Update(bool bForceUpdate, UIFlags uiFlags, UID& linkUID) = 0;
376 
383  virtual ErrorCode CopyAttributes(const UIDRef& linkRef) = 0;
384 
385 private:
386  friend class LinkManager;
387  friend class ScrapLinkManager;
388 
399  virtual bool Init(LinkClientID clientId, UID resourceUID, UID objectUID) = 0;
400 
401  friend class LinkScriptProvider;
402  virtual void InitFromINX(IDataBase* db,
403  LinkType type,
404  LinkClientID clientId,
405  const WideString& importStamp,
406  const IDTime& importModTime,
407  const IDTime& lastImportTime,
408  const IDTime& lastExportTime,
409  bool16 isSharedContentLink = kFalse) = 0;
410 
411  virtual ErrorCode CopyAttributes(const ILink* pLink) = 0;
412 };
413 
414 #endif // __ILink__