#ifndef CATIPRINTABLE_H
#define CATIPRINTABLE_H

// COPYRIGHT DASSAULT SYSTEMES 1999

/**
 * @CAA2Level L1
 * @CAA2Usage U5
 */

#include "CATPrint.h"
#include "CATBaseUnknown.h"
class CATPrintImage;

extern ExportedByCATPrint IID IID_CATIPrintable;

/**
 * Interface to make objects printable.
 * <b>Role</b>:
 * Components that implement CATIPrintable are enabled for printing.
 */
class ExportedByCATPrint CATIPrintable : public CATBaseUnknown
{
    CATDeclareInterface;
public:
   /**
    * Returns the implementing component printable image.
    * <br><b>Role</b>: The CATPrintImage instance returned should be ready to
    * be passed to a print device.
    */
    virtual CATPrintImage* CreatePrintableImage( void ) = 0;
};

CATDeclareHandler(CATIPrintable, CATBaseUnknown);

#endif