--- /dev/null
+#define MONOCHROMEBITS 1\r
+#define GREYSCALEBITS 8\r
+#define PALLETEBITS 8\r
+#define TRUECOLORBITS 24\r
+\r
+#define PIXELS 0\r
+#define CENTIMETERS 1\r
+#define INCHES 2\r
+\r
+\r
+/* generic definitions and forward declarations */\r
+struct _MAIN_WND_INFO;\r
+struct _EDIT_WND_INFO;\r
+\r
+\r
+typedef enum _MDI_EDITOR_TYPE {\r
+ metUnknown = 0,\r
+ metImageEditor,\r
+} MDI_EDITOR_TYPE, *PMDI_EDITOR_TYPE;\r
+\r
+typedef enum\r
+{\r
+ tSelect = 0,\r
+ tMove,\r
+ tLasso,\r
+ tZoom,\r
+ tMagicWand,\r
+ tBrush,\r
+ tEraser,\r
+ tPencil,\r
+ tColorPick,\r
+ tStamp,\r
+ tFill,\r
+ tLine,\r
+ tPolyline,\r
+ tRectangle,\r
+ tRoundRectangle,\r
+ tPolygon,\r
+ tElipse,\r
+} TOOL;\r
+\r
+typedef struct _OPEN_IMAGE_EDIT_INFO\r
+{\r
+ BOOL CreateNew;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ LONG Width;\r
+ LONG Height;\r
+ } New;\r
+ struct\r
+ {\r
+ LPTSTR lpImagePath;\r
+ } Open;\r
+ };\r
+ LPTSTR lpImageName;\r
+ USHORT Type;\r
+ LONG Resolution;\r
+} OPEN_IMAGE_EDIT_INFO, *POPEN_IMAGE_EDIT_INFO;\r
+\r
+typedef struct _EDIT_WND_INFO\r
+{\r
+ MDI_EDITOR_TYPE MdiEditorType; /* Must be first member! */\r
+\r
+ HWND hSelf;\r
+ HBITMAP hBitmap;\r
+ HDC hDCMem;\r
+ PBITMAPINFO pbmi;\r
+ PBYTE pBits;\r
+ struct _MAIN_WND_INFO *MainWnd;\r
+ struct _EDIT_WND_INFO *Next;\r
+ POINT ScrollPos;\r
+ USHORT Zoom;\r
+ DWORD Tool;\r
+\r
+ POPEN_IMAGE_EDIT_INFO OpenInfo; /* Only valid during initialization */\r
+\r
+ /* Canvas properties */\r
+ USHORT Type;\r
+ LONG Resolution;\r
+ /* size of drawing area */\r
+ LONG Width;\r
+ LONG Height;\r
+\r
+} EDIT_WND_INFO, *PEDIT_WND_INFO;\r
+\r
+\r
+BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd,\r
+ POPEN_IMAGE_EDIT_INFO OpenInfo);\r
+VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info,\r
+ BOOL Setup);\r
+BOOL InitImageEditWindowImpl(VOID);\r
+VOID UninitImageEditWindowImpl(VOID);\r