![]() | InDesign SDK 20.5 |
#include <IManageableAsset.h>

Public Types | |
| enum | { kDefaultIID = IID_IMANAGEABLEASSET } |
| enum | AssetType { enUndefined = 0, enDocument = 1, enLinked = 2, enUnmanageable = 3 } |
Public Member Functions | |
| virtual IAssetMonitor * | GetAssetMonitor ()=0 |
| virtual bool16 | GetAssetURL (PMString &outURL)=0 |
| virtual IAMLockable * | GetLockable ()=0 |
| virtual bool16 | GetReadFile (IDFile &file)=0 |
| virtual ClassID | GetServiceProviderClass () const =0 |
| virtual IAssetStateMachine * | GetStateMachine ()=0 |
| virtual IManagedStatus * | GetStatus ()=0 |
| virtual IManageableAsset::AssetType | GetType ()=0 |
| virtual bool16 | GetWriteFile (IDFile &file)=0 |
| virtual bool16 | HasVersionedContent () const =0 |
| virtual bool16 | IsBound () const =0 |
| virtual bool16 | IsTemporary ()=0 |
| virtual bool16 | IsVersioned () const =0 |
| virtual void | SetAssetMonitor (IAssetMonitor *assetMonitor)=0 |
| virtual void | SetAssetURL (const PMString &url)=0 |
| virtual void | SetHasVersionedContent (bool16 b)=0 |
| virtual void | SetIsBound (bool16 b=kTrue)=0 |
| virtual void | SetIsVersioned (bool16 b)=0 |
| virtual void | SetLockable (IAMLockable *lock)=0 |
| virtual void | SetReadFile (const IDFile &file)=0 |
| virtual void | SetServiceProviderClass (ClassID id)=0 |
| virtual void | SetStateMachine (IAssetStateMachine *sm)=0 |
| virtual void | SetStatus (IManagedStatus *status)=0 |
| virtual void | SetType (IManageableAsset::AssetType t)=0 |
| virtual void | SetWriteFile (const IDFile &file)=0 |
Public Member Functions inherited from IPMUnknown | |
| virtual IPMUnknown * | QueryInterface (PMIID interfaceID) const =0 |
| virtual void | AddRef () const =0 |
| virtual void | Release () const =0 |
The IManageableAsset interface represents a managed asset. A "managed asset" is one that is under the control of an asset management system (for example, Version Cue).
The IManageableAsset interface is added to any boss whose content can reside in an asset management system. InDesign documents may reside in an asset managment system, and IDataLinks may refer to content in an asset management system, so both the kDocBoss and the kDataLinkBoss aggregate this interface.
The default implementation for this interface is kManageableAssetImpl; for most applications, the default implementation can be used rather than creating a new implementation.
The AssetType defines how an IManageableAsset is used within InDesign.
| pure virtual |
This method retrieves the IAssetMonitor bound to this asset.
| pure virtual |
This method retrieves the asset URL if it has been set.
| outURL | is PMString to be populated with the URL. |
| pure virtual |
This method retrieves the IAMLockable instance for this IManageableAsset instance.
| pure virtual |
This method applies only to a file-based asset. Retrieves the IDFile of the location that the asset was read from. The IDFile may be for a temporary file, so this method should never be used to obtain the file to write to; use GetWriteFile() instead.
| file | is set to the IDFile that the asset was read from. |
| pure virtual |
This method retrieves the ClassID for the IAMServiceProvider for this asset that was set during binding.
| pure virtual |
This method retrieves the IAssetStateMachine that can process IManagedStatus changes for the asset.
| pure virtual |
This method retrieves the IManagedStatus instance for the asset. May legally return nil if the AMSP implementation does not support status monitoring of assets.
| pure virtual |
This method retrieves the AssetType that was set during binding.
| pure virtual |
| pure virtual |
This method tests if this IManageable asset represents versioned content. "Versioned" in this case refers to historical versions rather than, say, different language versions.
| pure virtual |
This method tests if this IManageableAsset instance has been properly bound and can be used successfully in workgroup API calls.
| pure virtual |
This method applies only to a file-based asset. It tests if the IManageableAsset instance was created from a temporary file supplied by the asset management system. For Version Cue assets, this method returns kTrue for an IManageableAsset representing an historical version.
| pure virtual |
This method tests if this asset is versioned; i.e., tests if the asset maintains a history of revisions. This method is similar to the IManageableAsset::HasVersionedContent method; however, this method will return kFalse for an IManageableAsset::enLinked asset (even when linked to versioned content) unless the link itself is versioned. For enDocument assets, this method returns the same as the HasVersionedContent method.
| pure virtual |
This method sets the current IAssetMonitor. The method is called during binding.
| assetMonitor | is a valid pointer to an IAssetMonitor instance or nil. |
| pure virtual |
This method sets the current URL for the asset. url is a PMString with a valid URL.
| pure virtual |
This method sets a flag indicating that a versioned asset (content) is associated with this IManageableAsset instance. This method is typically called by an IAMServiceProvider::enInitialize service implementation.
| b | is kTrue if versioned content; kFalse if not. |
| pure virtual |
This method flags that the IManageableAsset instance has been bound. This method is called during execution of the IAMSPManager::BindAsset method. An instance must be bound before it can be used in IAMService requests, monitored, etc.
| b | is kTrue if bound; kFalse if not. |
| pure virtual |
This method sets a flag indicating that the IManageableAsset is versioned. This method is typically called by an IAMServiceProvider::enInitialize service implementation. Do not call this method with kTrue for a enLinked assets unless the link itself is versioned; use SetHasVersionedContent instead.
| b | is kTrue if versioned; kFalse if not. |
| pure virtual |
This method sets the IAMLockable instance for this IManageableAsset instance. An IAMLockable instance should be set for story assets in order to participate correctly in the LiveEdit workflow.
| lock | is a valid pointer to an IAMLockable instance or nil if the asset is not lockable. When non-nil, the pointer is assumed to be valid for the life of the IManageableAsset instance unless reset by another call to this method. |
| pure virtual |
This method applies only to a file-based asset. Sets the IDFile for the location that the asset was read from. This method is typically called within the IAMServiceProvider::enInitialize service.
| file | an IDFile with a valid path to a file in the asset management system's local asset cache (for Version Cue assets, this is the local replica file in a Version Cue project folder). |
| pure virtual |
This method is called during binding provided that an IAMServiceProvider is found that recognizes the asset.
| id | is the ClassID of the IAMServiceProvider. |
| pure virtual |
This method sets the IAssetStateMachine instance that can process IManagedStatus changes for the asset. This method is typically called within the IAMServiceProvider::enInitialize service.
| sm | is a valid pointer to an IAssetStateMachine instance or nil. The non-nil pointer is assumed to be valid for the life of this IManageableAsset instance unless reset with another call to this method. |
| pure virtual |
This method sets the IManagedStatus instance for the IManageableAsset. An IManagedStatus instance may not be set on more than one IManageableAsset instance; that is, two IManageableAsset instances may not share an IManagedStatus instance.
| status | is a valid pointer to an IManagedStatus instance or nil. |
| pure virtual |
This method sets the AssetType. This method is called during binding.
| t | is the AssetType. |
| pure virtual |
This method applies only to a writeable, file-based asset. Sets the IDFile for the location that the asset model changes can be written to. This method is typically called within the IAMServiceProvider::enInitialize service.
| file | an IDFile with a valid path to a file in the asset management system's local asset cache (for Version Cue assets, this is the local replica file in a Version Cue project folder). |