InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ILinkResource.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 maintain and access a linked resource.
25 //
26 //========================================================================================
27 
28 #ifndef __ILinkResource__
29 #define __ILinkResource__
30 
31 // ----- Includes -----
32 #include "IPMUnknown.h"
33 #include "LinksID.h"
34 #include "AppInfo.h"
35 #include <boost/function.hpp>
37 class IPMStream;
38 
39 class FileTypeInfo;
40 class IDTime;
41 class PMString;
42 class UIDList;
43 class URI;
44 class WideString;
45 
46 
64 class ILinkResource : public IPMUnknown
65 {
66 public:
67  enum { kDefaultIID = IID_ILINKRESOURCE };
68 
69  typedef URI ResourceId;
70  typedef WideString ResourceStamp;
71 
78  virtual ResourceId GetURI() const = 0;
79 
85  virtual ResourceId GetId() const = 0;
86 
92  virtual bool IsIdEquivalent(const ResourceId& id) const = 0;
93 
98  virtual LinkClientID GetClientID() const = 0;
99 
112  virtual WideString GetShortName(bool bUIName) const = 0;
113 
125  virtual WideString GetLongName(bool bUIName) const = 0;
126 
143  };
144 
149  virtual ResourceState GetState() const = 0;
150 
155  virtual void SetState(ResourceState state) = 0;
156 
163  kNormal = 0,
171  };
172 
177  virtual ResourceStoreState GetStoreState() const = 0;
178 
183  virtual void SetContainedInObject() = 0;
184 
191  virtual ResourceStamp GetStamp() const = 0;
192 
197  virtual void SetStamp(const ResourceStamp& stamp) = 0;
198 
204  virtual bool IsStampEquivalent(const ResourceStamp& stamp) const = 0;
205 
210  virtual IDTime GetModTime() const = 0;
211 
216  virtual void SetModTime(const IDTime& time) = 0;
217 
222  virtual uint64 GetSize() const = 0;
223 
228  virtual void SetSize(uint64 size) = 0;
229 
234  virtual FileTypeInfo GetDataType() const = 0;
235 
240  virtual PMString GetFormatType() const = 0;
241 
246  virtual void SetFormatType(const PMString& formatType) = 0;
247 
253  enum AccessMode {
255  kRead = 0,
263  };
264 
276  virtual bool IsAccessSupported(AccessMode mode) const = 0;
277 
288  virtual bool CanQueryStream(AccessMode mode) const = 0;
289 
301  virtual IPMStream* QueryStream(AccessMode mode) const = 0;
302 
308  virtual bool CanCache() const = 0;
309 
315  virtual ErrorCode Cache() = 0;
316 
322  virtual ErrorCode Uncache() = 0;
323 
328  virtual bool CanEmbed() const = 0;
329 
335  virtual ErrorCode Embed() = 0;
336 
347  virtual ErrorCode EmbedFromStream(IPMStream* stream) = 0;
348 
353  virtual bool CanUnembed() const = 0;
354 
360  virtual ErrorCode Unembed() = 0;
361 
366  virtual bool CanCopyToFile() const = 0;
367 
373  virtual ErrorCode CopyToFile(IDFile& file) const = 0;
374 
380  virtual bool CanEdit() const = 0;
381 
391  virtual ErrorCode Edit(const AppInfo& appInfo, PMString* errorString) = 0;
392 
397  virtual bool CanReveal() const = 0;
398 
403  virtual ErrorCode Reveal() = 0;
404 
409  virtual bool CanRevealInBridge() const = 0;
410 
415  virtual ErrorCode RevealInBridge() = 0;
416 
421  virtual bool CanRevealInCloudLibraries() const = 0;
422 
427  virtual ErrorCode RevealInCloudLibraries() = 0;
428 
435  virtual ErrorCode CopyAttributes(const UIDRef& resourceRef) = 0;
436 
442  virtual bool IsFPO() const = 0;
443 
448  virtual bool CanGetXMPPacketInfo() const = 0;
449 
455  virtual bool GetXMPPacketInfo(std::string& packet) const = 0;
456 
457 
469  };
470 
476  virtual ResourceDownloadState GetDownloadProgress(PMReal& progress) const = 0;
477 
482  virtual bool CanDownloadOriginal() const = 0;
483 
488  virtual ErrorCode DownloadOriginal() = 0;
489 
490  typedef boost::function<void(const ILinkResource::ResourceId& resourceId, const ILinkResource::ResourceDownloadState& resourceDownloadState)> DownloadCompletionFunction;
491 
497  virtual ErrorCode AsyncDownloadOriginal(ILinkResource::DownloadCompletionFunction completionFunction) = 0;
498 
503  virtual bool CanReplaceFPOWithOriginal() const = 0;
504 
509  virtual bool CanProvideFile() const = 0;
510 
516  virtual ErrorCode GetFile(IDFile& idFile) const = 0;
517 
522  virtual bool CanGetLinkInstance() const = 0;
523 
524  /*
525  Get the underlying link instance.
526  @param PMString [OUT] instance the underlying instance name
527  @return kSuccess if the link instance can be obtained, else an error code.
528  */
529  virtual ErrorCode GetlinkInstance(PMString &instance) const = 0;
530 
531 };
532 
533 #endif // __ILinkResource__