/* [<][>][^][v][top][bottom][index][help] */
/*
* TclMagick definitions
*/
/* $Id: TclMagick.h,v 1.4 2004/11/05 08:53:41 schroedt Exp $ */
#ifndef _TCLMAGICK_H_
#define _TCLMAGICK_H_
#include <tcl.h>
#include <wand/magick_wand.h>
#define DEBUG 1
static CONST char *objTypeNames[] = {
"wand", "drawing", "pixel", (char *) NULL
};
enum objTypes {
TM_TYPE_WAND, TM_TYPE_DRAWING, TM_TYPE_PIXEL, TM_TYPE_ANY
};
typedef struct {
int type;
void *wandPtr; /* MagickWand, DrawingWand or PixelWand
* pointer */
Tcl_Command magickCmd; /* Token for magick command, used to
* delete it */
Tcl_Interp *interp; /* Tcl interpreter owing the object */
Tcl_HashEntry *hashPtr; /* Hash entry for this structure, used
* to delete it */
} TclMagickObj;
#ifdef __WIN32__
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# undef WIN32_LEAN_AND_MEAN
/*
* VC++ has an alternate entry point called DllMain, so we need to rename
* our entry point.
*/
# if defined(_MSC_VER)
# define EXPORT(a,b) __declspec(dllexport) a b
# define DllEntryPoint DllMain
# else
# if defined(__BORLANDC__)
# define EXPORT(a,b) a _export b
# else
# define EXPORT(a,b) a b
# endif
# endif
#else
# define EXPORT(a,b) a b
#endif
EXPORT(char, *getMagickObjName)(TclMagickObj *mPtr);
EXPORT(TclMagickObj, *newMagickObj)(Tcl_Interp *interp, int type,
void *wandPtr, char *name);
EXPORT(TclMagickObj, *findMagickObj)(Tcl_Interp *interp, int type, char *name);
EXPORT(int, myMagickError)(Tcl_Interp *interp, MagickWand *wandPtr );
#endif