InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IDataExchangeHandler Class Referenceabstract

#include <IDataExchangeHandler.h>

Inheritance diagram for IDataExchangeHandler:
IPMUnknownCDataExchangeHandler_ExtensibleCPMUnknown< IDataExchangeHandler >CDataExchangeHandlerForBscDNDCustomDEHandlerCusDtLnkUIDataExchangeHandler

Public Types

enum  { kDefaultIID = IID_IDATAEXCHANGEHANDLER }
 

Public Member Functions

virtual void CreateScrapStorage ()=0
 
virtual void Clear ()=0
 
virtual bool16 IsEmpty () const =0
 
virtual PMFlavor GetFlavor () const =0
 
virtual DataExchangeResponse CanInternalizeData (IPMDataObject *whichItem) const =0
 
virtual bool16 CanConvertExternalFlavor (ExternalPMFlavor fromWhichFlavor) const =0
 
virtual void AddInternalizeableFlavorsToList (OrderedFlavorList &flavorList) const =0
 
virtual void AddExternalizeableFlavorsToList (OrderedFlavorList &flavorList) const =0
 
virtual ErrorCode ExternalizePromises (IPMDataObject *whichItem)=0
 
virtual ErrorCode Externalize (IPMDataObject *whichItem, ExternalPMFlavor toWhichFlavor, IPMStream *s)=0
 
virtual ErrorCode Internalize (IPMDataObject *whichItem)=0
 
virtual ErrorCode Internalize (IPMDataObject *whichItem, ExternalPMFlavor fromWhichFlavor, IPMStream *s)=0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Detailed Description

This interface is used when exchanging data through the clipboard, drag drop, OSX services, libraries, external databases, etc.

Each implementation of IDataExchangeHandler supports a unique native (internal) PMFlavor type. IDataExchangeHandler bosses live in the scrap databases associated with each IDataExchangeController, one copy of each handler boss will be found in each scrap database. The implementation of a given IDataExchangeHandler is extensible via the IDataExchangeHandlerFlavorHelper interface.

See Also
CDataExchangeHandlerFor, CDataExchangeHandler_Extensible, IDataExchangeHandlerFlavorHelper

Member Enumeration Documentation

anonymous enum

Define the default IID for IDataExchangeHandler.

Member Function Documentation

virtual void IDataExchangeHandler::AddExternalizeableFlavorsToList (OrderedFlavorListflavorList) const
pure virtual

Get the internal flavors that can be produced in Externalize, or converted during externalize.

Parameters
flavorLista list that are externalizeable.
Returns
void.

Implemented in CDataExchangeHandler_Extensible, and CDataExchangeHandlerFor.

virtual void IDataExchangeHandler::AddInternalizeableFlavorsToList (OrderedFlavorListflavorList) const
pure virtual

Get the external flavors that can be produced in Externalize, or converted during internalize.

Parameters
flavorLista list that are internalizeable.
Returns
void.

Implemented in CDataExchangeHandler_Extensible, and CDataExchangeHandlerFor.

virtual bool16 IDataExchangeHandler::CanConvertExternalFlavor (ExternalPMFlavor fromWhichFlavor) const
pure virtual

Check if this handler can convert this type of external flavor to its internal flavor.

Parameters
fromWhichFlavorthe kind of external flavor.
See Also
PMFlavorTypes.h for the definition of ExternalPMFlavor.
Returns
bool16 kTrue if it can convert, otherwise kFalse.

Implemented in CDataExchangeHandler_Extensible, and CDataExchangeHandlerFor.

virtual DataExchangeResponse IDataExchangeHandler::CanInternalizeData (IPMDataObjectwhichItem) const
pure virtual

Check if this handler can convert external data to its internal flavor.

Parameters
whichItemthe item to be internalized.
Returns
DataExchangeResponse
See Also
PMFlavorTypes.h for the definition of DataExchangeResponse.

Implemented in CDataExchangeHandler_Extensible, and CDataExchangeHandlerFor.

virtual void IDataExchangeHandler::Clear ()
pure virtual

Clear the data held by this handler.

Returns
void.

Implemented in CDataExchangeHandlerFor, BscDNDCustomDEHandler, CusDtLnkUIDataExchangeHandler, and CDataExchangeHandler_Extensible.

virtual void IDataExchangeHandler::CreateScrapStorage ()
pure virtual

Create handler specific initial data (colors, styles, etc.) required for a new scrap database.

Returns
void.

Implemented in BscDNDCustomDEHandler, CusDtLnkUIDataExchangeHandler, CDataExchangeHandlerFor, and CDataExchangeHandler_Extensible.

virtual ErrorCode IDataExchangeHandler::Externalize (IPMDataObjectwhichItem,
ExternalPMFlavor toWhichFlavor,
IPMStreams 
)
pure virtual

Externalize handlers contents into the given flavor on a stream (for clipboard and drag/drop, etc.).

Parameters
whichItemthe item to be externalized.
toWhichFlavorthe data in the item should be converted into this external flavor.
sthe stream that will hold externalized contents.
Returns
ErrorCode the result of the operaiton.

Implemented in CDataExchangeHandlerFor, and CDataExchangeHandler_Extensible.

virtual ErrorCode IDataExchangeHandler::ExternalizePromises (IPMDataObjectwhichItem)
pure virtual

Make promises for data flavors this handler can produce during externalization (for clipboard and drag/drop, etc.).

Parameters
whichItemthe item to be externalized.
Returns
ErrorCode the result of the operation.

Implemented in CDataExchangeHandlerFor, and CDataExchangeHandler_Extensible.

virtual PMFlavor IDataExchangeHandler::GetFlavor () const
pure virtual

Get the Internal flavor (data type) this handler deals with.

Returns
PMFlavor internal flavor this handler deals with.

Implemented in BscDNDCustomDEHandler, CusDtLnkUIDataExchangeHandler, CDataExchangeHandler_Extensible, and CDataExchangeHandlerFor.

virtual ErrorCode IDataExchangeHandler::Internalize (IPMDataObjectwhichItem)
pure virtual

Internalize the data item (for clipboard or drag/drop).

Parameters
whichItemthe item to be internalized.
Returns
ErrorCode the result of the operation.

Implemented in CDataExchangeHandlerFor, and CDataExchangeHandler_Extensible.

virtual ErrorCode IDataExchangeHandler::Internalize (IPMDataObjectwhichItem,
ExternalPMFlavor fromWhichFlavor,
IPMStreams 
)
pure virtual

Internalize the contents of a stream as the given flavor (for clipboard or drag/drop, etc.).

Parameters
whichItemthe item to be internalized.
toWhichFlavorthe data for the item will be converted from this external flavor.
sthe stream that will hold the internalized contents.
Returns
ErrorCode the result of the operation.

Implemented in CDataExchangeHandlerFor, and CDataExchangeHandler_Extensible.

virtual bool16 IDataExchangeHandler::IsEmpty () const
pure virtual

Does the handler contain data, or is it empty.

Returns
bool16 kTrue if it is empty, otherwise kFalse.

Implemented in CDataExchangeHandlerFor, BscDNDCustomDEHandler, CusDtLnkUIDataExchangeHandler, and CDataExchangeHandler_Extensible.