/* See Creating a new Image Type - An Example for details */

 #if !defined(DIMG_IMAGE_H)
 #define DIMG_IMAGE_H

 #include <tcl.h>
 #include <tk.h>

 //#include "tkInt.h"
 //#include "tkPort.h"
 //#include "tkCanvas.h"
 #include "tkWinInt.h"

 typedef struct DimgInstance DimgInstance;

 typedef struct DimgMaster
   Tk_ImageMaster  tkMaster;         // Tk's token for image master.
                                     // NULL means the image is being deleted.
   char            szName[256];      // Name of image
   Tcl_Interp     *pInterp;          // Interpreter associated with the application using this image.
   int             nInstance;        // Number of instances of image
   DimgInstance   *pInstance;        // First in the list of instances associated with this master.
   int             nWidth;           // Image width
   int             nHeight;          // Image height
   int             nMaskPitch;       // Pitch for mask bitmap
   int             nImagePitch;      // Pitch for mask bitmap
   HBITMAP         bmImage;          // Bitmap for rgb image
   HBITMAP         bmMask;           // Bitmap for mask image
   DWORD           dwImageMode;      // Mode for rgb image
   DWORD           dwMaskMode;       // Mode for mask image
   char           *pImageData;       // Pointer to raw image data
   char           *pMaskData;        // Pointer to raw mask data
   RGBQUAD         aColorTable[8];   // Color table for mask image

 } DimgMaster;

 struct DimgInstance
   Tk_Window       tkwin;            // Pointer to window
   DimgMaster     *pMaster;          // Pointer to master for image
   DimgInstance   *pNext;            // Pointer to the next instance in the list

 void vRegisterDimg();

 #endif //DIMG_IMAGE_