InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CPMDataObject Class Reference

#include <CPMDataObject.h>

Inheritance diagram for CPMDataObject:
IPMDataObjectIPMUnknown

Public Member Functions

 CPMDataObject (IPMUnknown *boss)
 
virtual uint32 GetItemID () const
 
virtual void SetItemID (uint32 id)
 
virtual DataExchangeResponse FlavorExistsWithPriority (ExternalPMFlavor flavor) const
 
virtual IPMStreamGetStreamForReading (ExternalPMFlavor flavor)
 
virtual IPMStreamGetStreamForWriting (ExternalPMFlavor flavor)
 
virtual void FinishedWithStream (IPMStream *)
 
virtual int16 GetUsage () const
 
virtual void SetUsage (int16)
 
- Public Member Functions inherited from IPMDataObject
virtual void PromiseFlavor (ExternalPMFlavor newFlavor, PMFlavorFlags flavorFlags=kNormalFlavorFlag)=0
 
virtual uint16 CountFlavors () const =0
 
virtual K2Vector
< ExternalPMFlavor > * 
GetPromisedFlavors () const =0
 
virtual bool16 FlavorExists (ExternalPMFlavor requestedFlavor) const =0
 
virtual uint32 GetSizeOfFlavorData (ExternalPMFlavor flavor) const =0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Protected Member Functions

virtual IPMStreamQueryForReadingStream ()
 
virtual IPMStreamQueryForWritingStream ()
 
virtual bool16 CanReadPromisedFlavor (ExternalPMFlavor flavor)
 

Protected Attributes

uint32 fItemReference
 
IPMStreamfReadStream
 
ExternalPMFlavor fReadStreamFlavor
 
IPMStreamfWriteStream
 
ExternalPMFlavor fWriteStreamFlavor
 
int16 fUsage
 

Additional Inherited Members

- Public Types inherited from IPMDataObject
enum  { kDefaultIID = IID_IPMDATAOBJECT }
 
enum  { kUnspecifiedUsage = -1, kInternalizeUsage = 0, kExternalizeUsage = 1 }
 

Detailed Description

A data object is the representation for the external data in a data exchange operation. CPMDataObject is the shared base implementation for Clipboard, DragDrop, Mac OSX Services and LibraryScrap data objects. CPMDataObject should also serve as the base class for all custom data exchange controller implementations

See Also
IPMDataObject

Member Function Documentation

virtual bool16 CPMDataObject::CanReadPromisedFlavor (ExternalPMFlavor flavor)
protectedvirtual

A helper method to make sure non-zero length data exists before opening a read stream. Default implementation calls GetSizeOfFlavorData.

virtual void CPMDataObject::FinishedWithStream (IPMStream)
virtual

Let the object know that we are finished with the stream

Implements IPMDataObject.

virtual DataExchangeResponse CPMDataObject::FlavorExistsWithPriority (ExternalPMFlavor flavor) const
virtual

Get the priority/flags of the requested flavor. (Must be overridden)

Implements IPMDataObject.

virtual uint32 CPMDataObject::GetItemID () const
virtual

Get the unique item id (unique within a single data exchange operation).

Returns
the item id

Implements IPMDataObject.

virtual IPMStream* CPMDataObject::GetStreamForReading (ExternalPMFlavor flavor)
virtual

Get a stream that can be used to read flavor data from the object

Implements IPMDataObject.

virtual IPMStream* CPMDataObject::GetStreamForWriting (ExternalPMFlavor flavor)
virtual

Get a stream that can be used to write flavor data to the object

Implements IPMDataObject.

virtual int16 CPMDataObject::GetUsage () const
virtual

Framework call to get the intended use for this item

Returns
one of kUnspecifiedUsage, kInternalizeUsage, or kExternalizeUsage

Implements IPMDataObject.

virtual IPMStream* CPMDataObject::QueryForReadingStream ()
protectedvirtual

Standard implementation for stream creation. Subclassers should only override this methods if they don't use the standard interface ID for their read stream (IID_IPMSTREAM_FLAVOR_READ), or if the streams are obtained from a different object/boss.

virtual IPMStream* CPMDataObject::QueryForWritingStream ()
protectedvirtual

Standard implementation for stream creation. Subclassers should only override this methods if they don't use the standard interface ID for their read stream (IID_IPMSTREAM_FLAVOR_WRITE), or if the streams are obtained from a different object/boss.

virtual void CPMDataObject::SetItemID (uint32 id)
virtual

Framework call to set the unique item id (unique within a single data exchange operation).

Parameters
idIN the id of the item

Implements IPMDataObject.

virtual void CPMDataObject::SetUsage (int16 )
virtual

Framework call to set the intended use for this item

Parameters
int16IN one of kUnspecifiedUsage, kInternalizeUsage, or kExternalizeUsage

Implements IPMDataObject.