/* MDI.H
 *
 * Copyright 1994, Bob Amstadt
 *           1995  Alex Korobka
 *
 * MDI structure definitions.
 */

#ifndef __WINE_MDI_H
#define __WINE_MDI_H

#include "windows.h"

#define MDI_MAXLISTLENGTH	0x40
#define MDI_MAXTITLELENGTH	0xA1

#define MDI_NOFRAMEREPAINT	0
#define MDI_REPAINTFRAMENOW	1
#define MDI_REPAINTFRAME	2

#define WM_MDICALCCHILDSCROLL   0x10AC /* this is exactly what Windows uses */

extern LRESULT MDIClientWndProc(HWND16 hwnd, UINT16 message, 
				WPARAM16 wParam, LPARAM lParam); /* mdi.c */

typedef struct tagMDIWCL
{
  HWND16	 	 hChild;
  struct tagMDIWCL	*prev;
} MDIWCL;

typedef struct 
{
    WORD   	nActiveChildren;
    HWND16   	hwndChildMaximized;
    HWND16   	hwndActiveChild;
    HMENU16  	hWindowMenu;
    WORD   	idFirstChild;
    WORD	nTotalCreated;
    LPSTR 	frameTitle;
    WORD   	sbNeedUpdate;
    WORD   	sbRecalc;
    HWND16   	self;
} MDICLIENTINFO;

#endif /* __WINE_MDI_H */

